【毕业论文设计】基于C++的万年历系统设计.doc_第1页
【毕业论文设计】基于C++的万年历系统设计.doc_第2页
【毕业论文设计】基于C++的万年历系统设计.doc_第3页
【毕业论文设计】基于C++的万年历系统设计.doc_第4页
【毕业论文设计】基于C++的万年历系统设计.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

学校代码: 学 号: 课程设计说明书题 目:基于C+的万年历系统设计学生姓名 学 院:班 级:指导教师: 二一二年一月 四 日大学课程设计(论文)任务书课程名称: 面向对象的程序设计 学院: 班级: 学生姓名: 学号: 指导教师: 一、题目万年历系统二、目的与意义面向对象程序设计课程设计可以培养学生综合运用所学面向对象程序设计知识和技能分析与解决实际问题的能力,以及严肃认真的科学态度和严谨求实的工作作风。 三、要求(包括原始数据、技术参数、设计要求、图纸量、工作量要求等) l 采用面向对象程序设计语言C+进行程序开发l 选用一种C+语言的开发环境设计界面及程序l 在开发环境下,进行程序的运行及调试四、工作内容、进度安排 主要内容使用C+程序设计语言及其开发环境实现简单的万年历系统完成程序的编写和调试。工作进度安排第一天:熟悉课程设计题目及具体要求,认识所要解决的问题,基本确定选择的开发环境。第二天到第四天:拿出解决问题的初步方案,根据课题给出的题目,确定题目的解决方式及步骤。第五天到第七天:设计系统的功能模块,确定模块的功能,及模块之间的关系。第八天到第十天:分析模块,确定需要的界面、结构,完成软件的整体框架,在开发环境下,编程实现所开发的系统。第十一天到第十二天:综合调试,去除软件中的错误,美化应用程序的界面。第十三天和第十五天:撰写课程设计报告。五、主要参考文献1郑莉,董渊,何江舟.C+语言程序设计.第4版.北京:清华大学出版.2010.72Stanley B.Lippman,Jose LaJoie,Barbara E.Moo.C+ Primer(中文版).第四版.北京: 人民邮电出版社.20063 Walter Savitch. C+面向对象程序设计基础、数据结构与编程思想.第4版.北京: 清华大学出版社.20034钱能.C+程序设计教程.第2版.北京:清华大学出版社.20055郑莉.C+语言程序设计案例教程.第1版.北京:清华大学出版社.20056韦朴,陈泰生. Visual C+通用范例开发金典.北京:电子工业出版社.2008审核意见系(教研室)主任(签字) 指导教师下达时间 2011 年 12月 19日指导教师签字:_摘 要 在现代信息社会里,人们越来越重视时间的有效利用,而万年历也成了工作生活中必不可少的一部分,方便实用的万年历对于提高现代人的时间观念,优化时间使用效率具有重要意义。随着时代的发展,尽管日历的品种增多、花样也不断翻新,但仍旧保持着古老日历的格局。日历在当今社会的影响也是毋庸置疑的!同时,随着个人电脑的普及,简单的桌面万年历成为人们日常作息及重要事件提醒记录的重要工具。简易万年历可以运行在电脑桌面上,使用者可以通过各种不同的标记对重要时间及节假日和备忘事件等方面进行有效的查询和管理。这套系统旨在为用户方便有效地进行重要事件的查询和管理。 本系统采用C+语言编写,接针对简单的有效查询信息化系统。该系统具有完整的信息查询功能,充分满足了广大用户的基本需求。关键词:信息化;万年历;C+语言目 录第一章 绪论61.1 课题的设计61.1.1 课题的背景61.1.2课题的目的61.1.3课题的意义7第二章 设计方案简述82.1 设计总体规划82.1.1 实现的功能82.1.2结构模块分析8第三章 详细设计103.1 设计思路103.1.1设计语言103.1.2设计程序流程图103.2模块详细设计113.2.1定义全局变量113.2.2定义一个万年历类113.2.3判定部分123.2.4计算所输入的年月日的星期数123.2.5操作部分123.2.6重载构造函数实现部分143.2.7主函数部分14第四章 设计结果及分析154.1软件测试154.2 系统及运行截图154.2.1系统总体选择图154.2.2查询一年的日历164.2.3查询一个月的日历164.2.4查询某一天是星期几174.2.5退出程序17第五章 总结18第一章 绪论1.1 课题的设计1.1.1 课题的背景 在现代信息社会里,人们越来越重视时间的有效利用,而万年历也成了工作生活中必不可少的一部分,方便实用的万年历对于提高现代人的时间观念,优化时间使用效率具有重要意义。同时,随着个人电脑的普及,简单的桌面万年历成为人们日常作息及重要事件提醒记录的重要工具。简易万年历可以运行在电脑桌面上,使用者可以通过各种不同的标记对重要时间及节假日和备忘事件等方面进行有效的查询和管理。目前的计算机日历程序,比较典型的是 Windows 各版本中的日历程序 以及基于该程序所开发的各种应用程序中的日历程序。然而,这些程序都 是千遍一律的局限于一个很短的时间内。但是,很多情况下,特别是在众 多的科学领域中, 一个时间跨度较大的程序是有参考价值的。 C+程序设计 语言充分发挥了其自身无与伦比的优越性,用极短的程序文本就弥补了这 一领域的空白。 万年历作为日常中的一种小工具,它具有多方面的小工能,主要在日 期的显示上给人以直观的表达效果,在日期的查询上方便简洁,还有就是在 某些节日的提醒上都给我们带来极大的方便 ,是一种比较实用的小工具。 给人的需求性很大,学生在做此万年历课程设计的同时,能够认识到 C+ 编程给人带来的便捷,也能够清楚万历年表编程的出入。对培养学生的创 新能力和动手能力具有很大的作用1.1.2课题的目的掌握一种编程工具和面向对象程序设计的基本思想和方法,培养我们学生综合利用某种语言进行程序设计的能力,培养我们学生利用系统提供的功能进行创新设计的能力,培养我们学生充分利用计算机的功能和特点分析实际问题及解决实际问题的能力。为我们提供一个综合运用所学知识解决实际问题的机会,增强我们学生的实践动手能力和工程实践能力,并培养和锻炼我们学生的自学创新能力。 通过显示年日历程序的设计,培养学生综合利用 C+语言进行程序设计的能 力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力 和程序文档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算 法进行设计。更加了解了 C+ 语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以 后在工作中团队合作的重要性和必要性! 通过 C+语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的 程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备 初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚 实基础。1.1.3课题的意义 掌握一种编程工具和面向对象程序设计的基本思想和方法,培养我们学生综合利用某种语言进行程序设计的能力,培养我们学生利用系统提供的功能进行创新设计的能力,培养我们学生充分利用计算机的功能和特点分析实际问题及解决实际问题的能力。 为我们提供一个综合运用所学知识解决实际问题的机会,增强我们学生的实践动手能力和工程实践能力,并培养和锻炼我们学生的自学创新能力。 程序设计教学课程的目的不是为了单独的课堂学习,而是要让我们学生掌握程序设计的基本思想及方法。一方面,在课程设计过程中,可以明确的指导为什么而学,还能对所学知识得到应用,更重要的是可以让我们学生掌握一些基本函数的用法,从而不在对编程序感到茫然,经过设计,可以让我们熟悉简单程序的设计方法和编写,对程序设计及该门课程设计语言的应用得到理解。第二章 设计方案简述2.1 设计总体规划2.1.1 实现的功能(1)简易万年历主要实现以下几个功能:1.显示任意一年的日历。2.显示任意一个月的日历。3.显示任意一日是星期几。4.退出。(2)用户可以通过主菜单选择不同的选项。若选择1,可以出入年份,显示出该年的日历。若选择2,可以出入年份、月份,显示该月的日历。若选择3,可以输入年份、月份、日期,显示当日是星期几。若选择4,可以推出程序。2.1.2结构模块分析日期查询瑞年判断日期判断日期判断显示日历查询结果图2-1功能模块 进入程序 1. 输入年,显示该年万年历。2. 输入年,月,显示该月万年历。3. 输入年月日,显示该天为星期几。4. .退出。日期显示日期查询退出程序图2-2 总设计图万年历分两大部分:查询输入部分和结果显示部分。查询输入部分包一个文本框,用于输入年份。当输入完成后,用户图形界面出现相应年月简易的日历表,并且是以星期的格式出现。第三章 详细设计3.1 设计思路3.1.1设计语言 语言的选择:本系统选择C+语言来编写3.1.2设计程序流程图开始判断选择操作判断选择操作退出程序选择操作输出年历退出程序判断选择操作1234输入年输入年月输出月历输入年月日输出星期几图3-1 部分模块分析3.2模块详细设计3.2.1定义全局变量int daysOfMonth13=0,31,28,31,30,31,30,31,31,30,31,30,31;/类PerpetualCalendar开始3.2.2定义一个万年历类class PerpetualCalendarpublic: int getYear(); int getMonth(); int getDay(); void setYear(); void setMonth(); void setDate(); int getWeek(); void printMonth(); /按月打印万年历 void printYear(); /按年打印万年历 void printDay(); /打印日期对应的星期 void operate(); /执行各种操作的演示 PerpetualCalendar();/构造函数 PerpetualCalendar(int y,int m,int d); /构造函数重载private: int year; int month; int day; bool isLeap(int y); /判断是否为闰年 int getDays(); /计算从0年以来有多少天;/类PerpetualCalendar的成员函数int PerpetualCalendar:getYear() return year;int PerpetualCalendar:getMonth() return month;int PerpetualCalendar:getDay() return day;3.2.3判定部分void PerpetualCalendar:setYear() do coutyear; if(year9999) coutInput Error!endl; while(year9999); month=1; day=1;3.2.4计算所输入的年月日的星期数int PerpetualCalendar:getWeek() /用于计算所输入的年月日的星期数,返回0到6中的一个数字 int week=getDays()%7; week+=5; week%=7; return week;3.2.5操作部分void PerpetualCalendar:operate() int i,choose; bool chooseFlag=false;while(1)/while开始 while(!chooseFlag) cout欢迎使用万年历nendl; cout1.输入年,显示该年万年历endl 2.输入年,月,显示该月万年历endl 3.输入年月日,查询该日为星期几endl 4.退出endl; coutendlchoose; for(i=1;i=4;i+) if(choose=i) chooseFlag=true; break; else chooseFlag=false; if(!chooseFlag) coutError Input!endl; /end while(!chooseFlag) if(choose=1) /if 开始 setYear(); printYear(); else if(choose=2) setMonth(); printMonth(); else if(choose=3) setDate(); printDay(); else if(choose=4) cout程序结束endl; break; else cout错误!endl; /end if chooseFlag=0;/end while(1)3.2.6重载构造函数实现部分PerpetualCalendar:PerpetualCalendar(int y,int m,int d)/重载构造函数 year=y; month=m; day=d;bool PerpetualCalendar:isLeap(int y) /判断是否为闰年的成员函数 if(y%4=0&y%100!=0)|(y%400=0) return true; else return false;int PerpetualCalendar:getDays() 用于计算 /所输入的年月日从0年以来的总天数 int i,sumDays=0; for(i=0;iyear;i+) if(isLeap(i) sumDays+=366; else sumDays+=365; if(isLeap(year) daysOfMonth2=29; for(i=1;imonth;i+) sumDays+=daysOfMonthi; sumDays+=day;return sumDays;3.2.7主函数部分int main() PerpetualCalendar test; test.operate();return 0;/end main第四章 设计结果及分析4.1软件测试 软件测试不同于程序测试,是为了发现错误而执行程序的过程,它贯穿于软件定义与开发的整个期间。软件测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错,因此,它是保证软件质量,提高软件可靠性的关键。软件测试阶段的工作步骤:1.单元测试:即模块测试,检验每个模块能否单独工作2.系统测试:检验概要设计中模块接口设计问题3.系统测试:综合检验。把经过测试的子系统装配成一个系统进行测试,不仅应该发现设计和编码的错误,还应验证系统确实能提供需求说明书中的功能(子系统测试和系统测试,统称集成测试)4.验收测试:把软件系统作为单一实体进行测试,在用户的积极参与使用实际数据进行测试。4.2 系统及运行截图4.2.1系统总体选择图图4-14.2.2查询一年的日历图4-24.2.3查询一个月的日历图4-34.2.4查询某一天是星期几图4-44.2.5退出程序图4-5第五章 总结课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学生来说掌握程序开发技术是十分重要的,而C+语言又是最常见,功能最强大的一种高级语言,因此做好C+语言课程设计是十分必要的。 通过C+课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做程序设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说数组的灵活

温馨提示

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

最新文档

评论

0/150

提交评论