日历课程设计.docx
- 文档编号:14396847
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:16
- 大小:158.78KB
日历课程设计.docx
《日历课程设计.docx》由会员分享,可在线阅读,更多相关《日历课程设计.docx(16页珍藏版)》请在冰点文库上搜索。
日历课程设计
湖南工业大学
课程设计
资料袋
计算机与通信学院学院(系、部)2010~2011学年第一学期
课程名称面向对象程序设计指导教师职称教授
学生姓名专业班级学号
题目日历(基于控制台)
成绩起止日期2011年01月03日~2011年01月08日
目录清单
序号
材料名称
资料数量
备注
1
课程设计任务书
1
2
课程设计说明书
1
3
源程序(电子文档)
1
4
5
6
湖南工业大学
课程设计任务书
2010—2011学年第一学期
计算机与通信学院(系、部)通信工程专业班级
课程名称:
面向对象程序设计
设计题目:
日历(基于控制台)
完成期限:
自2011年01月03日至2011年01月08日共1周
内
容
及
任
务
一、设计的任务及主要技术参数
1.设计任务:
当输入年份时,要求显示这一年的阳历及对应的星期,每个月分开显示;还要求可以连续查询多个年份并且控制年份的范围,当有错误输入时要求有提示。
2.技术参数:
能被4整除但不能被100整除或者能被400整除的年份是闰年,其它的是平年;闰年是366天,闰年的2月是29天;平年是365天,平年的2月是28天;每年的1、3、5、7、8、10、12有31天;每年的4、6、9、11月有30天;已知1900的01月01号星期一;每一年以52个星期计算,多余的天数决定下一年的元旦是星期几。
二、设计任务
1每组成员分工合作完成一个课程设计,每个人的任务不同;
2进行系统的需求分析和功能设计。
在该步骤中,需要写出系统的需求,分析出系统主要用到的类和对象。
然后,画出系统的功能模块图,设计每个模块的功能。
如果用到数据库时,还要进行数据库设计。
3详细设计,包括类与对象的设计(属性设计、成员函数设计等)、界面设计、类的继承与派生关系等。
4编码实现。
即针对每个功能模块进行编码。
5软件测试。
首先进行单元模块的测试,单元测试通过以后,再进行集成测试和系统联调,特别是在多人做一个系统时,更应加强集成测试。
6系统编写测试完成后,应该形成一个可运行的系统。
7要求源程序书写格式规范,可读性好,进行必要的注释,采用缩进格式。
8撰写课程设计说明书
三、设计工作量
一个人完成一个小型系统或完成一个大系统的子系统(至少2个以上的功能模块)
进
度
安
排
起止日期
工作内容
第1天
根据问题描述,分析系统功能,划分功能模块,完成程序的数据设计。
第2天
详细设计,即针对每个功能模块进行编码
第3-4天
各功能模块编码及调试
第5天
程序整体调试
第6天
完成设计文档和课程设计说明书
主
要
参
考
资
料
[1]谭浩强.C++面向对象程序设计[M].北京:
清华大学出版社,2006.
[2]谭浩强.C++面向对象程序设计题解与上机指导[M].北京:
清华大学出版社,2006.
[3]刘恒洋,杨宏雨.面向对象程序设计案例教程[M].北京:
机械工业出版社,2010.
[4]罗建军.C/C++语言程序设计案例教程[M].北京:
机械工业出版社,2010.
[5]张海林,杜忠友,姜玉波.VisualC++简明教程[M].北京:
电子工业出版社,2007.
[6]丁展,四维科技.VisualC++游戏开发技术与实例[M].北京:
人民邮电出版社,2005.
指导教师(签字):
年月日
系(教研室)主任(签字):
年月日
面向对象程序设计课程设计
设计说明书
日历(基于控制台)
起止日期:
2011年01月03日至2011年01月08日
学生姓名
班级
学号
成绩
指导教师(签字)
计算机与通信学院
2011年01月08日
1问题描述
1.1显示日历中的阳历及对应的星期,每一个月分开显示。
1.2可以连续查询多个年份的日历。
2需求分析
需要建立日历类及知道判断平润年的方法;设置循环条件。
3
概要设计
4详细设计
建立日历类,设置判断函数,显示函数,接收函数,输出格式调用。
判断函数根据1900年元旦是星期一,记录每一年多出的天数,从而
推算出某一年的元旦是星期几。
记录上一个月最后一天的星期数,从而
得出下一个月第一天的星期数。
5编码实现
编译,连接都已实现。
源程序:
#include
#include
#include
usingnamespacestd;
classData
{
private:
intyear;
public:
intgetyear();//提示用户输入想要查询的年份
intioleapyear();//判断该年是不是闰年
intweekday();//判断该年的元旦是星期几
voidsetweek();
intmonthday(inti);//该年每个月的天数
voiddisp();//显示结果。
};
char*weekd[7]={"MON","TUE","WEN","THU","FRI","STA","SUN"};//记录星期一到星期天
intData:
:
getyear()
{cout<<"请输入要想查询的年份:
"< cout<<"年份范围大于1900,小于8000;"< cin>>year; if(year<1900||year>8000) { cout<<"输入有误: "< getyear();} else returnyear;} intData: : ioleapyear() { if(year%4==0&&year%100! =0||year%400==0) return1; else return0; } intData: : weekday() { intn=1; for(intz=1900;z if(z%4==0&&z%100! =0||z%400==0) n=n+2; else n=n+1; n=n%7; if(n==0) return7; else returnn;//返回输入的年份的元旦是星期几 } intData: : monthday(inti) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) return31; elseif(i==2) if(ioleapyear()) return29; elsereturn28; else return30; } voidData: : disp() { inti; intn=weekday(); for(i=1;i<=12;i++)//总共的月份12 {intlemp=1; cout< cout<<"-------------------------------------------"< for(intj=0;j<7;j++) cout< cout< for(intk=1;k cout< for(intd=1;d<=monthday(i);d++,lemp++) { cout< if(lemp==7)//控制一行输出到星期天,如果到星期天则重新计数 { cout< lemp=0; } } n=lemp%7;//当输出完一个月后,记录这个月的最后一天在哪,寻找下个月的 if(n==0)//第一天的起始位置 n=7; cout< } } intmain() { Dataa; cout< cout<<"-------------------------------------------------------------------------------" < a.getyear(); a.disp(); charch; cout<<"按1退出按其它键继续;"< cin>>ch; if(ch! ='1') main(); else return0; } 6调试与测试 设计总结 先要进行总体框架的构思与设计;其次要具体的设置函数去实现要求的功能;最后 修改,调试和测试直到实现了所要求的全部功能。 需要细心,努力地一步一步完成。 附录或参考资料 电子档一份;1.罗建军.C/C++语言程序设计案例教程[M].北京: 机械工业出版社,2010. 2.刘恒洋,杨宏雨.面向对象程序设计案例教程[M].北京: 机械工业出版社,2010.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 日历 课程设计