C语言课程设计—年历显示系统.doc
《C语言课程设计—年历显示系统.doc》由会员分享,可在线阅读,更多相关《C语言课程设计—年历显示系统.doc(14页珍藏版)》请在咨信网上搜索。
课程设计报告 课程设计报告题目:年历显示系统 姓 名:XXX 学 号:XXXX 专 业:XXXX 班 级: XXXX1 指导教师:XXX 职 称:XXX 2012年 6 月 20 日 目 录 1.摘要 3 2.设计要求 3 3.思想构架 4 4.程序 4 5.程序运行界面 9 6.总结 13 7.参考文献 ..........................................13 1.摘要 C语言是近年在国内外得到迅速推广应用的一种语言。C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。因此,C语言特别适合于编写各种软件。 目前流行的计算机日历程序,比较典型的是Windows各版本中的日历程序以及基础于该程序所开发的各种应用程序中的日历程序。然而,这些程序都千篇一律的局限在一个很短的时间范围内。(Windows各个版本一般都局限在1980年至2099年这一范围内),但是,在很多情况下,特别是在众多的科学研究领域中,一个时间跨度较大的日历程序是很有参考价值的。C程序设计语言充分发挥了其自身无与伦比的优越性,用极短的程序文本填补了这一领域的空白,同时用铁的事实强有力的告诉世人:C程序设计语言作为计算机语言家族的新生事物,其发展前景是极为广阔的。 【关键字】C语言 计算机日历程序 2.设计要求 输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间; 1、输入年,输出该年的日历。 2、输入年月,输出该月的日历。 3、输入年月日,输出距今天还有多少天,星期几,是否是公历节日。 3.思想构架 3.1闰年问题: 每400年整一闰,或每4年且不为百年的一闰。(原因:地球绕太阳一周的时间是365天5小时46秒,为了使一年的天数为整数,将一年的天数定为365天,余下的时间积累起来,四年就是23小时15分4秒,将近一天,把这一天加在某年的二月而成29天,该年称为闰年,其它年称为平年。但四年加一天又多用了44分56秒,这个数积满400年为三天。因此400年中只能有97个闰年,所以凡能被400整除,或不能被100整除但能被4整除的年份为闰年。) 所以百年%4=0闰或(年%4=0并且年<>0)闰。 每 4年(3个平年+1个闰年)共208周+5天 ——注意这个“5天”百年共100*(208周+5天)-1天=5217周+5天 ——注意这个“5天”(整百年暂设为平年)每400年共4*(5217周+5天)+1天(整400年闰)=20871周+0天——注意这个“0天”和“1天”(4个整百年只有一个闰年)即400年一个轮回! 4.程序 #include <stdio.h> int monthdays[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int leapyearmonthdays[12]={31,29,31,30,31,30,31,31,30,31,30,31}; int year=2011; int month=4; int day=22; int isweekday(int y,int m,int d) { int weekday; if(m<3) { m+=12; y--; } return weekday=(2+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7; } int isleapyear(int y) { if (y%400==0 || y%100!=0 && y%4==0) return 1; return 0; } void print_month(int y,int m) { int i=0; int startday=isweekday(y,m,1); printf("\n%4d/%02d\n",y,m); printf("*****************************\n"); for(i=0;i<startday;i++) { printf(" "); } if(isleapyear(y)) { for(i=1;i<=leapyearmonthdays[m-1];i++) { printf("%3d ",i); if((startday+i)%7==0) printf("\n"); } } else { for(i=1;i<=monthdays[m-1];i++) { printf("%3d ",i); if((startday+i)%7==0) printf("\n"); } } printf("\n*****************************\n"); } void print_year(int y) { int i; for(i=1;i<=12;i++) { print_month(y,i); } } int counterdays(int y,int m,int d) { int temp=0; int days=0; int i; for(i=year+1;i<y;i++) { if(isleapyear(i)) temp++; } if(y-year>=1) { if(isleapyear(year) && month<=2) temp++; if(isleapyear(y) && m>2 ||(m==2 && d==29)) temp++; for(i=month+1;i<=12;i++) { days+=monthdays[i-1]; } for(i=1;i<m;i++) { days+=monthdays[i-1]; } days+=(y-year-1)*365; } if(!(year==y && month==m)) { days+=monthdays[month-1]-day+d; } else { days+=d-day; } days+=temp; printf("\n今天距%d/%d/%d还有%d天\n",y,m,d,days); return days; } void setday(int y,int m,int d) { year=y; month=m; day=d; } void main() { int temp; int y,m,d; char ch; do{ printf("请输入要查询的方式(1.查询年历2.查询月历3.计算日期4.设置当前日期(%d/%d/%d)):",year,month,day); scanf("%d",&temp); switch(temp) { case 1: printf("请输入年份(ep:2011):"); scanf("%d",&y); print_year(y); break; case 2: printf("请输入年月(ep:2011/4):"); scanf("%d/%d",&y,&m); print_month(y,m); break; case 3: printf("请输入日期(ep:2011/4/22):"); scanf("%d/%d/%d",&y,&m,&d); counterdays(y,m,d); break; case 4: printf("请输入当天日期(ep:2011/4/22):"); scanf("%d/%d/%d",&y,&m,&d); setday(y,m,d); break; default: break; } printf("\n\n是否继续?(Y键继续,任意键退出)"); getchar(); scanf("%c",&ch); }while(ch=='y' || ch=='Y'); } 5.程序运行界面 选择查询方式 输入年,查询该年的日历。 先设置当前日期,再计算日期。 输入年月,查询该月的日历。 6.总结 通过本项课程设计也培养了我独立思考、综合运用所学有关相应知识的能力,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关! 在这次课程设计中也知道了自己的动手能力不强有待进一部的提高!在设计过程中不能够把书本上的知识与实践相结合,这也就增加了设计不好该程序的想法!在设计过程中的一次次设计错误增加了我放弃的想法!不过经过我的努力终于完成了课程设计!完成该程序后想起自己以前的每一次对自己失去信心,就觉得并不是在知识掌握上打败了,而是自己对自己缺乏信心!只要自己对自己不失去信心相信就可以完成那些以前认为完成不了的事情!也让我懂得了要想成功首先就必须有很强的自信心! 7.参考文献 源程序参考网址: 东华理工大学 学年课程设计报告评分表 学生姓名: XX 学号: XXXX 班级: XXXX 课程设计题目: 项目内容 满分 实 评 选 题 能结合所学课程知识、有一定的能力训练。符合选题要求 (3人一题) 5 工作量适中,难易度合理 10 能 力 水 平 能熟练应用所学知识,有一定查阅文献及运用文献资料能力 10 理论依据充分,数据准确,公式推导正确 10 能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等 10 能体现创造性思维,或有独特见解 15 成 果 质 量 模型正确、合理,各项技术指标符合要求。 15 摘要叙述简练完整,假设合理、问题分析正确、数学用语准确、结论严谨合理;问题处理科学、条理分明、语言流畅、结构严谨、版面清晰 15 课程设计报告主要部分齐全、合理,符号统一、编号齐全。 格式、绘图、表格、插图等规范准确,符合课程设计报告要求 10 正文字数不少于2000字,不超过15000字 5 总 分 100 指导教师评语: 指导教师签名: 年 月 日 14- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 年历 显示 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文