1、 高级语言程序设计 课程设计说明书 设计题目:万年历程序设计设计题目:万年历程序设计 班班 级:级: 学学 号:号: 姓姓 名:名: 完成日期:完成日期: 一:课程设计目的 高级语言程序设计课程设计是电子信息、光信息专业以及物理学 专业集中实践性环节之一,是学习完高级语言程序设计课程后进行的一次全 面的综合练习,其目的在于加深对程序设计基本知识的理解,掌握使用 C 语言 进行模块化软件设计的基本方法,提高通过编写程序解决实际问题的能力,为今 后从事设计工作和后续各种编程课程的学习打好基础。 二:需求分析 题目: 要求:输入年份和月份,自动输出该月的日历,清楚的显示每一天是 星期几,输入年份,月
2、份和具体日期能确定某天是星期几。 万年历是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于 个人家庭,车站, 码头办公室等公共场所,成为人们常生活中不可少的必需品,由 于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超 过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展 了钟表原先的报时功能。 诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路 灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有 这些,都是以钟表数字化为基础的。因此,研究万年历及扩大其应用,有着非常 现实的意义。它可以对年、月、日、
3、周日、时、分、秒进行计时,对于数字电子 万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒等信 息,还具有时间校准等功能。 综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等 诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 三:概要设计 1判断是否为闰年 计算所输入的年份是否可被 4 整除,若不能被整除,为平年。若可被 4 整除,计算此年份能否被 100 整除,不能被 100 整除则为闰年。既能被 4 整 除,也能被 100 整除的年份,若也能被 400 整除,则为闰年,否则为平年。 闰年 366 天,平年 365 天 2主要设计思路 四:详细设
4、计 源程序:#include #include void DayOfWeek() int rtnDay; int y,m,d; char ch; 开始 输 入 指 令 (1234) 输入 4 退出 判断是否为闰年 1 日历 2 月历 3 年历 输 入 年 月日 数日年月 输入年份 按下回车可 得星期几 按下回车可得 月历 按下回车可 得年历 while (1) printf(“请输入年月日(xxxx,xx,xx): “); scanf(“%d,%d,%d“, fflush(stdin); rtnDay = (3*y-(7*(y+(m+9)/12)/4+(23*m)/9+d+17-(y+(m=13|md=0) printf(“HAVE WRONG!“); else for(i1=0;md+,i1+) if(md=0) md=12; D-=1; else if(md=13) md=1; D+=1; m=md; printf(“n=%d,%