实验10思考题.docx
- 文档编号:7780502
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:9
- 大小:16.22KB
实验10思考题.docx
《实验10思考题.docx》由会员分享,可在线阅读,更多相关《实验10思考题.docx(9页珍藏版)》请在冰豆网上搜索。
实验10思考题
实验10类与对象
(二)
三、实验思考
1.定义一个圆类,计算圆的面积和周长。
要求分别用成员函数和友元函数来求圆的面积和周长。
#include
usingnamespacestd;
classCircle
{
public:
Circle(float,float,float);
floatarea();
floatperimeter();
friendfloatarea(Circle&);
friendfloatperimeter(Circle&);
private:
floatx;
floaty;
floatr;
};
Circle:
:
Circle(floata,floatb,floatc)
{
x=a;
y=b;
r=c;
}
floatCircle:
:
area()
{
return*r*r;
}
floatCircle:
:
perimeter()
{
return2**r;
}
floatarea(Circle&c)
{
return**;
}
floatperimeter(Circle&c)
{
return2**;
}
intmain()
{
Circlecir,,;
cout<<()< cout<<()< cout< cout< return0; } 2.定义Boat与Car两个类,两者都有weight属性,定义两者的一个友元函数totalWeight()为外部函数,计算两者的重量和。 #include usingnamespacestd; classCar; classBoat { public: Boat(inta): weight(a){} friendinttotalWeight(Boat&boat,Car&car); private: intweight; }; classCar { public: Car(inta): weight(a){} friendinttotalWeight(Boat&boat,Car&car); private: intweight; }; inttotalWeight(Boat&boat,Car&car) { return+; } intmain() { Boatboat(20); Carcar(10); cout<<"Theweightis: "; cout< return0; } 3.设计一个Book类,包含两个私有数据成员count和price,建立一个含有5个元素的数组对象,将count初始化为1,2,3,4,5,将price初始化为10,15,20,25,30,显示每个对象的count和price值。 #include usingnamespacestd; classBook { public: Book(intc,intp): count(c),price(p){} voidoutput(); private: intcount; intprice; }; voidBook: : output() { cout< } intmain() { Bookb[5]={Book(1,10),Book(2,20),Book(3,30),Book(4,40),Book(5,50)}; for(inti=0;i<5;i++) b[i].output(); return0; } 4.设计一个Student类,包含学生的基本信息: 学号、姓名、性别、出生日期、年级、班级、院系和专业等,Student类有多个构造函数: 缺省构造函数、带参数的构造函数、带默认参数的构造函数。 类的基本功能有: (1)使用对象数组保存学生对象。 (2)从键盘输入学生的基本信息。 (3)修改学生的基本信息。 (4)显示学生信息。 #include #include #include<> #defineN100 usingnamespacestd; classDate { public: Date(){} Date(inty,intm,intd): year(y),month(m),day(d){}; Date(Date&); voidSetYear(intx){year=x;} voidSetMonth(intx){month=x;} voidSetDay(intx){day=x;} intGetYear(){returnyear;}etNo()<<""<<(*stu[i]).GetName()<<""<<(*stu[i]).GetSex()< (*stu[i]).GetBirth(); cout<<(*stu[i]).GetGrade()<<""<<(*stu[i]).GetCno()<<""<<(*stu[i]).GetXueyuan()<<""<<(*stu[i]).GetMajor()< break; case3: cout<<"输入学号: "; cin>>no; for(i=0;i { if(no==(*stu[i]).GetNo()) { cout<<"\n\n1: 名字修改2: 学院修改3: 专业修改"< cout<<"选择您要进行的修改方式: "< cin>>choose1; switch(choose1) { case1: cout<<"输入姓名: "; cin>>name; (*stu[i]).SetName(name); break; case2: cout<<"输入学院: "; cin>>xy; (*stu[i]).SetXueyuan(xy); break; case3: cout<<"输入专业"< cin>>mj; (*stu[i]).SetMajor(mj); break; } break; } elsecout<<"该学生不存在"< } break; } cout<<"\n\t\t======================================="< cout<<"\t\t1: 录入2: 显示3: 修改0: 退出"< cout<<"\n输入您要进行的操作: "; cin>>choose; } return0; } 5.实现公司员工的管理。 设计employee类,包含员工基本信息: 编号、姓名、性别、出生日期和职务等。 出生日期使用自定义的Date类。 employee类有可以从外部访问类成员的友元函数。 程序基本功能有: (1)职工信息的录入。 (2)职工信息的显示。 (3)用对象数组保存已输入的职工对象。 (4)可以修改人员的基本信息。 (5)可以通过编号或姓名进行人员查询。 #include #include #defineN100 usingnamespacestd; classDate { private: intyear; intmonth; intday; public: voidSetYear(intx){year=x;} voidSetMonth(intx){month=x;} voidSetDay(intx){day=x;} intGetYear(){returnyear;}etYear() <<""< } break; case3: cout<<"输入员工编号: "; cin>>n; for(i=0;i<=num;i++) { if(n==Getno(*persons[i])) { cout<<"\n\n1: 名字修改2: 职位修改"< cout<<"选择您要进行的修改方式: "< cin>>choose1; switch(choose1) { case1: cout<<"输入员工姓名: "; cin>>str; persons[num-1]=newemployee(n,str,s,Date(y,m,d),p); break; case2: cout<<"输入员工职位: "; cin>>p; persons[num-1]=newemployee(n,str,s,Date(y,m,d),p); break; } break; } elsecout<<"该员工不存在"< } break; case4: cout<<"输入员工编号: "; cin>>n; for(i=0;i<=num;i++) { if(n==Getno(*persons[i])) { cout<<"编号\t"<<"姓名\t"<<"性别\t"<<"生日\t\t"<<"职务"< cout< <<""< break; } } break; } cout<<"\n\t\t======================================="< cout<<"\t\t1: 录入2: 显示3: 修改4: 查找0: 退出"< cout<<"\t\t======================================="< cout<<"\n输入您要进行的操作: "; cin>>choose; } return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验10 思考题 实验 10