c语言定义星期一到日,C语言万年历程序设计

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

1、目目录录 第第 1 1 章需求分析章需求分析.6 6 第第 2 2 章章 概要设计概要设计.6 6 第第 3 3 章详细设计章详细设计.1111 第四章第四章 运行结果及分析运行结果及分析.1717 1.登陆界面 .17 2.显示某年全年日历 .17 3.3.显示某月日历 .18 第第 5 5 章章课程设计心得课程设计心得.2020 参考文献参考文献.2121 第 1 章需求分析 (1)程序运行时,首先给出四个菜单选项和输入提示: 图图 1-11-1 (2)用户可以通过主菜单选择不同选项。输入 1,通过输入年份可显 示一年每个月份的日历;输入 2,通过输入年份和月份(中间以空格分 开)可显示该。

2、月的日历;若输入 3,通过输入年份月份和日期(中间以 空格分开)可显示该日的星期;输入 0,则退出查询系统。 第 2 章 概要设计 1 1 菜单选择界面可通过下面所示函数时现;菜单选择界面可通过下面所示函数时现; 主要思路:主要思路: 通过 while 语句与 swichcase 以及 if 条件语句实现菜单的循环功能和不 同选项的功能实现。 闰年与平年的判断: 代码如下: void main() int year,month,day,a,b; while(1) printf(nnnn); printf( *nn); printf( * * n); printf( 欢迎进入万年历查询系统 n)。

3、; printf( * * nn); printf( *nnn); printf( 1 年历 2 月历 3 日历 4 退出n); printf( 请输入您的选择,按回车键确定: ); scanf(%d, switch(b) case 1: printf(n 请输入您要查的年份: ); scanf(%d, a=x3(year,1,1); if(a=0) printf(错误!请您重新输入。n); break; nianli(year); break; case 2: printf(n 请输入您要查的年和月,年月之间用空格隔开: ); scanf(%d%d, a=x3(year,month,1); 。

4、if(a=0) printf(错误!请您重新输入。n); break; yueli(year,month); break; case 3: printf(n 请输入您要查的年月日,年月日之间用空格隔开: ); scanf(%d%d%d, a=x3(year,month,day); if(a=0) printf(错误!请您重新输入。n); break; rili(year,month,day); break; case 4: exit(0); default: printf(错误!请您重新输入。nn); 2 2 显示一年的日历,可通过函数显示一年的日历,可通过函数 voidvoid x1x1()。

5、实现,()实现, 思路如下:思路如下: 先判断输入年份是否为闰年,若为闰年,则定义二月为 29 天, 通过调用函数判断是否为闰年及每个月的天数通过调用函数判断是否为闰年及每个月的天数 依次打印 12 个月的月份 打印每个月的日历,显示个每个月的日历: printf(%2s%2s%2s%2s%2s%2s%2sn,printf(%2s%2s%2s%2s%2s%2s%2sn, 星期日星期日 , 星期一星期一 , 星期二星期二, 星期三星期三 , 星星 期四期四 , 星期五星期五 , 星期六星期六 );); 3 3闰年的判断:闰年的判断: 计算所输入的年份是否可被 4 整除,若不能被整除,为平年。若可。

6、 被 4 整除,计算此年份能否被 100 整除,不能被 100 整除则为闰年。既 能被 4 整除,也能被 100 整除的年份,若也能被 400 整除,则为闰年, 否则为平年。闰年 366 天,平年 365 天 图图 2-12-1 代码:代码: intint runnian(intrunnian(int year)year) if(year%4=01; elseelse returnreturn 0;0; 4 4 判断某月的天数;判断某月的天数; 通过函数:通过函数: intint day1(intday1(int year,intyear,int month)month) intint a12。

7、=31,28,31,30,31,30,31,31,30,31,30,31;a12=31,28,31,30,31,30,31,31,30,31,30,31; 若为闰,则二月为 29 天。 图图 2-22-2 代码:代码: if(runnian(year)if(runnian(year) a1=29;a1=29; 第 3 章详细设计 #include #include /*定义头文件*/ int runnian(int year)/*定义变量*/ if(year%4=0 else return 0; int day1(int year,int month) int a12=31,28,31,30,。

8、31,30,31,31,30,31,30,31;/* 定义数组确定 12 个月每个月的天数*/ if(runnian(year) /*如果输入年份是闰年*/ a1=29;/*二月 29 天*/ return amonth-1; int day2(int year,int month,int day) int i,sum=0; for(i=1;imonth;i+) sum+=day1(year,i); sum+=day; return sum; int week1(int year,int month,int day) int number=(year-1)+(year-1)/4-(year-1。

9、)/100+(year- 1)/400+day2(year,month,day); number%=7; return number; char *Week2(int number) switch(number)/*分类一周七天*/ case 0: return 星期日; case 1: return 星期一; case 2: return 星期二; case 3: return 星期三; case 4: return 星期四; case 5: return 星期五; case 6: return 星期六; default: return 错误! 请您重新输入。;/*不符和上面七种情况的报错提。

10、示*/ void x1(int year,int month,int day) int number=week1(year,month,day); if(runnian(year)printf(闰年);/*年份为闰年则输出 “闰年“*/ else printf(平年); printf( %d 年 %d 月 %d 日% 10snn,year,month,day,Week2(number);/*按年 月 日输出结果*/ void x2(int year,int month) int max,number,i,j=1; max=day1(year,month); number=week1(year,。

11、month,1); printf(%2s%2s%2s%2s%2s%2s%2sn, 星期日 , 星期 一 , 星期二, 星期三 , 星期四 , 星期五 , 星期六 );/*按照间隔打 印日历 for(i=0;inumber;i+) printf( ); while(j=max) printf(%8d,j); if(i%7=6) printf(n); i+; j+; printf(nn); int x3(int year,int month,int day) if(year0|month12|dayday1(year,m onth)/*当输入植出现这些情况时*/ return 0;/*返回 0*/。

12、 else return 1;/*返回 1*/ void nianli(int year) int i; printf(n); for(i=1;i=12;i+) if(runnian(year)printf(闰年); else printf(平年); printf( %d 年 %d 月nn,year,i); void yueli(int year,int month) if(runnian(year) printf(闰年); else printf(平年); printf( %d 年 %d 月nn,year,month); x2(year,month); void rili(int year,。

13、int month,int day) printf(n); x1(year,month,day); void main() int year,month,day,a,b; while(1) printf(nnnn); printf( *nn); printf( * * n); printf( 欢迎进 入万年历查询系统 n); printf( * * nn); printf( *nnn); printf( 1 年历 2 月历 3 日历 4 退出n); printf( 请输入您的选择, 按回车键确定: ); scanf(%d, switch(b) case 1:/*选择 1 时*/ printf(。

14、n 请输入您要查的年份: );/*给 出输入提示*/ scanf(%d,/*输入查询的年份*/ a=x3(year,1,1); if(a=0) printf(错误!请您重新输入。n);/* 输入植异常时报错*/ break; nianli(year); break; case 2:/*选择二时*/ printf(n 请输入您要查的年和月,年 月之间用空格隔开: );/*给出输入提示*/ scanf(%d%d,/*输入 需要查询的年 月*/ a=x3(year,month,1); if(a=0) printf(错误!请您重新输入。n); break; yueli(year,month); bre。

15、ak; case 3:/*选择 3 时*/ printf(n 请输入您要查的年月日, 年月日之间用空格隔开: );/*给出输入提示*/ scanf(%d%d%d,/*输入年 月 日*/ a=x3(year,month,day); if(a=0) printf(错误!请您重新输入。 n);/*输入植异常时报错*/ break; rili(year,month,day); break; case 4: exit(0); default: printf(错误!请您重新 输入。nn); 第四章 运行结果及分析 1.登陆界面 图图 4-14-1 登陆界面提供了四个选项进行选择,并提示输入后的操作方法; 。

16、2.显示某年全年日历 图图 4-24-2 输入指令后,依次打印出每个月份的日历。并显示平年或者闰年; 3.3.显示某月日历 图图 4-34-3 第 5 章课程设计心得 通过本次课程设计我第一次通过自己的实践对书本上的知识进行了与生 活相关的运用。在这个程序中,主要应用了这学期所学习的循环,条件语 句,数组以及调用函数。这些知识的应用使我对课本容的认识得到了加深 。 在编写程序的过程中,也出现了很多错误。比如程序语句错误导致检 测时连续报错;函数语句编写错误导致输出结果与实际不符等。出现这些 情况后,通过对一些新知识的学习和对网上相关资料的阅览,我发现了自 己的程序的问题所在并进行了改正。最后得。

17、到了正确的结果。 在程序的编写完成后,我按照要求对程序进行了拓展。在输出年 历的基础上增加了月历及确定日期的输出。本来设想增加农历生肖功能, 但是由于程序过于复杂,最终没能在规定时间调试成功。 参考文献参考文献 1文君,柳.C 语言程序设计教程M.清华大学. 2010.3 2谭浩强. C 语言程序设计教程M. 清华大学. 2007.6 C 语言程序设计精品课程 4谭浩强.C 程序设计教程.:清华大学.2007.07 5海新 燕主编. C 语言程序设计实用教程.机械工业.2007.09 6泽中红艳主编. C 语言程序设计.:清华大学.2008.06 7路俊维 马雪松主编.C 语言程序设计.中国铁道工业.2009.06。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值