《万年历程序设计正版.doc》由会员分享,可在线阅读,更多相关《万年历程序设计正版.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、吉 林 农 业 科 技 学 院课 题 设 计 论 文论 文 题 目: 万年历 年 级 专 业: 计算机科学与技术 学 生 姓 名: 闫盟 学 号: 指 导 教 师: 武青海 评 阅 教 师: 武青海 完 成 日 期: 2012/6/17 吉林农业科技学院万年历学 生: 闫盟专 业: 计算机科学与技术指导教师: 武青海摘 要1. 经过一个学期对C程序设计的学习,同学们都认为真正的学到了有用知识,可能有一些人学的不够理想,但无论如何,这些知识都为我们的下一步学习打下了坚实的基础。做这么一个课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我
2、们认清自己的不足之处和薄弱环节,加以弥补和加强。 本程序是一个万年历程序,可以输出公元一年一月以后任意月份的天数及每一天是星期几,只要在运行程序时按照要求输入年份再输入和月份,程序就会把这一月份的日历显示在屏幕上,使人一目了然。该程序能与目前天文学研究中所采用的各种日历程序所能计算的范围相一致。 2 . 课程设计题目:万年历 要求:输入年份和月份,自动输出该月的日历,清楚的显示每一天是星期几。 指导老师:武青海关键词:万年历;任何年的星期;生活应用Permanent calendarName:闫盟 Major:计算机科学与技术 Tutor:武青海Abstract1. After a semes
3、ter of the C program design of study, students think real learned useful knowledge, may have some humans study insufficient ideal, but no matter how, these knowledge for our next step is to lay a solid foundation. Do such a course design, on the one hand, in order to check for us a term to our study
4、 achievement, on the other hand, in order to let us further master and use it, but also let us know yourself of the problems and strengthen the weak links, try to make up for and strengthening.This program is a calendar program, and can output in the first year after January in any number of days an
5、d every day of the week, as long as in the operation procedures in accordance with the requirements in the year to input and input, the application will put this January calendar shown on the screen, make the person be clear at a glance. The program can currently with the astronomical research which
6、 used in all kinds of calendar program can calculation scope are in agreement. 2. Course design topic: calendar Requirements: input month and year, automatic output of the calendar month, clear display every day of the week. Key Words:Permanent calendar;In any of the week;Life application 目 录摘 要. II
7、1 算术分析说明.12要用到的函数和语句.13 流程图.24 源代码.45 感悟与心得.7结 论.8参考文献. 9致 谢.101 算法分析说明 1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为355。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。 2. 输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为
8、星期几,若是7,则为星期日。3. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。2 要用到的函数和语句1., /*头文件*/2.main() /*主函数*/3.printf(),4.scanf()5.if 语句6.for 语句7.int day_year() /*定义函数*/8.goto /*循环语句*/3 流程图1. 图一 输入的年份 判断从定义年到输入的年份中每个年份是否为闰年是 否每年为366天 每年为365天 返回该年的天数2
9、. 图二 输入的年月 判断输入年是否为定义年 是 否总天数S=1总天数S为定义年到输入年的总天数把S加上该年一月到输入月份的天数,再加1判断输入的月份是否为闰年中的月份是 否该月是否大于二月 是 否把S加上该 年一月到输入月份的天数把S再加上该 把S加上该年年一月到输入 一月到输入月的月份的天数 份的天数再加1总天数为S判断S的最后一天为星期几从这一天起依次输出输入月份的天数直到该月底为止4 源代码#include int main(void)int year,j,k,month13,i,a=0;long weeks,week;scanf(%d,&year);for(i=1;i=year;i+
10、)if(i%4=0&i%100!=0|i%400=0)a=a+1;weeks=365*(year-1);week=(weeks+a)%7;printf(%dn,week);for(i=1;i13;i+)switch(i)case 1:case 3:case 5:case 7:case 8:case 10:case 12:monthi=31;break;case 2:if(year%4=0&year%100!=0|year%400=0) monthi=29;else monthi=28;break;case 4:case 6:case 9:case 11:monthi=30;break;for(
11、i=1;i=12;i+)printf(*%-4d*n,year);printf(=%-2dmonth=n,i);printf(SUN MON TUE WED THU FRI SAT nn);week=week%7;for(j=0;jweek;j+)printf( );for(k=1;k=monthi;k+)printf(%-4d,k);week+;if(week%7=0) printf(n);printf(n);scanf(%d,&a);return 0;4.1程序运行 执行代码 运行结果如图系统初始界面任意输入所需要查的年份如图如图5感悟与心得经历了这次课程设计的设计和制作的整个过程,我才发
12、现我知识的贫乏和知识面的狭窄,原本以为不就是一个小小的课程设计,小case,很容易就可以搞定,可是到了后来实际的操作的时候可是花费了我九牛二虎之力,不说其他的,只说时间上面,我在宿舍里面熬了三个通宵,更不用说白天的时间了。通过本项课程设计也培养了我独立思考、 综合运用所学有关相应知识的能力,掌握 工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!原本打算在设计中增添一些有趣的程序想把要查询的那天的生效年和阴历日期加入里面,但是由于我们小组的能力有限外加最近的一些时间上的困难最终不得不放弃原本的想法,只能单纯做到这些。在C语言程序设计的过程中也知道了自己在以前的学习中有很
13、大的不足导致在设计过程中出现了很多的问题,有些地方看不懂也不知道怎么去设计,但是在设计过程中也学习了很多,掌握了自己以前没有学好的知识,虽然一时可以掌握完以前没有学好的知识,不过也给自己敲响了警钟,在学习中不可以伏于表面,要想学好每一门课程都要踏踏实实,做什么都不是给别人看的!都是要更好的掌握该门知识,提高自己的自身的修养,提高自己的能力!为以后的工作打下良好的知识基础和技能基础。这次作课程设计我也是收获很大,首先,我对C语言有了更深的了解,使用起来也更加的熟练,原来有一些不知道和不熟悉的函数,我学会用了。其次,我这一次找了不少的资料,找专业的书籍、上网找各方面的资料,也使我学到了一些书本中学
14、不到的知识,让我长了见识。同时我们同学之间也互相的探讨,也增进了我们同学之间的感情。这次作的这一个设计,虽然我自己觉的很有的成就感,但是这必竟是我第一次作C语言的课程设计,必然会有很多的不足之处有待改进,相信以后我一定会做的更好。结 论信息化发展的今天,每一天都可能产生一门语言,每天也可能发明出一个程序。时代发展变化如此迅速,我们只能学好专业知识才能更好的面对未来的各种突发变化和各种的时代变化,这样我们才能不被这个时代所淘汰,才能适应社会,只有适应了社会才能让祖国发展壮大。面对程序代码,在编写和调试的时候一度出现了错误,但是我们寻找起来就耗时很久最终找到错误才是几个小小的符号,在代码中真是一字
15、千金啊。我们经过严格的分析,推理,判断最终找到错误。万年历看是小小一个程序,却包含了很多的小代码,每个代码又是独立的!这个实际操作就有些困难了,而且还要将所学的知识理论实践相结合。最终我们完成这个项目则进一步说明我们将实践和理论相结合了。参 考 文 献武青海,许薇编. c语言程序设计. 人民邮电出版社, 2010陈正振编. 电子电路设计与制作. 广西交通职业技术学院信息工程系, 2007陈朔鹰,陈英编著 C语言趣味程序百例精解北京. 北京理工大学出版社, 1994谭浩强,张基温,唐永炎编著. C语言程序设计教程.北京: 高等教育出版社, 1992秦友淑,曹化工编著. C语言程序设计教程. 武汉:华中理工大学出版社, 1996致 谢历时将近两个星期的时间终于将这篇论文写完,在论文的写作过程中遇到了无数的困难和障碍,都在同学的团结互助和平时老师给予知识面拓展和延伸增加知识面的情况下度过了。尤其要感谢整个团队一直坚持不懈不停的奋战,团队并且给予我的帮助与信心。另外在查阅文献时曾经一度在遇到困难最后再同学的帮助下在得意完成。感谢这篇论文涉及到的各位学者,如果没有你们的研究成果的帮助与启发,我将艰难完成本篇论文。由于我的写作水平有限,所写的论文难免有些不足之处,恳请各位老师同学批评指正!