专业课程设计实验报告万年历.doc
《专业课程设计实验报告万年历.doc》由会员分享,可在线阅读,更多相关《专业课程设计实验报告万年历.doc(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、专业课程设计实验报告万年历C+课程设计简单万年历制作C+语言程序设计课程设计报告设计题目:简单万年历 专 业:网络工程 班 级:12级 姓 名:杨茂林 学 号:121124028 联系方式:13213501410 目 录1.设计目标32.设计思想33.类及函数的实现34.程序流程图35.程序源代码116.调试记录307.调试语录338.总结34简单万年历程序1.1设计题目描述 本程序是一个简单的实现时间系统功能的万年历程序,此程序是为了遵循用户的意愿与指示对用户输入的日期进行简单的处理,输出所要查询的日期的信息,如:当时的时间,年月日,生肖,天干地支,以及输出所要查询的日期日历并以日历形式排列
2、出来。1.2设计目标本程序有以下目标要实现:用户可以进行选择,是要进行万年历时间校对系统还是万年历的查询系统,用户可以随时退出系统;:显示本地时间,并征询用户的意见是否要进行时间调整,如果进行了时间调整,要输出调整后的时间;:查询某年的万年历,并输出当年的年历,并显示所要查询的年份,显示出一年的日历、当年的天干地支、生肖、并判断是否为闰年;:将的功能具体到月份;:将的功能具体到日,并判断出用户所要查询的日期当天是什么节日,以及用户所要查询的节日距今天有多少天; :用户多次进行输入,知道用户满意为止。2.设计思想本程序中,因为要用到万年历的时间校对系统,所以,在设计的时候,我定义了一个时间类:c
3、lock类;由于系统要同步到本地的时间(即为运行时电脑上显示的时间),这里用到了 struct time结构体,接下来就是万年历的查询系统功能里面的函数,这些函数要实现的有指导用户进行操作的选项的界面,有计算该月的1号是星期几的函数,有输出每周即每月的表头函数、判断是否为闰年、判断每个月有多少天、要查询的那天距今天有多少天、判断所要查询的年份有多少天、计算指定日期距今天有多少天等函数。其中,共含一个主函数文件、三个功能文件、一个功能函数头文件、界面文件以及时钟类文件。其中,功能函数是主要的函数实现部分,时钟类则主要是实现万年历时间系统。3.类及函数的实现在此只涉及部分函数的实现细节,其他函数详
4、看程序源代码:1.1本程序中,我只设计了一个clock类,类里面有实现时间系统校对功能的私有量,在进行时间校对的过程中,我选择了重载的方法,以达到自己想要的结果。1.2函数部分的实现则是比较普通的,没有什么特殊的地方。其中有如下函数需要实现:int week(int y,int m);/计算该月一号是星期几void printweek();/输出每周表头void printmonth(int m);/输出每月表头int leep(int y);/判断该年是否闰年int md(int y,int m);/判断该月有多少天void other(int year);int days1(int y,i
5、nt m,int d);/计算该天时这一年的第几天int days2(int y);/判断该年有多少天int days3(int y);/计算从元年到该之年前总天数int totaldays(int y,int m,int d);/计算指定日期距今天的天数int yi();/实现万年历的时间校对功能 int er();/进入万年历的系统功能 int first();/实现第一个功能int second();/实现第二个功能void third();/实现第三功能/int tiangandizhi();int jiemian1();/界面1int jiemian2();在jiemian(),in
6、t md()及void third()的实现过程中,我选用了 switch-case套用switch-case语句;在int week()函数中,我采用了蔡勒公式用于计算每个月的星期一是多少,其他函数的实现详看源代码。 1.3在这个程序设计中,有好多知识是我以前没有接触过得,这一点还是比较欣慰的吧,例如,system(“pause”)有着清屏作用,还有就是计算每个月的1号是星期几的问题以及程序运行后背景与字体颜色的变换要用到system(“color”, 9b)4.程序流程图开始进入欢迎页面选择相应的系统功能选择相应按任意键继续进行1.万年历时间校对功能2.万年历时间查询功能3.退出时间校对的
7、实现万年历三个查询功能的实现显示结果按任意键继续进行万年历时间校对系统的实现显示当地时间是否要进行时间调整按y任意键调大还是调小按m要增加的小时的个数要增加的分钟的个数要增加的秒的个数按n要减少的小时的个数要减少的分钟的个数要减少的秒的个数显示结果时间校对系统结束万年历的三个查询系统功能的实现1.查询某年的日历2查询某年某月的日历3.查询某年某月某日的日历输入要查询的年份输入要查询的年月输入要查询的年月日显示结果点任意键返回查询系统的第一个功能界面输入要查询的月份输出所要查询的年份的天干地支,生肖,是否为闰年定义月份变量m,并付初始值m=1判断该月天数根据年月由蔡勒公式计算出该月1号是星期几输
8、出月份和每周的表头用循环输出前面空白的部分用循环输出该月的日历m=12m+第一个功能结束用循环输出前面空白的部分输出月份和每周的表头根据年月由蔡勒公式计算出该月1号是星期几判断该月天数输出所要查询的年份的天干地支,生肖,是否为闰年输入要查询的年月查询系统的第二个功能界面用循环输出该月的日历第二个功能结束输入要查询的年月日查询系统的第三个功能界面输出所要查询的年份的天干地支,生肖,是否为闰年距今天多少天判断该日期是星期几判断该日期是不是公历节日输入的日期距元年1月1日的天数系统的日期距元年1月1日的天数蔡勒公式计算,并用switch语句判断余数,输出对应的语句用switch语句判断是否为公历节日
9、,并输出对应的语句第三个功能结束5.程序源代码#include#include/文件输出#include/清屏#include/控制宽度#include /这两个头文件是为了调用系统时间的#include #include#includeusing namespace std;int week(int y,int m);/计算该月一号是星期几void printweek();/输出每周表头void printmonth(int m);/输出每月表头int leep(int y);/判断该年是否闰年int md(int y,int m);/判断该月有多少天void other(int year)
10、;/以下六个函数是第三个功能里的int days1(int y,int m,int d);/计算该天时这一年的第几天int days2(int y);/判断该年有多少天int days3(int y);/计算从元年到该之年前总天数int totaldays(int y,int m,int d);/计算指定日期距今天的天数int yi();/实现万年历的时间校对功能 int er();/进入万年历的系统功能 int first();/实现第一个功能int second();/实现第二个功能void third();/实现第三功能/int tiangandizhi();int jiemian1()
11、;/界面1int jiemian2();int jiemian() system(cls); system(color 9d);/控制程序背景和字体的颜色,均为16进制,9背景颜色,d字体颜色 coutsetw(6) =endl; coutsetw(6) =endl; coutsetw(6) - - endl; coutsetw(6) endl; coutsetw(6) 欢迎进入万年历的页面 endl; coutsetw(6) endl; coutsetw(6) endl; coutsetw(6) endl; coutsetw(6) endl; coutsetw(6) endl; coutse
12、tw(6) *-该万年历有以下功能供您选择-* endl; coutsetw(6) endl; coutsetw(6) *.1.万年历的时间校对系统.* endl; coutsetw(6) *.2.万年历的查询系统.* endl; coutsetw(6) *.0.退出.* endl; coutsetw(6) . endl; coutsetw(6) =WvWvWWvWvW=endl; coutendlendl; cout请输入您要使用的功能的序号(回车键确认):; coutn;switch(n)case 1:yi();break;case 2:er();break;case 0:exit(0);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 专业课程 设计 实验 报告 万年历
限制150内