- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE I
PAGE I
中国海洋大学
青岛学院
C语言课程设计报告书
题 目
日历显示
学生姓名
指导教师
学 院
专业班级
组内分工
姓名
主要任务
占系统比例
日期判断,日期调整
50%
日期查询,闰年判断,主函数
50%
目 录
TOC \o 1-3 \h \z \u 1 前言 1
2 需求分析 2
3 模块设计图及组内分工 3
4 NS流程图清单 5
5 存储结构及函数说明 8
6 课程设计结果 9
7 实践心得体会 14
C语言课程设计报告
PAGE 14
PAGE 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
原创力文档


文档评论(0)