万年历程序简介

上传人:飞*** 文档编号:42996009 上传时间:2018-06-04 格式:DOC 页数:23 大小:367KB
返回 下载 相关 举报
万年历程序简介_第1页
第1页 / 共23页
万年历程序简介_第2页
第2页 / 共23页
万年历程序简介_第3页
第3页 / 共23页
万年历程序简介_第4页
第4页 / 共23页
万年历程序简介_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《万年历程序简介》由会员分享,可在线阅读,更多相关《万年历程序简介(23页珍藏版)》请在金锄头文库上搜索。

1、万年历万年历一、程序说明一、程序说明本程序完成四个功能:1、当前日期,2、当月日历,3、当年日历,4、万年历。四个功能分别对应不同的需求。运行 exe 程序可得到下图:二、程序设计要求二、程序设计要求1、打开程序首先应该显示当前日期,比如:日期、时间。2,、有选择功能,需要输入,输入数字选择功能,便可得到想要的结果。如:(1) 、当月日历,(2) 、当年日历,(3) 、万年历,然后输入需要查询的年份即可。(4) 、退出。3、输入后根据提示再次输入年份或月份。可得到一个相应的的结果。4、增加输入甄别功能,即输入非法数据(如负数、小数等情况)的识别显示功能。三、程序设计的源代码及注释三、程序设计的

2、源代码及注释/ 万年历(C+源代码),完整的代码,直接可以在 VC6.0 编译通过/#include#include#include#includeusing namespace std;#includeofstream fout(“日历.txt“);void Printtitle(int n);int OrEndl(int n);string Choose(); /选择功能int Calculate(int mon,int day);void Printday(int a);void FirstDay(int wday);void SomeYear(int p);void ThisMonth

3、(); /打印当月日历的主函数void PrintFirstNum(int mon);void Printyear(int year);void ThisYear(int p); /打印当年日历的主函数void Month(int n);void Printnum(int q,int mon);int Firstwday12; /储存每个月 1 号的星期数struct tm *local;string ch;int a12=31,28,31,30,31,30,31,31,30,31,30,31; /储存每月的天数int main(void)long t;time(local=localtime

4、(local-tm_year=local-tm_year+1900;local-tm_mon+;couttm_yeartm_montm_mdaytm_yeartm_montm_mdaytm_wday);couttm_hourtm_mintm_sectm_wdaytm_hourtm_mintm_sectm_wdaytm_year%4=0)sum=Calculate(local-tm_mon,local-tm_mday);int p=sum-(local-tm_wday+1)-(sum/7)*7;doflag=Choose();if(flag=“1“) /根据选择的数字确定调用哪个函数ThisMo

5、nth();else if(flag=“2“)ThisYear(p);else if(flag=“3“)SomeYear(p);else if(flag=“4“)break;elsecoutch;fouttm_mon%12;Printtitle(m);int p=local-tm_mday-(local-tm_wday+1)-(local-tm_mday/7)*7;Printnum(p,local-tm_mon);void ThisYear(int p)FirstDay(p);Printyear(local-tm_year);for(int a=1;atm_year) /计算所输年份的 1 月

6、 1 日星期几for(;ntm_year;n+)if(n%4=0)elsep+;if(p=7)p=p-7;elsefor(;nlocal-tm_year;n-)if(n%4=0)elsep-;if(p6)Firstwdayn+1=Firstwdayn+1-7;int OrEndl(int n)if(ch=“1“) /如果是打出当月日历就直接跳出循环coutendl;foutendl;return 1;if(n%2) /判断单月输空格,双月回车cout“ “;fout“ “;elsecoutendl;foutendl;return 0;void Printyear(int year) /打印年份

7、int m=year/1000;int n=(year/100)%10;int p=(year/10)%10;int q=year%10;int num4=m,n,p,q;char str5107=“* “,“ * “,“* “,“* “,“* * “,“* “,“* “,“* “,“* “,“* “,“* * “,“ * “,“ * “,“ * “,“* * “,“* “,“* “,“ * “,“* * “,“* * “,“* * “,“ * “,“* “,“* “,“* “,“* “,“* “,“ * “,“* “,“* “,“* * “,“ * “,“* “,“ * “,“ * “,“

8、* “,“* * “,“ * “,“* * “,“ * “,“* “,“ * “,“* “,“* “,“ * “,“* “,“* “,“ * “,“* “,“* “,;for(int g=0;g5;g+)cout“ “;fout“ “;for(int i=0;i4;i+)for(int h=0;h7;h+)coutstrgnumih;foutstrgnumih;coutendl;foutendl;void PrintFirstNum(int mon) /打印每两个月的日历int mday2; /储存每两个月当前打印的日期doint k=0;for(;kFirstwdaymon-1;k+) co

9、ut“ “;fout“ “;k+;for(int d=1;k8;d+,k+) /输入每个月的第一行cout“ “d“ “;fout“ “d“ “;if(mon%2) /判断单月输空格,双月回车cout“ “;fout“ “;mdaymon%2-1=d;elsecoutendl;foutendl;mdaymon%2+1=d-1;mon+;while(!(mon%2);mon=mon-2;int i=0,k=1,m=mon-1;for(;mdayiam+1;mdayi+,k+)if(mdayi10)cout“ “mdayi“ “;fout“ “mdayi“ “;elsecout“ “mdayi“

10、“;fout“ “mdayi“ “;if(k=7)if(!i)cout“ “;fout“ “;i=1;m+;elsecoutendl;foutendl;i=0;m-;k=0;m=mon-1;if(mday0=am+1k8;k+)cout“ “;fout“ “;cout“ “;fout“ “;k=1;for(mday1+;mday1am+1+1;mday1+,k+)cout“ “mday1“ “;fout“ “mday1“ “;if(k=7)coutendl;foutendl;cout“ “;fout“ “;coutendl;foutendl;if(mday0am+1foutendl;k=1;f

11、or(mday0+;mday0am+1;mday0+,k+)cout“ “mday0“ “;fout“ “mday0“ “;if(k=7)coutendl;foutendl;cout“ “;fout“ “;coutendl;foutendl;void Month(int n)char str77=“星期天“,“星期一“,“星期二“,“星期三“,“星期四“,“星期五“,“星期六“;for(int h=0;h7;h+)coutstrnh;foutstrnh;void Printnum(int q,int mon) /打印当月日历if(q0)q=q+7;int k=0;if(q!=7k7-q;k+)cout“ “;fout“ “;k+;for(int d=1;damon-1+1;d+,k+)coutsetw(4)d;if(k=7)coutendl;foutendl;k=0;coutendl;foutendl;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号