c++课程设计,月历.doc_第1页
c++课程设计,月历.doc_第2页
c++课程设计,月历.doc_第3页
c++课程设计,月历.doc_第4页
c++课程设计,月历.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

信息科学与技术学院程序设计基础课程设计报告题目名称: 万年历 学生姓名: 王帅 学号: 2013708007 专业班级: 计双一班 指导教师: 郭理 2014年 6 月 20 日目录1 课程设计题目与要求- 1 -1.1 设计题目- 1 -1.2 设计要求- 1 -2 总体设计- 2 -2.1 总体功能框架- 2 -2.2 数据结构概要设计- 2 -3 详细设计- 3 -3.1 数据结构详细设计- 3 -3.2 系统功能详细设计- 3 -4 运行结果- 6 -4.1 程序运行初始界面- 6 -4.2 打印当天日历图- 6 -4.2打印当天日历- 6 -4.3 帮助- 7 -4.4 退出- 7 -4.5 日历查询- 8 -5 课程设计总结- 9 -5.1 编程中的问题及解决方法- 9 -5.2 小结- 10 -5.3 心得体会- 10 -6 参考文献- 11 -1 课程设计题目与要求1.1 设计题目 万年历程序1.2 设计要求要求:模仿现实生活中的挂历。当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。2 总体设计2.1 总体功能框架图2.1总体功能框架2.2 数据结构概要设计本程序由于数据量并不大,故采用静态数组和自定义时间类data作为数据容器,来存储时间如年月日三个变量等数据。3 详细设计3.1 数据结构详细设计class data/时间类的定义public:int year;/年int month;/月int day;/日data();/构造函数void display();/类函数,打印月历;3.2 系统功能详细设计data:data()/时间类的构造函数,初始化时间类的成员为当前日期图3.2-1函数datavoid data:display()/时间类成员函数,打印月历图3.2-2函数displayint firstday(data &T)/判断某年某月第一天是星期几图3.2-4函数firstdayint run(data &T)/判断闰年图3.2-3函数runint num(data &T)/判断某年某月的天数图3.2-5函数numint jiancha(data &T)/检查日期是否正确图3.2-6函数jiachavoid setday(data &T) /对日历进行集总处理图3.2-7函数setdayvoid mainmenu(data &T)/主菜单,并根据关键词进行操作图3.2-8函数mainmenu4 运行结果4.1 程序运行初始界面图4.1程序运行初始界面4.2 打印当天日历图4.2打印当天日历4.3 帮助图4.3帮助4.4 退出图4.4退出4.5 日历查询图4.5-1日历查询图4.5-2日历查询5 课程设计总结5.1 编程中的问题及解决方法难点1:难点在于判断星期,但根据蔡勒公式,可以很容易地有年月日推断出星期:nDay=year-1+(year-1)/4-(year-1)/100+(year-1)/400+nday;w=nDay%7;其中year:要查询的年份nday:从该年的一月一日起到该天的天数w:得出的星期数,w=0表示星期天。在打印月历时,只要知道第一天的星期,就可以依次输入后面的日期,通过定长度输出日期,在遇到某天时星期六时,就换行输出,因此可以按照月历的格式输出。对于初始输入当前月历,可以通过中的time 和localtime函数取出系统时间进行初始化。time_t timer;struct tm* gmt;time(&timer);gmt=localtime(&timer);gmt就是一个时间结构体,可以从中取出年月日。难点2:判断日期是否合法,可以先判断年月日是否有小于0的值,月和日是否有超出最大值12和31 ,如果通过此判断合法,再判断是否时闰年,如果时闰年,则判断二月份是否满足要求,闰年二月份不能超过29天,平年二月份不能超过28天。在查询过程中,如果发现输入不合法或者不满足输入要求,则要求重新输入。难点3:通过两个getch();捕获键盘的输入,将后一个getch()的返回值付给整型或字符型k,k为相应键的ascii值,判断ascii值,就可以知道时哪个键的输入。若捕获到某键的输入,则设置相应的年或月或日的值,再进行刷性输出,就可以实现日期的调整。5.2 小结程序设计基础是我们进入二学位的学习的第一门专业课程,因此它对于我有着非比寻常的意义:它让我第一次有机会接受到系统的编程语言的学习和程序编写训练,在此之前vb也没哟给我这种感觉,在老师的指导下,我对于程序设计的思维方法也得到了很大的提高,因此在这里我首先要对我的老师表示感谢。5.3 心得体会这道题是万年历,打印日历的问题。在做这道题的时候,我第一次发现了函数的魅力,科学的分配好每一个函数的功能比直接设置一个大的主函数好多了。由于个人学习程度不是很深,所以其中关于时间函数的一部分是从网上寻找来的。而且其中在做的过程中出现了许多的问题,完成之后也发现有不少的毛病是和我所构想的结果不同的。一一解决了这些问题,拿出了这一份虽不算多好,但凝集了我汗水的作品。通过本次课程设计,我再一

温馨提示

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

评论

0/150

提交评论