




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 PAGE9 页 共 NUMPAGES9 页c语言万年历设计思路万年历课程设计报告课程设计报告 课程名称 程序设计基础 专周题目 年历显示 姓 名 XX 班 级 XXXXXX 学 号 XX 指导教师 XXX 设计时间 20XX-03-02至20XX-03-06 XX学院计算机工程系 XX学院 课程设计(论文)任务书 一、课程设计题目 年历显示 二、课程设计工作自 20XX 年 03 月 02 日至 20XX 年 03 月 06 日。 三、课程设计地点: XXXX 四、课程设计内容要求: 1本课程设计的目的 1) 增进对C语言各理论知识的熟练程度, 2) 加强算法设计的能力,为以后的程序设计与
2、编写打下良好基础。 3)增加对C语言的熟练程度,提高程序设计的能力,并初步接触实用程序的编写。 2课程设计的任务及要求 题目:年历显示 要求:(1)输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。 (2)输入年月,输出该月的日历。 (3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。 3)课程设计编写要求 1)详细清晰地描述个人的课程设计工作; 2)要按照本模板的规格打印誊写课程报告; 3)课程报告包括目录、内容提要、正文、课程设计体会、【参考文献】:p 、附 录等; 4)课程报告装订按学校的统一要求完成 4)评分标准: 1)完成原理分析p :
3、20分; 2)完成设计过程:40分; 3)完成代码分析p :20分。 4)个人创新工作:20分。 学生签名: XX 20XX年 3 月 8 日 目 录 目 录 - 1 - 正 文 - 2 - 一、需求分析p - 2 - 二、个人工作 - 2 - 三、概要设计 - 2 - 流程图.- 2- 程 序.- 4- 四、程序结果 - 7- 课程设计体会 - 9- 正 文 一、 需求分析p 我选择课程设计题目:年历显示 日常生活当中,我们查询日期很大程度上需要用到日历。而手动去翻纸质日历查询速度慢,而且会让人看的眼花缭乱。因此,我们可以编写一个程序来显示某一年的日历。 程序要能够准确输出某一年的日历; 程
4、序要能够准确的输出某一年的某一月的月历; 程序能够详细查询某一年某一天的日期; 程序能够循环输出。 二、 个人工作(1)、设计程序主题,根据输入的内容判断是否为年,月,日,然后输出对应内容; (2)、想出一个算法,排列月份,使输出年历的格式与题目要求一样; (3)、想出一个算法,计算某一天到现在时间有多少天。 (4)、编写打印年历的函数; (5)、编写打印月历的函数; (6)、编写计算日期的函数; (7)、编写主程序。 设计方法: 先设计一个主程序,有特定的用户输入界面,然后根据输入的内容判断应该打印的内容。比如输入20XX,程序判断为打印20XX年的年历;输入20XX03程序判断应该打印20
5、XX年3月的月历;输入20XX0305,程序判断是查询20XX年3月6日的信息。然后根据要执行的功能调用相应的函数。 然后分别设计打印日历和打印月历,以及判断日期的函数。函数思想会在后面的概要设计里面阐述。 三、概要设计 1、画出程序流程图; 主程序流程图: 打印年历或月历的流程图 2、根据流程图设计程序 首先是主程序,这个程序的主要功能是判断输入的内容并调用相应的函数。 主程序(部分): _include _include void part1(int x); /函数16为打印日历的函数 void part2(int x); void part3(int x); void part4(int
6、 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(“请
7、输入一个日期(Ex:20XX0302或20XX03或20XX):“); scanf(“%d“,&;a); printf(“n“); if(1940=a)&;&;(a=2040) year(a); else if(194001=a)&;&;(a=204012) mouth(a); else if(19400=a)&;&;(a=20401231) day(a); else printf(“输入错误,请重新输入!“); goto x; printf(“n“); printf(“n“); printf(“继续查询(y),退出(n):“); scanf(“%s“,&;z); if(z=y) goto x
8、; else ; return 0; 然后是各部分的函数,主要列出几个比较重要的函数: 计算每个1日月对应星期几的函数: int weak(int x,int y) /这个函数用于计算312月份的第一天对应的星期 int w2,w3,a; if(x2000) /小于两千年的一月份 a=x-19*100; w2=(19/4)-2*19+(a+a/4)+(13*(y+1)/5); while(w2=2000) /大约两千年的一月份 a=x-20*100; w2=(20/4)-2*20+(a+a/4)+(13*(y+1)/5); while(w20) w2=w2+7; w3=w2%7; return
9、 w3; 这个函数是通过使用蔡勒公式来实现的; 下面这个函数是计算某天距离现在还有多少天: int distance(int x,int y,int z) /查询距今时间的函数 x,y,z为查询的年月日 int monthday13 = 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计算现在日
10、期月份的天数, /temp,x1,y2,t为临时变量 printf(“ n“); printf(“请输入今天日期(Ex:20XX0305):“); scanf(“%d“,&;t); /输入当前时间 n1=(int)(t/10000); y2=t%10000; y1=(int)(y2/100); r1=y2%100; /分别计算出年,月,日 temp=n1-x; if(temp0) /将年份差值转换为正数 temp=-temp; daytemp=temp*365; /计算相差日期 x1=x; for(i=0;itemp;i+) /计算闰年多的一天 if(x1%4=0) if(x1%100!=0)
11、 daytemp+; else if(x1%100=0)&;&;(x1%400=0) daytemp+; else ; 。 这个函数的算法是先计算两年之间的差值,然后加上现在时间的月份和日期,再减去查询哪一年已经过了的日期。 四、 程序结果 1、查询主界面: 2、当输入数据为年份是,比如20XX,打印20XX年的年历; 3、当输入数据是月份时,比如:20XX03,打印20XX年3月的月历; 4、当输入数据为某一天是,比如:20220305,输出这一天的详细信息; 5、退出查询 课程设计体会 通过这次C语言的课程设计,我明白了很多也知道了很多,更收获了很多。在课程设计的过程中出现过困难,但我都一
12、一去客服,去解决。最终,终于完成了一份满意的程序。 转眼几天的课程设计已经结束了。回想学习C语言的过程中,既有快乐又有烦恼,回顾这次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。在设计的过程中遇到的问题,这毕竟独立做的,难免会遇到各种各样的问题,同时在设计的过程中发现自己的不足之处,对以前所学的知识理解得不够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识从新温故。这次课设终于顺利完成了,在设计中遇到了很多编程问题 做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对于我们C语言初学者来说,已经很不容易了。这次体验为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西省江铜铜箔科技股份有限公司2025年度校园招聘【204人】笔试参考题库附带答案详解
- 滨州2025年山东滨州邹平市事业单位(综合类)招聘62人笔试历年参考题库附带答案详解
- 河南省商丘市商师联盟2024-2025学年高一上学期期末英语试题(解析版)
- 2025年基金从业资格考试《证券投资基金基础知识》全真模拟卷一
- 2021年5月23日二级建造师考试《公路工程管理与实务》真题及答案
- 以患者为中心的规范化健康宣教对高血压患者治疗依从性及血压水平的影响
- 高考病句修改模拟小练习:主客颠倒(附答案)
- 脑血管病的观察及护理
- 自拍馆创业策划书
- 2025年会计职称考试《初级会计实务》易错难题突破专项复习与实战
- 【超星学习通】马克思主义基本原理(南开大学)尔雅章节测试网课答案
- 中考道德与法治真题专题复习 坚持宪法至上(原卷版)
- 【MOOC】电工学-中原工学院 中国大学慕课MOOC答案
- 滥用抗生素现状及危害课件
- 机械制造技术基础(课程课件完整版)
- 上下级关系与领导力管理制度
- 堆垛机保护保养手册
- 2024年卫生资格(中初级)-初级药师考试近5年真题集锦(频考类试题)带答案
- 2024年职业病防治考试题库附答案(版)
- 【呋塞米合成工艺的探究进展5300字(论文)】
- GB/T 18385-2024纯电动汽车动力性能试验方法
评论
0/150
提交评论