C++上机指导答案.doc_第1页
C++上机指导答案.doc_第2页
C++上机指导答案.doc_第3页
C++上机指导答案.doc_第4页
C++上机指导答案.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验答案实验一(略)实验二1、2、3、(1)#include /包含头文件命令using namespace std;/使用名字空间stdint main()int a,b,c; /定义两个变量a和b coutPlease input to a, b and c: abc;/等待用户从键盘输入数据 int max(int x, int y); /有两个形参的max函数原型声明cout Max(a,b)= max(a,b)endl;/输出结果信息至屏幕int max(int x, int y, int z); /有三个形参的max函数原型声明cout Max(a,b,c)= max(a,b,c) y)?x:y; /求两个数中的大者的函数int max(int x, int y, int z) /求三个数中的大者的函数 int temp;temp=max(x,y);temp=max(temp,z);return temp; (2)#include using namespace std;int main()int max(int a,int b,int c=0); int a,b,c; cinabc; coutmax(a,b,c)=max(a,b,c)endl; coutmax(a,b)=max(a,b)a) a=b; if(ca) a=c; return a;4、(1)#include using namespace std;int main()void sort(int *,int *,int *); int a,b,c,a1,b1,c1; coutabc; a1=a;b1=b;c1=c; sort(&a1,&b1,&c1); couta b c in sorted order is ; couta1 b1 c1*j) change(i,j); if (*i*k) change(i,k); if (*j*k) change(j,k);void change(int *x,int *y) int temp; temp=*x; *x=*y; *y=temp;(2)#include using namespace std;int main()void sort(int &,int &,int &); int a,b,c,a1,b1,c1; coutabc; a1=a;b1=b;c1=c; sort(a1,b1,c1); couta b c in sorted order is ; couta1 b1 c1j) change(i,j); if (ik) change(i,k); if (jk) change(j,k);void change(int &x,int &y) int temp; temp=x; x=y; y=temp;5、#include #include using namespace std;int main() int a5=1,9,0,23,-45; float b5=2.4f, 7.6f, 5.5f, 6.6f, -2.3f; string c5=”student”, ”teacher”,”library”,”class”,”school”; void sort(int ); void sort(float ); void sort(double ); sort(a); sort(b); sort(c); return 0;void sort(int a)/冒泡排序int i,j,t; for (j=0;j5;j+) for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; coutthe sorted numbers :endl; for(i=0;i5;i+) coutai ; coutendlendl; void sort(float a)/改进的冒泡排序int i,j; float t; int flag; for (j=0;j5;j+) flag=1; for(i=0;iai+1) flag=0; t=ai;ai=ai+1;ai+1=t; if (flag=1) break; coutthe sorted numbers :endl; for(i=0;i5;i+) coutai ; coutendlendl;void sort(string a)/选择排序int i,j;string min; long t; for(i=0;i5;i+) min=i; for (j=i+1;jaj) min=j;t=ai; ai=amin;amin=t; coutthe sorted numbers :endl; for(i=0;i5;i+) coutai ; coutendlendl;6、#include #include using namespace std;int main() string s1=week,s2=end; couts1=s1endl; couts2=s2endl; s1=s1+s2; coutThe new string is:s1endl; return 0;实验三5、#include #include class Employee char name20;char street100;char city20;char province20;char postalcode10;public: Employee();Employee(char *nm,char *str,char *city, char *prov, char *zip); void SetData(char *newName,char *newaddr,char *newcity, char *newprov, char *newcode); void Display();Employee:Employee(char *nm, char *addr, char *cit, char *prov, char *code) strcpy(name,nm); strcpy(street,addr); strcpy(city,cit); strcpy(province,prov); strcpy(postalcode,code); void Employee:SetData(char *newName,char *newaddr,char *newcity, char *newprov, char *newcode)strcpy(name, newName);strcpy(street,newaddr); strcpy(city,newcity); strcpy(province,newprov); strcpy(postalcode,newcode); void Employee:Display()coutname=name;cout street=street;cout city=city;cout province=province;cout postalcode=postalcode;coutendl;int main() Employee employee1(Tom,AAAAAAAA,BB,CC,DD); employee1.Display(); employee1.SetData(Tom,AAAAAAAA,BB,CC,EE);employee1.Display();return 0;实验四1、2、3、#include#include using namespace std;class Teacher public: Teacher(string nam,int a,char s,string tit,string ad,string t); void display(); protected: string name; int age; char sex; string title; string addr; string tel;Teacher:Teacher(string nam,int a,char s,string tit,string ad,string t): name(nam),age(a),sex(s),title(tit),addr(ad),tel(t) void Teacher:display() coutname:nameendl; coutageageendl; coutsex:sexendl; couttitle:titleendl; coutaddress:addrendl; couttel:telendl; class Cadre public: Cadre(string nam,int a,char s,string p,string ad,string t); void display(); protected: string name; int age; char sex; string post; string addr; string tel; ; Cadre:Cadre(string nam,int a,char s,string p,string ad,string t): name(nam),age(a),sex(s),post(p),addr(ad),tel(t) void Cadre:display() coutname:nameendl; coutage:ageendl; coutsex:sexendl; coutpost:postendl; coutaddress:addrendl; couttel:telendl; class Teacher_Cadre:public Teacher,public Cadre public: Teacher_Cadre(string nam,int a,char s,string tit,string p,string ad,string t,float w); void show( ); private: float wage; ; Teacher_Cadre:Teacher_Cadre(string nam,int a,char s,string t,string p,string ad,string tel,float w): Teacher(nam,a,s,t,ad,tel),Cadre(nam,a,s,p,ad,tel),wage(w) void Teacher_Cadre:show( ) Teacher:display(); coutpost:Cadre:postendl; coutwages:wageendl; int main( ) Teacher_Cadre te_ca(Wang-li,50,f,prof.,president,135 Beijing Road,Shanghai,(021)61234567,1534.5); te_ca.show( ); return 0;4、/student.h#includescore.hclass Studentprivate:int number;char name20;Score ascore;public:Student();Student(int number1,char* pname1,float score1,float score2,float score3);float sum();void print();void modify(int number2,char* pname2,float score21,float score22,float score23);/student.cpp#include#includestudent.h#include#includeStudent:Student():ascore()number=0;Student:Student(int number1,char* pname1,float score1,float score2,float score3):ascore(score1,score2,score3)number=number1;strncpy(name,pname1,sizeof(name);namesizeof(name)-1=0;float Student:sum()return (ascore.sum();void Student:print()coutendl;coutsetw(8)numbersetw(8)name; ascore.print();void Student:modify(int number2,char* pname2,float score21,float score22,float score23)number=number2;strncpy(name,pname2,sizeof(name);namesizeof(name)-1=0;ascore.modify(score21,score22,score23);/score.hclass Scoreprivate:float computer;float english;float mathematics;public:Score();Score(float x1,float y1,float z1);float sum();void print();void modify(float x2,float y2,float z2);/score.cpp#include#includescore.h#includeScore:Score()computer=0;english=0;mathematics=0;Score:Score(float x1,float y1,float z1)computer=x1;english=y1;mathematics=z1;float Score:sum()return (computer+english+mathematics);void Score:print()coutsetw(8)computersetw(8)englishsetw(8)mathematicssetw(8)sum();void Score:modify(float x2,float y2,float z2)computer=x2;english=y2;mathematics=z2;/main.cpp#include#includestudent.h#includeconst size=3;void main()int numberi;char namei20;float score1,score2,score3;Student aSAsize;for(int i=0;isize;i+)coutplease input the data of NO.i+1student;coutnumberi; coutnamei; coutscore1; coutscore2; coutscore3; aSAi.modify(numberi,namei,score1,score2,score3);coutnn;coutsetw(8)学号setw(8)姓名setw(8)计算机setw(8)英语setw(8)数学setw(8)总分;coutendl;for(int j=0;jsize;j+)aSAj.print();coutendl;5、/employee.hclass employeeprotected:char * name;int individualEmpNo;int grade;float accumPay;static int employeeNo;public:employee();employee();void pay();void promote(int);void displayStatus();class technician:public employeeprivate:float hourlyRate;int workHours;public:technician();void pay();void displayStatus();class salesman:virtual public employeeprotected:float CommRate;float sales;public:salesman();void pay();void displayStatus();class manager:virtual public employeeprotected:float monthlyPay;public:manager();void pay();void displayStatus();class salesmanager:public manager,public salesmanpublic:salesmanager();void pay();void displayStatus();/empfunc.cpp#include #include #include employee.hint employee:employeeNo = 1000;employee:employee()char namestr50;coutnamestr;name = new charstrlen(namestr)+1;strcpy(name,namestr);individualEmpNo = employeeNo+;grade = 1;accumPay = 0.0;employee:employee()delete name;void employee:pay()void employee:promote(int increment)grade += increment;technician:technician()hourlyRate = 100;void technician:pay()cout请输入nameworkHours;accumPay = hourlyRate * workHours;cout兼职技术人员name编号individualEmpNo本月工资accumPayendl;void technician:displayStatus()cout兼职技术人员name编号individualEmpNo级别为grade级,已付本月工资accumPayendl;salesman:salesman()CommRate = 0.004;void salesman:pay()cout请输入namesales;accumPay = sales * CommRate;cout推销员name编号individualEmpNo本月工资accumPayendl;void salesman:displayStatus()cout推销员name编号individualEmpNo级别为grade级,已付本月工资accumPayendl;manager:manager()monthlyPay = 8000;void manager:pay()accumPay = monthlyPay;cout经理name编号individualEmpNo本月工资accumPayendl;void manager:displayStatus()cout经理name编号individualEmpNo级别为grade级,已付本月工资accumPayendl;salesmanager:salesmanager() monthlyPay = 5000;CommRate = 0.005;void salesmanager:pay()accumPay = monthlyPay;cout请输入employee:namesales;accumPay = monthlyPay + sales * CommRate;cout销售经理name编号individualEmpNo本月工资accumPayendl;void salesmanager:displayStatus()cout推销经理name编号individualEmpNo级别为grade级,已付本月工资accumPayendl;/main.cpp#include #include employee.hint main()manager m1;technician t1;salesmanager sm1;salesman s1;mote(3);m1.pay();m1.displayStatus();coutendl;mote(2);t1.pay();t1.displayStatus();coutendl;mote(2);sm1.pay();sm1.displayStatus();coutendl;s1.pay();s1.displayStatus();return 0;实验五1. Base:g1()1Base:g4()2-Deri:g1()2Base:g2()3Base:g3()4Base:g4()5-Deri:g1()6Base:g2()7Base:g3()8Base:g4()9-Deri:g1()10Base:g2()11Base:g3()12Base:g4()132. =#include using namespace std;#include class Point /点类public: Point(int=0,int=0); /构造函数 Point() /析构函数void set();virtual void print();protected: int x,y;Point:Point(int x,int y)this-x=x;this-y=y;void Point:set()coutxy;void Point:print()coutx=x y=radius=radius;void Circle:set()coutxyradius;void Circle:print()coutx=x y=y radius=radiusheight=height;void Cylinder:set() coutxyradiusheight;void Cylinder:print()coutx=x y=y radius=radius height=heightendl;int main()Circle circle(0,0,3); Cylinder cylinder(0,0,3,10); circle.print();cylinder.print();circle.set();circle.print();cylinder.set();cylinder.print(); return 0;=3.=#include using namespace std;#include class Employee /职工类public: Employee(char *,char *); /构造函数 Employee() /析构函数virtual float pay()=0;virtual void print()=0;protected: char name20; /姓名 char id20; /工号;Employee:Employee(char *name,char *id)strcpy(this-name,name);strcpy(this-id,id);class Manager:public Employeepublic: Manager(char *name,char *id,float salary):Employee(name,id) this-salary=salary; Manager()float pay()return salary; void print()coutendlname:name ID:id pay:pay()hours=hours; this-wage=wage; Technician()float pay()return hours*wage; void print()coutendlname:name ID:id pay:pay()endl;private:int hours;float wage;int main()Manager manager(Zhang,101,9000); Technician technician(Zhang,112,8*29,30); manager.print();technician.print(); return 0;=4. =#include #includeusing namespace std;const double PI=3.1415926535;class Shape/形状类public:virtual void show()=0;virtual double area()=0;class Rectangle:public Shape/矩形类public: Rectangle()length=0; width=0; Rectangle(double len, double wid) length= len;width = wid; double area()return length*width; /求面积 void show() coutlength=lengthtwidth=widthendl; private: double length, width; /长宽;class Triangle:public Shape/三角形类public:Triangle()a=0;b=0;c=0;Triangle(double x,double y,double z)a = x;b = y;c = z;double area()/求面积 double s=(a+b+c)/2.0; return sqrt(s*(s-a)*(s-b)*(s-c);void show() couta=atb=btc=cendl; private: double a, b,c; /三角形三边长;class Circle :public Shape/圆类public: Circle()radius = 0; Circle(double r)radius = r; double area()return PI*radius*radius; /求面积 void show()coutradius=radiusendl;private: double radius;void total(Shape *p,int n)double sum=0;for(int i=0;iarea();cout图形面积总和=sumendl;int main() Shape *s;Circle c(10);Rectangle r(6,8);Triangle t(3,4,5);c.show();/静态多态cout圆面积:c.area()show(); cout矩形面积:area()show(); cout三角形面积:area()endl;Shape *p=&c,&r,&t;total(p,3);return 0;=实验六1. #include using namespace std;#include class Pointpublic: Point(int=0,int=0); void Set(); void Show(); friend void Distance(Point, Point); private: int x; int y; ;Point:Point(int x,int y) this-x=x; this-y=y; void Point:Set() coutxy;void Point:Show() cout(x,y)=(x,y)endl; void Distance(Point p1,Point p2)float d=sqrt(p2.x-p1.x)*(p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论