万年历系统报告_第1页
万年历系统报告_第2页
万年历系统报告_第3页
万年历系统报告_第4页
万年历系统报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

程序设计(C 语言)课程设计报告年级专业 学 号 学生姓名 指导教师 二一五年三月一、题目万年历系统二、目的通过此次综合编程实践,进一步熟悉和掌握 C 语言的基本知识、基本编程原理;学习用 C 语言开发应用程序的方法;进一步熟悉计算机程序设计的基本方法、步骤,培养设计、调试、测试程序能力。三、程序功能介绍模仿现实生活中的挂历,当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。当系统日期变到下一月时,系统自动翻页到下一月。还可以对输入的日期进行验证是否正确并查询。四、内容(1) 功能界面介绍在主函数实现功能界面的设计,显示系统当前月月历,提供功能的选择并调用相应函数来实现模块功能。显示系统当前日期的模块,实现在界面中显示系统当前的日期的功能。在月历中显示当前日的模块,实现当前日在月历中被不同颜色标注出来的功能。打印出 y 年 m 月第一天的日历的模块,实现确定月历中每个月开头第一天的开始位置并显示月历基本框架的功能。计算星期几的模块,实现计算出系统当前日期是星期几的功能。计算某月天数的模块,实现计算当前月有多少天的功能。判断是否为闰年的模块,实现判断当前日期所在年份是否为闰年功能。输入查询日期的模块,实现需要另外查询日期的输入并判断所属日期是否正确的功能。(2) 算法流程图开始获取系统当前日期显示出当前的月历标注出当前日期判断所属日期是否正确YN输入要查询的日期显示”选择错误”显示所输入日期的月历继续NY结束(3) 程序实现(附程序代码和相应注释说明)#include#include #include#include#include#include #includeint days(int y,int m); /计算 y 年 m 月有多少天void show(int year,int month,int day); /显示主界面void showCurrentTime(); /显示系统当前时间int week(int y,int m,int d); /计算 y 年 m 月 d 日是星期几void printfirstday(int y,int m);/打印出 y 年 m 月第一天的日历int isleaf(int y); /y 年是否是闰年int checkYearAndMonth(int year, int month); /查找 13000年中的一年的日历int checkinput();int checkDay(int year, int month, int day);int inputyear(void);void main()char ch;showCurrentTime();printf(“nnt*n“);printf(“t1.查看任意日期日历nt0.退出n“);printf(“t*n“);printf(“请选择:“);while(1)scanf(“%c“,switch(ch)case 1:inputyear();break;case 0:exit(1);default:printf(“选择错误,请从新选择!n“);break;printf(“nnt*n“);printf(“t1.查看任意日期日历nt0.退出n“);printf(“t*n“);printf(“请选择:“);fflush(stdin);/ 清空输入缓冲区void showCurrentTime()/*显示系统当前时间*/time_t nowtime;struct tm *timeinfo;int year, month, day;system(“cls“);printf(“ntt*欢迎使用日历*n“);printf(“n*n“);time( timeinfo = localtime( year = timeinfo-tm_year + 1900;month = timeinfo-tm_mon + 1;day = timeinfo-tm_mday;printf(“当前日期:%d %d %dn“, year, month, day);printf(“*n“);show(year,month,day);void show(int year,int month,int day)int i=1;printf(“%d 年 %d 月n“, year, month);printfirstday(year,month);for(i=1;i3000)b = 0;if (month 12)b = 0;return b;int checkDay(int year, int month, int day)int b = 1;int d=0;if(b = checkYearAndMonth(year,month)d=days(year,month);if(0dayelsereturn 0;elsereturn 0;(4) 代码程序调试过程程序刚执行的界面选择退出后的界面选择查看任意日期日历后的界面输入要查询的日期后的界面输入错误日期后的界面选择不存在的选项时候的界面五、总结几天前的现在,当听到老师布置给我们的一些课程设计题目时,我们都蒙了,这么难的题目我们怎么会啊,我们都表示不满,抗议,可是一切都是徒劳,我们只能尽我们自己最大的努力把程序给写出来,虽然知道这一路肯定是异常的艰苦,但豁出去了。上网查资料是我们迈开的第一步,有类似的题目,可是不一样,我们失望而回,然后再是去图书馆查,肯定没有现成的,我们只能查相关的函数,经过两三天的努力,我们也只是把框架弄出来了,可是还有显示当前日期的难题摆在我们面前,真的是个难题,自从把框架弄好了以后就没有进展了,眼看一个星期快过去了,我们那个急啊,可是急也没有用。接下来的几天,又在网上找了一些论坛,和论坛里的人们讨论,他们都是 C 语言的高手,根据他们的经验,又给我们提了一些很好的思路,以及遇到问题的处理方法和相应的步骤。我们先是理清思路,想好大致的步骤。联系生活实际的运用,又添加一些功能,是这个程序更加的贴近我们的生活。最后,我们决定,在这个最后的几天,一定会把我们的程序实现的。通过一个星期的折腾,总算把课程设计给完成了,这真是一个坚苦而又漫长的过程。是啊,读了那么多年的书,课程设计可是第一次。看着劳动成果,很欣慰!本次用 C 语言编写的万年历系统主要实现了日历的显示,并且可通过键盘来查询相应的年月日,最终的设计结果达到的这些要求,是一次成功的课程设计。在设计初期,首先要温习了课本内容,再次熟熟悉了 C 程序,然后广泛的查找有关万年历的资料,并结合查找到的资料,整理出设计的主要思路,最终写出了源程序,并编译成功,在实验中,碰到了不少问题,其中包括如何获取系统时间,这些困难,都通过查阅资料和问同学得到了解决。比如在乱输入的情况下,有时会出现程序崩溃,后来通过修改,修正了漏洞。到写报告为止,漏洞基本被找出,并得到修正。当然,由于时间和能力的原因,农历部分的显示没有实现。此程序是我们的第一个功能比较完整的能实现一定的实际功能的程序,代码比较短,只有二百多行,实现的功能有显示当前日历,进行某天的查询,日期的合法性判断等。然后在程序编写过程中,遇到了一些细节性的问题,其中包括如何获取系统时间。遇到的难题有,获取系统的当前日期,判断日期的输入是否合法,还有关于日历显示时的位置,换行等等。通过写这个程序,我对程序的健壮性有了更深的认识,也更加注意程序的细节问题。而且对 C 语言了解不在停留在书面的了解,而是有了更深的理解,培养了自己的分析能力和设计能力,受益匪浅。通过此次日历的设计,还发现 C 语言还能设计其他的应用程序,比如,像贪吃蛇,五子棋,猜数字的这样的小游戏都可以通过 C 语言来实现。C 语言还可以设计出给文件加密解密,复制,压缩解压的程序。更方便的还有,通讯录啊,成绩表啊,记录表等实用的程序。所以说打好 C 语言的基础很重要。在课程设计过程中,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。在本次实践中,给我印象最为深刻的是在万年历程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天总是在考验我,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而返,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?不过有句话说得好:人力有所不能及,然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天不负有心

温馨提示

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

评论

0/150

提交评论