收藏 分享(赏)

面向对象程序设计实验项目及答案.doc

上传人:tangtianxu1 文档编号:3011171 上传时间:2018-10-01 格式:DOC 页数:39 大小:228KB
下载 相关 举报
面向对象程序设计实验项目及答案.doc_第1页
第1页 / 共39页
面向对象程序设计实验项目及答案.doc_第2页
第2页 / 共39页
面向对象程序设计实验项目及答案.doc_第3页
第3页 / 共39页
面向对象程序设计实验项目及答案.doc_第4页
第4页 / 共39页
面向对象程序设计实验项目及答案.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、1实验一 C+面向过程练习(一) (2 学时) 实验目的和要求:1. 掌握 C程序的基本格式与规范,学会编写简单的 C程序。2. 理解 C程序的结构和特点。3. 熟悉 C程序基本的输入和输出操作。4. 掌握 C数据类型、常量和变量以及修饰符的使用方法。5. 掌握 C的各种流程控制语句的使用。6. 熟悉 C语言实验环境,能够在 VC6.0 环境下调试与运行程序。 实验内容:1. 求解方程 在复数域上的解,a,b,c 由终端输入。注意分析的全面02cbxa性。#include#includeusing namespace std;int main()double a,b,c,d,e,m,n;cou

2、ta;coutb;coutc;while(1)if(a=0)m=-b/c;cout=0)e=sqrt(d);m=(-b+e)/(2*a);n=(-b-e)/(2*a);if(m!=n)couta;coutb;coutc;return 0;2. 猴子吃桃子问题:一天一只小猴子摘下一堆桃子,当即吃掉一半,还觉得不过瘾,又多吃了一个。第二天接着吃了前一天剩下的一半,馋不忍罢又多吃了一个。以后每天如此。到第十天小猴子去吃时,只剩下一个桃子了。问小猴子共摘下了多少个桃子。#includeusing namespace std;int f(int n);int main()coutusing namesp

3、ace std;int fact(int n);int main()int i=1;double sum=1,a;do3a=1./fact(i);sum+=a;i+;while(a0.000001);coutusing namespace std;# define M 100int main()int aM,n,t;cinn;for(int k=0;kak;for(int i=1;iaj+1)t=aj;aj=aj+1;aj+1=t;coutusing namespace std;int main()int m,n,t,lcm,gcd;cinmn;if(musing namespace std;

4、const int M=100;void reverse(int a,int n);int main()int aM,n;cinn;for(int i=0;iai;reverse(a,n);coutusing namespace std;int max(int x,int y)return xy?x:y;int max(int x,int y,int z)int t=xy?x:y;return tz?t:z;float max(float i,float j)return ij?i:j;float max(float i,float j,float k)6float s=ij?i:j;retu

5、rn sk?s:k;double max(double m,double n)return mn?m:n;double max(double m,double n,double o)double l=mn?m:n;return lo?l:o;char max(char p,char q)return pq?p:q;char max(char p,char q,char r)char v=pq?p:q;return vr?v:r;int main()int x,y,z,t;float i,j,k;double m,n,o;char p,q,r;coutt;switch(t)case 1:cinx

6、y;coutij;coutmn;coutpq;coutxyz;coutijk;coutmno;coutpqr;cout#includeusing namespace std;void add1(int sum)8int i;while(i!=0)cini;sum+=i;void add2(int *p)int i;while(i!=0)cini;*p+=i;void add3(int while(i!=0)cini;sum+=i;int main()int sum1=0,sum2=0,sum3=0;int *p;p=add1(sum1);add2(p);add3(sum3);cout#incl

7、udeusing namespace std;int row,temp;void gorigh(int *q,int temp0;temp-)if(qc*row+temp=0)qc*row+temp=m+;c-;void goup(int *q,int temp0;temp-)if(qtemp*row+d=0)qtemp*row+d=m+;d-;int main() int a,b,c,d,m,n=100;for(a=1;arow;int *p=new int row*row;m=1;for(a=0;a0) cout=0;c-)pa*row+c=(d+);b=-b;cout0) coutusi

8、ng namespace std;#includeclass Circlepublic:void setCircle(int a,int b, int c)x=a;y=b;r=c;double GetArea(int a=0,int b=0, int c=0)12return 3.14*c*c;double GetPerimeter(int a,int b, int c)return 2*3.14*c;void showCircle()coutwidth=wid;/ Rectangledouble Area(double len,double wid)return len*wid;double

9、 Perimeter(double len,double wid)return 2*(len+wid);void showRectangle()coutp;switch(p)case 1:Circle circle1;coutijk;circle1.setCircle(i,j,k);circle1.showCircle();break;case 2:Rectangle rectangle1;coutmn;rectangle1.setRectangle(m,n);rectangle1.showRectangle();break;case 3:Triangle triangle1;coutabcd

10、ef;r=sqrt(pow(a-c,2)+pow(b-d,2);s=sqrt(pow(a-e,2)+pow(b-f,2);t=sqrt(pow(c-e,2)+pow(f-d,2);triangle1.setTriangle(r,s,t);if(r+s)using namespace std;#includeclass Point16public:void getx1y1(int a,int b)x1=a;y1=b;protected:int x1,y1;class Line:public Pointpublic:void getx1y1x2y2(int a,int b,int c,int d)

11、getx1y1(a,b);x2=c;y2=d;double Length(int a,int b,int c,int d)return sqrt(pow(a-c,2)+pow(b-d,2);double Slope(int a,int b,int c,int d)if(b-d)=0)return 0;elsereturn (d-b)/(c-a);void show()couti;switch(i)case 1:coutabcd;obj1.getx1y1x2y2(a,b,c,d);obj1.show();break;case 2:coutxyr;Circle obj2;obj2.getx1y1r

12、(x,y,r);obj2.show();break;case 3:coutxyrh;Cylinder obj3;obj3.getx1y1rh(x,y,r,h);19obj3.show();break;case 4:coutxyr;Spheroid obj4;obj4.getx1y1r(x,y,r);obj4.show();break;return 0;2. 小型公司人员管理。某小型公司有四类人员:总经理、技术人员、销售经理、推销员。设计一个基类 person,并派生出 employee(职员) ,再由 employee 派生出manager(总经理) 、technician(技术人员) 、sa

13、lesmanager(销售经理) 、saleman(推销员) 。销售经理既是经理又是销售人员,兼具两类人员的特点,因此同时继承 manager 和 salesman 两个类。(1) 类定义 person 类:基本信息:姓名、性别、出生日期(使用自定义的 Date(日期)类)其中:基本信息为 private 属性,成员函数为 public 属性 Date 类:成员变量:年、月、日 派生类 employee :新增属性:编号、职位、薪水等 派生类 technician:新增属性:工作时间 派生类 saleman: 新增属性:销售额、所属部门(2) 实现人员信息的录入与显示。(3) 计算并显示个人月

14、薪:月薪计算办法:总经理拿固定月薪 8000 元,技术人员按每小时 25 元领取月薪;推销员的月薪按当月销售额的 4%提成;销售经理固定月薪 5000 元加所管辖部门当月销售总额的 5 。#include#includeusing namespace std;class datepublic:void date1()coutyearmonthday;20/ friend person;protected:int year,month,day;class person:public datepublic:void person1()coutname;coutsex;date1();/ frien

15、d Date;void show1()coutid;void show2()show1();coutworktime;double salary1()return 25*worktime;void show4()show2();coutsale;coutdepartment;double salary2()return sale*0.04;void show5()show2();coutsale;double salary3()return (5000+sale*0.005);void show6()show2();couti;switch(i)case 1:manager s1;coutus

16、ing namespace std;class Linepublic:Line(int a)x=a;virtual void Figure()=0;protected:int x,y,h;class Rectangle:public Linepublic:Rectangle(int a,int b):Line(a)y=b;void Figure()coutxy;Rectangle r(x,y);p=p-Figure();coutx;Squre s(x);p=p-Figure();coutxyh;Cuboid t(x,y,h);p=p-Figure();coutx;26SquareBody q(

17、x);p=p-Figure();return 0;2. 员工管理:(1) 将实验六中题目 2 中不同员工的工资计算函数 pay(),改用虚函数实现。(2) 将每个类中的信息显示函数:display()改用虚函数实现。(3) 对每个类增加一个升职函数:promote()。(4) employee()类中的 pay()和 display()设计为纯虚函数;在主函数中便可以依据赋值兼容规则用基类类型的指针数组来处理不同派生类的对象。(5) 由于不同类的对象调用升级函数 promote()需要赋于不同的实参值,难以对各类对象统一处理,因此,employee() 中 promote()定义为虚函数,各派

18、生类再定义同名函数。#include#includeusing namespace std;class employeepublic:virtual void pay()=0;virtual void display()=0;void employee1()coutname;coutsex;coutyearmonthday;coutid;salary=0;void show()coutworktime;salary=25*worktime;void display()show();coutsale;coutdepartment;salary=sale*0.04;void display()sh

19、ow();coutsale;salary=(5000+sale*0.005);void display()show();couti;switch(i)case 1:manager s1;coutclass complexpublic:complex(double r=0.0,double i=0.0)real=r;imag=i;friend complex operator+(complex a,complex b);friend complex operator-(complex a,complex b);friend complex operator*(complex a,complex

20、b);friend complex operator/(complex a,complex b);friend complex operator!(complex a);friend ostreamprivate:double real;double imag;complex operator+(complex a,complex b)complex temp;temp.real=a.real+b.real;temp.imag=a.imag+b.imag;return temp;complex operator-(complex a,complex b)complex temp;temp.real=a.real-b.real;temp.imag=a.imag-b.imag;return temp;complex operator*(complex a,complex b) complex temp;temp.real=a.real*b.real-a.imag*b.imag;temp.imag=a.real*b.imag+a.imag*b.real;return temp; complex operator/(complex a,complex b) complex temp;double t;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报