当前位置: 首页 > 其他范文 > 其他范文

万年历课程设计报告

作者:xiaoxiaofa | 发布时间:2021-01-04 10:17:20 收藏本文 下载本文

课程设计报告 课程名称 程序设计基础 专周题目 年历显示 姓 名 XX 班 级 XXXXXX 学 号 XX 指导教师 XXX 设计时间 2015-03-02至2015-03-06 XX学院计算机工程系 XX学院 课程设计(论文)任务书 一、课程设计题目 年历显示 二、课程设计工作自 2015 年 03 月 02 日至 2015 年 03 月 06 日。

三、课程设计地点: XXXX 四、课程设计内容要求:

1.本课程设计的目的 1)增进对C语言各理论知识的熟练程度,2)加强算法设计的能力,为以后的程序设计与编写打下良好基础。

3)增加对C语言的熟练程度,提高程序设计的能力,并初步接触实用程序的编写。

2.课程设计的任务及要求 题目:年历显示 要求:(1)

输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。

(2)

输入年月,输出该月的日历。

(3)

输入年月日,输出距今天还有多少天,星期几,是否是公历节日。

3)课程设计编写要求 1)详细清晰地描述个人的课程设计工作;

2)要按照本模板的规格打印誊写课程报告;

3)课程报告包括目录、内容提要、正文、课程设计体会、参考文献、附 录等;

4)课程报告装订按学校的统一要求完成 4)评分标准:

1)完成原理分析:20分;

2)完成设计过程:40分;

3)完成代码分析:20分。

4)个人创新工作:20分。

学生签名:

XX 2015年 3 月 8 日 目 录 目 录-1-正 文-2-一、需求分析-2-二、个人工作-2-三、概要设计-2-流程图……………………………………………………………….-2-程 序……………………………………………………………….-4-四、程序结果-7-课程设计体会-9-正 文 一、需求分析 我选择课程设计题目:年历显示 日常生活当中,我们查询日期很大程度上需要用到日历。而手动去翻纸质日历查询速度慢,而且会让人看的眼花缭乱。因此,我们可以编写一个程序来显示某一年的日历。

① 程序要能够准确输出某一年的日历;

② 程序要能够准确的输出某一年的某一月的月历;

③ 程序能够详细查询某一年某一天的日期;

④ 程序能够循环输出。

二、个人工作(1)、设计程序主题,根据输入的内容判断是否为年,月,日,然后输出对应内容;

(2)、想出一个算法,排列月份,使输出年历的格式与题目要求一样;

(3)、想出一个算法,计算某一天到现在时间有多少天。

(4)、编写打印年历的函数;

(5)、编写打印月历的函数;

(6)、编写计算日期的函数;

(7)、编写主程序。

设计方法:

先设计一个主程序,有特定的用户输入界面,然后根据输入的内容判断应该打印的内容。比如输入2015,程序判断为打印2015年的年历;

输入201503程序判断应该打印2015年3月的月历;

输入20150305,程序判断是查询2015年3月6日的信息。然后根据要执行的功能调用相应的函数。

然后分别设计打印日历和打印月历,以及判断日期的函数。函数思想会在后面的概要设计里面阐述。

三、概要设计 1、画出程序流程图;

主程序流程图:

打印年历或月历的流程图 2、根据流程图设计程序 首先是主程序,这个程序的主要功能是判断输入的内容并调用相应的函数。

主程序(部分):

#include #include void part1(int x);//函数1~6为打印日历的函数 void part2(int x);void part3(int x);void part4(int x);void part5(int x);void part6(int x);int weak(int x,int y);//计算1号对应的星期 int weak2(int x,int y,int z);//计算星期,为函数day提供数据 int year(int x);//打印日历的函数 int mouth(int x);//打印月历的函数 int day(int x);//查询天数的函数 int distance(int x,int y,int z);//提供距离天数查询 int main(){ int a;char z;x: //位置标注 printf(“\n“);printf(“请输入一个日期(Ex:20150302或201503或2015):“);scanf(“%d“,&a);printf(“\n“);if((1940<=a)&&(a<=2040))year(a);else if((194001<=a)&&(a<=204012))mouth(a);else if((19400101<=a)&&(a<=20401231))day(a);else {printf(“输入错误,请重新输入!“);goto x;} printf(“\n“);printf(“\n“);printf(“继续查询(y),退出(n):“);scanf(“%s“,&z);if(z=='y')goto x;else;return 0;} 然后是各部分的函数,主要列出几个比较重要的函数:

计算每个1日月对应星期几的函数:

int weak(int x,int y)//这个函数用于计算3~12月份的第一天对应的星期 {int w2,w3,a;if(x<2000)//小于两千年的一月份 {a=x-19*100;w2=(19/4)-2*19+(a+a/4)+(13*(y+1)/5);while(w2<0)w2=w2+7;w3=w2%7;} if(x>=2000)//大约两千年的一月份 {a=x-20*100;w2=(20/4)-2*20+(a+a/4)+(13*(y+1)/5);while(w2<0)w2=w2+7;w3=w2%7;} return w3;} 这个函数是通过使用蔡勒公式来实现的;

下面这个函数是计算某天距离现在还有多少天:

int distance(int x,int y,int z)//查询距今时间的函数 x,y,z为查询的年月日 { int monthday[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};//定义12个月每个月天数 int n1,y1,r1,i,temp,daytemp,x1,tempmonth1,tempmonth2,allday,t,y2;//n1,y1,r1为现在时间,通过输入t转换;

tempmonth1为计算以前年份后的月份的天数,tempmonth2计算现在日期月份的天数, //temp,x1,y2,t为临时变量 printf(“ \n“);printf(“请输入今天日期(Ex:20150305):“);scanf(“%d“,&t);//输入当前时间 n1=(int)(t/10000);y2=t%10000;y1=(int)(y2/100);r1=y2%100;//分别计算出年,月,日 temp=n1-x;if(temp<0)//将年份差值转换为正数 temp=-temp;daytemp=temp*365;//计算相差日期 x1=x;for(i=0;i

这个函数的算法是先计算两年之间的差值,然后加上现在时间的月份和日期,再减去查询哪一年已经过了的日期。

四、程序结果 1、查询主界面:

2、当输入数据为年份是,比如2015,打印2015年的年历;

3、当输入数据是月份时,比如:201503,打印2015年3月的月历;

4、当输入数据为某一天是,比如:20100305,输出这一天的详细信息;

5、退出查询 课程设计体会 通过这次C语言的课程设计,我明白了很多也知道了很多,更收获了很多。在课程设计的过程中出现过困难,但我都一一去客服,去解决。最终,终于完成了一份满意的程序。

转眼几天的课程设计已经结束了。回想学习C语言的过程中,既有快乐又有烦恼,回顾这次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。在设计的过程中遇到的问题,这毕竟独立做的,难免会遇到各种各样的问题,同时在设计的过程中发现自己的不足之处,对以前所学的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识从新温故。这次课设终于顺利完成了,在设计中遇到了很多编程问题 做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;

尽管对于有些人这种程序会很简单,可对于我们C语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在美妙啊!很感谢这次的课程设计,它使我更加地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;

另外,在做任何事倒要有耐心,不要一遇到困难就退缩。

人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的道路上,总遇到重重困难,但正是因为困难我们才变得更坚强。今后的路还很长,面对困难,让我们用行动去俘虏它吧!

课程设计报告

Java课程设计报告

“数据库系统原理”课程设计报告

自动控制原理课程设计报告

eda拔河游戏机课程设计报告

本文标题: 万年历课程设计报告
链接地址:https://www.dawendou.com/fanwen/qitafanwen/355687.html

版权声明:
1.大文斗范文网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《万年历课程设计报告》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。

重点推荐栏目

关于大文斗范文网 | 在线投稿 | 网站声明 | 联系我们 | 网站帮助 | 投诉与建议 | 人才招聘 | 网站大事记
Copyright © 2004-2025 dawendou.com Inc. All Rights Reserved.大文斗范文网 版权所有