万年历课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
课程名称程序设计基础专周题目年历显示
姓名XX
班级XXXXXX
学号XX
指导教师XXX
设计时间2015-03-02至2015-03-06
成都工业学院计算机工程系
成都工业学院
课程设计(论文)任务书
一、课程设计题目年历显示
二、课程设计工作自 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-
程序……………………………………………………………….- 4-
四、程序结果..................................................................... 错误!未定义书签。
课程设计体会............................................................................. 错误!未定义书签。
正文
一、需求分析
我选择课程设计题目:年历显示
日常生活当中,我们查询日期很大程度上需要用到日历。而手动去翻纸质日历查询速度慢,而且会让人看的眼花缭乱。因此,我们可以编写一个程序来显示某一年的日历。
①程序要能够准确输出某一年的日历;
②程序要能够准确的输出某一年的某一月的月历;
③程序能够详细查询某一年某一天的日期;
④程序能够循环输出。
二、个人工作
(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)