C++课程设计文档格式.docx
- 文档编号:19202996
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:15
- 大小:74.47KB
C++课程设计文档格式.docx
《C++课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《C++课程设计文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
9、程序设计感想·
10
10、致谢·
11
11、参考文献·
一、设计任务书
1.1题目与要求
本人计划编写一个万年历系统,主要用于显示月历、星期等信息,主要要求如下:
1:
设计一个万年历系统,主要包括年、月、日星期等信息;
2:
输入要进行的操作按钮,进行查询;
3:
输入年月日求出月历;
4:
输入日期求出所在星期;
5:
进行下月或上月的查询
;
6:
输出当前时间。
本人的主要工作是:
设计一个日期类Date,包括年、月、日等私有数据成员。
要求实现日期的基本运算,(假定输入日期数据是合法的,考虑闰年的情况)。
在Date类中设计如下重载运算符函数:
Dateoperator+(intdays);
Dateoperator-(intdays);
intoperator-(Date&
b);
返回两日期相差的天数
voiddisplayMonth(Date&
显示指定日期所在的月历,尽可能美观
在实现这些重载运算符函数调用以下私有成员函数:
leap(int);
判断指定的年份是否为闰年
dton(Date&
);
将指定日期转换为从0年0月0日起的天数
ntod(int);
将指定的0年0月0日起的天数转换为对应的日期
数据成员为:
intyear,month,day;
1.2本系统涉及的知识点
类的构造函数、析构函数数组、循环、函数、运算符重载、case语句、成员函数、time头文件、函数的调用,指针,Switch语句,
对象调用成员函数
二、功能设计
本系统需要实现的功能要求:
本系统可以进行显示某年某月的月历,当前日期时间,某年某月某日是星期几,
某年的元旦是星期几等
1进入之后出现如下所示的主菜单
******************当前日期时间如下********************
=================×
×
*******************
**************欢迎使用我爱万年历**************
******请选择操作:
****;
****0.退出该程序:
****l;
****1.查询某年月历:
****;
****2.查询某天是星期几:
****3.查询某年元旦是星期几:
****4.查询当前日期时间:
****;
2选择1以后调用相应函数出现’’输入年:
输入之后出现“输入月:
”输入之后出现月历,之后出现
1.
查询上个月
2.查询下一个月
3.0.返回:
3选择2之后出现
以后调用相应函数出现’’输入年:
”输入之后出现“输入日期”出现星期
****1.查询某年月历:
****4.查询当前日期时间:
3选择3之后出现
“输入年”之后出现元旦是星期几
2.2部分模块流程图
三、程序代码设计:
3.1输入模块
1)函数原形:
voidInputYearMonth();
输入年月日的函数判断格式是否正确
voidInputDates();
//输入日期判断格式是否正确
2)功能:
switch语句判断每月的天数是多少以及二月份的天数是多少
用while语句循环判断月份的函数及输入日期判断是否正确并赋值
3)变量及类型:
intYearToDays(inty);
类的私有函数
intDatesToDays();
intMonthToWeek();
intYearMonthToDay(inty,intm);
voidDate:
:
InputDates()输出函数
4)说明:
5)模块代码及其相关注释
InputDates()//输入日期并判断是否正确并赋值
{
cout<
<
"
输入年:
endl;
cin>
>
year;
while(year<
=1900||year>
=2099)
{
重新输入年:
}
输入月:
month;
while(month<
=0||month>
12)
重新输入月:
输入天"
days;
}
InputYearMonth()//输入要查询的日期
{
3.2输出模块
voidshowyuandan()//显示元旦是星期几的函数
voidDisPlayMonth();
//显示月历
showdatetime()//显示当前系统时间
用if语句判断是否是闰年然后输出下面的函数
DisPlayMonth()输出结果的函数
intyear;
intmonth;
intdays;
intwday;
类的私有成员
showdatetime()
{intyear,month,day,sec,min,hour;
time_tnowtime;
//读取系统时间函数
structtm*timeinfo;
time(&
nowtime);
timeinfo=localtime(&
year=timeinfo->
tm_year+1900;
month=timeinfo->
tm_mon+1;
day=timeinfo->
tm_mday;
sec=timeinfo->
tm_sec;
//秒
min=timeinfo->
tm_min;
//当前的分钟
hour=timeinfo->
tm_hour;
//时
cout<
******************"
当前日期时间如下"
*****************"
endl<
===================="
year<
年"
month<
月"
day<
日"
==================="
cout<
hour<
点"
min<
分"
sec<
秒"
}
DisPlayMonth()//输出月历的函数
inty=year;
intm=month;
---------------我爱万年历--------------------"
//输出万年历的形式
cout<
**********************************************"
//美化万年历的输出
"
一"
二"
三"
四"
五"
六"
//输出形式
intw=MonthToWeek();
if(w!
=6)
for(inti=0;
i<
=w;
i++)
;
intk=YearMonthToDay(y,m);
for(intj=1;
j<
=k;
++j)
setw
(2)<
j;
if((j+w+1)%7==0)
********************************************"
end
--------------------------------------------"
end;
ostream&
operator<
(ostream&
out,constDate&
c)
out<
c.year<
c.month<
c.days<
returnout;
四、C++程序设计总结
1程序执行过程描述:
经过了很多很多次的调试之后,一步一步的修改错误最后才无错误。
其中对于输出月历的算法想了很久,以及星期的求法,万年历的美观也很重要,调试中经常出现变量定义的错误,本想输出生肖的但总是出错,下面是几次典型的结果:
操作:
****4\查询当前系统时间:
*****
4.查询上一个月
5.查询下一个月
6.0.返回:
的结果:
****4、查询当前系统时间:
按照提示输入数字按回车键可进行操作
选择四之后出现如下
2感想:
在程序编辑之初由于未定义正确的构造函数,类型的定义不正确导致调试有错误,之后是一些算法,如判断闰年,进行月份天数的计算,如何循环输入,我对于构造函数和析构函数的知识还很不足,上一个月以及下一个月的计算循环,运算符重载为类的成员函数,以及友元函数的应用等等,其中对于闰年的算法有很多种,需要自己总结。
对于许多的基本知识,本以为自己掌握了但实际上却不会应用都只是一知半解,对于考试的知识会考试不一定会应用,只有在实践中锻炼自己的技巧才能真正取得使用的知识,我所编的程序我不敢说是我一人所写,就算是一部分是网上的我也是经过认真理解之后才写上的。
认面对自己不是很清楚的知识一定要赶快弄懂,不要总以为成绩就是一切,真正的知识在手上,要会用才是真正的知识,但努力的学习总会有进步。
五、致谢
真诚的感谢我的老师和同学在我编程过程中对我的指导
六、参考文献
来自互联网的一些知识
广树建新编C/C++程序设计教程华南理工大学出版社20082
.BjarneStroustrup《TheC++programminglanguage》
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计