1、C+ 课程设计简单万年历制作1C+语言程序设计课程设计报告设计题目:简单万年历 专 业:网络工程 班 级:12 级 姓 名:杨茂林 学 号:121124028 联系方式: 13213501410 C+ 课程设计简单万年历制作2目 录1.设计目标32.设计思想33.类及函数的实现34.程序流程图35.程序源代码116.调试记录307.调试语录338.总结34C+ 课程设计简单万年历制作3简单万年历程序1.1 设计题目描述本程序是一个简单的实现时间系统功能的万年历程序,此程序是为了遵循用户的意愿与指示对用户输入的日期进行简单的处理,输出所要查询的日期的信息,如:当时的时间,年月日,生肖,天干地支,
2、以及输出所要查询的日期日历并以日历形式排列出来。1.2 设计目标本程序有以下目标要实现:用户可以进行选择,是要进行万年历时间校对系统还是万年历的查询系统,用户可以随时退出系统;:显示本地时间,并征询用户的意见是否要进行时间调整,如果进行了时间调整,要输出调整后的时间;:查询某年的万年历,并输出当年的年历,并显示所要查询的年份,显示出一年的日历、当年的天干地支、生肖、并判断是否为闰年;:将的功能具体到月份;:将的功能具体到日,并判断出用户所要查询的日期当天是什么节日,以及用户所要查询的节日距今天有多少天;:用户多次进行输入,知道用户满意为止。2.设计思想本程序中,因为要用到万年历的时间校对系统,
3、所以,在设计的时候,我定义了一个时间类:clock 类;由于系统要同步到本地的时间(即为运行时电脑上显示的时间) ,这里用到了 struct time 结构体,接下来就是万年历的查询系统功能里面的函数,这些函数要实现的有指导用户进行操作的选项的界面,有计算该月的 1 号是星期几的函数,有输出每周即每月的表头函数、判断是否为闰年、判断每个月有多少天、要查询的那天距今天有多少天、判断所要查询的年份有多少天、计算指定日期距今天有多少天等函数。其中,共含一个主函数文件、三个功能文件、一个功能函数头文件、界面文件以及时钟类文件。其中,功能函数是主要的函数实现部分,时钟类则主要是实现万年历时间系统。3.类
4、及函数的实现在此只涉及部分函数的实现细节,其他函数详看程序源代码:1.1 本程序中,我只设计了一个 clock 类,类里面有实现时间系统校对功能的私有量,在进行时间校对的过程中,我选择了重载的方法,以达到自己想C+ 课程设计简单万年历制作4要的结果。1.2 函数部分的实现则是比较普通的,没有什么特殊的地方。其中有如下函数需要实现:int week(int y,int m);/计算该月一号是星期几void printweek();/输出每周表头void printmonth(int m);/输出每月表头int leep(int y);/判断该年是否闰年int md(int y,int m);/判
5、断该月有多少天void other(int year);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();in
6、t jiemian1();/界面 1int jiemian2();在 jiemian(), int md()及 void third()的实现过程中,我选用了 switch-case 套用switch-case 语句;在 int week()函数中,我采用了蔡勒公式用于计算每个月的星期一是多少,其他函数的实现详看源代码。1.3 在这个程序设计中,有好多知识是我以前没有接触过得,这一点还是比较欣慰的吧,例如,system(“pause” )有着清屏作用,还有就是计算每个月的 1 号是星期几的问题以及程序运行后背景与字体颜色的变换要用到system(“color”, 9b)4.程序流程图C+ 课程
7、设计简单万年历制作5开始进入欢迎页面选择相应的系统功能选择相应按任意键继续进行1.万年历时间校对功能2.万年历时间查询功能3.退出时间校对的实现万年历三个查询功能的实现显示结果按任意键继续进行C+ 课程设计简单万年历制作6万年历时间校对系统的实现显示当地时间是否要进行时间调整按 y任意键调大还是调小按 m要增加的小时的个数要增加的分钟的个数要增加的秒的个数按 n要减少的小时的个数要减少的分钟的个数要减少的秒的个数显示结果时间校对系统结束C+ 课程设计简单万年历制作7万年历的三个查询系统功能的实现1.查询某年的日历2查询某年某月的日历3.查询某年某月某日的日历输入要查询的年份输入要查询的年月输入
8、要查询的年月日显示结果点任意键返回C+ 课程设计简单万年历制作8查询系统的第一个功能界面输入要查询的月份输出所要查询的年份的天干地支,生肖,是否为闰年定义月份变量 m,并付初始值 m=1判断该月天数根据年月由蔡勒公式计算出该月 1 号是星期几输出月份和每周的表头用循环输出前面空白的部分用循环输出该月的日历m=12m+第一个功能结束C+ 课程设计简单万年历制作9用循环输出该月的日历第二个功能结束查询系统的第二个功能界面输入要查询的年月输出所要查询的年份的天干地支,生肖,是否为闰年判断该月天数根据年月由蔡勒公式计算出该月 1 号是星期几输出月份和每周的表头用循环输出前面空白的部分C+ 课程设计简单万年历制作10距今天多少天 判断该日期是星期几 判断该日期是不是公历节日输入的日期距元年1 月 1 日的天数系统的日期距元年 1月 1 日的天数蔡勒公式计算,并用 switch 语句判断余数,输出对应的语句用 switch 语句判断是否为公历节日,并输出对应的语句第三个功能结束查询系统的第三个功能界面输入要查询的年月日输出所要查询的年份的天干地支,生肖,是否为闰年