《C++书写日历》由会员分享,可在线阅读,更多相关《C++书写日历(4页珍藏版)》请在金锄头文库上搜索。
1、C+ 日历题目:小明考试遇见活了多少天这个题,遗憾的是没有做出来,但是经过考试后的讲解小明已经完全懂得了这个题,并且会熟练的做出此题,还保证以后遇见此类题,一定能够做出来。并且还想在做一次。已知1990年1月1日为星期一。设计一函数按照下述格式打印1990年以后(含)某年某月的日历,1990年以前的拒绝打印。为完成此函数,设计必要的辅助函数可能也是必要的。其中输入为年分和月份。输入:输入数据包含多组,每组有两个整数m,n。m(m 1990)表示年份,n表示月份,输入数据保证合法。如:2010 9输出:对于每组输出数据,按照题目中的格式输出,日历中每个数字占三列。如:参考代码:#include#
2、includeusing namespace std;/1990年1月1号是星期一int nyear(int year) /判断是闰年还是平年 if (year % 4 = 0 & year % 100 != 0) | year % 400 = 0) return 366; else return 365;int nmonth(int y, int m) /根据年份和月份判断是哪一个月的天数 if (m = 1 | m = 3 | m = 5 | m = 7 | m = 8 | m = 10 | m = 12) return 31; else if (nyear(y) = 366 & m =
3、2) return 29; else if (nyear(y) = 365 & m = 2) return 28; else return 30;int GetDays(int year, int month) /输入年份和月份确定到1990.1.1总共多少天 int i = 0; int sum = 0; if (year1990) for (i = 1990; i 1) for (i = 1; i year month) sum = GetDays(year, month); day = (sum + 1) % 7; /得出一个月第一行前要空几格 daycount = nmonth(year, month); /算出这一个月的天数 cout - endl; cout Su Mo Tu We Th Fr Sa endl; cout - endl; for (i = 0; i day; i+) cout setw(3) ; for (i = 1, j = day + i; i = daycount; i+, j+) cout setw(3) i; if (j % 7 = 0) cout endl; if(day!=4&daycount!=31) cout endl; cout - endl; return 0;4