日历程序设计文档

日历程序设计文档

ID:36510585

大小:450.00 KB

页数:28页

时间:2019-05-11

日历程序设计文档_第1页
日历程序设计文档_第2页
日历程序设计文档_第3页
日历程序设计文档_第4页
日历程序设计文档_第5页
资源描述:

《日历程序设计文档》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、一、目的(要求)日历程序(日历需包含以下三种功能):1.输出某年份的12个月2.输出某年某月3.输出某年某月某日是星期几二、概要设计1.程序运行的流程:开始运行的菜单可选择:(1)输出某年份的12个月(2)输出某年某月(3)输出某年某月某日是星期几当程序执行完成之后,可通过用户自己的意愿来选择是否再执行一次程序。2.所包含的函数如下:打印日历的函数:voidprintmonth(intm)构造日历的函数:voidprintheed(intm)intdaysofmonth(intm)intisleep()intfirstday(i

2、ntm)voidreset()voidprintweek(intd)intisleep(ints)(重载函数)打印开关的函数:voidchoose(intc)三、设计要点1.每个函数的功能:voidprintmonth(intm)作用:实现对日历的打印。voidprintheed(intm)作用:构造出日历的头“月日一二三四五六”。intdaysofmonth(intm)作用:计算m月份的天数。intisleep()作用:判断当前年份是否为闰年。intfirstday(intm)作用:判断m月的第一天是星期几。voidreset

3、()作用:全局变量归初始值。voidprintweek(intd)作用:将变量转化为用户可视的“星期一,星期二”等可视符号。intisleep(ints)作用:计算从N年到2012年中有多少个闰年,并且当N<2012时不包含2012年,当N>2012时包含2012年。voidchoose(intc)作用:构造程序内部菜单,面对计算机。2.关键代码分析:47~55:(此标注为代码行标,见四、源程序,下同)intk=firstday(m)If(k==7)k=0;for(inti=0;i

4、=1;i<=daysofmonth(m);i++){cout<<””<

5、rn28;}}由此代码判断m月份有多少天,然后输出,构造日历。2月份通过isleep()函数判断是否为闰年。89~119:{If(m==1){If(year7)weekday-=7;}}else{if(year>=N){ynn+=daysofmonth(

6、m-1);weekday=7+ynn%7;if(weekday>7)weekday-=7;}else{ynn-=daysofmonth(m-1);weekday=7-ynn%7;}}returnweekday;}通过计算公式(总天数%7=距离2012年1月1日有几个星期单元)而算出m月的第一天是星期几。Isleep(0)通过计算之间有多少个闰年。通过对全局变量weekday的return(可省略)输出m月的第一天是星期几。121~123:{ynn=0;}对全局变量ynn归初始值,对第二遍的运行程序进行准备。138~153:{in

7、tsum=0;if(N

8、

9、(i%400==0))sum+=1;returnsum;}elseif(N>year){for(inti=N-1;i>=year;i--)if((i%4==0&&i%100!=0)

10、

11、(i%400==0))sum+=1;returnsum;}elsereturn0;}计算并返回sum(作用域为isleep(ints))的值(从N年到2012年不包括2012年(2012年到N年)有多少个闰年)。155~2

12、00:{switch(c){case1:{160~165}case2:{168~175}case3:{179~196}default:cout<<”ERROR!”;}}通过开关switch制造构建三个菜单(case1,case2,case3)以便程序能够清晰且分

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。