今天比较无聊,就随便找了个程序设计来做,下面是源代码,以及效果图...不喜请喷!
/*题目1:年历显示。
功能要求:
(1) 输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。
(2) 输入年月,输出该月的日历。
(3) 输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
*/
 //日历
// Coder @Gxjun 2014/3/30/10:35
#include<iostream>
#include<ctime>
#include<string>
#include<iomanip>
using namespace std;
namespace isprimer
{
int ren[]={,,,,,,,,,,,,} ; //是闰年
int pin[]={,,,,,,,,,,,,} ;
}
namespace mon
{
int ren_month[]={,,,,,,,,,,,,};
int pin_month[]={,,,,,,,,,,,,};
}
bool isprim(int year)
{
if(year%==||(year%==&&year%!=))
return true;
return false;
}
void print(int month,int weekly,int tol_day)
{ int k=;
cout.width();
cout<<month<<" SUN MON TUE WED THU FRI SAT"<<endl;
cout<<" ";
int kongge=weekly%;
while(kongge)
{
cout<<" ";
kongge--;
}
for(k=;k<=tol_day ;k++)
{
cout<<setw()<<setiosflags(ios::right)<<k<<" ";
if(weekly%==)
cout<<endl<<" ";
weekly++;
}
cout<<endl;
}
class Calender
{
public :
Calender(){};
Calender(int y):year(y){};
Calender(int y,int m): year(y),month(m){};
Calender(int y,int m,int d): year(y),month(m),day(d){};
~Calender(){};
void show1();
void show2();
void show3();
private:
int year;
int month;
int day;
};
void Calender::show1()
{
time_t current;
struct tm *t;
time(&current); //得到目前的时间
t=localtime(&current);
t->tm_year+=;
t->tm_mon+=;
cout<<"今天的时间为:"<<t->tm_year<<" 年 ";
cout<<t->tm_mon<<" 月 "<<t->tm_mday<<" 日"<<endl;
cout<<"您要查询的时间为: "<<year<<" 年 "<<month<<" 月 "<<day<<"日"<<endl;
//判断是否闰年
using namespace isprimer ;
int en,start;
if(isprim(t->tm_year)) //这一天为闰年
start=ren[t->tm_mon-]+t->tm_mday ;
else
start=pin[t->tm_mon-]+t->tm_mday ;
if(isprim(year))
en=ren[month-]+day;
else
en=pin[month-]+day;
int year_cha=year - t->tm_year;
int ans=(year_cha/)*+(year_cha - year_cha/)*+en-start;
cout<<"相隔:"<<ans<<" 天"<<endl;
cout<<"那一天是:"<<t->tm_wday+ans%<<endl;
};
void Calender::show2()
{
time_t current;
struct tm *t;
time(&current); //得到目前的时间
t=localtime(&current);
int en,start,sday=;
using namespace isprimer ;
t->tm_year+=;
t->tm_mon++;
if(isprim(t->tm_year)) //这一天为闰年
start=ren[t->tm_mon-]+t->tm_mday ;
else
start=pin[t->tm_mon-]+t->tm_mday ;
using namespace mon ;
if(isprim(year))
en=ren[month-]+sday;
else
en=pin[month-]+sday;
int year_cha=year - t->tm_year;
int ans=(year_cha/)*+(year_cha - year_cha/)*+en-start;
//得到本月初一是星期几
int weekly=t->tm_wday+ans%;
if(weekly<)weekly+=;
if(isprim(year))
print(month,weekly,ren_month[month]);
else
print(month,weekly,pin_month[month]);
};
void Calender::show3()
{
int start,ans;
using namespace mon;
time_t k;
time(&k);
struct tm *t;
t=localtime(&k);
//推出其为星期几即可
int sday,mon;
sday=mon=;
t->tm_year+=;
t->tm_mon++;
using namespace isprimer;
if(isprim(t->tm_year))
start=ren[t->tm_mon-]+t->tm_mday;
else
start=pin[t->tm_mon-]+t->tm_mday;
int year_cha=(year-t->tm_year);
ans=(year_cha/)*+(year_cha - year_cha/)*+-start;
int weekly=t->tm_wday+ans%;
if(weekly<)weekly+=;
if(isprim(year))
{
for(int i=;i<= ;i++ )
print(i,(weekly+ren[i-])%,ren_month[i]);
}
else
for(int i=;i<= ;i++ )
print(i,(weekly+pin[i-])%,pin_month[i]); };
int main()
{
int tem,aa,bb,cc;
cout<<"你想要查找什么?";
cout<<"1.某年某月某日距现在的天数以及是星期几?"<<endl;
cout<<"2.某年某月的一个月的日历"<<endl;
cout<<"3.某年的日历"<<endl;
cin>>tem;
switch(tem)
{
case :
{
cout<<"输入年 月 日"<<endl;
cin>>aa>>bb>>cc;
Calender stu(aa,bb,cc);
stu.show1();
} ;break;
case :
{
cout<<"输入年 月"<<endl;
cin>>aa>>bb;
Calender tt(aa,bb);
cout<<"this is "<<aa<<" Calender !"<<endl;
tt.show2();
break;
}
case :
{
cout<<"输入 年"<<endl;
cin>>aa;
Calender stu(aa);
stu.show3();
}
}
return ;
}

效果图:

c++课程设计(日历)的更多相关文章

  1. 单片机课程设计——《基于AT89S52单片机和DS1302时钟芯片的电子时钟(可蓝牙校准)》

    引言 本设计以AT89S52单片机为控制核心,时钟芯片DS1302提供时钟源,配合LCD1602液晶显示模块,组成基本硬件系统,同时利用HC-05嵌入式蓝牙串口通讯模块,可在手机端进行日期.时间的校准 ...

  2. c++课程设计之菜单选择

    a) 从键盘输入n个数,选择升序还是降序输出 b)创新了日历 c) 添加了射箭游戏 d)还加入了好玩的24点游戏     学生签名:  年  月   日   课程设计(论文)评阅意见 等 级 项    ...

  3. [课程设计]任务进度条&开发日志目录

    任务进度条&开发日志目录 周期 时间 任务 Sprint One   11.14     ●  Scrum团队分工及明确任务1.0    Sprint One   11.15   ●  Scr ...

  4. 课程设计 --- 黑白棋中的 AI

    原文链接:https://www.dreamwings.cn/reversi/3013.html 到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都 ...

  5. Java课程设计——扫雷(winmine)

    因为是我的课程设计,要是有冲突就不好了,转载注明出处!!! 程序很简单,毕竟我是搞acm的,我就只介绍一下闪光点. 中心空白搜索的时候,我用的DFS: 有一点是要注意的,就是JFrame不支持重画,还 ...

  6. [课程设计]Scrum 1.6 多鱼点餐系统开发进度

    [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...

  7. [课程设计]Scrum 1.7 多鱼点餐系统开发进度

    [课程设计]Scrum 1.7 多鱼点餐系统开发进度(点餐菜式内容添加及美化) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题 ...

  8. [课程设计]Scrum 1.3 多鱼点餐系统开发进度

    [课程设计]Scrum 1.3 多鱼点餐系统开发进度   Scrum 1.3 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追 ...

  9. [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐

    [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐 一.开发背景 多鱼点餐系统是一套比较系统化的针对餐厅点餐服务的产品,从顾客进入餐厅点餐到用餐结束再到最后的结账买单,需要全面的.高效的 ...

  10. [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复)

    [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...

随机推荐

  1. swing入门教程

    (转自http://terrificwanjun.bokee.com/) UI 组件简介 在开始学习 Swing 之前,必须回答针对真正初学者的一个问题:什么是 UI?初学者的答案是“用户界面”.但是 ...

  2. Vmware esx/esxi Vlan三种配置模式(VST、EST和VGT)

    在Vmware esx/esxi中使用虚拟Lan(Vlan)时,一般是指Vlan Trunk的使用,使用的Vlan配置还有其它三种类型: Virtual Switch Tagging(虚拟交换机标记, ...

  3. 最近在研究FFmpeg编解码

    好几年没上CNBLOGS了, 最近在研究FFmpeg编解码,一个人研究感到很寂寞,所以想通过博客来和大家分享和交流,呵呵. 最近研究的主题是: ANDROID手机同屏技术: 需要用到ANDROID截屏 ...

  4. [Android UI] ActionBar 自定义属性

    actionbar 默认放在顶部, 如果在application或者activity中加入 android:uiOptions="splitActionBarWhenNarrow" ...

  5. 【BZOJ】【1968】【AHOI2005】COMMON 约数研究

    数论 原谅我这么傻逼的题都不会做…… 或许写成数学公式的形式比较容易想到解法? $$ans=\sum_{i=1}^n \sum_{d|i} 1$$ ……是不是感觉很水呀……是吧……改成先枚举d再枚举 ...

  6. LeetCode 84. Largest Rectangle in Histogram 单调栈应用

    LeetCode 84. Largest Rectangle in Histogram 单调栈应用 leetcode+ 循环数组,求右边第一个大的数字 求一个数组中右边第一个比他大的数(单调栈 Lee ...

  7. Eclipse上传代码到GitHub

    平时工作学习中难免会在Github搜索一下开源的Android代码, Android系统本身的代码就是托管在GitHub上,如果平时随手做了一个Demo,托管在云盘感觉不入流,如果平时自己一时兴起写了 ...

  8. PHP 解决版本问题:"Assigning the return value of new by reference is deprecated"

    问题描述:     在最近使用ECSHOP v273帮客户建立了一个商城系统,商城搭建一切ok但在使用中后台发现了一个500错误     在服务器上访问该地址发现了错误信息:"Assigni ...

  9. Transformer中引用iqd作为数据源的时候数据预览出现乱码

    在cognos开发利用transform建模的过程中导入iqd数据源预览乱码问题,下面先描述一下环境 操作系统版本: [root@enfo212 ~]# cat /proc/version Linux ...

  10. 解决Windows Git Bash中文乱码问题

    在git 安装目录 etc 下面 添加以下配置信息 1,/etc/gitconfig: [gui] encoding = utf-8 #代码库统一用urf-8,在git gui中可以正常显示中文 [i ...