




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学校代码:学校代码:学号:课程设计说明书题目:基于C++的万年历系统设计学生姓名学院:班级:指导教师:二〇一二年一月四日大学课程设计(论文)任务书课程名称:面向对象的程序设计学院:班级:学生姓名:学号:指导教师:一、题目万年历系统二、目的与意义面向对象程序设计课程设计可以培养学生综合运用所学面向对象程序设计知识和技能分析与解决实际问题的能力,以及严肃认真的科学态度和严谨求实的工作作风。三、要求(包括原始数据、技术参数、设计要求、图纸量、工作量要求等)采用面向对象程序设计语言C++进行程序开发选用一种C++语言的开发环境设计界面及程序在开发环境下,进行程序的运行及调试四、工作内容、进度安排主要内容使用C++程序设计语言及其开发环境实现简单的万年历系统完成程序的编写和调试。工作进度安排第一天:熟悉课程设计题目及具体要求,认识所要解决的问题,基本确定选择的开发环境。第二天到第四天:拿出解决问题的初步方案,根据课题给出的题目,确定题目的解决方式及步骤。第五天到第七天:设计系统的功能模块,确定模块的功能,及模块之间的关系。第八天到第十天:分析模块,确定需要的界面、结构,完成软件的整体框架,在开发环境下,编程实现所开发的系统。第十一天到第十二天:综合调试,去除软件中的错误,美化应用程序的界面。第十三天和第十五天:撰写课程设计报告。五、主要参考文献[1]郑莉,董渊,何江舟.C++语言程序设计.第4版.北京:清华大学出版.2010.7[2]StanleyB.Lippman,JoséeLaJoie,BarbaraE.Moo.C++Primer(中文版).第四版.北京: 人民邮电出版社.2006[3]WalterSavitch.C++面向对象程序设计——基础、数据结构与编程思想.第4版.北京:清华大学出版社.2003[4]钱能.C++程序设计教程.第2版.北京:清华大学出版社.2005[5]郑莉.C++语言程序设计案例教程.第1版.北京:清华大学出版社.2005[6]韦朴,陈泰生.VisualC++通用范例开发金典.北京:电子工业出版社.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功能模块进入程序进入程序输入年,显示该年万年历。输入年,显示该年万年历。输入年,月,显示该月万年历。输入年月日,显示该天为星期几。.退出。日期显示日期查询日期显示日期查询退出程序退出程序图2-2总设计图万年历分两大部分:查询输入部分和结果显示部分。查询输入部分包一个文本框,用于输入年份。当输入完成后,用户图形界面出现相应年月简易的日历表,并且是以星期的格式出现。第三章详细设计3.1设计思路3.1.1设计语言语言的选择:本系统选择C++语言来编写3.1.2设计程序流程图开始开始判断选择操作判断选择操作退出程序选择操作输出年历退出程序判断选择操作1234输入年输入年月输出月历输入年月日输出星期几判断选择操作判断选择操作退出程序选择操作输出年历退出程序判断选择操作1234输入年输入年月输出月历输入年月日输出星期几图3-1部分模块分析3.2模块详细设计3.2.1定义全局变量intdaysOfMonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//类PerpetualCalendar开始3.2.2定义一个万年历类classPerpetualCalendar{public:intgetYear();intgetMonth();intgetDay();voidsetYear();voidsetMonth();voidsetDate();intgetWeek();voidprintMonth();//按月打印万年历voidprintYear();//按年打印万年历voidprintDay();//打印日期对应的星期voidoperate();//执行各种操作的演示PerpetualCalendar();//构造函数PerpetualCalendar(inty,intm,intd);//构造函数重载private:intyear;intmonth;intday;boolisLeap(inty);//判断是否为闰年intgetDays();//计算从0年以来有多少天};//类PerpetualCalendar的成员函数intPerpetualCalendar::getYear(){returnyear;}intPerpetualCalendar::getMonth(){returnmonth;}intPerpetualCalendar::getDay(){returnday;}3.2.3判定部分voidPerpetualCalendar::setYear(){do{cout<<"Inputyear:";cin>>year;if(year<0||year>9999)cout<<"InputError!"<<endl;}while(year<0||year>9999);month=1;day=1;}3.2.4计算所输入的年月日的星期数intPerpetualCalendar::getWeek()//用于计算所输入的年月日的星期数,返回0到6中的一个数字{intweek=getDays()%7;week+=5;week%=7;returnweek;}3.2.5操作部分voidPerpetualCalendar::operate(){inti,choose;boolchooseFlag=false;while(1)//while开始{while(!chooseFlag){cout<<"……欢迎使用万年历……\n"<<endl;cout<<"1.输入年,显示该年万年历"<<endl<<"2.输入年,月,显示该月万年历"<<endl<<"3.输入年月日,查询该日为星期几"<<endl<<"4.退出"<<endl;cout<<endl<<"请输入数字选择你要的操作:";cin>>choose;for(i=1;i<=4;i++){if(choose==i){chooseFlag=true;break;}elsechooseFlag=false;}if(!chooseFlag)cout<<"ErrorInput!"<<endl;}//endwhile(!chooseFlag)if(choose==1)//if开始{setYear();printYear();}elseif(choose==2){setMonth();printMonth();}elseif(choose==3){setDate();printDay();}elseif(choose==4){cout<<"程序结束"<<endl;break;}else{cout<<"错误!"<<endl;}//endifchooseFlag=0;}//endwhile(1)}3.2.6重载构造函数实现部分PerpetualCalendar::PerpetualCalendar(inty,intm,intd)//重载构造函数{year=y;month=m;day=d;}boolPerpetualCalendar::isLeap(inty)//判断是否为闰年的成员函数{if((y%4==0&&y%100!=0)||(y%400==0))returntrue;elsereturnfalse;}intPerpetualCalendar::getDays()用于计算//所输入的年月日从0年以来的总天数{inti,sumDays=0;for(i=0;i<year;i++){if(isLeap(i))sumDays+=366;elsesumDays+=365;}if(isLeap(year))daysOfMonth[2]=29;for(i=1;i<month;i++)sumDays+=daysOfMonth[i];sumDays+=day;returnsumDays;}3.2.7主函数部分intmain(){PerpetualCalendartest;test.operate();return0;}//endmain第四章设计结果及分析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++课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做程序设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说数组的灵活应用,循环语句,if语句……通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。我做的是简易万年历的课程设计,虽然是很简单的一个小的程序,但对我来说却是一个很大的困难。更加是第一次做C++课程设计,所以第一天下午在宿舍做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多功能上的欠缺和漏洞,可我还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C++语言的一次实践作业,自己进步的证明。参考文献[1]郑莉,董渊,何江舟.C++语言程序设计[M].第4版.清华大学出版.2010.7[2]StanleyB.Lippman,JoséeLaJoie,BarbaraE.Moo.C++Primer(中文版)[M].第四版.人民邮电出版社.2006[3]WalterSavitch.C++面向对象程序设计——基础、数据结构与编程思想[M].第4版.清华大学出版社.2003[4]钱能.C++程序设计教程[M].第2版.清华大学出版社.2005[5]郑莉.C++语言程序设计案例教程[M].第1版.清华大学出版社.2005[6]韦朴,陈泰生.VisualC++通用范例开发金典[M].电子工业出版社.2008[7]詹发荣.C++语言程序设计[M].中国铁道工业出版社.2006[8]尹季昆.C++语言程序设计[M].科学出版社.2005基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 输注类医疗器械企业县域市场拓展与下沉战略研究报告
- 航空维修AR辅助教学-全面剖析
- 航拍影像智能识别-全面剖析
- 阻遏技术优化策略-全面剖析
- 疫情下旅游业商业模式重构-全面剖析
- 盾构隧道施工环境监测-全面剖析
- 量子计算驱动的光学成像方法-全面剖析
- 文化遗产保护中的环境影响评价-全面剖析
- 云资源安全防护-全面剖析
- 2024年浙江大学医学院附属妇产科医院招聘考试真题
- 《飞机结构与系统》课件-机翼结构
- 运动与身体教育智慧树知到期末考试答案章节答案2024年温州大学
- 电梯维保服务考核标准及评分办法
- (正式版)JBT 3300-2024 平衡重式叉车 整机试验方法
- 2024全新校医合作协议(重点条款版)
- 小脑梗死的护理查房
- 水产养殖公司合伙人股权分配协议
- 急救医疗资源整合优化研究
- 牛津译林7A-Unit3、4单元复习
- 专题四“挺膺担当”主题团课
- 国家义务教育质量监测初中美术试题
评论
0/150
提交评论