




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
c程序设计综合课程设计 万年历课程设计报告题 目: 万年历查询功能 学生姓名: * 学 号: 专业班级: 网工10101 同组姓名: 无 指导教师: 设计时间: 2011年下学期第1617周 指导老师意见: 评定成绩: 签名: 日期:目录第一章 设计目的与要求21.1 设计目的21.2 设计要求2第二章 课程设计的相关内容32.1 设计背景32.2 程序开发环境32.3 课程设计主要内容3第三章 课程设计整体规划和设计33.1 整体流程图33.2 功能模块图33.3 各模块功能详细说明33.3.1 密码登录显示系统时间模块3.3.2用于计算总天数模块33.3.3查询星期模块33.3.4判断模块33.3.5查询月历并打印模块33.4.6 清屏模块33.3.7菜单显示模块33.3.8退出模块33.4 各模块函数说明33.4.1密码登陆及显示系统时间模块3.4.2计算总天数模块程序:33.4.3 查询星期模块程序33.4.4判断模块模块33.4.5 清屏模块33.4.6 显示模块程序3第四章 系统实现34.1 系统运行结果及运行截图34.1.1 系统总体选择图34.1.2查询输入的年的全年万年历平且判断平闰年34.1.3判断输入的这年月的万年历是否为闰年34.1.4查询具体年月日的星期数34.1.5 打印出一年的日历34.1.6 输入年份不在范围内34.1.7 输入的数字不在选择范围内34.1.8 退出34.2 系统核心代码3第五章 课程设计心得与体会3附录一:参考文献31第一章 设计目的与要求1.1 设计目的 通过显示年日历程序的设计,培养学生综合利用c+语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。 通过本项课程设计,可以培养独立思考、 综合运用所学有关相应知识的能力,能更好的巩固c+语言程序设计课程学习的内容,掌握 工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c+语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!通过c+语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。1.2 设计要求1、能够显示时间、时分、星期;2、能够显示年月日;3、能够自动清除屏幕以前的废弃信息;4、能够修改;5、能够自动打印;6、能够提示用户是否继续;4、当系统时间变动时,能自动跳到相应的时间;5、要求用c+语言编程,在visualc+环境下调试完成;6、要求划分功能模块,各个功能分别使用函数来完成;7、源代码程序要有必要的注释。第二章 课程设计的相关内容2.1 设计背景c+教学起步的背景 1996年,国外计算机产业界正在全面兴起面向对象编程与设计的热潮,其主要工具就是c+。c+在数据类型的安全上,弥补了c的不足,克服了c的种种安全隐患,用c+开发的产品正在稳步上市,并开始超过了c。c+的开发工具正在稳步推出,在windows环境下的两个主要c+开发工具borland c+ builder40和microsoft visual c+60标志着c+开发工具已经成熟。2.2 程序开发环境a.开发工具 microsoft visual c+ 6.0b.系统环境 windows upc.设计工具 office 20032.3 课程设计主要内容1、打开系统自动显示系统当前时间,包括年月日时分等信息;2、菜单选项,提示用户进行不同的操作3查询年份所有月万年历,所查月万年历,所查确切日期星期数 4、自动打印出用户输入的年月的日历信息;5、自动清屏清除屏幕以前废弃信息;,6,跳转回菜单选项7、根据用户输入进行操作.第三章 课程设计整体规划和设计3.1 整体流程图菜单选项输入所需查询年输入所需查询年月输入所需查询年月日返回菜单打印万年历结束返回开始开始密码验证清屏操作图3.1 流程图3.2 功能模块图判断是否为闰年模块万年历系统菜单模块计算所要查询年月天数模块计算一号星期模块打印日历模块图3.2 功能模块图3.3 各模块功能详细说明3.3.1 密码登录及显示系统时间模块 用于登录菜单选择和显示系统时间3.3.2 用于计算总天数模块用于计算所输入的年月日从0年以来的总天数3.3.3 查询星期模块本模块是用来查询输入日期是星期几。3.3.4 判断模块本模块是用来判断输入年份是否为闰年。3.3.5 查询月历并打印模块本模块是用来查询、显示输入年份中的月历。3.3.6 清屏模块 清除上一次操作的残余信息3.3.7 菜单显示模块本模块是用来显示输入年份的年历。3.3.8 退出模块本模块是用来合法退出本系统。3.4 各模块函数说明3.4.0 密码进入菜单及显示系统时间模块int main()cout系统时间:; /显示系统时间time_t t;time(&t);coutctime(&t)endl;long int n=1234; /设置密码登录菜单int l=0,no;int k=1;while(k)cout请输入密码登录菜单界面endl;coutno;if(n=no) perpetualcalendar test; test.operate(); k=0;elsek=1,l+;if(l=3)k=0; return 0;/end main3.4.1 计算总天数模块int perpetualcalendar:getdays() /用于计算所输入的年月日从0年以来的总天数 int i,sumdays=0; for(i=0;iyear;i+) if(isleap(i) sumdays+=366; /用到3.4.2判断平润年函数 else sumdays+=365; if(isleap(year) daysofmonth2=29; for(i=1;imonth;i+) sumdays+=daysofmonthi; sumdays+=day; return sumdays;3.4.2查询星期模块程序:int perpetualcalendar:getweek() /用于计算所输入的年月日的星期数,返回0到6中的一个数字 int week=getdays()%7; /事先查寻到0年一月一号为星期五 week+=5; week%=7; return week;3.4.3 判断模块程序bool perpetualcalendar:isleap(int y) /判断是否为闰年的成员函数 if(y%4=0&y%100!=0)|(y%400=0) return true; else return false;3.4.4 查询月历并打印模块void perpetualcalendar:printmonth() int i; int tempday=day; day=1; int week=getweek(); day=tempday; int setline=week; /setline函数作用在于换行 string leapyear; if(isleap(year) leapyear=(闰年); else leapyear=(非闰年); coutendl 公元year年month月leapyearendl; /输出标题xx年xx月 cout sun mon tue wed thu fri satendl; switch(week) case 0: for(i=1;i=daysofmonthmonth;i+,setline+) if(setline%7=0&setline!=0) coutendl ; if(i=1) cout setw(4)setiosflags(ios:left)i; else coutsetw(4)setiosflags(ios:left)i; coutendl; break; case 1: for(i=1;i=daysofmonthmonth;i+,setline+) if(setline%7=0) coutendl ; if(i=1) cout setw(4)setiosflags(ios:left)i; else coutsetw(4)setiosflags(ios:left)i; coutendl; break; case 2: for(i=1;i=daysofmonthmonth;i+,setline+) if(setline%7=0) coutendl ; if(i=1) cout setw(4)setiosflags(ios:left)i; else coutsetw(4)setiosflags(ios:left)i; coutendl; break; case 3: for(i=1;i=daysofmonthmonth;i+,setline+) if(setline%7=0) coutendl ; if(i=1) cout setw(4)setiosflags(ios:left)i; else coutsetw(4)setiosflags(ios:left)i; coutendl; break; case 4: for(i=1;i=daysofmonthmonth;i+,setline+) if(setline%7=0) coutendl ; if(i=1) cout setw(4)setiosflags(ios:left)i; else coutsetw(4)setiosflags(ios:left)i; coutendl; break; case 5: for(i=1;i=daysofmonthmonth;i+,setline+) if(setline%7=0) coutendl ; if(i=1) cout setw(4)setiosflags(ios:left)i; else coutsetw(4)setiosflags(ios:left)i; coutendl; break; case 6: for(i=1;i=daysofmonthmonth;i+,setline+) if(setline%7=0) coutendl ; if(i=1) cout setw(4)setiosflags(ios:left)i; else coutsetw(4)setiosflags(ios:left)i; coutendl; break; default:couterror!endl; void perpetualcalendar:printyear() int tempmonth=month; for(int i=1;i=12;i+) month=i; printmonth(); month=tempmonth;void perpetualcalendar:printday() switch(getweek() case 0: coutyear年month月day日 星期日endl; break; case 1: coutyear年month月day日 星期一endl; break; case 2: coutyear年month月day日 星期二endl; break; case 3: coutyear年month月day日 星期三endl; break; case 4: coutyear年month月day日 星期四endl; break; case 5: coutyear年month月day日 星期五endl; break; case 6: coutyear年month月day日 星期六endl; break; 3.4.5清屏程序模块void perpetualcalendar:clean()cout请问需要清除上一次操作记录吗(y/n)?inquiry;if(inquiry = y| inquiry = y)system(cls);3.4.6 菜单显示模块程序void perpetualcalendar:operate() int i,choose; bool chooseflag=false; while(1)/while开始 while(!chooseflag) cout欢迎使用万年历nendl; cout1.输入年,显示该年所有月万年历endl; cout2.输入年,月,显示该月万年历endl; cout 3.输入年月日,查询该日为星期几endl; cout4.退出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)第四章 系统实现4.1 系统运行结果及运行截图4.1.1 系统总体选择图(显示系统时间并且显示菜单)4.1.2 查询输入的年的全年万年历平且判断平闰年图4.2.2 星期查询图4.1.3 判断输入的这年月的万年历是否为闰年图4.1.3(a) 判断是否为闰年图4.1.4 查询具体年月日的星期数图4.2.4 日历查询图4.1.5 打印出一年的日历图4.2.5 月历打印图4.1.6 输入年份不在范围内图4.2.6 输入错误数字图4.1.7 输入的数字不在选择范围内4.2.8 输入错误选择图4.1.8 退出图4.2.9 退出图4.2 系统核心代码#include#include#include#include#include#include using namespace std;int daysofmonth13=0,31,28,31,30,31,30,31,31,30,31,30,31; /定义全局变量/类perpetualcalendar开始class perpetualcalendarpublic: int getyear(); int getmonth(); int getday(); void setyear(); void setmonth(); void setdate(); int getweek(); void printmonth(); /按月打印万年历 void printyear(); /按年打印万年历 void printday(); /打印日期对应的星期 void operate(); /执行各种操作的演示 void clean(); perpetualcalendar();/构造函数 perpetualcalendar(int y,int m,int d); /构造函数重载private: int year; int month; int day; bool isleap(int y); /判断是否为闰年 int getdays(); /计算从0年以来有多少天 char inquiry; ;void perpetualcalendar:clean()cout请问需要清除上一次操作记录吗(y/n)?inquiry;if(inquiry = y| inquiry = y)system(cls);int main()cout系统时间:; /显示系统时间time_t t;time(&t);coutctime(&t)endl;long int n=1234; /设置密码登录菜单int l=0,no;int k=1;while(k)cout请输入密码登录菜单界面endl;coutno;if(n=no) perpetualcalendar test; test.operate(); k=0;elsek=1,l+;if(l=3)k=0; return 0;/end mainperpetualcalendar:perpetualcalendar()/默认构造函数 year=0; month=1; day=1;perpetualcalendar:perpetualcalendar(int y,int m,int d)/重载构造函数 year=y; month=m; day=d;第五章 课程设计心得与体会目前流行的计算机日历程序,比较典型的是windows各版本中的日历程序以及基础于该程序所开发的各种应用程序中的日历程序。然而,这些程序都千篇一律的局限在一个很短的时间范围内。(windows各个版本一般都局限在1980年至2099年这一范围内),但是,在很多情况下,特别是在众多的科学研究领域中,一个时间跨度较大的日历程序是很有参考价值的。c程序设计语言充分发挥了其自身无与伦比的优越性,用极短的程序文本填补了这一领域的空白,同时用铁的事实强有力的告诉世人:c程序设计语言作为计算机语言家族的新生事物,其发展前景是极为广阔的。经过上一个学期对c程序设计的学习,我们学习了理论知识,了解了c语言程序设计的思想,这些知识都为我们的下一步学习打下了坚实的基础。通过课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。通过对c语言万年历的设计进一步的巩固了用c语言编写程序,并且有利于更好的掌握c语言! 在万年历的编写过程中也体会到了做事情一顶要细心、认真。更加知道了要掌握好基础知识。还有体会到了成功的感觉!在万年历的设计过程中更加体会到了团队合作的重要性,“一个诸葛亮比不上三个臭皮匠。”知道了只有团队合作才会更好的完成设计!也体会到以后在工作中团队合作的必要性和重要性!通过本项课程设计也培养了我独立思考、 综合运用所学有关相应知识的能力,掌握 工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!由于c语言是近年在国内外得到迅速推广应用的一种语言。c语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业电工维修车合同范本
- 消防合同续期协议书范本
- 珠海对口帮扶协议书范本
- 香港投资项目合作协议书
- 销售合作协议中间商合同
- 高中教室出租协议书模板
- 防洪堤项目工程合同范本
- 汽车商贸怎样拟合同协议
- 机构运营合作合同协议书
- 私人幼儿园老师合同范本
- 部编版语文九年级上册第三单元复习课教案
- 放射科检查健康宣教
- (新版)烟草制品购销员(三级)理论知识考试复习题库大全-上(单选题汇总)
- 福建省住宅工程防渗漏技术导则(2023年)
- 《内窥镜手术器械控制系统建设管理规范》
- 【中班幼儿分享行为现状及其培养策略研究(数据图表论文)5000字】
- 配电室运行维护投标方案(技术标)
- 速冻隧道安全操作规程
- 养老院凉晒被子记录表
- 13G322-1~4《钢筋混凝土过梁(2013年合订本)》
- 商铺租赁合同(有利于承租方)
评论
0/150
提交评论