- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目 录
1.设计目的 3
2.设计要求 3
3.设计内容 3
3.1系统框图 3
3.2功能图 4
3.3类图 4
3.4具体功能介绍 5
3.5源程序 6
4总结 16
5参考文献 17
1.设计目的
设计一个万年历系统,通过这个系统,通过这个系统,可以查寻每一年的所有月份,或者查询某年某月分的日历。同时通过本课程设计为学生提供了一个独立实践的机会。将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力编写一万年历系统(限最多1人完成)
要求:????? 模仿现实生活中的挂历.
当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几).
当系统日期变到下一月时,系统自动翻页到下一月.
3.2功能图
3.3类图
3.4具体功能介绍:
选择查询全年的日或者查询某年某月的日历
选择分几栏
输出全年的日历
按2查询单月日历的功能。
最后,可根据系统提示,选择继续查询或者继续。
3.5源程序
#includeiostream
#includewindows.h
using namespace std;
class base//虚基类
{
public:
int number;
virtual void setNumber(int n)=0;
virtual void display()=0;
};
class Day: public base//定义日类公有继承虚基类
{int number;
public:
Day(){}//定义构造函数day
void setNumber(int n){
number=n;
}
void display(){
if(number/10==0)
cout number ;
else
cout number ;
}
};
class Month//月类的定义
{//定义私有数据
Day days[31];//调用日类的数据
int firstDay;
int year;
int month;
int numberOfDays;// 每个月的天数
int cx,cy;
bool isLeapYear(int year)//闰年的判断函数
{
if ((year%4==0) (year%100!=0)||(year%400==0))
return true;
return false;
}
int getFirstDay(int y,int m)//判断该年的元旦是星期几
{
int daysOfMonth[13]={0,31,0,31,30,31,30,31,31,30,31,30,31};
int w=(y-1)*365+(int)((y-1)/4)-(int)((y-1)/100)+(int)((y-1)/400);
for(int i=1;im;i++)
w+=daysOfMonth[i];
if(m=3){
if(isLeapYear(y)==true)
w+=29;
else
w+=28;
}
int q=w%7+1;
return q;
}
int getNumberOfMonth(int y,int m) //该年每个月的天数
{
int daysOfMonth[13]={0,31,0,31,30,31,30,31,31,30,31,30,31};
if(m!=2)
return daysOfMonth[m];
if(isLeapYear(y)==true)
return 29;//闰年
else
return 28;
}
void gotoXY(int x,int y){
COORD c;
c.X=x;
c.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}
public:
Month(){
}
Month(int y,int m){
year=y;
month=m;
firstDay=getFirstDay(y,m);
numberOfDays=getNumberOfMonth(y,m);
cx=0;cy=0;
for(int i=0;inumberOfDays;i++){
days[
您可能关注的文档
- 第4讲第2章 基础工程.ppt
- 第9章 设备的更新改造.ppt
- 第七章铁路旅客列车工作组织.ppt
- 精选桥架招标文件.doc
- 网吧升级改造项目申请报告.doc
- 老挝琅勃拉邦省巴乌县爬奔金矿矿山建设项目招标文件082.doc
- 老旧小区改造工程监理细则.doc
- 衢山镇污水处理厂提标改造工程送审环评报告.doc
- 表a、b、c建设工程监理规范.doc
- 装饰装修工程监理规.doc
- 语文-广东省肇庆市2025届高三第二次模拟试卷和答案(肇庆二模).docx
- 中国通信行业运行情况月度报告(2024年1-11月).pdf
- 2024年中国新能源汽车行业全球竞争力分析与各国进口贸易法规影响白皮书-特易资讯.pdf
- 热电“三保”与碳排双控.pdf
- 数据中心行业分析报告 2025.pdf
- 【灼鼎咨询】2024年自动驾驶行业知识报告(智能驾驶、新能源汽车、NOA).pdf
- 政治-江苏省苏州市2024-2025学年2025届高三第一学期学业期末质量阳光指标调研卷试题和答案.docx
- 政治-广东省东莞市、揭阳市、韶关市2025届高三期末教学质量检查试题和答案.docx
- 自适应物理安全与信息安全系统 -智能制造的动态安全方法 2025.pdf
- 【国联证券】通信行业专题研究:Marvell AI day,算力需求推动光互联加速迭代.pdf
文档评论(0)