c语言课程设计——万年历的设计

上传人:aa****6 文档编号:38365278 上传时间:2018-05-01 格式:DOC 页数:19 大小:170.50KB
返回 下载 相关 举报
c语言课程设计——万年历的设计_第1页
第1页 / 共19页
c语言课程设计——万年历的设计_第2页
第2页 / 共19页
c语言课程设计——万年历的设计_第3页
第3页 / 共19页
c语言课程设计——万年历的设计_第4页
第4页 / 共19页
c语言课程设计——万年历的设计_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《c语言课程设计——万年历的设计》由会员分享,可在线阅读,更多相关《c语言课程设计——万年历的设计(19页珍藏版)》请在金锄头文库上搜索。

1、第 1 页 共 19 页单单 位位 电气与电子工程电气与电子工程 分院分院( (系系) )专专 业业 电气信息类电气信息类 学学 号号 学生姓名学生姓名 指导教师指导教师 完成日期完成日期 20122012 年年 6 6 月月 2020 日日石家庄铁道大学课程设计万年历的设计第 2 页 共 19 页摘 要万年历是生活中经常用到的东西,它不仅能够查询本年的日期信息,也能查 询若干年前或若干年后的日期信息。本工具就是基于开发工具 WinTC 做出的 万年历,功能齐全,包括默认显示当前日期,查询年历、月历、日历等,界面 整洁,显示清晰。关键词:万年历,Win-TC,功能齐全 第 3 页 共 19 页

2、目录第 1 章 选题的意义 31.1 自我介绍 3 1.2 选题名称 31.3 选择本题的意义 41.4 选择本题对 C 语言学习的意义 41.5 时间安排 41.6 参考资料 4第 2 章 系统功能需求分析 62.1 系统的基本要求 6 2.2 功能模块 6 2.3 流程图说明 6第 3 章 系统设计 73.1 流程图 7 3.2 数据结构 8 3.3 中心算法代码 8第 4 章 系统实现 94.1 程序代码 94.2 系统使用 164.3 运行效果说明 16第 5 章 总结 185.1 独特设计 185.2 设计中的问题以及收获 185.3 设计题目及功能的改进意见 185.4 结束语 1

3、8致谢词 19第 4 页 共 19 页第第 1 章章 选题的意义选题的意义1.1 自我介绍自我介绍班级:电 09 学号: 姓名: 专业:电气信息类 1.2 选题名称选题名称万年历的设计1.3 选择本题的意义选择本题的意义随着生活节奏的加快,人们不可能仅仅满足对当天的日程进行安排,往往需要对几天、 几个月甚至几年之后的工作进行安排,这就需要充分了解当天的信息,包括年、月、日、 星期、是否为闰年等等。万年历就能很好的完成这项工作。因此,一个界面整洁,显示清 晰的万年历显得尤为重要,它不仅能帮助人们了解将来的日期信息,也能帮助人们回忆过 去的日子,让看上去烦乱的日期表变得简明而直观。1.4 选择本题

4、对选择本题对 C 语言学习的意义语言学习的意义在程序设计过程中,会用到 C 语言的许多知识,包括数组、指针;结构体、文件、循环 结构等等,通过设计的训练,会对 C 语言有更深刻的了解,掌握利用 C 语言相关函数开发 万年历的基本原理,为以后的学习与开发打下坚实的基础。1.5 时间安排时间安排5 月 22 日 对所选题目用到的知识点上机实验。 5 月 23 日 初步完成课程设计报告中“选题意义”部分的内容。根据课程设计任务书 要求,进行系统功能需求分析和设计;设计初始代码框架。 5 月 29 日 系统功能需求分析,系统设计;初步完成课程设计报告“系统功能需求分 析” , “系统设计”部分的内容。

5、 5 月 30 日完善课程设计报告“系统功能需求分析” , “系统设计”部分的内容,并上传 服务器;设计初始代码,部分功能实现。 6 月 5 日编写程序代码;部分功能实现;补充完善课程设计报告“系统功能需求分析” 、 “系统设计” 。 6 月 6 日编写程序代码;部分功能实现;补充完善课程设计报告“系统功能需求分析” 、 “系统设计” 。 6 月 12 日编写程序代码;部分功能实现;补充完善课程设计报告“系统功能需求分析” 、 “系统设计” 。第 5 页 共 19 页6 月 13 日编写程序代码;完成全部功能;补充完善课程设计报告“系统功能需求分析” 、 “系统设计” 。 6 月 19 日调试

6、代码;完成功能;撰写课程设计报告 6 月 20 日调试代码、美化界面;运行完成全部功能;撰写课程设计报告。1.6 参考资料参考资料1. C语言程序设计实例精粹语言程序设计实例精粹. 谭明金谭明金 . 电子工业出版社电子工业出版社 2. C语言编程技巧及实用程序荟萃语言编程技巧及实用程序荟萃. 鲁沐浴鲁沐浴. 电子工业出版社电子工业出版社 3. C语言解惑语言解惑.Alan R.Feuer. 人民邮电出版社人民邮电出版社 4. C语言实例解析精粹语言实例解析精粹. 曹衍龙曹衍龙 . 人民邮电出版社人民邮电出版社 5. C语言实战语言实战105例例. 王为青王为青. 人人民邮电出版社民邮电出版社

7、6. MSDN 第 6 页 共 19 页第第 2 章章 系统功能需求分析系统功能需求分析2.1 系统的基本要求系统的基本要求要求实现日历显示、查询任意日期功能,进行日期合法性检查功能。 1.日历显示功能。该日历能够根据系统日期进行初始化,如果没有任何的输入,则会 显示系统日期所在月份的月历,并能突出显示当前日期。 2.日期查询、闰年判断功能。输入日期进行查询,查询后将显示查询日期所在月份的 月历,并突出显示查询日期。如果是闰年,则给出提示。 3.日期合法性检查功能。程序还设置有对输入的日期进行合法性检查功能,如果年份、 月份或者天数不合法,查询将被拒绝,并显示提示信息。 4.支持通过键盘操作设

8、定系统日期。通过键盘的操作调整年份、月份和日期,并显示 调整后的日期。还可以通过键盘操作复位到系统所在日期等。如:左移键表示减少月份、 右移键表示增加月份;上移键表示减少年份、下移键表示增加年份;如S键表示显示系统 日期;如果按ESC键,表示退出系统等。2.2 功能模块功能模块显示部分:显示系统当月月历,突出显示当前日期,并且能够翻阅万年历; 查询部分:根据用户输入,查询用户所需的日期信息.2.3 流程图说明流程图说明(1)显示系统的当前日期 用函数 getdate()获得系统当前时间;用 printWNL()函数打印当天的日历;根据用户 、的输入进行年、月的翻查;Tab 键表示用户需要输入进

9、行查询,点此键可 进入第二部分,Esc 退出; (2)根据用户输入,查询其它日期: isLeap()判断输入数据是否是闰年;maxDay()判断某年某月最多天数; eachYearTotal()判断这一天是该年的第几天;week 判断某年某月某日的编号; output()输出该天星期几;display()显示当前月历;check()检查有效性; display3()输出日历;getMenu()调菜单;第 7 页 共 19 页第第 3 章章 系统设计系统设计3.1 流程图流程图开始始getMenu输出信息fflush(stdin )输入 select 值fflush(stdin)select输出

10、 shurunian输入 year 值flag=check(year, 1,1)flag=0提示输入有误开始调用 getsystime(存储 112 月每个月的天数3.3 中心算法代码中心算法代码void printWNL(int, int); 简单格式打印万年历 int Week(int,int,int); 求星期几 int getDays(int, int); 计算某个月的天数 int isRunNian(int); 判断是否闰年 int eachYearTotal(int year,int month,int day);判断是第几天 int week(int year,int month

11、,int day);判断星期几 int check(int year,int month,int day); 检查输入 display();显示当前月历; void display3(int year,int month,int day);输出日历; 第 9 页 共 19 页第第 4 章章 系统实现系统实现4.1 程序代码程序代码#include #include #include #include #include #include #define up 72 #define down 80 #define left 75 #define right 77 #define Tab 9 #de

12、fine Esc 27 #define s 115void printWNL(int, int); int Week(int,int,int); int getDays(int, int); int isRunNian(int); int isLeap(int year); int maxDay(int year,int month); int eachYearTotal(int year,int month,int day); int week(int year,int month,int day); char *chineseWeek(int number); void output(in

13、t year,int month,int day); void display(int year,int month); int check(int year,int month,int day); void display1(int year); void display2(int year,int month); void display3(int year,int month,int day); void getMenu();第 10 页 共 19 页void main() int year,month,q,y,m,d1;struct date d;char ch; int day,fl

14、ag,select;getdate( year = d.da_year;month = d.da_mon;day = d.da_day;y = d.da_year;m= d.da_mon;d1 = d.da_day;dosystem(“cls“); printf(“今天是:%d 月%d 日“,m,d1);q=isLeap(year) ;if(q=1) printf(“n 注:本年为闰年.“) ;printf(“n“);printWNL(year,month);ch = getch(); if(ch =Esc)goto stop;if(ch =Tab)break;else if(ch = 0)c

15、h = getch(); switch(ch)case s: year = d.da_year;month = d.da_mon;day = d.da_day;break;case left: year-; break;case right: year+; break;case up:month-; if(month = 0)month = 12;第 11 页 共 19 页year-;break;case down:month+;if(month = 13)month = 1;year+;break;default:;while(1);printf(“n 请选择(输入相应数字):“);while(1) getMenu(); printf(“输入选择: “); fflush(stdin); scanf(“%d“, fflush(stdin); switch(select) case 1: do printf(“输入年 月 日(年、月、日之间加空格): “); scanf(“%d%d%d“, flag=check(year,month,day); if(flag=0) printf(“输入有误,请重新输入!n“); while(flag=0); display3(year,mont

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号