C语言程序设计万年历

上传人:桔**** 文档编号:439191599 上传时间:2024-01-26 格式:DOC 页数:35 大小:2.74MB
返回 下载 相关 举报
C语言程序设计万年历_第1页
第1页 / 共35页
C语言程序设计万年历_第2页
第2页 / 共35页
C语言程序设计万年历_第3页
第3页 / 共35页
C语言程序设计万年历_第4页
第4页 / 共35页
C语言程序设计万年历_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《C语言程序设计万年历》由会员分享,可在线阅读,更多相关《C语言程序设计万年历(35页珍藏版)》请在金锄头文库上搜索。

1、综合性程序设计报告设计题目: 万年历 指导教师: 班 级: 学 号: _ 设 计 者: 成 绩: 设计时间: 2012年 6 月 8 日题目描述用于利用计算机实现万年历功能,包括日期对星期的转换,根据指定日期对N天后是什么日期的计算。和显示当前日期,纪念日提醒等功能。主要功能:1. 日期推算2. 日期显示3. 纪念日提醒功能模块分解及说明根据题目要求,可以用结构体实现,这个系统可以分为:年历显示、月历查询、日期查询和日期推算四个部分。其中在日期查询中包括纪念日提醒。(1) 主函数main()主函数利用while(1)循环使得执行完每个部分之后还能回到主菜单,并利用switch函数当输入不同的值

2、时调用不同的模块。主函数如下:void main() /*主函数*/ int year,month,day,select; while(1) dushijian(); printf(n); getmenu(); printf( 请输入相应数字:); /*菜单选择 */ scanf(%d,&select); system(cls); switch(select) case 1: /*当选择为1时显示年历*/ printf( 年历显示:输入年(如2011):); scanf(%d,&year); if(year0&year0&year=1&month0&year=1&month=1&day=max

3、Day(year,month) display3(year,month,day); printf( 提示 按PageUp:前一天 按PageDown:后一天 按其他键:返回菜单nn); setDay3( year,month, day); else system(cls); printf( 输入无效,重新输入!n); break; case 4: /*当选择4时为日期推算*/ riqituisuan(); break; case 5: exit(0); default: /*当输入其他数字时,输入无效,重新输入*/ system(cls); printf( 输入无效,重新输入!n); (2)

4、年历显示 用来显示某一年的日历。void display1(int year) /*输出年历*/ int i; printf(n); for(i=1;i=12;i+) printf(%d 年 %d 月nn ,year,i); display(year,i); void display(int year ,int month) /*输出年月*/ int max,number,i,j=1; max=maxDay(year,month); number=week(year,month,1); printf( %4s %4s %4s %4s %4s %4s %4sn,Sun,Mon,Tue,Wed,

5、Thu,Fri,sat); for(i=0;inumber;i+) printf( ); /*1号前的星期补空格*/ while(j=max) printf(%6d,j); if (i%7=6) printf(n); /* 每7格换一行*/ i+; j+; printf(nn);(3) 输出月历 void display2(int year,int month) /*输出月历*/ printf(n%d 年 %d 月n ,year,month); display(year,month); void display(int year ,int month) /*输出年月*/ int max,num

6、ber,i,j=1; max=maxDay(year,month); number=week(year,month,1); printf( %4s %4s %4s %4s %4s %4s %4sn,Sun,Mon,Tue,Wed, Thu,Fri,sat); for(i=0;inumber;i+) printf( ); /*1号前的星期补空格*/ while(jtm_year) ; month1=(1+p-tm_mon) ; day1=(p-tm_mday); /*获取系统时间year1、month1、day1分别为年、月、日*/ days0=(year-1)*365+(year-1)/4-(

7、year-1)/100+(year-1)/400+eachyeartotal(year,month,day); days1=(year1-1)*365+(year1-1)/4-(year1-1)/100+(year1-1)/400+eachyeartotal(year1,month1,day1); days=days0-days1; /*计算出两个日期之间的时间差*/ printf(n 今天距%d年%d月%d日还有%d天nn,year,month,day,days); return days; void whatweek(int year,int month,int day) /*判断是星期几*/ int number; number=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+eachyeartotal(year,month,day); number=number%7 ; switch( number) case 0: pr

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号