C++课程设计万年历.docx
《C++课程设计万年历.docx》由会员分享,可在线阅读,更多相关《C++课程设计万年历.docx(9页珍藏版)》请在冰豆网上搜索。
C++课程设计万年历
C++课程设计--万年历
安徽省巢湖学院计算机与信息工程学院
课程设计报告
课程名称《C++语言》
课题名称万年历设计
专业计算机科学与技术
班级#**************
学号000000000
姓名非凡方法
指导教师vdnggb
1、设计题目••••••••••••••••••••••1
2、设计要求••••••••••••••••••••••1
3、总体设计••••••••••••••••••••••1
3.1系统功能框架•••••••••••••••••1
3.2系统功能说明•••••••••••••••••2
4、详细设计••••••••••••••••••••••2
4.1数据结构设计•••••••••••••••••2
4.2程序详细源代码•••••••••••••••3
5、运行结果••••••••••••••••••••••8
1、设计题目:
万年历设计
2、设计要求:
(1)程序运行时,首先给出3个菜单选项的内容和输入提示:
1显示一年的日历
2显示某一天是星期几0退出
(2)用户可以通过主菜单选择不同的选项。
若选择1,则通过输入年份,显示输出该年每个月的日历。
若选择2,则通过输入日期,查询这一天是星期几。
3、总体设计:
3.1系统功能框架
(流程图)
依据课程设计的要求,需要设计一个菜单功能,进入程序后,有菜单可以提供选择,
选择1,进入日期显示阶段,日期显示完毕,再次进入菜单选择。
选择2,进入日期查询阶段,日期查询完毕,再次进入菜单。
选择0,
退出程序。
3.2系统功能说明
(功能板块)
在菜单要求当中,要求能够按年查询,能够查询某天是星期几。
然而,在程序当中为了实现这两个功能,包括了闰年的判断,日期判断,日期打印和日期的查询。
功能是由它们共同实现的。
4、详细设计
4.1数据结构设计
本程序采用类定义代码如下:
classDate
{
private:
intyear;
public:
intweekday();
voiddisp(intx);
intisleapyear();
intmonthday(inti);
voidgetyear();
};
类名:
Date
数据成员:
year
成员函数:
voidgetyear();//输入年份的函数
intisleapyear();//判断是否是闰年的函数
intweekday();//判断本月第一天是星期几的函数
intmonthday(inti);//计算每月有几天的函数
voiddisp(intx);//输出月份及查询年份的月历的函数
及字符串数组定义代码如下:
char*weekd[7]={"MON","TUE","WEN","THU","FRI","STA","SUN"};
4.2程序详细源代码
#include
#include
voidf1();
voidf2();
intjudgeyear(int);
intmonthdays(int,int);//函数原型声明
intjudgeyear(intyear)
{
if((year%400==0)||(year%4==0&&year%100!
=0))//判断输入的
年份是否为闰年模块
return1;
else
return0;
}
intmonthdays(intyear,intmonth)//计算各个月份的天数
{
if(month==2)
{
if(judgeyear(year)==1)return29;
elsereturn28;
}
elseif(month==4||month==6||month==9||month==11)
return30;
else
return31;
}
voidf1()
{
intyear,t,i,month;
cout<<"请输入年份:
";
cin>>year;
t=((year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+1)%7;//判断这一年的元旦是星期几
for(intk=1;k<=12;k++)
{
cout<cout<for(intz=1;z<=t;z++)
cout<for(i=1;i<=monthdays(year,k);i++)
{cout<if((i+t)%7==0)
cout<t=(t+monthdays(year,k)%7)%7;
cout<//日历显示模块
}
}
voidf2()
{
intyear,month,day;
cout<<"请输入年份:
";
cin>>year;
cout<<"请输入月份:
";
cin>>month;
cout<<"请输入此年此月相应的日期"<<"<1~31>:
";
cin>>day;
intl,n,t,w,date(0);
char*week[]={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
n=(year-1900);
l=(n-1)/4;
n=l+n;
n=n%7;
n=n;
for(inti=1;idate+=monthdays(year,i);
date+=day;
n=n+date;
n=n%7;
cout<<"\n该天是:
"<}//日子查询模块
voidmain()
{
inti=1;
cout<<"--------------------------------"<cout<<"**"<cout<<"欢迎进入万年历查询系统"<cout<<"**"<cout<<"--------------------------------"<cout<<"请选择您的查询内容:
"<cout<<""<<"1.显示一年的日历"<<";"<cout<<""<<"2.显示某一天是星期几"<<";"<cout<<""<<"0.退出"<<";"<cout<<"请选择按键"<<"<0-2>:
";//输出主菜单
while(i)
{
cin>>i;
if(i>=0&&i<=2)
{
switch(i)
{
case1:
f1();break;
case2:
f2();break;
case0:
cout<<"谢谢使用,再见!
";break;
}
}
}
}
5、运行结果
1程序运行测试:
在电脑中打开C++应用程序,首先进入VC++6.0,将程序代码输入,编译,组建,调试。
观察运行结果,和各个功能情况。
2进入程序菜单
(图1:
菜单页面)
说明:
该页面表示进入菜单选项,根据选项进入相应的功能。
31号键功能:
(图2:
日历显示页面)
说明:
进入按年查询功能,输入想查询的年份,例如2011年,得到2011年各月的日历,图像在此仅展示5,6两月日历
42号键功能:
(图3:
星期几查询页面)
说明:
依次输入201171,得到上图结果。
(图4:
星期几查询)
说明:
依次输入201172,得到上图。
50号键功能:
(图5:
结束页面)
说明:
退出程序