课程名称
程序设计基础
专周题目
年历显示
姓 名
XX
班 级
XXXXXX
学 号
XX
指导教师
XXX
设计时间
2015030220150306
XX学院计算机工程系
XX学院
课程设计(文)务书
课程设计题目 年历显示
二课程设计工作 2015 年 03 月 02 日 2015 年 03 月 06 日
三课程设计点 XXXX
四课程设计容求:
1.课程设计目
1) 增进C语言理知识熟练程度
2) 加强算法设计力程序设计编写良基础
3)增加C语言熟练程度提高程序设计力初步接触实程序编写
2.课程设计务求
题目:年历显示
求:(1) 输入年份输出屏幕显示该年日历假定输入年份19402040年间
(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 xint y) 计算1号应星期
int weak2(int xint yint z) 计算星期函数day提供数
int year(int x) 印日历函数
int mouth(int x) 印月历函数
int day(int x) 查询天数函数
int distance(int xint yint z) 提供距离天数查询
int main()
{
int a
char z
x 位置标注
printf(\n)
printf(请输入日期(Ex:201503022015032015):)
scanf(d&a)
printf(\n)
if((1940 year(a)
else if((194001 mouth(a)
else if((19400101 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 xint y) 函数计算3~12月份第天应星期
{int w2w3a
if(x<2000) 两千年月份
{ax19*100
w2(194)2*19+(a+a4)+(13*(y+1)5)
while(w2<0)
w2w2+7
w3w27
}
if(x>2000) 约两千年月份
{ax20*100
w2(204)2*20+(a+a4)+(13*(y+1)5)
while(w2<0)
w2w2+7
w3w27
}
return w3
}
函数通蔡勒公式实现
面函数计算某天距离现少天:
int distance(int xint yint z) 查询距时间函数 xyz查询年月日
{
int monthday[13] {0312831303130313130313031} 定义12月月天数
int n1y1r1itempdaytempx1tempmonth1tempmonth2alldayty2
n1y1r1现时间通输入t转换tempmonth1计算前年份月份天数tempmonth2计算现日期月份天数
tempx1y2t时变量
printf( \n)
printf(请输入天日期(Ex20150305):)
scanf(d&t) 输入前时间
n1(int)(t10000)
y2t10000
y1(int)(y2100)
r1y2100 分计算出年月日
tempn1x
if(temp<0) 年份差值转换正数
temptemp
daytemptemp*365 计算相差日期
x1x
for(i0i
if(x140)
{
if(x11000)
daytemp++
else if((x11000)&&(x14000))
daytemp++
else
}
函数算法先计算两年间差值然加现时间月份日期减查询年已日期
四 程序结果
1查询界面:
2输入数年份2015印2015年年历
3输入数月份时:201503印2015年3月月历
4输入数某天:20100305输出天详细信息
5退出查询
课程设计体会
通次C语言课程设计明白知道更收获课程设计程中出现困难客服解决终终完成份满意程序
转眼天课程设计已结束回想学C语言程中快乐烦恼回顾次课程设计感慨颇确题目完成整编程理实践整整星期日子里学东西时仅巩固前学知识学书没学知识通次课程设计懂理实际相结合重理知识远远够学理知识实际相结合起理中出结真正社会服务提高实际动手力独立思考力设计程中遇问题毕竟独立做难免会遇种样问题时设计程中发现足处前学知识理解够深刻掌握够牢固说结构体……通次课程设计定前学知识新温次课设终利完成设计中遇编程问题
做完课程设计信子提高会写程序种程序会简单C语言初学者说已容易次体验学计算机增强信心享受劳动成果滋味实美妙啊
感谢次课程设计更加体会专业书重性掌握定量专业知识心应手解决诸问题外做事倒耐心遇困难退缩
生道路曲折正曲折生光彩夺目生道路总遇重重困难正困难变更坚强路长面困难行动俘虏吧
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档