- 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)