- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三面向对象编程
实验目的:
掌握类中静态成员的定义方法,初始化方法,使用方法;
掌握类的友元说明方法,理解友元的使用特点
实验时间:
实验地点:
实验内容:
1.编写程序,统计某旅馆住宿客人的总数,要求输入客人姓名,输出客人编号(按先后顺序自动生成),姓名以及总人数。
2.编写学生类Stu,包含学生姓名,成绩,设计一个友员函数,将学生成绩按大到小排序。
3.设计Person类,包含学号,姓名和成绩等私有数据成员,不含任何成员函数,只将main()设为该类的友元函数。
4.已知三点座标,求三角形的面积。S=(1/2)*(x1y2+x2y3+x3y1-x1y3-x2y1-x3y2)
五、实验要求:在上机前写出全部源程序;六、实验结果分析:
1.旅客人数及信息
代码:
#includeiostream
#includestring.h
usingnamespacestd;
classCustomer
{
public:
Customer();
voidInput();
intGetNum();
staticvoidSort(Customer*cus[],intlen);
voidDisp();
~Customer();
private:
intnum;
char*name;
};
staticintcount=0;
//构造函数
Customer::Customer()
{
count++;
}
//信息输入
voidCustomer::Input()
{
cout请输入旅客的编号和姓名:;
cinnum;
char*pname=newchar;
cinpname;
name=pname;
}
//获得编号
intCustomer::GetNum()
{
returnnum;
}
//按照编号排序
voidCustomer::Sort(Customer*cus[],intlen)
{
for(inti=0;ilen;i++)//冒泡排序
for(intj=i+1;jlen;j++)
if(cus[i]-GetNum()cus[j]-GetNum())//比较编号大小
{
Customer*temp=cus[i];
cus[i]=cus[j];
cus[j]=temp;
}
}
//信息输出
voidCustomer::Disp()
{
cout编号:num姓名:nameendl;
}
//析构函数
Customer::~Customer()
{
count--;
}
intmain()
{
intn,i;
cout输入旅客的人数:;
cinn;
Customer*c[n];
for(i=0;in;i++)
{
c[i]=newCustomer;
c[i]-Input();
}
Customer::Sort(c,n);
for(i=0;in;i++)
{
c[i]-Disp();
}
cout旅客的人数为:countendl;
return0;
}
结果截图:
2.学生类Stu
代码:
#includeiostream
#includestring.h
usingnamespacestd;
classStudent
{
public:
Student();
voidInput();
voidDisp();
~Student();
friendvoidSort(Student*s[],intn);
private:
char*name;
char*num;
intscore;
};
staticintcount=0;
//构造函数
Student::Student()
{
count++;
}
//输入学生信息
voidStudent::Input()
{
cout请输入学生的学号,姓名,分数:;
char*pnum=newchar;
char*pname=newchar;
cinpnum;
num=pnum;
cinpname;
name=pname;
cinscore;
}
//排序
voidSort(Student*s[],intn)
{
for(inti=0;in;i++)
for(intj=i+1;jn;j++)
if(s[i]-scores[j]-score)
{
Student*temp=s[i];
s[i]=s[j];
s[j]=temp;
}
}
//输出学生信息
voidStudent::Disp()
{
cout分数:score学号:num姓名:nameendl;
}
//析构函数
Student::~Student()
{
count--;
}
intmain()
{
intn,i;
cout请输入学生的人数:;
cinn;
Student*c[n];
for(i=0;in;i++)
{
c[i]=new
文档评论(0)