- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机科学与技术程序设计语言万年历系统
数学与计算机学院
课程设计说明书
课 程 名 称: 计算机科学与技术程序设计语言-课程设计
课 程 代 码:
题 目: 万年历系统
年级/专业/班: 09级软件工程1班
学 生 姓 名:
学 号:
开 始 时 间: 2010 年 12 月 24 日
完 成 时 间: 2011 年 01 月 06 日
课程设计成绩:
学习态度及平时成绩(30) 技术水平与实际能力(20) 创新(5) 说明书撰写质量(45) 总 分(100) 指导教师签名: 年 月 日
目 录
1 引 言 1
1.1 问题的提出 1
1.2国内外研究的现状 1
1.3任务与分析 1
2 程序的主要功能 3
2.1显示功能 3
2.2 自动翻页功能 3
2.3查询功能 3
2.4帮助功能 3
2.5退出功能 3
3 程序运行平台 4
4 总体设计 图4.1流程图 5
5 程序代码明细 6
6 模块分析 11
6.1 系统日期模块 11
6.2 打印模块 11
6.3闰年判断模块 12
6.4 查询模块 12
6.5 菜单模块 void mainMenu(int year,int month,int day)//主菜单 12
6.6 关键代码 13
7 系统测试 首先进入VC++6.0,打开工程person.dsw,然后进入源程序,接着选择Build下的Execute person.exe即可,也可以不打开工程,直接双击person文件夹下的debug或release子文件夹下的person.exe文件即可运行程序。 7.1 进入程序 14
8 结论 17
1 引 言
1.1 问题的提出
万年历是我国古代传说中最古老的一部太阳历。为纪念历法编撰者万年功绩,便将这部历法命名为“万年历”。而现在所使用的万年历,实际上就是记录一定时间范围内(比如100年或更多)的具体的日期的年历,方便有需要的人查询使用。怎样在电脑上显示万年历以便查询,是一个很普遍的需求。
附: 万年历算星期几只要随便说出公元几几年几月几日就可以马上算出是星期几。
只要计算出日的代码,月份代码,年份代码。三个加起来除以七的余数就是星期几,(如余数是三,则就是星期三)。
日的代码计算:日的代码最简单,就是它本身,是几号就是几。
月份代码计算:月份代码也很简单,下面有十二个数:6,分别代表一至十二月份每个月的代码。比如,九月份的代码为6。(据来宾介绍,他是用逆推的方法,计算出这12个月份代码的,即知道某年某月某日是星期几,反过来推算月份代码。
年份代码计算:年份代码相对比较复杂,先记住2000年对应的年份代码是4,这是基础代码,牢记即可。假如大于2000年,比如2010年,则对应的年份代码是(2010-2000)÷4=2……2,再用基数代码4减去2倍的商加上余数再加1。即4-2×2+2+1=3,则2010年对应的年份代码为3。如果没有余数,即润年,则余数后面的1也不用加。比如2008年,对应的年份代码为0。 nDay=year-1+(year-1)/4-(year-1)/100+(year-1)/400+nday;
w=nDay%7;
其中year:要查询的年份
nday:从该年的一月一日起到该天的天数
w:得出的星期数,w==0表示星期天。
在打印月历时,只要知道第一天的星期,就可以依次输入后面的日期,通过定长度输出日期,在遇到某天时星期六时,就换行输出,因此可以按照月历的格式输出。对于初始输入当前月历,可以通过time.h中的time 和localtime函数取出系统时间进行初始化。
time_t timer;
struct tm* gmt;
time(timer);
gmt=localtime(timer);
gmt就是一个时间结构体,可以从中取出年月日。
2:闰年的判断,能被4整除但不能被100整除,或者能被400整除的年份为闰年,否则为平年。日期的查询,就是直接打印改天所在月份的月历。
3:判断日期是否合法,可以先判断年月日是否有小于0的值,月和日是否有超出最大值12和31 ,如果通过此判断合法,再判断是否时闰年,如果时闰年,则判断二月份是否满足要求,闰年二月份不能超过29天,平年二月份不能超过28天。在查询过程中,如果发现输入不合法
文档评论(0)