ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:79.89KB ,
资源ID:10090482      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10090482.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言课程设计电子日历.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c语言课程设计电子日历.docx

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

2、况评价设计中创新性评价论文书写规范化评价综合评定等级优秀好好3补充好良好好好2补充好中等好好1补充好及格好好无补充好不及格不好不好无补充不好评阅人 王更生 职称 教 授 2011年 12月 30日 目录一、设计思路二、功能实现详细设计三、测试结果分析四、用户手册五、设计体会一、设计思路:If语句:判断该年是否为闰年,判断一年是否为闰年需要符合下面二者之一:1,能被4整除,但不能被100整除。2,能被400整除。满足上述条件时,返回值为1,否则返回值为0。day函数:判断某年某月最多多少天,定义一个十二个元素的数组a12,给十二个月的天数分别赋初值31、28、31、30、31、30、31、31、

3、30、31、30、31。调用runnian函数,当if语句中条件为真实即返回值为1时,将二月份改为29天,即a1=29。week函数:判断某年某月某日的编号,根据公式(年份-1)+(年分-1)除以4-(年份-1)除以100+(年份-1)除以400+该天是该年的第几天(调用day2函数),把算出的值赋给number,再用number除以7取余数,即得到某年某月某日的编号。定义一个字符型指针变量,利用switch语句,当number=0时,使指针指向星期日;当number=1时,指针指向星期一;当number=2时,指针指向星期二;当number=3时,指针指向星期三;当number=4时,指针指

4、向星期四;当number=5时,指针指向星期五;当number=6时,指针指向星期六;当number不是上述数值时,指针指向错误。x函数:输出该天星期几,调用week1函数,将编号的值赋给number,调用*week2函数,根据number的值,确定指针指向,从而输出星期几,输出年,月,日,星期几。显示月历,先输出星期日 星期一 星期二 星期三 星期四 星期五 星期六,星期日。检验有效性,即当输入的年小于零、月小于一或大于十二、天大于该月最大值(调用day1函数)时将0返回给主函数,否则将1返回给主函数nianli函数:输出年历,先调用runnian函数,定义变量i,赋初值为1,利用for循环

5、,循环十二次,调用x2函数,输出各个月的月历,从而显现出该年的每一天达到年历的效果。yueli函数: 输出月历,先调用runnian函数,调用showmonth函数,输出该月月历。rili函数: 输出日历,先调用函数,调用printmonth函数,输出该日日期。 二、功能实现详细设计:输入选择-选择+回车键-输入相应信息+回车键-输出结果。流程图如下:退出开始选择年历月历日历日期输入年输入年月输入年月日输出该年的所有日期输出该月的日期输出这一天是星期几输入2012年1月输出该月农历程序包含多个函数,分别为main函数、nianli函数、yueli函数、rili函数、nongli函数、print

6、month函数、printyear函数、SelectMenu函数、HandleMenu函数、showmonth函数、week1函数、*week2函数、day1函数、day2函数。通过函数间的调用,实现程序的运行。详细程序#include#includevoid nongli() int j; printf(nntttt 2012年1月n); printf(nt星期日 星期一 星期二 星期三 星期四 星期五 星期六nn); for(j=1;j0) printf(t); n-; #include char MonthDay=31,28,31,30,31,30,31,31,30,31,30,31;c

7、har MonthDayLeap=31,29,31,30,31,30,31,31,30,31,30,31;char *WeekDayName=星期日,星期一,星期二,星期三,星期四,星期五,星期六;char getkey() char c,s10; scanf(%s,s); c=s0; return c;char isLeapYear(int y) return(y%4 = 0 & y%100 != 0 | y%400 = 0)1:0);int WeekDay(int y,int m, int d) int week; if(m=1) m=13; if(m=2) m=14; week=(d+2

8、*m+3*(m+2)/5+y+y/4-y/100+y/400)%7; return week;char queryweekday() int y,m,d,week,c=0; do printf(请输入年月日(XXXX XX XX)n); scanf(%d %d %d,&y,&m,&d); week=WeekDay(y,m,d); printf(%d年%d月%d日是星期%s,是否继续查询(Y/N),y,m,d,WeekDayNameweek); c=getkey(); while (c=Y | c=y); return c;void showmonth(int y,int m) int d,dt

9、,week; week=WeekDay(y,m,1); if (isLeapYear(y) dt=MonthDayLeap(m-1)%12; else dt=MonthDay(m-1)%12; for (d=0;d7;d+) printf(t%s,WeekDayNamed); printf(n); printtab(week); for (d=1;d=dt;d+) printf(t%6d,d); if (WeekDay(y,m,d)=6) printf(n); printf(n);char printmonth() int y,m,c=0; do printf(请输入年月(XXXX XX)n)

10、; 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 | c=y); return c;char printyear() int y,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); prin

11、tf(n是否继续查询 (Y/N); c=getkey(); while (c=Y | c=y); return c;void quit() printf(nt谢谢使用该程序!n); exit(0);int SelectMenu() int choice; printf(nt*n); printf( 4:2012年1月的农历!n); printf( 3:某年日历!n); printf( 2:某月日历!n); printf( 1:根据日期查星期几!n); printf( 0:退出!n); printf(t*n); printf(t请选择菜单号(0-4):); while( (!(scanf(%d,

12、&choice)| (choice4) printf(nttaa选择错误!请重新选择:); printf(nt*n); printf( 4:2012年1月的农历!n); printf( 3:某年日历!n); printf( 2:某月日历n); printf( 1:根据日期查星期几!n); printf( 0:退出!n); printf(t*n); printf(t请选择菜单号(0-4):); return choice;void HandleMenu() printf(tt*欢迎使用该程序*n); while(1) switch(SelectMenu() case 0:quit(); brea

13、k; case 1:queryweekday(); break; case 2:printmonth(); break; case 3:printyear(); break; case 4:nongli(); break; void main() HandleMenu();三、测试结果分析:程序主界面:四、用户手册:可以根据界面的提示根据您的需要输入0.1.2或3.然后输入您要查的日期即可。五、设计体会:忙了好久总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计

14、出自己想要的程序。另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。为了解决此类问题,最好就是多向同学,老师请教,不要怕难为情。尤其是老师,凭他们多年的编写程序的经验,要解决我们的问题,对他们来说只是小问题。在设计这个程序时,我刚开始是根据老师给我提供的资料,用画图以及循环将框架设计出来,但是接下去便无从下手了。计算是个关键和难点,我们也查了相应的资料,最好这个计算问题解决了。从这一个多星期的设计过程中,遇到了一些细节性的问题,比如在乱输入的情况下,有时会出现程序崩溃,后来通过修改,修正了漏洞。到写报告为止,漏洞基本被找出,并得到修正。通过写这个程序,我对程序的健壮性有了更深的认识,也更加注意程序的细节问题。总之,这次设计程序让我受益良多,我会好好珍惜像这种难得的机会。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1