- 10
- 0
- 约1.18万字
- 约 45页
- 2016-09-22 发布于重庆
- 举报
问题与趣味算法
#include iostream.h #include iomanip.h #include stdio.h //weekday 0-6 //month 1-12 #define Sunday 0 #define Monday 1 #define Tuesday 2 #define Wednesday 3 #define Thursday 4 #define Friday 5 #define Saturday 6 int getYearFromUser(void); void printCalendar(int year); void printCalendarMonth(int month,int year); void IndentFirstLine(int weekday); int monthDays(int month,int year); int firstDayOfMonth(int month,int year); char *monthName(int month); bool isLeapYear(int year); 完整的程序代码 注意程序书写的规范性 注意变量名定义的可读性 添加必要的注释 /*主函数*/ void main() {int year; year=getYearFromUser(); printCalendar(year); } /* 获得用户输入的日期*/ int getYearFromUser(void) { int year; while(1) { coutplease input a yearendl; cinyear; if(year=1900) return year; coutthe year must be at least 1900endl; } } /*打印日历*/ void printCalendar(int year) {int month; for(month=1;month=12;month++) { printCalendarMonth(month, year); coutendl; } } 输入的日期是1900年之后的 /*打印一个月的日历*/ void printCalendarMonth(int month,int year) {int weekday,ndays,day; coutmonthName(month) yearendl; coutSUN MON TUE WED THU FRI SATendl; ndays=monthDays(month,year); weekday=firstDayOfMonth(month,year); IndentFirstLine(weekday); for(day=1;day=ndays;day++) { coutday; if (day10) cout ; else cout ; if (weekday==Saturday) coutendl; weekday=(weekday+1)%7; } if (weekday!=Sunday) coutendl; } 打印头部 每个日期占4位,不足补空格 一周换一行 两个月之间留空行 /*返回月份的名称*/ char *monthName(int month) {char m[13][80]={Jan,Feb,Mar,Apr,May,Jun,Jul, Aug,Sep,Oct,Nov,Dec}; return m[month-1]; } /* 根据月份的第一天是星期几确定打印位置*/ void IndentFirstLine(int weekday) {int i; for(i=0;iweekday;i++) cout ; } 4个空格 /*计算月份的第一天是星期几*/ int firstDayOfMonth(int month,int year) { int weekday,i; weekday=Monday; for(i=1900;iyear;i++) { weekday=(weekday+365)%7; if (isLeapYear(i)) weekday= (weekday+1)%7; } for(i=1;imonth;i++) weekday=(weekday+ monthDays(i,year))%7; return weekday; } /*判断是否闰年*/ bool isLeapYear(int year) {if(year % 400=
您可能关注的文档
- 重视肝纤维化的治疗.pdf
- 金融危机下企业财务战略与财务竞争力研究.pdf
- 金钥匙服务理念在工作中的运用.ppt
- 钓鱼的启示精品课件..ppt
- 钛酸铝的合成及应用.doc
- 钢结构设计课程设计.doc
- 钢结构课程设计。.doc
- 钢结构课程设计梯形屋架.doc
- 钻井液用聚胺页岩抑制剂RZPA的性能与应用郭文宇.pdf
- 铁和铁的化合物复习.ppt
- 03-2 2025年度民主生活会征求意见座谈会主持词.docx
- 03-1 2025年度民主生活会主持讲话提纲.docx
- 02-1 会前学习-《县以上党和国家机关党员领导干部民主生活会若干规定》相关要求.docx
- 在2025年度民主生活会上的总结讲话三篇.docx
- 在2025年度民主生活会上的总结讲话三篇 (3).docx
- 市委宣传部2025年度民主生活会查摆问题整改方案两篇.docx
- 在市行政审批和政务信息管理局机关2026年全体干部政绩观教育大会上的党课讲稿.docx
- X市应急管理局2026年度安全生产监督检查计划.docx
- 2025年度民主生活会领导班子对照检查材料(五个带头)三篇.docx
- 2025年度民主生活会“五个带头”个人对照检查材料三篇.docx
最近下载
- 金航联执业药师继续教育《氯吡格雷临床使用药学解读》习题答案.docx VIP
- 如何进行神话故事的阅读教学——从盗取天火的“普罗米修斯”说起-来源:小学教学参考(上旬)(第2020003期)-广西教育学院.pdf VIP
- 道路危险货物运输从业人员从业资格考试大纲培训教学大纲和培训教学计划.docx VIP
- 道路危险货物运输从业人员从业资格考试大纲、培训教学大纲和培训教学计划.doc VIP
- 蜜雪冰城店加盟合同范本.docx VIP
- 老年人多重用药评估与管理中国专家共识(2024)解读PPT课件.pptx VIP
- 城市立体化社会治安防控体系建设工作方案.docx VIP
- 老年人多重用药评估与管理中国专家共识(2024)解读PPT课件.pptx VIP
- 2024年天津市成人高考专升本高等语文真题及答案.docx VIP
- 道路工程监理实施细则.docx
原创力文档

文档评论(0)