欢迎来到天天文库
浏览记录
ID:55774711
大小:420.50 KB
页数:28页
时间:2020-06-07
《日历程序设计文档.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、一、目的(要求)日历程序(日历需包含以下三种功能):1.输出某年份的12个月2.输出某年某月3.输出某年某月某日是星期几二、概要设计1.程序运行的流程:开始运行的菜单可选择:(1)输出某年份的12个月(2)输出某年某月(3)输出某年某月某日是星期几当程序执行完成之后,可通过用户自己的意愿来选择是否再执行一次程序。2.所包含的函数如下:打印日历的函数:voidprintmonth(intm)构造日历的函数:voidprintheed(intm)intdaysofmonth(intm)intisleep()intfirstday(intm
2、)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;i4、sofmonth(m);i++){cout<<””<5、断m月份有多少天,然后输出,构造日历。2月份通过isleep()函数判断是否为闰年。89~119:{If(m==1){If(year7)weekday-=7;}}else{if(year>=N){ynn+=daysofmonth(m-1);weekday=7+6、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:{intsum=0;if(N7、for(inti=N;i<=year;i++)if((i%4==0&&i&100!=0)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~200:{switch(c){case1:{12、160~165}case2:{168~175}case3:{179~196}default:cout<<”ERROR!”;}}通过开关switch制造构建三个菜单(case1,case2,case3)以便程序能够清晰且分
4、sofmonth(m);i++){cout<<””<5、断m月份有多少天,然后输出,构造日历。2月份通过isleep()函数判断是否为闰年。89~119:{If(m==1){If(year7)weekday-=7;}}else{if(year>=N){ynn+=daysofmonth(m-1);weekday=7+6、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:{intsum=0;if(N7、for(inti=N;i<=year;i++)if((i%4==0&&i&100!=0)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~200:{switch(c){case1:{12、160~165}case2:{168~175}case3:{179~196}default:cout<<”ERROR!”;}}通过开关switch制造构建三个菜单(case1,case2,case3)以便程序能够清晰且分
5、断m月份有多少天,然后输出,构造日历。2月份通过isleep()函数判断是否为闰年。89~119:{If(m==1){If(year7)weekday-=7;}}else{if(year>=N){ynn+=daysofmonth(m-1);weekday=7+
6、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:{intsum=0;if(N7、for(inti=N;i<=year;i++)if((i%4==0&&i&100!=0)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~200:{switch(c){case1:{12、160~165}case2:{168~175}case3:{179~196}default:cout<<”ERROR!”;}}通过开关switch制造构建三个菜单(case1,case2,case3)以便程序能够清晰且分
7、for(inti=N;i<=year;i++)if((i%4==0&&i&100!=0)
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~200:{switch(c){case1:{
12、160~165}case2:{168~175}case3:{179~196}default:cout<<”ERROR!”;}}通过开关switch制造构建三个菜单(case1,case2,case3)以便程序能够清晰且分
此文档下载收益归作者所有