课程设计年历处理程序的设计.docx
《课程设计年历处理程序的设计.docx》由会员分享,可在线阅读,更多相关《课程设计年历处理程序的设计.docx(18页珍藏版)》请在冰豆网上搜索。
课程设计年历处理程序的设计
课程设计----年历处理程序的设计
信息学院课程设计
题目:
年历处理程序的设计
姓名:
学号:
班级:
课程:
C++程序设计
任课老师:
2012年6月
课程设计任务书及成绩评定
题目
年历处理程序的设计
课程设计的任务及要求:
输入一个年份,输出该年的日历;输入年月,输出该月的日历;输入年月日,输出今天是本年度的第几天。
课程设计所需的软件、硬件等
软件:
VC++6.0
硬件:
CPU>=1GHz
课程设计进度计划:
2012年5月23日:
编辑源程序
2012年5月26日:
运行,记录结果、截图
2012年5月27日:
进行整个课程设计的完善
任课教师评语
成绩:
教师签名:
日期:
1.实验名称…………………………………………………………………………………………
年历处理程序的设计
2.实验目的及要求…………………………………………………………………………………
描述课程设计的目的,约束条件,使目标达到一致。
3.实验环境…………………………………………………………………………………………
回顾并且复习课本内容,想好需要的硬件设施与需要安装的C++软件。
4.实验设计方案……………………………………………………………………………………
分析课程设计的实现方法,详细介绍项目的操作步骤。
5.测试结果及结论………………………………………………………………………………
课程设计的屏幕显示,并加以简单的文字描述,注意程序运行要用到的各种算法等知识。
6.小结………………………………………………………………………………………………
主要说明程序设计的特点,进行了哪些知识方面的拓展,在哪些方面得到了帮助,以及实现编程过程中得到的感悟。
一:
实验名称:
年历处理程序的设计
二:
实验目的及要求:
1、实验目的:
(1)进一步巩固和加深对“C++程序设计”课程基本知识的理解和掌握,了解C++语言在项目开发中的应用。
(2)学习程序设计开发的一般方法,了解和掌握项目开发过程及方式,培养正确的设计思想和分析问题、解决问题的能力,特别是项目设计能力。
2、要求:
输入一个年份,输出该年的日历;输入年月,输出该月的日历;输入年月日,输出今天是本年度的第几天。
三:
实验环境:
实验前,先复习和回顾课本,在电脑上安装VisualC++等集成软件。
四:
实验设计方案:
1.主菜单:
程序是通过类的成员函数voidoperate();来实现对主菜单的输入与输出的处理。
2.数据功能:
程序是由类的成员函数voidprintYear();实现各年的输出;由voidprintMonth();来实现各月的输出;由voidprintDay();实现各天的输出。
3.源程序:
#include
#include
#include
#include
usingnamespacestd;
voidset_year();
voidset_month();
voidset_day();
intfirstday(inty);//第一天是周几
voidcoutmonth(intm);//输出月
intmonthfirstday(intyear);//月的第一天是星期几
intdaysofmonth(intm);//显示月日历
intmouthday();//计算是第多少天
intyear,month,day,weekday;
//输出月的标题
voidmonthhead(intm)
{
cout<<"\n";
cout<}
//输出标题
voidcouthead(intm)
{
inti;
cout<<"\n";
cout<cout<<"";
for(i=0;icout<<"";
}
//第一天是星期几
intfirstday(intyear)
{
doubles;
s=floor(year-1+(year-1)/4.0-(year-1)/100.0+(year-1)/400.0+1);
return(int)s%7;
}
//月的第一天是星期几
intmonthfirstday(intyear)
{
intx,t;
x=firstday(year);
if(year%4==0&&year%100!
=0||year%400==0)t=1;elset=0;
switch(month)
{
case1:
break;
case2:
x=(31+x)%7;
break;
case3:
x=(59+t)%7;
break;
case4:
x=(90+t)%7;
break;
case5:
x=(120+t)%7;
break;
case6:
x=(151+t)%7;
break;
case7:
x=(181+t)%7;
break;
case8:
x=(212+t)%7;
break;
case9:
x=(243+t)%7;
break;
case10:
x=(273+t)%7;
break;
case11:
x=(304+t)%7;
break;
case12:
x=(334+t)%7;
break;
}
returnx;
}
//输出月
voidcoutmonth(intm)
{
inti,days;
couthead(m);
days=daysofmonth(m);
for(i=1;i<=days;i++)
{
cout<weekday=(weekday+1)%7;
if(weekday==0)
cout<<"\n"<<"";
}
}
//计算是第多少天
intmouthday()
{
intk=day,t,num;
if(year%4==0&&year%100!
=0||year%400==0)t=1;elset=0;
switch(month)
{
case1:
num=k;
break;
case2:
num=31+k;
break;
case3:
num=59+t+k;
break;
case4:
num=90+t+k;
break;
case5:
num=120+t+k;
break;
case6:
num=151+t+k;
break;
case7:
num=181+t+k;
break;
case8:
num=212+t+k;
break;
case9:
num=243+t+k;
break;
case10:
num=273+t+k;
break;
case11:
num=304+t+k;
break;
case12:
num=334+t+k;
break;
}
cout<cout<cout<\n"<<"\n离本年结束还有"<<365+t-num<<"天。
"<return0;
}
//输入年
voidset_year()
{
cout<<"\n请输入年份:
";
cin>>year;
}
//输入月
voidset_month()
{
cout<<"\n请输入月份:
";
cin>>month;
}
//输入天
voidset_day()
{
cout<<"\n请输入日:
";
cin>>day;
}
//计算每月的天数
intdaysofmonth(intm)
{
switch(m)
{
case1:
case3:
case5:
case7:
case8:
case10:
case12:
return31;
case4:
case6:
case9:
case11:
return30;
case2:
if(((year%4==0&&year%100!
=0)||year%400==0))
return29;
else
return28;
default:
return0;
}
}
//首页
intinter_face()
{
cout<<"*******************************************************************************"<cout<<"\t\t欢迎使用...日历处理系统"<cout<<"\t\t主菜单"<cout<<"\t\t1输入年显示年日历"<cout<<"\t\t2输入年月显示月日历"<cout<<"\t\t3显示某一天是一年的第几天"<cout<<"\t\t4退出系统"<cout<<"*******************************************************************************"<cout<<"\t输入任务序号:
"<intchoose;
cin>>choose;
returnchoose;
}
intexit_test()//退出
{
cout<<"\n\t欢迎使用!
再见!
\n"<return0;//退出返回一个0值
}
intmain()//主函数
{
intchoose;
intm;
while(m)//功能选择
{
choose=inter_face();
switch(choose)
{
case1:
inti;
set_year();
weekday=firstday(year);
cout<cout<<""<for(i=1;i<=12;i++)
{
coutmonth(i);
cout<<"\n";
}
system("pause");
break;
case2:
set_year();
set_month();
weekday=monthfirstday(year);
cout<cout<for(i=1;i<=12;i++)
{
if(i==month)
{
coutmonth(i);
cout<<"\n";
}
}
system("pause");
break;
case3:
set_year();
set_month();
set_day();
mouthday();
system("pause");
break;
case4:
m=exit_test();
break;
default:
cout<<"\n\t\t输入有误!
!
!
"<cout<<"\n\t重新输入..."<system("pause");
break;
}
}
return0;
}
五:
运行结果及结论:
数据处理测试:
1.年的输出:
2:
月的输出:
3:
某一年是一年的第几天的输出:
六、小结:
经过一个学期对《C++程序设计》的学习,不仅学习了理论知识,还了解了C++语言的程序设计思想,掌握一种编程工具和面向对象程序设计的基本思想和方法,培养了我们综合利用某种语言进行程序设计的能力,培养了我们利用系统提供的功能进行创新设计的能力,还培养了我们充分利用计算机的功能和特点分析实际问题和解决实际问题的能力。
通过此次的课程设计,一方面检查了我们一个学期来的学习成果,另一方面也让我们进一步的掌握和运用了C++语言,同时也让我们认清了自己的不足和薄弱之处,并进行弥补和改正。