c++经典课后习题整理
- 格式:doc
- 大小:34.50 KB
- 文档页数:10
(1)设计一个Car类,他的数据成员要能描述一辆汽车的品牌、型号、出厂年份和价格,成员函数包括提供合适的途径来访问数据成员,在main()函数中定义类的对象并调用相应的成员函数
#include
#include
using namespace std;
class Car
{
private:
string Pingpai;
string Xinghao;
int Year;
int Price;
public:
void set()
{
cout<<"shu ru xiang guan xin xi"<
cout<<"pingpai:";
cin>>Pingpai;
cout<<"xinghao:";
cin>>Xinghao;
cout<<"chuchangnianfen:";
cin>>Year;
cout<<"jiage:";
cin>>Price;
}
void show()
{
cout<<"pingpai:"<
cout<<"xinghao:"<
cout<<"chuchangnianfen:"<
cout<<"jiage:"<
}
};
int main()
{
Car car;
();
();
return 0;
}
(2)设计一个学生类Student,拥有的数据成员是学号、姓名、电话号码、所属院系,成员函数包括访问和修改这些属性,在main()中定义对象,并输出相关信息
#include
#include
using namespace std;
class Student core
{
tmp=s[i];
s[i]=s[i+1];
s[i+1]=tmp;
}
cout<<"分数由高到低排列:";
for(i=0;i<4;i++)
cout<
cout<<"最高分:"<
cout<<"最低分:"<
}
int main()
{
student
s[4]={student("zhang",78),student("wang",80),student("li",92),student("chen",50)};
order(s);
}
(4)编写程序,定义机动车类Vehicle,包括的数据成员有出厂日期和售价并定义成员函数可以设置这些数据成员,再定义print()然后定义car类,增加乘客数量,truck类增加载重吨数.......
#include
#include
using namespace std;
class Vehicle
{
private:
int year,month,day;
int price;
public:
Vehicle()
{
cout<<"please input date: ";
cout<<"year"<<","<<"month"<<","<<"day"<<","<
cin>>year; cin>>month;
cin>>day;
cout<<"please input price:";
cin>>price;
cout<<"Vehicle"<
}
virtual void print1()
{
cout<<"date:"<
cout<<"price:"<
}
};
class Car:public Vehicle
{
public:
int amount;
Car()
{
cout<<"please input amount of passager: ";
cin>>amount;
cout<<"car"<
}
void print2()
{
print1();
cout<<"amount:"<
}
};
class Truck:public Vehicle
{
public:
int ton;
Truck()
{
cout<<"please input ton:";
cin>>ton;
cout<<"truck"<
}
void print3()
{
print1();
cout<<"ton:"<
}
}; int main()
{
Vehicle V1;
();
Car C1;
();
Truck T1;
();
return 0;
}
(7-4)完整定义字符串类string,使用动态分配内存机制实现字符串存储,定义构造函数,析构函数,重载运算符“=”,"+",“+=”实现两个字符串的赋值,连接等功能。
#include
#include
using namespace std;
class String
{
public:
String();
String(char *t);
String(String &t);
~String();
String operator=(String t);
String operator+( String t);
String operator +=(String t);
void Show()
{
cout<
}
private:
char *p;
};
String::String()
{
p = new char[1];
*p = '\0';
}
String::String(char *t)
{
p = new char[strlen(t)+1];
strcpy(p,t);
}
String::String(String &t)
{ p = new char[strlen+1];
strcpy(p,;
}
String String::operator +(String t)
{
char *pt;
pt = new char[strlen(p)+strlen+1];
strcpy(pt,p);
strcat(pt,;
String temp(pt);
delete[]pt;
return temp;
}
String String::operator +=(String t)
{
char *i;
i=new char[strlen(p)+1];
strcpy(i,p);
delete[] p;
p=new char[strlen+strlen(p)+1];
strcpy(p,i);
strcat(p,;
return *this;
}
String::~String()
{
delete[]p;
}
String String::operator =(String t)
{
if(this == &t)
return *this;
delete[]p;
p = new char[strlen+1];
strcpy(p,;
return *this;
}
void main()
{
String s1("hello!");
String s2("when.");
String s3;
s3=s2+s1;
s3+=s2; s2=s1;
();
();
}
(8-4)根据程序定义一个求3个数之间最大值的函数模板max。
#include<>
#include<>
templateT max(T a,T b,T c)
{
return (a>ba:b)>c(a>ba:b):c;
}
int main()
{
cout<
cout<
cout<
return 0;
}
(5)有一个学生类student,包括学生姓名、成绩,设计一个友元函数,输出成绩对应的等级:大于等于90:优;80~90:良;70~79:中;60!69:及格;小于60:不及格。
#include<>
#include<>
class student
{
char name[10];
int deg;
public:
student(char na[],int d)
{
strcpy(name,na);
deg=d;
}
friend void trans(student &s)
{
if>=90)
cout<<<<" "<<<<" "<<"优"<
else if>=80)
cout<<<<" "<<<<" "<<"良"<
else if>=70)
cout<<<<" "<<<<" "<<"中"<
else if>=60)