万年历C++课程设计报告_第1页
万年历C++课程设计报告_第2页
万年历C++课程设计报告_第3页
万年历C++课程设计报告_第4页
万年历C++课程设计报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程名称:题目:专业班级:学生姓名:学生学号:日期:指导教师:2010/12/20姜芳艽徐州师范大学科文学院本科生课程设计计算机程序设计实训万年历的设计电子信息工程 08 电信科文学院教务部印制、课程设计目的、任务和内容要求:计算机语言程序设计是一门以编程实践为主的专业课,目的在于培养学生 利用计算机语言进行软件开发所必需的基本思想和基本技能,进一步提高综合应用 计算机语言的各种编程知识和技巧进行程序设计的能力,通过本次课程设计,学生 应能达到具备设计功能较为复杂的应用程序的能力,同时培养学生自主学习和独立 创新的精神。任务如下:1 进行需求分析和概要设计,给出流程图。2 写出详细设计,熟悉其

2、中采用的关键技术。3 给出具体的编码实现并调试。4 写课程设计报告提交源程序。内容要求:设计并完成软件系统。要求:1 应具有简洁友好的用户界面。2 要求软件系统的功能完整。3 要求程序具备正确性,可读性和运行的高效性。第1 3天:查找资料,进行需求分析和概要设计;第46天:各模块的详细设计;第712天:软件实现与调试;第1314天:写课程设计报告并提交源程序。、进度安排:三、主要参考文献:1谢自美电子线路设计-实验-测试M.武汉:华中科技大学出版社,20002. 夏崇错.Visual C+ 课程设计案例精编M.北京:清华大学出版社,20083. 邹筝.Visual C+ 6.0使用教程龚M.北

3、京:电子工业出版社,20084龚志翔.Visual C+编程实例与技巧集粹M.北京:北京期望电子出版社,20045. 孔鹏.Visual C+ 6.0完全自学手册M.北京:机械工业出版社,20066. 邓华.Visual C+案例教程M.北京中科多媒体电子出版社,2001指导教师签字:年月日目录摘要2Abstract21绪论31.1课题的设计.31.1.1课题的背景 .31.1.2课题的目的 .31.1.3课题的意义 .32设计方案简述 42.1设计总体规划42.1.1实现的功能 .42.1.2结构模块分析 .43详细设计 53.1设计思路.53.1.1设计语言 .53.1.2设计程序流程图

4、.53.2模块详细设计5.5.6.793.2.1大月和小月的定义3.2.2闰年与非闰年二月的定义 3.2.3日历表的输出4设计结果及分析4.1软件测试94.2设计成果95总结10参考文献 11附录主要程序代码 12在现代信息社会里,人们越来越重视时间的有效利用,而万年历也成了工作生活中 必不可少的一部分,方便实用的万年历对于提高现代人的时间观念,优化时间使用效率 具有重要意义。随着时代的发展,尽管日历的品种增多、花样也不断翻新,但仍旧保持 着古老日历的格局。日历在当今社会的影响也是毋庸置疑的!同时,随着个人电脑的普 及,简单的桌面万年历成为人们日常作息及重要事件提醒记录的重要工具。简易万年历

5、可以运行在电脑桌面上,使用者可以通过各种不同的标记对重要时间及节假日和备忘事 件等方面进行有效的查询和管理。这套系统旨在为用户方便有效地进行重要事件的查询 和管理。本系统采用C+语言编写,接针对简单的有效查询信息化系统。该系统具有完整的 信息查询功能,充分满足了广大用户的基本需求。关键词:信息化;万年历;C+语言AbstractIn the modern information society, there is growing emphasis on effective use of time, while the cale ndar has become an esse ntial par

6、t of work ing life, convenient and practical cale ndar for the modern concept of time to improve and optimize the efficient use of time is important. With the developme nt, despite the in creas ing variety of cale ndars, patter ns have bee n renovated, but still maintained the pattern of the ancient

7、 calendar. The impact of the calendar in todays society is unquestionable!Meanwhile, with the popularity of personal computers, a simple desktop cale ndar and importa nt eve nts of peoples daily rout in es an importa nt tool to remind the record. Simple cale ndar can be run on your desktop, the user

8、 can mark a variety of differe nt time and holidays and on importa nt eve nts and so cheat the query and man age effective.The system is desig ned to facilitate the effective con duct of the users query and man ageme nt of importa nt eve nts.The system uses C + + Ianguage, then query for a simple an

9、d effective information system. The system has complete information inquiry function, fully meet the basic needs of the majority of users.Keywords : Information; calendar; C + + Language1绪论1.1课题的设计1.1.1课题的背景在现代信息社会里,人们越来越重视时间的有效利用,而万年历也成了工作生活中 必不可少的一部分,方便实用的万年历对于提高现代人的时间观念,优化时间使用效率 具有重要意义。同时,随着个人电脑的

10、普及,简单的桌面万年历成为人们日常作息及重 要事件提醒记录的重要工具。简易万年历可以运行在电脑桌面上,使用者可以通过各种 不同的标记对重要时间及节假日和备忘事件等方面进行有效的查询和管理。1.1.2课题的目的掌握一种编程工具和面向对象程序设计的基本思想和方法,培养我们学生综合利用某种语言进行程序设计的能力,培养我们学生利用系统提供的功能进行创新设计的能 力,培养我们学生充分利用计算机的功能和特点分析实际问题及解决实际问题的能力。为我们提供一个综合运用所学知识解决实际问题的机会,增强我们学生的实践动手能力和工程实践能力,并培养和锻炼我们学生的自学创新能力。为了能更好地了解C+语言,因此开设了此次

11、课程设计,程序设计教学课程的目的不 是为了单独的课堂学习,而是要让我们学生掌握程序设计的基本思想及方法。一方面,在课程设计过程中,可以明确的指导为什么而学,还能对所学知识得到应用,更重要的是可 以让我们学生掌握一些基本函数的用法,从而不在对编程序感到茫然,经过设计,可以让 我们熟悉简单程序的设计方法和编写,对程序设计及该门课程设计语言的应用得到理 解。1.1.3课题的意义掌握一种编程工具和面向对象程序设计的基本思想和方法,培养我们学生综合利用某种语言进行程序设计的能力,培养我们学生利用系统提供的功能进行创新设计的能 力,培养我们学生充分利用计算机的功能和特点分析实际问题及解决实际问题的能力。为

12、我们提供一个综合运用所学知识解决实际问题的机会,增强我们学生的实践动手能力和工程实践能力,并培养和锻炼我们学生的自学创新能力。为了能更好地了解C+语言,因此开设了此次课程设计,程序设计教学课程的目的不 是为了单独的课堂学习,而是要让我们学生掌握程序设计的基本思想及方法。一方面,在课程设计过程中,可以明确的指导为什么而学,还能对所学知识得到应用,更重要的是可 以让我们学生掌握一些基本函数的用法,从而不在对编程序感到茫然,经过设计,可以让 我们熟悉简单程序的设计方法和编写,对程序设计及该门课程设计语言的应用得到理 解。2设计方案简述2.1设计总体规划2.1.1实现的功能简易万年历主要实现以下几个功

13、能: 能够显示实现任一年的日期,包括星期; 在输入年份后,出现当年的简易万年历; 能够分21列显示,按照星期形式出现; 采用图形界面,符合日常使用规范;2.1.2结构模块分析输入年份文本框万年历分两大部分:查询输入部分和结果显示部分。查询输入部分包一个文本框, 用于输入年份。当输入完成后,用户图形界面出现相应年月简易的日历表,并且是以星期的格式出现。3.1设计思路3详细设计3.1.1设计语言语言的选择:本系统选择 C+语言来编写3.1.2设计程序流程图打印一年日历Void fkJVoid qLJf、主函数LJ1输岀日历表三月闰年二月非闰年二月一月的定义闰二月的定义非闰二月的定义大月小月f、四月

14、f五月r、六月七月八月九月十月十一月十二月3.2模块详细设计大月3.2.1大月和小月的定义void f1(i nt x)for( i=0;i=0;i-)ai=OOO;1号前均为空格for(i=k;i31+k;i+)ai=ai-1+1;主要运用了数组的循环语句进行对大月的定义。void f2(i nt x)小月for( i=0;i=O;i-)ai=000;for(i=k;i30+k;i+)ai=ai-1+1;依然用数组的循环语句进行对小月的定义。主要运用了数组的循环语句分别对大月和小月进行对定义。数组的循环语句是C+中一个很重要的知识,数组可以节省很多的定义,一个句子就可以就可以输出很多的数,

15、这样大大减少了计算机的存储空间。这正是一个很大的进步。3.2.2闰年与非闰年二月的定义/闰年二月/非闰年二月void f3(i nt x) for( i=0;i=0;i-) ai=000;for(i=k;i29+k;i+) ai=ai-1+1;void f4(i nt x)for( i=0;i=0;i-) ai=OOO;for(i=k;i year;coute ndl;c=year;for(s=1;s=year;s+)if(s-1)%4=0&(s-1)%100!=0)|(s-1)%400=0)/相差天数coun t+;day=365*c+co unt;coutvv*“vvyearvv年日历*

16、.coutvve ndlvve ndle ndle ndl;在此运用了 C+中函数的运算,计算出该年的每月每日的不同。还有一年的输入和输 出。在输出时,闰年与非闰年二月的输出法的定义if(year%4=0&year%100!=0)|year%400=0)闰年二月k=(day+31)%7+6)%7+1;coutvv二月vvendlvvendl;f3(k);g(a,50);day=day+31+29;else非闰年二月k=(day+31)%7+6)%7+1;coutvv二月vvendlvvendl;f4(k); g(a,50);day=day+31+28; 此处主要运用了 if语句来对闰年与非闰年

17、的二月的不同定义的输出。if语句一种 可跳过不符合条件的语句,继续下面的语句的执行。它具有很强的实用性。在实际的操 作中经常会用到的,是一个很重要的知识。4设计结果及分析4.1软件测试软件测试不同于程序测试,是为了发现错误而执行程序的过程,它贯穿于软件定义 与开发的整个期间。软件测试的目的是发现程序中的错误,是为了证明程序有错,而不 是证明程序无错,因此,它是保证软件质量,提高软件可靠性的关键。软件测试阶段的工作步骤:1. 单元测试:即模块测试,检验每个模块能否单独工作2. 子系统测试:检验概要设计中模块接口设计问题3. 系统测试:综合检验。把经过测试的子系统装配成一个系统进行测试,不仅应该发

18、现设计和编码的错误,还应验证系统确实能提供需求说明书中的功能(子系统测试和系统测试,统称集成测试)4. 验收测试:把软件系统作为单一实体进行测试, 在用户的积极参与使用实际数据进 行测试4.2设计成果程序设计语言类课程的指导思想是:既能使学生通过学习高级编程语言的知识、编 程技术和基本算法,又能掌握程序设计的思想和方法,更具备利用计算机求解实际问题 的能力,能灵活运用高级语言进行程序设计。目前简易万年历系统已具有可以运行在电脑桌面上, 使用者可以通过各种不同的标 记对重要时间及节假日和备忘事件等方面进行有效的查询和管理,可以说达到了简单、 方便、易于了解的目的。5总结课程设计是培养学生综合运用

19、所学知识 ,发现,提出,分析和解决实际问题,锻炼实 践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的 大学生来说掌握程序开发技术是十分重要的,而C+语言又是最常见,功能最强大的一种高级语言,因此做好C+语言课程设计是十分必要的。通过C+!程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为 社会服务,从而提高自己的实际动手能力和独立思考的能力。 在设计的过程中遇到问题, 可以说得是困难重重,这毕竟第一次做程

20、序设计,难免会遇到过各种各样的问题,同时 在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握 得不够牢固,比如说数组的灵活应用,循环语句,if语句通过这次课程设计之后, 我们把前面所学过的知识又重新温故了一遍。我做的是简易万年历的课程设计,虽然是很简单的一个小的程序,但对我来说却是 一个很大的困难。更加是第一次做 C+课程设计,所以第一天下午在宿舍做了一个下午 却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导 是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还 好时间还算是充裕,只好拿出书本重新复习一下。开始的时候

21、真的感觉编程是一件很无聊的事情, 不过当一个程序运行成功的时候那 种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成 了,尽管程序还是有很多功能上的欠缺和漏洞,可我还是很高兴的。无论如何是自己的 劳动成果,是自己经过努力得到的成绩,同时也是学习C+语言的一次实践作业,自己进步的证明。在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂 得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心 理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到 生活中,不畏艰难,勇往直前!参考文献1. 谭浩强 著.C+面

22、向程序程序设计.北京:清华大学出版社,2006.72. 吴乃陵,况迎辉,李海文 著.VC+程序设计.北京:高等教育出版社,2003.83. 邓宗明,张睿哲,张晓竞,等编著.Visual C+ 6.0 编程实用技术与案例北京: 清华大学出版社,2001.54. 李海文,吴乃陵 等编C+g序设计及实践教程北京:高等教育出版社,2003.95. 邓华.Visual C+案例教程M.北京中科多媒体电子出版社,20016. 邹筝.Visual C+ 6.0 使用教程龚M.北京:电子工业出版社,20087. 龚志翔.Visual C+编程实例与技巧集粹M.北京:北京期望电子出版社,2004附录主要程序代码

23、/打印任意年日历/已知2000年1月1日为星期六,输入任一年的年份后,打印该年的年历#in clude#in cludeusing n amespace std;int i,c,day,year,k,a50;void f1(i nt x)/ 大月for( i=0;i=0;i-)ai=000;1号前均为空格for(i=k;i31+k;i+)ai=ai-1+1;void f2(i nt x)小月for( i=0;i=0;i-)ai=000;for(i=k;i30+k;i+)ai=ai-1+1;void f3(i nt x)/ 闰年二月for( i=0;i=0;i-)ai=000;for(i=k;i

24、29+k;i+)ai=ai-1+1;void f4(i nt x)/ 非闰年二月for( i=0;i=0;i-)ai=000;for(i=k;i28+k;i+)ai=ai-1+1;void g(int y,int z)/ 输出日历表coutvv日vvtvv 一 vvtvv二vvtvv三vvtvv四vvtvv五 vvtvv六e ndl;for(i=0;i50;i+)if(ai=0)coutv(char)aivvt;if(ai!=0&ai!=33)cout year;coutvve ndl;c=year;for(s=1;s=year;s+)if(s-1)%4=0&(s-1)%100!=0)|(s-

25、1)%400=0)/相差天数coun t+;day=365*c+co unt;coutvv*“vvyearvv年日历* .coutvve ndlvve ndle ndle ndl;k=(day%7+6)%7+1;coutvv月vvendlvvendl;f1(k);g(a,50);/闰年二月if(year%4=0&year%100!=0)|year%400=0) k=(day+31)%7+6)%7+1;coutvv二月vvendlvvendl; f3(k);g(a,50);day=day+31+29;e-se宀kH(day+3)7+6)7+COUAA门出-AAend-AAendr f4(Dg(aulo)八dayuday+31+28八 ku(day%7+6)7八 couAA-m-AAend-AAendrg(aulo)八kH(day+3)7+6)7+COUAA-S出-AAend-AAendr f23g(aulo)八ku(day+31 +30)7+6)7+-couaa-w-AAend-AAendrH(Dg(aulo)八kH(day+3+30+3)7+6)7+ couAAy 出-AAend-AAendrf2(Dg(aulo)八ku(day+31 +30+3+30) 7+6) 71-COUAA-+出-AAend-AAendrH(Dg(aulo)八ku(day+31 +

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论