万年历程序设计-----石玉英
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华科学院计算机系信息管理与信息系统专业《程序设计综合课程设计》报告
(2010/2011学年第一学期)
学生姓名:石玉英
学生班级:信息管理092201H
学生学号: 200922040116
指导教师:荀亚玲
2011年1 月13 日
目录
第一章课程设计的目的和要求 (1)
1.1 课程设计的目的 (1)
1.2 课程设计的要求 (2)
第二章课程设计任务内容 (3)
2.1功能需求 (3)
2.2功能模块 (6)
2.2.1功能模块图 (6)
2.2.2主要模块说明 (7)
第三章详细设计说明 (9)
3.1 程序设计思路 (9)
3.2函数功能说明 (9)
3.2.1总函数流程图 (10)
3.2.2参数说明 (10)
第四章软件使用说明 (13)
第五章课程设计心得与体会 (17)
附录1 参考文献 (18)
附录2 源程序 (19)
万年历系统
第一章课程设计的目的和要求
1.1 课程设计的目的
通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!
根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。
在学习程序设计之前,我们首先要了解程序设计的基础是什么,在学习的时候应该重点掌握什么。
其实这一问题很好回答,重点是程序设计的基本概念、方法和思维方式,其次才是程序设计语言(在本课程中就是C语言)。我们开发程序的目的是为了解决问题,而解决问题首先需要找出合适的解决方案,然后用合适的语言把方案描述出来。显然,该过程的关键是分析问题并找出解决方案,而不是描述方案。因此,程序设计课程的首要目标,是培养解决问题的基本思维方式,其次才是语言知识。
因此,同学们在学习C程序设计的时候必须树立以下观念:(1)学习思考的方法比学习语言更重要,(2)琢磨程序设计的思维模式比琢磨C语言的知识更重要,(3)培养自己的思考能力比记忆语言知识更重要。
另外,C语言本身的复杂性也是其比较难学的原因之一。C不仅可以用来开发应用程序,更可用来设计系统程序。比起其他语言,C增加的许多特点就是为了设计高质量的系统软件。显然,这些特点也增加了学习C的难度。
通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计
算机课程的学习和毕业设计打下坚实基础
1.2 课程设计的要求
本课程设计是《C语言程序设计》课程实践环节的深化和延续。此次课程设计的目的是以C程序设计语言为基础,通过完成具有一定难度的课程设计题目的功能描述、总体设计、程序编写及调试工作,加深对C语言相关知识的理解与Visual C++集成开发环境的使用,重点掌握文件操作函数的熟练运用,并养成良好的程序设计习惯,提高自我分析问题、解决问题的能力,为进一步学习《高级编程技术》及其相关课程打下良好基础
掌握面向对象程序设计的基本方法,熟练掌握C++编程工具,根据问题进行学习,拓广、深化,独立完成一个小型应用程序的设计、编码和测试,为以后学习软件工程打下实践基础
系统说明书要求提交打印版或手写版(这是检查作业的依据)。内容包括:系统需求描述(问题描述),系统结构设计(类体系设计),类的详细设计(各类定义的基本功能,即主要数据和函数功能描述,以及类和类之间的交互),拟采用开发平台(Visual C++)
作业报告:根据原有的系统设计,编码阶段的工作,整理书写作业报告,内容包括:问题描述,系统设计,使用说明,讨论,最后提交(电子版):实验报告,
基本要求:1、要求利用C语言面向过程的编程思想来完成系统的设计;2、突出C语言的函数特征,以多个函数实现每一个子功能;3、画出功能模块图;
4、进行简单界面设计,能够实现友好的交互;
5、具有清晰的程序流程图和数据结构的详细定义;
6、熟练掌握C语言对文件的各种操作。
7、分析程序的功能要求,划分程序功能模块。
8、代码的编写。定义数据结构和各个功能子函数。
9、程序的功能调试;10、完成系统总结报告以及使用说明书
(4)指导教师应做到教书育人。设计开始时要进行动员布置,对学生提出明确的设计任务要求及注意事项,在设计期间要每天进行辅导和检查,及时予以指导和帮助,使设计顺利进行。基层教学单位的指导教师应创造条件让学生使用计算机进行设计,培养学生的计算机应用能力。
第二章课程设计任务内容
本程序通过C语言编程实现了一个万年历,能实现基本的万年历功能。万年历的实现核心是要判断闰年和根据给定的日期计算其对应的星期,并按照合适的方式输出日历.
2.1功能需求
万年历能实现一些功能,主要包括以下几点:
(1)日历显示功能。能根据系统日期进行初始化,如果没有任何输入,则显示系统日期所在月份的月历。
判断星期,但根据蔡勒公式,可以很容易地有年月日推断出星期:
nDay=year-1+(year-1)/4-(year-1)/100+(year-1)/400+nday;
w=nDay%7;
其中year:要查询的年份
nday:从该年的一月一日起到该天的天数
w:得出的星期数,w==0表示星期天。
在打印月历时,只要知道第一天的星期,就可以依次输入后面的日期,通过定长度输出日期,在遇到某天时星期六时,就换行输出,因此可以按照月历的格式输出。对于初始输入当前月历,可以通过
time_t timer;
struct tm* gmt;
time(&timer);
gmt=localtime(&timer);
gmt就是一个时间结构体,可以从中取出年月日
(2)日历查询、闰年判断功能。输入日期进行查询,显示查询日期所在月份的月历,还将显示所在年份是否为闰年
能被4整除但不能被100整除,或者能被400整除的年份为闰年,否则为平年。日期的查询,就是直接打印改天所在月份的月历
(3)参数检查功能。如果输入日期不合法,查询将被拒绝,并显示提示信息。判断日期是否合法,可以先判断年月日是否有小于0的值,月和日是否有超出最