c++经典课后习题整理_第1页
c++经典课后习题整理_第2页
c++经典课后习题整理_第3页
c++经典课后习题整理_第4页
c++经典课后习题整理_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

./<1>设计一个Car类,他的数据成员要能描述一辆汽车的品牌、型号、出厂年份和价格,成员函数包括提供合适的途径来访问数据成员,在main〔〕函数中定义类的对象并调用相应的成员函数#include<iostream>#include<string>usingnamespacestd;classCar{private:stringPingpai;stringXinghao;intYear;intPrice;public:voidset<>{cout<<"shuruxiangguanxinxi"<<endl;cout<<"pingpai:";cin>>Pingpai;cout<<"xinghao:";cin>>Xinghao;cout<<"chuchangnianfen:";cin>>Year;cout<<"jiage:";cin>>Price;}voidshow<>{cout<<"pingpai:"<<Pingpai<<endl;cout<<"xinghao:"<<Xinghao<<endl;cout<<"chuchangnianfen:"<<Year<<endl;cout<<"jiage:"<<Price<<endl;}};intmain<>{Carcar;car.set<>;car.show<>;return0;}<2>设计一个学生类Student,拥有的数据成员是学号、XX、、所属院系,成员函数包括访问和修改这些属性,在main〔〕中定义对象,并输出相关信息#include<iostream>#include<string>usingnamespacestd;classStudent//学号、XX、、所属院系,成员函数包括访问和修改这些属性{private:stringxuehao;stringname;stringtel;stringdepartment;public:Student<stringx,stringn,stringt,stringd>{xuehao=x;name=n;tel=t;department=d;}voidchange<stringx,stringn,stringt,stringd>//修改属性{xuehao=x;name=n;tel=t;department=d;}voiddisplay<>{cout<<"xuehao="<<xuehao<<endl;cout<<"name="<<name<<endl;cout<<"tel="<<tel<<endl;cout<<"department="<<department<<endl;}};intmain<>{stringa,b,c,d;cin>>a;cin>>b;cin>>c;cin>>d;Students<a,b,c,d>;s.display<>;return0;}<3>设计一个学生类,包含学生呢个XX、成绩〔char*name;doublescore〕,设计一个友元函数,比较学生成绩的高低,并求出下一组学生:{Stu<"zhang">,78,Stu<"wang",80>,Stu<"li",65>,Stu<"chen",50>}中的最高分和最低分……#include<iostream>#include<string>usingnamespacestd;classstudent{private:char*name;doublescore;public:student<>{}student<char*na,doublesc>{name=na;score=sc;}friendvoidorder<students[]>;};voidorder<students[]>{studenttmp;inti,j;for<j=0;j<3;j++>for<i=0;i<3-j;i++>if<s[i].score<s[i+1].score>{tmp=s[i];s[i]=s[i+1];s[i+1]=tmp;}cout<<"分数由高到低排列:";for<i=0;i<4;i++>cout<<s[i].name<<""<<s[i].score<<endl;cout<<"最高分:"<<s[0].name<<""<<s[0].score<<endl;cout<<"最低分:"<<s[3].name<<""<<s[3].score<<endl;}intmain<>{students[4]={student<"zhang",78>,student<"wang",80>,student<"li",92>,student<"chen",50>};order<s>;}<4>编写程序,定义机动车类Vehicle,包括的数据成员有出厂日期和售价并定义成员函数可以设置这些数据成员,再定义print〔〕然后定义car类,增加乘客数量,truck类增加载重吨数#include<iostream>#include<string>usingnamespacestd;classVehicle{private:intyear,month,day;intprice;public:Vehicle<>{cout<<"pleaseinputdate:";cout<<"year"<<","<<"month"<<","<<"day"<<","<<endl;cin>>year;cin>>month;cin>>day;cout<<"pleaseinputprice:";cin>>price;cout<<"Vehicle"<<endl;}virtualvoidprint1<>{cout<<"date:"<<year<<","<<month<<","<<day<<","<<endl;cout<<"price:"<<price<<endl;}};classCar:publicVehicle{public:intamount;Car<>{cout<<"pleaseinputamountofpassager:";cin>>amount;cout<<"car"<<endl;}voidprint2<>{print1<>;cout<<"amount:"<<amount<<endl;}};classTruck:publicVehicle{public:intton;Truck<>{cout<<"pleaseinputton:";cin>>ton;cout<<"truck"<<endl;}voidprint3<>{print1<>;cout<<"ton:"<<ton<<endl;}};intmain<>{VehicleV1;V1.print1<>;CarC1;C1.print2<>;TruckT1;T1.print3<>;return0;}<7-4>完整定义字符串类string,使用动态分配内存机制实现字符串存储,定义构造函数,析构函数,重载运算符"=","+","+="实现两个字符串的赋值,连接等功能。#include<iostream>#include<string>usingnamespacestd;classString{public:String<>;String<char*t>;String<String&t>;~String<>;Stringoperator=<Stringt>;Stringoperator+<Stringt>;Stringoperator+=<Stringt>;voidShow<>{cout<<p<<endl;}private:char*p;};String::String<>{p=newchar[1];*p='\0';}String::String<char*t>{p=newchar[strlen<t>+1];strcpy<p,t>;}String::String<String&t>{p=newchar[strlen<t.p>+1];strcpy<p,t.p>;}StringString::operator+<Stringt>{char*pt;pt=newchar[strlen<p>+strlen<t.p>+1];strcpy<pt,p>;strcat<pt,t.p>;Stringtemp<pt>;delete[]pt;returntemp;}StringString::operator+=<Stringt>{char*i;i=newchar[strlen<p>+1];strcpy<i,p>;delete[]p;p=newchar[strlen<t.p>+strlen<p>+1];strcpy<p,i>;strcat<p,t.p>;return*this;}String::~String<>{delete[]p;}StringString::operator=<Stringt>{if<this==&t>return*this;delete[]p;p=newchar[strlen<t.p>+1];strcpy<p,t.p>;return*this;}voidmain<>{Strings1<"hello!">;Strings2<"when.">;Strings3;s3=s2+s1;s3+=s2;s2=s1;s3.Show<>;s2.Show<>;}<8-4>根据程序定义一个求3个数之间最大值的函数模板max。#include<iostream.h>#include<string.h>template<typenameT>Tmax<Ta,Tb,Tc>{return<a>b?a:b>>c?<a>b?a:b>:c;}intmain<>{cout<<max<11,29,22><<endl;cout<<max<3.14f,28.3f,6.7f><<endl;cout<<max<'c','b','a'><<endl;return0;}〔5〕有一个学生类student,包括学生XX、成绩,设计一个友元函数,输出成绩对应的等级:大于等于90:优;80~90:良;70~79:中;60!69:与格;小于60:不与格。#include<iostream.h>#include<string.h>classstudent{charname[10];intdeg;public:student<charna[],intd>{strcpy<name,na>;deg=d;}friendvoidtrans<student&s>{if<s.deg>=90>cout<<<<""<<s.deg<<""<<"优"<<endl;elseif<s.deg>=80>cout<<<<""<<s.deg<<""<<"良"<<endl;elseif<s.deg>=70>cout<<<<""<<s.deg<<""<<"中"<<endl;elseif<s.deg>=60>cout<<<<""<<s.deg<<""<<"与格"<<endl;elsecout<<<<""<<s.deg<<""<<"不与格"<<endl;}};voidmain<>{studentst[]={student<"王华",78>,student<"李明",92>,student<"X伟",62>,student<"孙强",88>};cout<<"输出结果:"<<endl;cout<<"XX"<<""<<"成绩"<<""<<"等级"<<endl;for<inti=0;i<4;i++>trans<st[i]>;}<6>编写一个程序,设计一个Point类,包括学号、XX和成绩等私有数据成员,不含任何成员函数,只将main<>设置为该类的友元函数。#include<iostream.h>classpoint{intno;charname[10];intdeg;public:friendvoidmain<>;};voidmain<>{pointp;cout<<"输入学号:";cin>>p.no;cout<<"__";cin>>;cout<<"成绩:";cin>>p.deg;cout<<"输出结果"<<endl;cout<<"学生:"<<<<endl;cout<<"学号:"<<p.no<<endl;cout<<"成绩为:"<<p.deg<<endl;}创建一个学生类,包括学号和成绩,编程输入和显示学生信息,建立一个人类,包括XX,性别,年龄,并作为学生的基类.#include<iostream.h>classPerson{charname[10];charsex;intage;public:voidinput<>{cout<<"请输入XX:";cin>>name;cout<<"请输入性别:";cin>>sex;cout<<"请输入年龄:";cin>>age;}voiddisplay<>{cout<<"XX:"<<name<<",性别:"<<sex<<",年龄:"<<age<<endl;}};classStudent:publicPerson{charsno[10];intscore;public:voidinput<>{Person::input<>;cout<<"请输入学号:";cin>>sno;cout<<"请输入成绩:";cin>>score;}voiddisplay<>{Person::display<>;cout<<"学号;"<<sno<<",成绩:"<<score<<endl;}};voidmain<>{Students1;s1.input<>;s1.display<>;}<8>按要求编程:某学校教授和讲师的月工资计算办法规定如下:教授每月固定工资为4000元。讲师每月工资与讲课学时数有关,计算方法是每学时50元,另加补助1000元。编程显示某个教员的月工资数目。#include<iostream.h>classTeacher{public:virtualintSalary<>=0;virtualvoidPrint<int>=0;};classProfessor:publicTeacher{private:charname[20];intlessons;public:Professor<>{cout<<"请输入__";cin>>name;//字符串中不能有空格}intSalary<>{return4000;}voidPrint<intmoney>{cout<<"职称:教授__"<<name<<"薪水:"<<money<<endl<<endl;}};classLecturer:publicTeacher{private:charname[20];intlessons;public:Lecturer<>{cout<<"请输入__";cin>>name;cout<<"请输入课时:";cin>>lessons;}intSalary<>{return<1000+lessons*50>;}voidPrint<intmoney>{cout<<"职称:讲师__"<<name<<"薪水:"<<money<<endl<<endl;}};voidmain<>{intmoney=0;Professort;money=t.Salary<>;t.Print<money>;Lecturerl;money=l.Salary<>;l.Print<money>;}<9>1.给定一个int型数n,编程实现按不同进制输出,包括十进制数、八进制数、十六进制数。要求使用纯虚函数print〔〕。十进制数〔dec〕十六进制数〔hex〕八进制数〔oct〕#include<iostream.h>#include<math.h>intmain<>{

温馨提示

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

评论

0/150

提交评论