最新c++期末考試復習沖刺題 下載本文

}

s1.display (); s1.upper_str (); s1.display ();

cout<

4.請編寫程序聲明一個基類Employee,從它派生出類Technician,在主函數中將一個動態分配的Technician的對象地址賦值給一個Employee的指針,然后通過指針釋放對象空間。可以不聲明數據成員,但要聲明適當的析構函數釋放內存。(7分)

#include using namespace std; class Employee { public: };

class Technician:public Employee { public: }; int main() {

Employee *p=new Technician; delete p; return 0; Technician() { }

~Technician() { }

cout<<\cout<<\ Employee() { }

~Employee() { }

cout<<\cout<<\

}

5. 一圓型游泳池如圖所示,現在需在其周圍建一圓型過道,并在其四周圍上柵欄。柵欄價格為20元/米,過道造價為15元/平方米。過道寬度為4米,游泳池半徑由鍵盤輸入。要求編程計算并輸出過道和柵欄的造價。 (10分) #include

游泳池

過道 using namespace std; const float PI = 3.14159f; const float FencePrice = 20; const float ConcretePrice = 15; //聲明類Circle 及其數據和方法 class Circle { private:

float radius; public:

Circle(float r); //構造函數

float Circumference() const; //圓周長 float Area() const; //圓面積 };

// 類的實現

// 構造函數初始化數據成員radius Circle::Circle(float r) {radius=r;} // 計算圓的周長

float Circle::Circumference() const {

return 2 * PI * radius; } // 計算圓的面積 float Circle::Area() const {

return PI * radius * radius; }

void main (){ float radius;

float FenceCost, ConcreteCost; // 提示用戶輸入半徑

cout<<\ cin>>radius; // 聲明 Circle 對象 Circle Pool(radius);

Circle PoolRim(radius + 4); // 計算柵欄造價并輸出

FenceCost = PoolRim.Circumference() * FencePrice; cout << \¥\ // 計算過道造價并輸出

ConcreteCost = (PoolRim.Area() - Pool.Area())*ConcretePrice; cout << \¥\}

6. 定義一個職工類Emplyee,有私有數據成員:姓名、序號和公司,并為它定義帶參數的構造函數、拷貝構造函數、析構函數和輸出數據成員值的公有成員函數print,在主函數中定義兩個派生類對象對所有成員函數進行測試。(10分) #include #include using namespace std; class Emplyee { private: };

Emplyee::Emplyee(string x,int y,string z) { }

Emplyee::Emplyee(const Emplyee &p) {

name=p.name; num=p.num; company=p.company;

cout<<\name=x; num=y; company=z;

cout<<\string name; int num; string company;

Emplyee(string ,int ,string ); Emplyee(const Emplyee &); ~Emplyee(); void print();

public:

}

Emplyee::~Emplyee() { }

void Emplyee::print() { } int main() {

Emplyee e1(\e1.print(); Emplyee e2=e1; e2.print(); return 0;

cout<<\cout<<\cout<<\cout<<\

}

7. 定義一個學生類Student,具有三個屬性:學號(long int)、姓名(char*)及年齡(int),其中括號內注明了此屬性值的數據類型,并要求自動生成學號;具有三個公有成員函數:帶參數的構造函數,析構函數及print()(用于輸出3個數據成員的值),在主函數中定義Student類的兩個對象(其中一個動態創建)對Student類進行測試。(共10分) #include using namespace std; class Student { private: };

Student::Student(char x[20],int y) {

int n; n=sizeof(x);

name=new char[n+1]; long int num; char *name; int age;

static long countp; Student(char y[20],int z); ~Student(); void print();

public:

}

if(name!=0)

strcpy(name,x); num=countp; age=y; ++countp;

Student::~Student() { }

void Student::print() { }

long Student::countp=100; int main() { }

8.定義一個抽象類Shape,在此基礎上派生出類Rectangel和Circle,二者都有計算對象面積的函數GetArea(),在主函數中定義一個Shape指針數組分別指向Rectangel和Circle的對象,并通過Shape類的指針數組實現對這兩個對象的成員函數的調用,輸出圓和矩形的面積。 (14分)

Student stu1(\stu1.print();

Student *p=new Student(\p->print(); delete [] p; return 0;

cout<<\cout<<\cout<<\delete [] name;





宁夏11选5(任六)