c语言课程设计电子日历_第1页
c语言课程设计电子日历_第2页
c语言课程设计电子日历_第3页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计(论文)任务书专业班级_、课程设计(论文)题目电子日历二、课程设计(论文)工作:自2011年12月26日起至2011年12月30日止。三、课程设计(论文)的内容要求:1、。界面2、某本要求a)编写一个实用日历程序,并且可以多次进行。b)编写一个2012年1月份日历与农历对照程序3、补充自己的设计内容(1)、根据日期查星期几!(2)、某月日历!(3、)某年日历!(4、)2012年1月的农历!学生签名:戴斌2011年12月30日课程设计(论文)评阅意见等级项目课程设计态度评价出勤情况评价设计中创新性评价论文书写规范化评价综合评定等级优秀好好3补充好良好好好2补充好中等好好1补充好及格好好无

2、补充好不及格不好不好无补充不好评阅人王更生职称教授2011年12月30日一、设计思路二、功能实现详细设计三、测试结果分析四、用户手册五、设计体会、设计思路:If语句:判断该年是否为闰年,判断一年是否为闰年需要符合下面二者之一:1,能被4整除,但不能被100整除。2,能被400整除。满足上述条件时,返回值为1,否则返回值为0。day函数:判断某年某月最多多少天,定义一个十二个元素的数组a12,给十二个月的天数分别赋初值31、28、31、30、31、30、31、31、30、31、30、31。调用runnian函数,当if语句中条件为真实即返回值为1时,将二月份改为29天,即a1=29。week函数

3、:判断某年某月某日的编号,根据公式(年份-1)+(年分-1)除以4-(年份-1)除以100+(年份-1)除以400+该天是该年的第几天(调用day2函数),把算出的值赋给number,再用number除以7取余数,即得到某年某月某日的编号。定义一个字符型指针变量,利用switch语句,当number=0时,使指针指向星期日;当number=1时,指针指向星期一;当number=2时,指针指向星期二;当number=3时,指针指向星期三;当number=4时,指针指向星期四;当number=5时,指针指向星期五;当number=6时,指针指向星期六;当number不是上述数值时,指针指向错误。x

4、函数:输出该天星期几,调用week1函数,将编号的值赋给number,调用*week2函数,根据number的值,确定指针指向,从而输出星期几,输出年,月,日,星期几。显示月历,先输出星期日星期一星期二星期三星期四星期五星期六,星期日。检验有效性,即当输入的年小于零、月小于一或大于十二、天大于该月最大值(调用day1函数)时将0返回给主函数,否则将1返回给主函数nianli函数:输出年历,先调用runnian函数,定义变量i,赋初值为1,利用for循环,循环十二次,调用x2函数,输出各个月的月历,从而显现出该年的每一天达到年历的效果。yueli函数:输出月历,先调用runnian函数,调用sh

5、owmonth函数,输出该月月历rili函数:输出日历,先调用函数,调用printmonth函数,输出该日日期。二、功能实现详细设计:输入选择-选择+回车键-输入相应信息+回车键-输出结果。流程图如下:开始程序包含多个函数,分别为main函数、nianli函数、yueli函数、rili函数、nongli函数、printmonth函数、printyear函数、SelectMenu函数、HandleMenu函数、showmonth函数、weekl函数、*week2函数、dayl函数、day2函数。通过函数间的调用,实现程序的运行。详细程序#include<>#include<&g

6、t;voidnongli()(intj;printf("nntttt2012年1月n");printf("nt星期日星期一星期二星期三星期四星期五星期六nn");for(j=1;j<=31;j+)(printf("t%d”,j);if(j=7|j=14|j=21|j=28)printf("n");if(j=7)(printf("t元旦t初九t初十tH一t十二t十三t十四tn");if(j=14)(printf("t十五t十六t十七t十八t十九t廿十t廿一tn");if(j=21)

7、(printf("t廿二t廿三t廿四t廿五t廿六t大寒t廿八tn");if(j=28)(printf("t廿九t春节t初二t初三t初四t初五t初六tn");if(j=31)(printf("n");printf(-t初七t初八t初九n");voidprinttab(intn)(while(n>0)(printf("t");n-;#include<>charMonthDay=31,28,31,30,31,30,31,31,30,31,30,31;charMonthDayLeap=31,29

8、,31,30,31,30,31,31,30,31,30,31;char*WeekDayName="星期日","星期一","星期二","星期三","星期四","星期五","星期六"chargetkey()charc,s10;scanf("%s",s);c=s0;returnc;charisLeapYear(inty)(return(y%4=0&&y%100!=0|y%400=0)1:0);intWeekDay(inty,i

9、ntm,intd)(intweek;if(m=1)m=13;if(m=2)m=14;week=(d+2*m+3*(m+2)/5+y+y/4-y/100+y/400)%7;returnweek;charqueryweekday()(inty,m,d,week,c=0;do(printf("请输入年月日(XXXXXXXX)n");scanf("%d%d%d",&y,&m,&d);week=WeekDay(y,m,d);printf("%d年%d月%d日是星期%s,是否继续查询(Y/N)”,y,m,d,WeekDayNamew

10、eek);c=getkey();while(c='Y'|c='y');returnc;voidshowmonth(inty,intm)(intd,dt,week;week=WeekDay(y,m,1);if(isLeapYear(y)dt=MonthDayLeap(m-1)%12;elsedt=MonthDay(m-1)%12;for(d=0;d<7;d+)(printf("t%s",WeekDayNamed);printf("n");printtab(week);for(d=1;d<=dt;d+)(print

11、f("t%6d”,d);if(WeekDay(y,m,d)=6)printf("n");printf("n");charprintmonth()(inty,m,c=0;do(printf("请输入年月(XXXXXX)n");scanf("%d%d”,&y,&m);printtab(3);printf("%d年t%d月n",y,m);showmonth(y,m);printf("是否继续查询(Y/N)");c=getkey();while(c='Y

12、9;|c='y');returnc;charprintyear()(inty,m,c=0;do(printf("请输入年份(XXXX)n");scanf("%d",&y);printtab(3);printf("%d年年历n",y);for(m=1;m<=12;m+)(printtab(4);printf("%d月n",m);showmonth(y,m);printf("n是否继续查询(Y/N)");c=getkey();while(c='Y'|c=

13、'y');returnc;voidquit()printf(-nt谢谢使用该程序!n");exit(0);intSelectMenu()intchoice;printf("nt*printf("4:2012年1月的农历!n");printf("3:某年日历!n");printf("2:某月日历!n");printf("1:根据日期查星期几!n");printf("0:退出!n");printf("t*n");printf("t请选

14、择菜单号(0-4):");while(!(scanf("%d”,&choice)|(choice<0)|(choice>4)printf("nttaa选择错误!!!请重新选择:");*、2printf("4:2012年1月的农历!n");printf("3:某年日历!n");printf("2:某月日历n");printf("1:根据日期查星期几!n");printf("0:退出!n");printf("t*n");

15、printf("t请选择菜单号(0-4):");returnchoice;voidHandleMenu()(printf("tt*欢迎使用该程序*n");while(1)(switch(SelectMenu()(case0:quit();break;case1:queryweekday();break;case2:printmonth();break;case3:printyear();break;case4:nongli();break;voidmain()(HandleMenu();三、测试结果分析:程序主界面:四、用户手册:可以根据界面的提示根据您的需要输入0.1.2或3.然后输入您要查的日期即可。五、设计体会:忙了好久总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序。另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。为了解决此类问题,最好就是多向为学,老师请教,不要怕难为情。尤其是老师,凭他们多年的编写程序的经验,要解决我

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论