上机练习答案.docx
- 文档编号:24246819
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:17
- 大小:58.78KB
上机练习答案.docx
《上机练习答案.docx》由会员分享,可在线阅读,更多相关《上机练习答案.docx(17页珍藏版)》请在冰豆网上搜索。
上机练习答案
上机内容四
3、读程序,分析输出结果。
#include
usingnamespacestd;
intmain()
{
try
{
inta;
cout<<"输入一个正整数:
";
cin>>a;
if(a<=0)throwa;
char*s=newchar[3];
if(s==NULL)throws;
cout<<"输入3个大写字母:
";
for(inti=0;i<3;i++)
{
cin>>s[i];
if(s[i]<'A'||s[i]>'Z')throws[i];
}
}
catch(int)
{
cout<<"输入有错误,请输入正整数!
"< } catch(char) { cout<<"输入有错误,请输入大写英文字母! "< } catch(char*) { cout<<"内存分配失败! "< } return0; } 分别输入以三组数,分析输出结果: 12ABC 0ABC 2Abc 上机练习六 1、定义一个复数类Complex,重载运算符“+、-、*、/”,重载插入流运算符“<<”输出复数。 使得下面主程main()序能正确执行: #include doublereal;doubleimag;public: Complex(doubler=0,doublei=0){real=r;imag=i;}Complexoperator+(Complexc2){Complextemp;temp.real=real+c2.real;temp.imag=imag+c2.imag;returntemp;}Complexoperator+(doubled){Complextemp;temp.real=real+d;temp.imag=imag;returntemp;}friendComplexoperator+(doubled,Complex&c);Complexoperator-(Complexc2){Complextemp;temp.real=real-c2.real;temp.imag=imag-c2.imag;returntemp;}Complexoperator-(doubled){Complextemp;temp.real=real-d;temp.imag=imag;returntemp;}friendComplexoperator-(doubled,Complex&c);voiddisplay(){if(imag>0)cout< 上机内容七 1、定义Student类,包括strings_name、strings_sex、ints_age,3个数据成员。 定义Teacher类,包括stringt_name、stringt_sex、intt_age,3个数据成员。 试设计Teacher类和Student类的成员函数,使intmain()主函数能够正确运行。 intmain() { Students("xiaoyu","female",20); Teachert1=s; t1.display(); Teachert2("xiaoxin","male",20); Teachert3(t1); Studentstu=t2; stu.display(); stringteacher_name=t2,student_name=s; cout<<"teacher_name="< cout<<"student_name="< return0; } 程序: #include #include usingnamespacestd; classStudent { private: strings_name; strings_sex; ints_age; public: Student(stringn,strings,inta) { s_name=n; s_sex=s; s_age=a; } stringgetName() { returns_name; } stringgetSex() { returns_sex; } intgetAge() { returns_age; } operatorstring() { returns_name; } voiddisplay() { cout<<"Thestudent'sinformationis"< cout<<"name: "< cout<<"sex: "< cout<<"age: "< } }; classTeacher { private: stringt_name; stringt_sex; intt_age; public: Teacher(stringn,strings,inta) { t_name=n; t_sex=s; t_age=a; } Teacher(Student&s) { t_name=s.getName(); t_sex=s.getSex(); t_age=s.getAge(); } Teacher(constTeacher&t) { t_name=t.t_name; t_sex=t.t_sex; t_age=t.t_age; } operatorStudent() { Students(t_name,t_sex,t_age); returns; } operatorstring() { returnt_name; } voiddisplay() { cout<<"Theteacher'sinformationis"< cout<<"name: "< cout<<"sex: "< cout<<"age: "< } }; intmain() { Students("xiaoyu","female",20); Teachert1=s; t1.display(); Teachert2("xiaoxin","male",20); Teachert3(t1); Studentstu=t2; stu.display(); stringteacher_name=t2,student_name=s; cout<<"teacher_name="< cout<<"student_name="< return0; } 上机内容九 设计四个类,Cpeople、Cstudent、Cteacher、Date他们之间的继承和组合关系图下图所示: 根据图中类的属性和方法给出类的定义,并在main函数中给出验证。 Main函数自己设计。 在定义一个多继承派生类Cgraduat派生自Cstudent、Cteacher基类,并验证类的设计是正确的。 #include #include usingnamespacestd; classDate { private: intyear; intmonth; intday; public: Date(){} Date(inty,intm,intd) { year=y; month=m; day=d; } intgetY(){returnyear;} intgetM(){returnmonth;} intgetD(){returnday;} voidgetDate() { cout< } }; classCpeople { private: stringname; charsex; intage; public: Cpeople(){} Cpeople(stringn,chars,inta) { name=n; sex=s; age=a; } voidgetInformation() { cout<<"name: "< cout<<"sex: "< cout<<"age: "< } voiddisplay() { cout<<"Thepeople'sinformationis"< getInformation(); } }; classCstudent: virtualpublicCpeople { private: DateinDate; floatscore; public: Cstudent(stringn,chars,inta,inty,intm,intd,floatsc): Cpeople(n,s,a),inDate(y,m,d) { score=sc; } voidgetInformation() { cout<<"inDate: "; inDate.getDate(); cout<<"score: "< } voiddisplay() { cout<<"Thestudent'informationis"< Cpeople: : getInformation(); getInformation(); } }; classCteacher: virtualpublicCpeople { private: DateworkDate; stringdepartment; stringtitle; public: Cteacher(stringn,chars,inta,intw_y,intw_m,intw_d,stringdept,stringt): Cpeople(n,s,a),workDate(w_y,w_m,w_d) { department=dept; title=t; } voidgetInformation() { cout<<"workDate: "; workDate.getDate(); cout<<"department: "< cout<<"title: "< } voiddisplay() { cout<<"Theteacher'informationis"< Cpeople: : getInformation(); getInformation(); } }; classCgraduate: publicCstudent,publicCteacher { private: intwages; public: Cgraduate(stringn,chars,inta,inty,intm,intd,floatsc,intw_y,intw_m,intw_d,stringdept,stringt,intw): Cpeople(n,s,a),Cstudent(n,s,a,y,m,d,sc),Cteacher(n,s,a,w_y,w_m,w_d,dept,t) { wages=w; } voidgetInformation() { cout<<"wages: "< } voiddisplay() { cout<<"Thegraduate'sinformationis"< Cpeople: : getInformation(); Cstudent: : getInformation(); Cteacher: : getInformation(); getInformation(); } }; intmain() { Cstudents("xiaoyu",'f',18,2002,9,1,98); Cteachert("zhangsan",'m',22,2002,9,1,"computer","assistant"); Cgraduateg("xiaoxue",'m',22,2002,9,1,290,2002,12,12,"computer","assistant",900); s.display(); t.display(); g.display(); return0; } 上机练习十 写一个程序,定义抽象基类Shape(图形),由它派生出别个类: Circle(圆)、Rectangle(矩形)和Triangle(三角形),由Rectangle(矩形)派生出Squre(正方形),用虚函数分别计算几种图形面积,和每种图形的基本信息。 设计主函数main()测试,使用基类指针数组,使它的每一个元素指向一个派生类对象。 #include usingnamespacestd; classShape { public: virtualvoidDraw()=0; virtualvoidArea()=0; }; classCircle: publicShape { private: intradius; public: Circle(intr){radius=r;} virtualvoidDraw() { cout<<"DrawingaCircle..."< } virtualvoidArea() { cout<<"Circle'sareais"<<3.14*radius*radius< } }; classRectangle: publicShape { private: intwidth; intheight; public: Rectangle(intw,inth){width=w;height=h;} virtualvoidDraw() { cout<<"DrawingaRectangle..."< } virtualvoidArea() { cout<<"Rectangel'sareais"< } }; classTriangle: publicShape { private: intwidth; intheight; public: Triangle(intw,inth){width=w;height=h;} virtualvoidDraw() { cout<<"DrawingaTriangle..."< } virtualvoidArea() { cout<<"Triangle'sareais"< } }; classSquare: publicRectangle { private: intwidth; intheight; public: Square(intw,inth,intnew_w): Rectangle(w,h){width=new_w;height=new_w;} virtualvoidDraw() { cout<<"DrawingaSquare..."< } virtualvoidArea() { cout<<"Square'sareais"< } }; intmain() { Shape*shape; Circlec(5); Rectangler(2,4); Trianglet(4,2); Squares(2,2,4); shape=&c; shape->Draw(); shape->Area(); shape=&r; shape->Draw(); shape->Area(); shape=&t; shape->Draw(); shape->Area(); shape=&s; shape->Draw(); shape->Area(); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上机 练习 答案