C++课程设计报告_万年历.doc

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C课程设计报告_万年历

学院:计算机学院 课程设计目的及要求: 设计目的: (1)提高和加强学生的计算机应用与软件开发能力,使学生由初学者向专业的程序员过渡。 (2)培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势。 (3)学习和掌握C++程序设计方法以及上机调试技巧,为今后学习其它专业课程打好基础。 2.设计要求: 本次课程设计是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,作出设计报告。 万年历 设计一个万年历, 输入一个日期如:1980-05-25,要求: 计算出该日是星期几, 重载“+”操作,当万年历对象加一个天数时,生成一个新的万年历对象,注意满足交换律 重载“-”操作,当两个万年历对象相减时,获得其对象相差的天数 重载“==”,判断两万年历对象是否相等 (2)宾馆房间管理系统 宾馆客房管理系统信息包括号、、。试设计一管理系统统,系统以菜单方式工作使之能提供以下功能: 录入功能信息浏览功能?()客房信息保存于文件 客房信息查询查询信息删除、修改功能总体设计 :1.设计图 计算星期 日期重载+ 主函数 日期重载- 日期重载= 设计方案 计算星期函数: 要知道计算星期的公式,这可以在网上找到公式 W=(((C/4)-2*C+y+(y/4)+(13*(month+1)/5)+day-1)+700)%7; 其中:C=year/100即为年时的前两位数,y=year%100即为年数的后两位数,month为输入日期的月份,day为输入日期的天数。W为除以7后的余数,以为一个星期有7天。当余数为0是是星期天,为1时是星期一......为6是则为星期六。计算星期函数不需考虑闰年和平年的问题所以十分容易处理。 日期重载+函数: 日期重载+函数就相对比较麻烦,首先就是闰年平年的问题,其次就是各个月份天数的不同问题。对于天数的处理,我选择了有数组来保存各月天数。对于闰年和平年则选择再在日期重载+函数中在分两函数,分别处理闰年和平年。 日期重载==函数: 日期重载==函数就更好处理了,只要判断年月日相等就可以了。所以只要用bool类型重载就行( bool operator == (const CDate dt1)const;),返回值为ture则说明相等,为false时则说明两日期不相等。 日期重载-函数: 日期重载-函数是最难处理的,要使两个日期相减得到相差的天数,还得用到重载-,而且重载-时两个类CDate dt相减返回的是一个int整形数值,所以是比较困难的。我在调试中将详细说明我所遇到的困难。现在我就简单的说明一下我的思路。输入两个日期,分别计算出它们到公元元年元月1日的天数,再将两天数相减,就得到两日期的天数差。计算输入日期到公元元年元月1日的天数得公式: D=(year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+D1+day; 其中D即为天数,year为年份,D1为输入月份以前的几个月的天数和,day为输入的日期。 详细设计 共有五个模块:(1)计算星期模块;(2)日期重载+模块;(3)日期重载==模块;(4)日期重载-模块;(5)退出模块; 计算星期模块: 主要功能:当输入一个日期是,计算出输入的日期是星期几。如图: 计算出2011年6月23日为星期四。 主要使用技术: 由于公式的要求,if(month==1||month==2) {month+=12; --year; } 当月份为1月或2月份时,月份要加12,即1月为13月,2月为14月,而年数则要减1,如2001年1月12日,1月要用13月来计算,年份2001年则用2000来计算。 char *week[]={Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}; 用一个指针数组char*week[],来储存星期。 W=(((C/4)-2*C+y+

文档评论(0)

yaoyaoba + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档