- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验6 基于命令行窗口的日历查询程序
(综合性实验)
1.引言.
1.1实验目的:
(1) 了解程序开发环境调试工具的使用;
(2) 掌握小型系统的开发过程,学会用 C++语言解决问题。
1.2实验题目:
设计一个实用日历查询系统“万年历”,使其类似于家里的日历。方便人们查看日历信息
此项目可用:控制语句、函数、数组、循环等基本的知识点综合应用实现
它的主要功能为:根据用户输入的参数,显示相应的信息。
例如:输入年月日的具体日期,系统会输出该天是星期几;
如果输入的数据是年月,则会输出该年该月的日历信息。
1.3实验内容:
学习开发命令行窗口的日历查询程序。实验涉及的内容包含《程序语言基础(C 语言)》的大部分知识点,主要包括:三种基本的控制结构、函数和函数调用。还有一些必要的知识点,开发环境采用微软公司的 Visual Studio 6.0。
1.4 程序要求
(1)程序中必要的地方有注释
(2)对输入错误等情况要给出提示信息,要求重新输入
(3)对程序进行充分测试,包含可能的各种情况
(4)采用多文件结构组织方式来实现该项目程序
1.5 基本功能(必做)
1) 实现可以“判断指定的年份是否为闰年以及每年的天数”的函数;
2) 实现可以“判断指定的年份每一个月的天数”的函数;
3) 实现可以“显示指定某一年的日历” 的函数;
4) 实现可以“显示指定某年某一月的日历” 的函数;
5) 实现可以“显示某一天是星期几”的函数;
注意:书写和实现函数时,请在前面按如下格式添加类似注释信息:
/*
函数名称:main
功能描述:主程序
创建人 :张三丰
修改记录:2012-12-24 第 1.0 版*/
1.6增强功能(选做)
1)可以实现日程计划
预约提醒显示
3)公历与农历的转换
4)农历节气信息的查询显示等等
2.设计思想:
设计本万年历时我做了三个查询功能:查询某一年或某一月的万年历,查询某一天是星期几.使用多文件结构来实现,把年,月,日分作不同的函数在储存在不同的文件里.通过在main函数的中调用来实现.
3.算法分析说明
(1)计算某一天是星期几的算法:d=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+days)%7
结果为0,1,2….6,分别表示星期日至六.
(2)判断某一年是否为闰年:if(year%4==0year%100!=0||year%400==0)
4.要用到的函数和语句
主函数在功能的选择时用到了switch()语句;
实现程序的继续或退出功能时用到了do{ .. } while()循环语句
判断用if()语句;
万年历的输出用到for()循环;
5.流程图
系统流程图:
6.设计分析
7.功能过程的推导
功能1:
设计思路:
要想输出一年的日历,首先得解决输出一个月日历的问题,然后用循环输出十二个月份的。首先提示由键盘输入要显示的年份,得到年份后开始进入循环,定义月份变量month,并赋初值为1(从一月份开始),第一步,进入monthdays(int year,int month)函数判断月份的天数,然后根据进入void printmonth(int year,int month)函数根据年月计算出该月一号是星期几并输出月份和每周的表头,由循环空出一号前面空的部分,再由另一个循环,加上前面该月天数的判断,就能输出该月的日历,此时一个月的日历输出完毕,进入第二次循环,输出下一个月的日历,知道十二个月份的日历全部输出,循环结束,第一个功能实现。
功能2:
设计思路:
第二个功能是第一个功能的一部分,只需要输出一个月的日历,这是月份不是由1开始,而是由键盘输入的,日历输出方法与第一个功能中的方法相似。
流程图:
功能3:
判断这一天是星期几,由蔡勒公式计算,得到的余数是从0到6,0对应星期日,其他的正好对应;
8.测试结果
1.开始界面:
2.测试1:
3.测试3:
9.完整的源代码
//head.h头文件//
#ifndef HEAD_H
#define HEAD_H
extern int yeardays(int year);
extern int monthdays(int year,int month);
extern void printyear();
extern void printmonth(int year,int month);
extern void findday();
#endif
//main函数//
#includeiostream
using namespace std;
#include head.h
i
文档评论(0)