南昌航空大学实验1.docx
《南昌航空大学实验1.docx》由会员分享,可在线阅读,更多相关《南昌航空大学实验1.docx(8页珍藏版)》请在冰点文库上搜索。
南昌航空大学实验1
南昌航空大学实验报告
课程名称:
面向对象程序设计B实验名称:
类与结构
姓名:
_________同组人:
指导老师评定:
签名:
1.实验目的
·学习完整的C++程序开发过程(编辑,编译,连接,调试,运行及查看结果)理解简单的C++程序结构
·通过实验理解类与结构的区别,掌握类的定义,了解用户自定义数据类型
2.实验内容
应用VC++6.0的编辑环境构造一个类Date,该类主要实现日期的基本操作,例如初始化(非构造函数)、求当前日期为星期几、当前年份是否为闰年、该日为该年第几天、输出等,具体说明如下:
该类拥有三个私有(或保护)成员变量year、month、day,分别代表日期中的年、月、日,成员函数有初始化函数、判断该年份是否为闰年函数、求当前日期为星期几函数、该日为该年第几天,结果输出函数等。
3.概要设计
voidinit(intmintnintp)初始化函数
intleapyear()判别闰年函数
intweek()判别星期函数
intDay()判别该日为此年第几天
4.详细设计
voidinit(intm,intn,intp)(初始化日期)
{
year=m;
month=n;
day=p;
}
voidleapyear()(判别闰年)
{
if((year%4==0)&&(year%100!
=0)||(year%400==0))
cout<else
cout<}
intweek()(求当前星期几)
{
if(month==1||month==2)
{
year-=1;
month+=12;
}
return(day+1+2*month+3*(month+1)/5+year+(year/4)-year/100+year/400)%7;
}
voidDay()(算当前天数)
{
intt;
if((year%4==0)&&(year%100!
=0)||(year%400==0))
t=28;
else
t=29;
switch(month)
{
case1:
cout<<"todayistoyear'snumber"<break;
case2:
cout<<"todayistoyear'snumber"<break;
case3:
cout<<"todayistoyear'snumber"<break;
case4:
cout<<"todayistoyear'snumber"<break;
case5:
cout<<"todayistoyear'snumber"<break;
case6:
cout<<"todayistoyear'snumber"<break;
case7:
cout<<"todayistoyear'snumber"<break;
case8:
cout<<"todayistoyear'snumber"<break;
case9:
cout<<"todayistoyear'snumber"<break;
case10:
cout<<"todayistoyear'snumber"<break;
case11:
cout<<"todayistoyear'snumber"<break;
case12:
cout<<"todayistoyear'snumber"<break;
}
}
5.程序调试
6.实验总结
通过此程序设计学会了类的使用而且对类中成分有了进一步的了解
7.附录
#include
classDate
{
private:
intyear,month,day;
public:
voidinit(intm,intn,intp)(初始化日期)
{
year=m;
month=n;
day=p;
}
voidleapyear()(判别闰年)
{
if((year%4==0)&&(year%100!
=0)||(year%400==0))
cout<else
cout<}
intweek()(求星期几)
{
if(month==1||month==2)
{
year-=1;
month+=12;
}
return(day+1+2*month+3*(month+1)/5+year+(year/4)-year/100+year/400)%7;
}
voidDay()(求该天为该年的第几天)
{
intt;
if((year%4==0)&&(year%100!
=0)||(year%400==0))
t=28;
else
t=29;
switch(month)
{
case1:
cout<<"todayistoyear'snumber"<break;
case2:
cout<<"todayistoyear'snumber"<break;
case3:
cout<<"todayistoyear'snumber"<break;
case4:
cout<<"todayistoyear'snumber"<break;
case5:
cout<<"todayistoyear'snumber"<break;
case6:
cout<<"todayistoyear'snumber"<break;
case7:
cout<<"todayistoyear'snumber"<break;
case8:
cout<<"todayistoyear'snumber"<break;
case9:
cout<<"todayistoyear'snumber"<break;
case10:
cout<<"todayistoyear'snumber"<break;
case11:
cout<<"todayistoyear'snumber"<break;
case12:
cout<<"todayistoyear'snumber"<break;
}
}
};
voidmain()
{
intx,y,z;
Datedate;
cout<<"pleasescanfthedate"<cin>>x>>y>>z;(输入日期)
date.init(x,y,z);
date.leapyear();
cout<date.Day();
}