用c语言编写万年历的设计报告,C语言万年历设计报告.doc

本设计报告介绍了一个基于C语言的万年历系统,包括设计目的、需求分析、概要设计等内容。系统能够显示指定月份的日历,并提供具体日期的信息查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C 语言课程 设计报告 题目:编写万年历系统编写万年历系统 年级: 专业: 班级: 姓名: 学号: 目目 录录 第 1 章 设计目的 第 2 章 需求分析 第 3 章 概要设计 第 4 章 源程序清单 第 5 章 执行结果 1)登陆界面 2 2))显示当前日月历 3)显示具体日期信息 第 6 章 程序问题调试与课程设计心得 第第 1 章设计目的章设计目的 设计目的(实验要求): 1.模仿现实生活中的挂历. 2.当前页以系统当前日期的月份为准显示当前月的每一天(显示 出日及对应的星期几). 3.当系统日期变到下一月时,系统自动翻页到下一月. 第 2 章需求分析 (1)程序运行时,首先给出菜单选项和输入提示: (2)用户可以通过主菜单选择不同选项。输入 1,通过输入当前日期可显 示当前月的日历;输入 2,通过输入具体日期(中间以空格分开)可显示该 日具体信息;输入 3,则退出查询系统。 第 3 章 概要设计 输入具体日期 1.菜单选择界面可通过下面所示函数时现; 主要思路: 通过 while 语句与 swich…case 以及 if 条件语句实现菜单的循环功能和不同选 项的功能实现。 闰年与平年的判断: 代码如下: void main() { int year,month,day,a,b; while(1) { printf(“\n\n\n\n“); printf(“ **********************************************************\n\n“); printf(“ * * \n“); 开始 输入指令 3.退出出、 、 判断是否为闰年 1.当前日期 月 2.具体日期 信息 输入要查询的当 前日期 printf(“ Welcome to enter calendar system \n“); printf(“ * * \n\n“); printf(“ **********************************************************\n\n\n“); printf(“ 1 The month of current date 2 Date 3 Exit\n“); printf(“ please import your choose,press Enter to define: “); scanf(“%d“, switch(b) { case 1: printf(“\n Please import the year,month and day which you want to check,the year,month and day separation by blank space: “); scanf(“%d%d%d“, a=x3(year,month,1); if(a==0) { printf(“Error!Please import again.\n“); break;} yueli(year,month,day); break; case 2: printf(“\n Please import the year,month and day which you want to check,the year,month and day separation by blank space: “); scanf(“%d%d%d“, a=x3(year,month,day); if(a==0) { printf(“Error!Please import again.\n“); break;} rili(year,month,day); break; case 3: exit(0); default: printf(“Error!Please import again.\n\n“); } } 2.闰年的判断: 计算所输入的年份是否可被 4 整除,若不能被整除,为平年。若可被 4 整除,计算此年份能否被 100 整除,不能被 100 整除则为闰年。既能被 4 整 除,也能被 100 整除的年份,若也能被 400 整除,则为闰年,否则为平年。 闰年 366 天,平年 365 天 代码: int runnian(int year) { if(year%4==0 else return 0; } 3.判断某月的天数; 通过函数: int day1(int year,int month) { int a[12]={31,28,31,30,31,30,31,31,30,31,30,31}; 若为闰,则二月为 29 天。 第 4 章 源程序清单 #include #include/*定义头文件*/ int runnian(int year) { if(year%4==0 else return 0; } int day1(int year,int month) { int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};/*定义数组确定 12 个月每个 月的天数*/ if(runnian(year)) /*如果输入年份是闰年*/ a[1]=29; /*二月 29 天*/ return a[month-1]; } int day2(int year,int month,int day) { int i,sum=0; for(i=1;i12||dayday1(year,month)) /*当输入值出现 这些情况时*/ return 0; /*返回 0*/ else return 1; /*返回 1*/ } void yueli(int year,int month,int day) { if(runnian(year)) printf(“leap year“); else printf(“common year“); printf(“ %d year %d month %d day\n\n“,year,month,day); x2(year,month); } void rili(int year,int month,int day) { printf(“\n“); x1(year,month,day); } void main() { int year,month,day,a,b; while(1) { printf(“\n\n\n\n“); printf(“ **********************************************************\n\n“); printf(“ * * \n“); printf(“ Welcome to enter calendar system \n“); printf(“ * * \n\n“); printf(“ **********************************************************\n\n\n“); printf(“ 1 The month of current date 2 Date 3 Exit\n“); printf(“ please import your choose,press Enter to define: “); scanf(“%d“, switch(b) { case 1: /*选择 1 时*/ printf(“\nPlease import the year,month and day which you want to check,the year,month and day separation by blank space: “); /*给出输入提 示*/ scanf(“%d%d%d“, /*输入需要查询 的年 月 日*/ a=x3(year,month,1); if(a==0) { printf(“Error!Please import again.n“);/*输入值异常 时报错*/ break; } yueli(year,month,day); break; case 2: /*选择 2 时*/ printf(“\nPlease import the year,month and day which you want to check,the year,month and day separation by blank space: “); /*给出输 入提示*/ scanf(“%d%d%d“,/*输入年 月 日*/ a=x3(year,month,day); if(a==0) { printf(“Error!Please import again.n“);/*输入值 异常时报错*/ break; } rili(year,month,day); break; case 3: exit(0); default: printf(“Error!Please import again.\n\n“); } } } 第 5 章 执行结果 1)登陆界面 2 2))显示当前日历月 3)显示具体日期信息 第 6 章 程序问题调试与课程设计心得 1)程序问题调试 (1) 调用的 week2 函数中,忘记在万年历中一周的第一天是 sunday。 (2)定义的 runnian 语句中没有返回值,无法判断是否为闰年。 (3)定义的 x1 与 x2 函数实现的功能时混淆。 (4)被调用函数 X3 中的返回值要用于主调函数中的判断,但是未在主调函数 中赋值给整型变量。 (5)对于数组,数组的初始化要进行正确的赋值,以及对于数组的使用与变更。 (6)程序的 scanf 语句中取地址符号不能省。 2)课程设计心得 通过本次课程设计我通过自己的实践对书本上的知识进行了与生活相关的运用 。在这个程序中,主要应用了这学期所学习的循环,条件语句,数组以及调用 函数。这些知识的应用使我对课本内容的认识得到了加深。 在编写程序的过程中,也出现了很多错误。比如程序语句错误导致检测时 连续报错;函数语句编写错误导致输出结果与实际不符等。出现这些情况后, 通过对教材的深入理解和解度,我发现了自己的程序的问题所在并进行了改正 。最后得到了正确的结果。

展开阅读全文

八、心得体会 1. 目前流行的计算机日程序,比较典型的是Windows各版本中的程序以及基础于该程序所开发的各种应用程序中的程序。然而,这些程序都千篇一律的局限在一个很短的时间范围内。(Windows各个版本一般都局限在1980年至2099年这一范围内),但是,在很多情况下,特别是在众多的科学研究领域中,一个时间跨度较大的日程序是很有参考价值的。C程序设计语言充分发挥了其自身无与伦比的优越性,用极短的程序文本填补了这一领域的空白,同时用铁的事实强有力的告诉世人:C程序设计语言作为计算机语言家族的新生事物,其发展前景是极为广阔的。 2. 经过上一个学期对《C程序设计》的学习,我们学习了理论知识,了解了C语言程序设计的思想,这些知识都为我们的下一步学习打下了坚实的基础。通过课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。 3. 通过对c语言万年历设计进一步的巩固了用c语言编写程序,并且有利于更好的掌握c语言! 4.万年历编写过程中也体会到了做事情一顶要细心、认真。更加知道了要掌握好基础知识。还有体会到了成功的感觉!在万年历设计过程中更加体会到了团队合作的重要性,“一个诸葛亮比不上三个臭皮匠。”知道了只有团队合作才会更好的完成设计!也体会到以后在工作中团队合作的必要性和重要性! 5. 通过本项课程设计也培养了我独立思考、 综合运用所学有关相应知识的能力,掌握 工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关! 6. 由于C语言是近年在国内外得到迅速推广应用的一种语言。C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。通过这次的c语言程序设计更加了解了c语言的好处和其可用性! 7. 在这次课程设计中也知道了自己的动手能力不强有待进一部的提高!在设计过程中不能够把书本上的知识与实践相结合,这也就增加了设计不好该程序的想法!在设计过程中的一次次设计错误增加了我放弃的想法!不过经过大家的努力终于完成了课程设计!完成该程序后想起自己以前的每一次对自己失去信心,就觉得并不是在知识掌握上打败了,而是自己对自己缺乏信心!只要自己对自己不失去信心相信就可以完成那些以前认为完成不了的事情!也让我懂得了要想成功首先就必须有很强的自信心!懂得了自己以后要在做任何事情时都要自信!当自己都不相信自己能够成功时还可能会获得成功吗?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值