C++面向对象程序设计实验指导书Word文档格式.docx
《C++面向对象程序设计实验指导书Word文档格式.docx》由会员分享,可在线阅读,更多相关《C++面向对象程序设计实验指导书Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
![C++面向对象程序设计实验指导书Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/27/3143c7ce-08eb-48e5-abd5-1fe121ff18f9/3143c7ce-08eb-48e5-abd5-1fe121ff18f91.gif)
1.C++基本数据类型、控制结构语句
2.IO流输入/输出语句的使用。
三.实验内容
1.使用IO流输出语句,分三行输出“MynameisJone\n”,“theIDis”,“2”。
2.分别用浮点、定点和指数方式显示22.0/7的计算结果。
3.分别用16、8、10进制显示输出十进展数1001。
4.分别用显示宽度为2,3,4显示输出21,其中用“*”填充间隔。
5.分别用左对齐、右对齐两种方式显示输出1,2,3三个数。
6.输入圆的半径,计算并输出它的周长和面积。
其中π=3.1415926,使用常量定义π。
四.实验指导
1.参考程序:
#include<
iostream.h>
intmain()
{
cout<
<
”MynameisJone\n”;
”theIDis”;
2;
endl;
}
2.参考程序:
#include<
iomanip.h>
//要用到格式控制符
voidmain()
doubleamount=22.0/7;
cout<
amount<
setprecision(0)<
endl
<
setprecision
(1)<
setprecision
(2)<
setprecision(3)<
setprecision(4)<
setiosflags(ios:
:
fixed);
setprecision(8)<
scientific)<
setprecision(6);
//重新设置成原默认设置
3.参考程序:
intnumber=1001;
"
Decimal:
dec<
number<
Hexadecimal:
hex<
Octal:
oct<
return0;
4.参考程序:
setfill('
*'
)
setw
(2)<
21<
setw(3)<
setw(4)<
'
);
//恢复默认设置
5.参考程序:
cout<
right)
setw(5)<
1
2
3<
left)
6.参考程序:
constfloatPI=3.1415926f;
floatr;
floatz,s;
请输入圆的半径r="
;
cin>
>
r;
z=2*PI*r;
s=PI*r*r;
圆的周长为:
"
z<
圆的面积为:
s<
实验2类和对象
1、实验目的:
掌握类的定义,根据具体需求设计类
深入理解C++中类的封装性。
会根据类创建各种对象
掌握对象的各种成员的使用方法。
2、实验内容
定义一个满足如下要求的Date类。
(1)用下面的格式输出日期:
日/月/年
(2)可运行在日前上加一天操作
(3)设置日期。
代码如下:
classDate{
public:
voidDisplay();
voidAddOneDay();
voidSetDay(inty,intm,intd);
protected:
boolLegal(inty,intm,intd);
boolIsLeapYear(inty);
intyear;
intmonth;
intday;
};
voidDate:
Display()
day<
/"
month<
year<
AddOneDay()
if(Legal(year,month,day+1))
day++;
elseif(Legal(year,month+1,1))
month++,day=1;
elseif(Legal(year+1,1,1))
day=1,month=1,year++;
SetDay(inty,intm,intd)
if(Legal(y,m,d))
day=d,month=m,year=y;
boolDate:
Legal(inty,intm,intd)
if(y>
9999||y<
1||d<
1||m<
1||m>
12)
returnfalse;
intdayLimit=31;
switch(m)case4:
case6:
case9:
case11:
dayLimit--;
if(m==2)dayLimit=IsLeapYear(y)?
29:
28;
return(d>
dayLimit)?
false:
true;
IsLeapYear(inty)
return!
(y%4)&
&
(y%100)||!
(y%400);
Dated;
d.SetDay(2010,2,28);
d.Display();
d.AddOneDay();
system("
PAUSE"
运行结果:
实验3继承与派生
理解继承的概念,学习如何使用基类成员,了解基类成员在派生类中的访问控制;
理解类的派生对代码复用的作用;
2、实验内容:
设计一个人员类person和一个日期类date,由人员类派生出学生类Student和教师类professor,学生类和教师类的数据成员birthday为日期类。
string>
iostream>
usingnamespacestd;
classdate
public:
date()
{
Birthday:
year>
month>
day;
}
voiddisplay()
year<
-"
month<
}
private:
classperson
protected:
char*name;
person();
person:
person()
charnamestr[50];
Name:
namestr;
name=newchar[strlen(namestr)+1];
strcpy(name,namestr);
classstudent:
publicperson
intID;
intscore;
datebirthday;
student()
studentID:
ID;
studentscore:
score;
Thebasicinformation:
ID<
\t"
name<
score<
birthday.display();
classprofessor:
intNo;
charmajor[10];
professor()
TeacherID:
No;
schoolteachingmajor:
major;
No<
major<
studentstu;
stu.display();
professorprof;
prof.display();
return0;
运行结果:
实验4运算符重载
掌握运算符重载的概念及使用方法,掌握特殊运算符的重载要求和方法。
定义整数集合类intS