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

上传人:re****.1 文档编号:511746075 上传时间:2023-03-17 格式:DOC 页数:19 大小:172KB
返回 下载 相关 举报
C语言课程设计——万年历的设计_第1页
第1页 / 共19页
C语言课程设计——万年历的设计_第2页
第2页 / 共19页
C语言课程设计——万年历的设计_第3页
第3页 / 共19页
C语言课程设计——万年历的设计_第4页
第4页 / 共19页
C语言课程设计——万年历的设计_第5页
第5页 / 共19页
点击查看更多>>
资源描述

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

1、石家庄铁道大学课程设计万年历的设计单 位 电气与电子工程 分院(系)专 业 电气信息类 学 号 学生姓名 指导教师 完成日期 2021年 6月20日摘 要 万年历是生活中经常用到的东西,它不仅能够查询本年的日期信息,也能查询假设干年前或假设干年后的日期信息。本工具就是基于开发工具WinTC做出的万年历,功能齐全,包括默认显示当前日期,查询年历、月历、日历等,界面整洁,显示清晰。关键词:万年历,Win-TC,功能齐全 目录第1章 选题的意义 31.1自我介绍 31.2选题名称 31.3 选择此题的意义 41.4 选择此题对C语言学习的意义 41.5时间安排 41.6参考资料 4第2章 系统功能需

2、求分析 62.1系统的根本要求 62.2 功能模块 62.3 流程图说明 6第3章 系统设计 73.1 流程图 73.2 数据结构 83.3 中心算法代码 8第4章 系统实现 94.1 程序代码 94.2 系统使用 164.3 运行效果说明 16第5章 总结 185.1 独特设计 185.2 设计中的问题以及收获 185.3设计题目及功能的改良意见 185.4 结束语 18致谢词 19第1章 选题的意义1.1自我介绍班级:电09 学号: 姓名: 专业:电气信息类 1.2选题名称万年历的设计1.3 选择此题的意义 随着生活节奏的加快,人们不可能仅仅满足对当天的日程进行安排,往往需要对几天、几个月

3、甚至几年之后的工作进行安排,这就需要充分了解当天的信息,包括年、月、日、星期、是否为闰年等等。万年历就能很好的完成这项工作。因此,一个界面整洁,显示清晰的万年历显得尤为重要,它不仅能帮助人们了解将来的日期信息,也能帮助人们回忆过去的日子,让看上去烦乱的日期表变得简明而直观。1.4 选择此题对C语言学习的意义 在程序设计过程中,会用到C语言的许多知识,包括数组、指针;结构体、文件、循环结构等等,通过设计的训练,会对C语言有更深刻的了解,掌握利用C语言相关函数开发万年历的根本原理,为以后的学习与开发打下坚实的根底。1.5时间安排5月22日 对所选题目用到的知识点上机实验。5月23日 初步完成课程设

4、计报告中“选题意义局部的内容。根据课程设计任务书要求,进行系统功能需求分析和设计;设计初始代码框架。5月29日 系统功能需求分析,系统设计;初步完成课程设计报告“系统功能需求分析,“系统设计局部的内容。5月30日完善课程设计报告“系统功能需求分析,“系统设计局部的内容,并上传效劳器;设计初始代码,局部功能实现。6月5日编写程序代码;局部功能实现;补充完善课程设计报告“系统功能需求分析、“系统设计。6月6日编写程序代码;局部功能实现;补充完善课程设计报告“系统功能需求分析、“系统设计。6月12日编写程序代码;局部功能实现;补充完善课程设计报告“系统功能需求分析、“系统设计。6月13日编写程序代码

5、;完成全部功能;补充完善课程设计报告“系统功能需求分析、“系统设计。6月19日调试代码;完成功能;撰写课程设计报告6月20日调试代码、美化界面;运行完成全部功能;撰写课程设计报告。1.6参考资料1. ?C语言程序设计实例精粹?. 谭明金 . 电子工业出版社2. ?C语言编程技巧及实用程序荟萃?. 鲁沐浴. 电子工业出版社3. ?C语言解惑?.Alan R.Feuer. 人民邮电出版社4. ?C语言实例解析精粹?. 曹衍龙 . 人民邮电出版社5. ?C语言实战105例?. 王为青. 人民邮电出版社6. MSDN 第2章 系统功能需求分析2.1系统的根本要求要求实现日历显示、查询任意日期功能,进行

6、日期合法性检查功能。1.日历显示功能。该日历能够根据系统日期进行初始化,如果没有任何的输入,那么会显示系统日期所在月份的月历,并能突出显示当前日期。2.日期查询、闰年判断功能。输入日期进行查询,查询后将显示查询日期所在月份的月历,并突出显示查询日期。如果是闰年,那么给出提示。3.日期合法性检查功能。程序还设置有对输入的日期进行合法性检查功能,如果年份、月份或者天数不合法,查询将被拒绝,并显示提示信息。4.支持通过键盘操作设定系统日期。通过键盘的操作调整年份、月份和日期,并显示调整后的日期。还可以通过键盘操作复位到系统所在日期等。如:左移键表示减少月份、右移键表示增加月份;上移键表示减少年份、下

7、移键表示增加年份;如S键表示显示系统日期;如果按ESC键,表示退出系统等。2.2 功能模块显示局部:显示系统当月月历,突出显示当前日期,并且能够翻阅万年历;查询局部:根据用户输入,查询用户所需的日期信息.2.3 流程图说明1显示系统的当前日期用函数getdate()获得系统当前时间;用printWNL函数打印当天的日历;根据用户、的输入进行年、月的翻查;Tab键表示用户需要输入进行查询,点此键可进入第二局部,Esc退出;2根据用户输入,查询其它日期:isLeap判断输入数据是否是闰年;maxDay判断某年某月最多天数;eachYearTotal判断这一天是该年的第几天;week判断某年某月某日

8、的编号;output输出该天星期几;display显示当前月历;check检查有效性;display3输出日历;getMenu调菜单;第3章 系统设计3.1 流程图开始调用getsystime(&t)调用printWNL输出当前日期控制键翻阅Tab键查询开始始getMenu输出信息fflushstdin输入select值fflushstdinselect输出shurunian输入year值flag=checkyear,1,1flag=0提示输入有误退出Esc3.2 数据结构a=31,28,31,30,31,30,31,31,30,31,30,31;存储112月每个月的天数3.3 中心算法代码v

9、oid 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,int day);判断星期几 int check(int year,int month,int day); 检查输入display;显示当前月历;void display3(int year,int mo

10、nth,int day);输出日历; 第4章 系统实现4.1 程序代码#include #include #include #include #include #include #define up 72#define down 80#define left 75#define right 77#define Tab 9#define Esc 27#define s 115void printWNL(int, int); int Week(int,int,int); int getDays(int, int); int isRunNian(int); int isLeap(int year);

11、 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(int year,int month,int day); void display(int year,int month); int check(int year,int month,int day); void display1(int year); void display

12、2(int year,int month); void display3(int year,int month,int day); void getMenu();void main() int year,month,q,y,m,d1; struct date d; char ch;int day,flag,select; getdate(&d); year = d.da_year; month = d.da_mon; day = d.da_day; y = d.da_year; m= d.da_mon; d1 = d.da_day; do system(cls); printf(今天是:%d月

13、%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) ch = 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; year-; break; case down: month+; if(month = 13) month = 1; year+; break; default:; while(1); printf(n请选择(输入相应数字):);while(1) getMenu(); printf(输入选择: ); fflush(stdin);

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

当前位置:首页 > 商业/管理/HR > 商业计划书

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