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. ...
随机推荐
- tomcat完整配置
规划: 网站网页目录:/web/www 域名:www.test1.com 论坛网页目录:/web/bbs URL:bbs.test1.com/bbs 网站管理程序:$CATALINA_HOME/wab ...
- ping + 时间 日志
:top set PINGIP="192.168.1.236" echo %date% %time%>>%PINGIP%.txt ping -n 1 %PINGIP% ...
- Java 从基础到进阶学习之路---类编写以及文档凝视.
Java之前在学习过,基础知识还没有忘光,并且这些高级语言实在是太像,所以那些数据类型,或者循环控制流,以及标准设备等等就直接略过不说了. 只是一些重大概念会穿插在文章的介绍中. So,这些文章适合于 ...
- Android组件之BroadCast简单实践
作为Android的四大组件之一,没有理由不介绍一下BroadCast,BroadCast中文简单翻译就是广播,前阵子浙江某大学的啦啦操,广场舞的大妈,其中大妈和学生从喇叭和音响上听到的声音就是事件源 ...
- 【右滑返回】滑动冲突 Scroller DecorView
基本思想 我们的滑动逻辑主要是利用View的scrollBy() 方法, scrollTo()方法和Scroller类来实现的 当手指拖动视图的时候,我们监听手指在屏幕上滑动的距离 利用View的sc ...
- C# 使用DateTime.TryParseExact将自定义日期类型转换成日期
在C#中如果将一个字符串类型的日期转换成日期类型很方便的 即使用Convert.ToDateTime("2015/01/01").ToString()或DateTime.TryPa ...
- 微信小程序自定义数据分析试水
昨晚收到小程序自定义分析的内测邀请,简单试用了一下.说明挺长的,大概是这个意思: 一.定义一系列事件,对其进行统计 事件可以对页面中的这些事件进行追踪 click enterPage leavePag ...
- MySQL源码升级
mysql源码升级 升级的方法一般有两类: 1.利用mysqldump来直接导出sql文件,导入到新库中,这种方法是最省事儿的,也是最保险的,缺点的话,也显而易见,大库的mysqldump费时费力. ...
- Javascript游戏,街头霸王
在线演示 本地下载 街头霸王,有没有记起点什么?我想起了那个有颗大槐树的老院子,还有一台小霸王和一个儿时的伙伴.
- 搭建一个SpringBoot项目
1.创建项目 New->Spring Starter Project 2.添加支持 增加对mybatis plus的支持,修改pom.xml,增加如下内容: <dependency> ...