C语言课程设计-日历显示.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中国海洋大学 青岛学院 C语言课程设计报告书 题 目 日历显示 学生姓名 指导教师 学 院 专业班级 组内分工 姓名 主要任务 占系统比例 日期判断,日期调整 50% 日期查询,闰年判断,主函数 50% 目 录 1 前言 1 2 需求分析 2 3 模块设计图及组内分工 3 4 NS流程图清单 5 5 存储结构及函数说明 8 6 课程设计结果 9 7 实践心得体会 14 前言 设计目的: 加深对《C语言程序设计》课程所学知识的理解,进一步巩固C语言语法规则。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力。 对题目的理解: 本程序设计了一个比较完整的有一定功能的日历显示系统。 该题目要求熟练的掌握C语言的基本知识。中包括数据类型(int、char);运算类型(算术运算、逻辑运算、自增运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构),进一步掌握各种函数的应用,包括时间函数等。 2 需求分析 该系统共有四个大部分:日历显示功能、日历查询和闰年判断功能、参数检查功能、选做(通过键盘操作选择各个菜单)。本系统通过对某天的查询、闰年的判断,日期的合法性判断,日期的调整等各部分进行了有效的计划,组织和控制,得到了一个功能比较完整并能实现一定功能的日历显示系统。 日历显示功能: 判断星期,根据公式有年月日判断星期: 打印时,通过第一天星期的判断,得到后面的日期,通过定长度输出。对于初始输入当前日历,可通过函数取出系统时间进行初始化。 日历查询和闰年判断功能: 闰年的判断,日期的查询,就是直接打印该天所在月份的日历。 参数检查功能: 判断日期是否合法,如果合法,再判断闰年,之后判断二月份是否满足要求。如果输入不合法或者不满足输入要求,则要求重新输入。 选做(通过键盘操作选择各个菜单): 捕获键盘的输入,再判断哪个键的输入,根据某键的输入,则设置相应的年或月或日的值,再属性输出,则可以实现日期的调整。 3 模块设计图及组内分工 模块一:日历显示功能 判断星期,根据蔡勒公式,有年月日判断星期: nDay=year-1+(year-1)/4+(year-1)/400+nday w=nDay%7; 其中year:要查询的年份,nday:从该年的一月一日起到该天的天数,w:得出的星期数,w==0代表星期天 打印月历时,通过第一天星期的判断,依次得到后面的日期,通过定长度输出,遇到星期六就换行输出,因此可以按照月历的格式输出。对于初始输入当前日历,可以通过time.h中的time和localtime函数取出系统时间进行初始化。 time_t timer; struct tm *gmt; time(timer); gmt=localtime(timer); gmt就是一个时间结构体,可以从中取出年月日。 模块二:日历查询和闰年判断功能 闰年的判断,能被4整除但不能被100整除,或者能被400整除的年份为闰年,否则为平年。日期的查询,就是直接打印该天所在月份的日历。 模块三:参数检查功能 判断日期是否合法,可以先判断年月日是否有小于0的值,月和日是有超出最大值12和31,如果通过此判断合法,再判断是否是闰年,如果是闰年,则判断二月份是否满足要求,闰年二月不能超过29天,平年二月不能超过28天。再查询过程中,如果发现输入不合法或者不满足输入要求,则要求重新输入。 模块四:选做(通过键盘操作选择各个菜单) 通过两个getch();捕获键盘的输入,将后一个getch()的返回值付给整型或字符型k, k为相应键的assci值,判断assci 值,就可以知道是那个键的输入(包括对上一年,下一年,上一月,下一月,昨天,明天等日期的调整)。若捕获到某键的输入,则设置相应的年或月或日的值,再进行属性输出,就可以实现日期的调整。 4 NS流程图清单 模块一用到的NS图: 模块二用到的NS图: 模块三用到的NS图: 模块四对应的NS图: 5 存储结构及函数说明 主要函数: int runYear(int year) ; 该函数判断某年是否是闰年,参数year表示要判断的年份,返回值1表示该年,为闰年,0表示该年为平年。 struct tm *gmt=getDay(); 该函数用以取得系统的时间。该函数没有参数,返回值类型为struct tm *,是一个包含时间的结构体, int dayExame(int year,int month,int day) 该函数用以判断输入的年份是否合法,参数为要判断的年月日,返回值为1表示日期合法,为0表示不合法。 int getwDay(

文档评论(0)

153****9595 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档