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

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

ID:61005295

大小:178.50 KB

页数:31页

时间:2021-01-19

C++课程设计报告-万年历.doc_第1页
C++课程设计报告-万年历.doc_第2页
C++课程设计报告-万年历.doc_第3页
C++课程设计报告-万年历.doc_第4页
C++课程设计报告-万年历.doc_第5页
资源描述:

《C++课程设计报告-万年历.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、C++课程设计报告学院:计算机学院一.课程设计目的及要求:1.设计目的:(1)提高和加强学生的计算机应用与软件开发能力,使学生由初学者向专业的程序员过渡。(2)培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势。(3)学习和掌握C++程序设计方法以及上机调试技巧,为今后学习其它专业课程打好基础。2.设计要求:本次课程设计是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,作出设计报告。(1)万年历设计一个万年历,输入一个日期如:1980-0

2、5-25,要求:l计算出该日是星期几,l重载“+”操作,当万年历对象加一个天数时,生成一个新的万年历对象,注意满足交换律l重载“-”操作,当两个万年历对象相减时,获得其对象相差的天数l重载“==”,判断两万年历对象是否相等(2)宾馆房间管理系统宾馆客房管理系统宾馆的客房信息包括客房号、客房类型、客房价格、空闲情况、客人姓名、客人身份证号、入住时间、退房时间,预付费用等信息。试设计一宾馆客房管理系统统,系统以菜单方式工作,使之能提供以下功能:l客房信息的录入功能l客人入住登记l客人退房结算l客房信息浏

3、览功能,浏览全部客房的信息 ()客房信息保存于文件l客房信息查询:查询空房间情况、按姓名或房间号查询l客房信息的删除、修改功能l至少包含2个类,客房信息和客人信息二.课程设计具体实现:1.万年历u总体设计:1.设计图计算星期日期重载+主函数日期重载-日期重载=2.设计方案(1)计算星期函数:要知道计算星期的公式,这可以在网上找到公式W=(((C/4)-2*C+y+(y/4)+(13*(month+1)/5)+day-1)+700)%7;其中:C=year/100即为年时的前两位数,y=year%10

4、0即为年数的后两位数,month为输入日期的月份,day为输入日期的天数。W为除以7后的余数,以为一个星期有7天。当余数为0是是星期天,为1时是星期一......为6是则为星期六。计算星期函数不需考虑闰年和平年的问题所以十分容易处理。(2)日期重载+函数:日期重载+函数就相对比较麻烦,首先就是闰年平年的问题,其次就是各个月份天数的不同问题。对于天数的处理,我选择了有数组来保存各月天数。对于闰年和平年则选择再在日期重载+函数中在分两函数,分别处理闰年和平年。(3)日期重载==函数:日期重载==函数就更

5、好处理了,只要判断年月日相等就可以了。所以只要用bool类型重载就行(booloperator==(constCDate&dt1)const;),返回值为ture则说明相等,为false时则说明两日期不相等。(4)日期重载-函数:日期重载-函数是最难处理的,要使两个日期相减得到相差的天数,还得用到重载-,而且重载-时两个类CDatedt相减返回的是一个int整形数值,所以是比较困难的。我在调试中将详细说明我所遇到的困难。现在我就简单的说明一下我的思路。输入两个日期,分别计算出它们到公元元年元月1日的

6、天数,再将两天数相减,就得到两日期的天数差。计算输入日期到公元元年元月1日的天数得公式:D=(year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+D1+day;其中D即为天数,year为年份,D1为输入月份以前的几个月的天数和,day为输入的日期。u详细设计共有五个模块:(1)计算星期模块;(2)日期重载+模块;(3)日期重载==模块;(4)日期重载-模块;(5)退出模块;(1)计算星期模块:主要功能:当输入一个日期是,计算出输入的日期是星期几。如图:计

7、算出2011年6月23日为星期四。主要使用技术:由于公式的要求,if(month==1

8、

9、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*

10、week[],来储存星期。W=(((C/4)-2*C+y+(y/4)+(13*(month+1)/5)+day-1)+700)%7;cout<<"Thisdayis"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。