C++程序设计(万年历——说明书).docVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. . C++程序设计说明书 题目:万年历 班级学号: 学生姓名: 目录 应用程序的名称 应用程序的主题、设计目的 应用程序简介 1.程序的基本结构及内容 2. 程序的运行环境 四.主要运行界面的介绍 五.程序亮点 六.课程设计中存在的问题及解决方法 一.课程设计名称 万年历 二.应用程序要求、目的 主题:万年历 目的:实现对年月的查询 三.应用程序简介 (1)基本结构: 整个程序有cls_screen(清屏)、judgement(判断是否为闰年)、show_week(记录周几)、print_year(查询某年)、print_year_month(查询某年某月)等自定义函数,程序中涉及到switch语句、for语句、if语句等和多次函数调用语句,开头定义了day_of_month[]数组,主要目的是将12个月每个月有多少天依次排出,在后面又用if语句判断二月的天数是28还是29。在主函数中运用while语言与switch语句的嵌套,是程序拥有了循环的功能。用fflush(stdin);语句清除输入缓存,使程序在使用过程中不会太过眼花缭乱。 万年历的编程,需要两个方面的讨论和研究,一是要在用户输入年份的时候,判断该年是否为闰年,而对于闰年的判断,能被4整除但不能被100整除,或者能被400整除的年份为闰年,否则为平年。所以会改变day_of_month[]数组中的二月份的数值。二是在用户输入年月份的时候,判断该年该月的第一天是周几,从来好排列。而对于判断周几,需要运用公式:w=(y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1)%7并用if语句使用判断。通过这两个方面的讨论和实现,才能合理的编程出万年历的基本程序代码。 (2)源程序代码: #includestdio.h #include string.h #include time.h #include math.h #include windows.h int year , month , day ; int day_of_month[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; int current_year,current_month,current_day; void cls_screen() { printf(请按任意键返回!\n); getchar(); getchar(); system(cls); } int judgement (int y) { if (y % 400 == 0 || (y % 100 !=0 y %4 ==0)) return 1 ; else return 0 ; } int show_week (int year , int month , int day) { /*公式:w=(y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1)%7*/ int w ,k; int year_last=year %100,c=year/100 , m = month; if (month==1 ) { year_last-=1 ; } else if (month==2) { year_last-=1; } w = (year_last + year_last/4 + c/4 - 2*c +26*(m+1)/10+day-1); if (w0) { k=(w%7+7)%7; } else k=w%7; return k ; } void print_year (int year) { int i , k ,x ,first_week; printf (请输入想要查询的年份(格式如2012):); scanf (%d,year); printf(=======================%d年===========================\n,year); printf(\n); if (judgement(year)) { day_of_month[1]=29; } else day_of_month[1]=28; for (i=1 ; i 13 ; i++) { first_week = show_week(year,i,1); printf(=====================%d月日历如下========================\n,i); printf (Sun\tMon\tTue\tWed\tThu\tFri\tSat\n); for (x=1;x=first_week;x++) { printf(\t); if (x%7==0) print

文档评论(0)

ygxt89 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档