万年历课程设计说明.docVIP

  • 14
  • 0
  • 约4.44千字
  • 约 13页
  • 2018-02-20 发布于河南
  • 举报
万年历课程设计说明

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

文档评论(0)

1亿VIP精品文档

相关文档