c++课程设计(日历)
今天比较无聊,就随便找了个程序设计来做,下面是源代码,以及效果图...不喜请喷!
/*题目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(¤t); //得到目前的时间
t=localtime(¤t);
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(¤t); //得到目前的时间
t=localtime(¤t);
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++课程设计(日历)的更多相关文章
- 单片机课程设计——《基于AT89S52单片机和DS1302时钟芯片的电子时钟(可蓝牙校准)》
引言 本设计以AT89S52单片机为控制核心,时钟芯片DS1302提供时钟源,配合LCD1602液晶显示模块,组成基本硬件系统,同时利用HC-05嵌入式蓝牙串口通讯模块,可在手机端进行日期.时间的校准 ...
- c++课程设计之菜单选择
a) 从键盘输入n个数,选择升序还是降序输出 b)创新了日历 c) 添加了射箭游戏 d)还加入了好玩的24点游戏 学生签名: 年 月 日 课程设计(论文)评阅意见 等 级 项 ...
- [课程设计]任务进度条&开发日志目录
任务进度条&开发日志目录 周期 时间 任务 Sprint One 11.14 ● Scrum团队分工及明确任务1.0 Sprint One 11.15 ● Scr ...
- 课程设计 --- 黑白棋中的 AI
原文链接:https://www.dreamwings.cn/reversi/3013.html 到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都 ...
- Java课程设计——扫雷(winmine)
因为是我的课程设计,要是有冲突就不好了,转载注明出处!!! 程序很简单,毕竟我是搞acm的,我就只介绍一下闪光点. 中心空白搜索的时候,我用的DFS: 有一点是要注意的,就是JFrame不支持重画,还 ...
- [课程设计]Scrum 1.6 多鱼点餐系统开发进度
[课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...
- [课程设计]Scrum 1.7 多鱼点餐系统开发进度
[课程设计]Scrum 1.7 多鱼点餐系统开发进度(点餐菜式内容添加及美化) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题 ...
- [课程设计]Scrum 1.3 多鱼点餐系统开发进度
[课程设计]Scrum 1.3 多鱼点餐系统开发进度 Scrum 1.3 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追 ...
- [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐
[课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐 一.开发背景 多鱼点餐系统是一套比较系统化的针对餐厅点餐服务的产品,从顾客进入餐厅点餐到用餐结束再到最后的结账买单,需要全面的.高效的 ...
- [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复)
[课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...
随机推荐
- Visual Studio 2013键盘码农常用快捷键
声明及广告 所有功能针对C#开发配置而写,面向人群是喜欢键盘操作而非鼠标操作的开发者.部分功能可能由插件提供,我会尽可能标注出相应的插件名称.为行文方便,所有快捷键以大写形式表示.太常用的快捷键,如C ...
- iOS:UIToolBar控件的使用
UIToolBar控件:是经常使用的一个工具条控件,虽然在上面可以添加子控件,但是toolbar中只能添加UIBarButtonItem类型的子控件,其他子控件会被包装成这种类型的,例如UIButto ...
- [20] 鼓状物(Drum)图形的生成算法
顶点数据的生成 bool YfBuildDrumVertices ( Yreal radius, Yreal assistRadius, Yuint slices, Yuint stacks, YeO ...
- OTL翻译(9) --常量的SQL语句
常量的SQL语句 一个没有绑定变量的SQL语句.SQL语句块或是存储过程就被称为常量的SQL语句.OTL通过一个静态的函数来执行这样的SQL语句. 例如: // static otl_cursor:: ...
- C# 音频操作系统项目总结
此项目需求是针对.wav格式音频进行操作,转换成相应的.mp3格式的音频文件,对音频进行切割,最后以需求的形式输出,此篇会回顾运用到的一些知识点. 1.MDI子窗口的建立: 首先一个窗体能够创建多个M ...
- IOS 实现界面本地化(国际化)
在制作应用程序的时候,可以使用本地化功能,将应用程序的内容翻译成多种语言,在不同的区域显示不同的语言.下面就通过简体中文本地化设置来讲解一下本地化的简单使用. 一.让应用程序支持中文语言环境 选择需要 ...
- 网络结构设计——负载均衡之LVS学习笔记(二)
LVS按个人理解的说就是将一台Linux服务器当作路由器等功能的技术.LVS---Linux虚拟服务器. LVS实现了三种IP负载均衡技术VS/NAT.VS/TUN.VS/DR. 今天简单分享一下我在 ...
- Kettle资源库采用SQLserver数据库需要注意的点
Kettle开源ETL工具有着自己的元数据存储方式,可以分为两种 1:File 2:DB 文件存储我这里就不多说了,下面说一下在用SQLserver2008 R2作为资源库在创建的过程中遇到的问题 K ...
- Oracle综合数据库管理命令集
sqlplus SANKYU/SANKYU@ORADB_192.168.25.235 cmd: exp .......(最后不要加;号)--sankyuexp SANKYU/SANKYU@SUNNY ...
- MFC画图总结-DIB图形绘制
參考文档: http://blog.csdn.net/hnust_xiehonghao/article/details/37652927 http://blog.sina.com.cn/s/blog_ ...