Bài 1. Cho class student như sau: class student{ private: long int rollno; int age; char sex; float height; float weight; public: void getinfo(); void disinfo(); }; void student::getinfo() { cout << " Roll no :"; cin >> rollno; cout << " Age :"; cin >> age; cout << " Sex:"; cin >> sex; cout << " Height :"; cin >> height; cout << " Weight :"; cin >> weight; } void student::disinfo() { cout<<endl; cout<< " Roll no = "<< rollno << endl; cout<< " Age =" << age << endl; cout<< " Sex =" << sex << endl; cout<< " Height =" << height << endl; cout<< " Weight =" << weight << endl; } Hãy viết chương trình chính tạo ra một dãy các đối tượng thuộc class student có n phần tử (n được nhập từ người sử dụng – sử dụng kỹ thuật tạo dãy động bằng lệnh new). Sau đó nhập và hiển thị dữ liệu cho n đối tượng này. Bài 2. Xây dựng một class IntArray chứa hai thành phần private: một con trỏ (dùng để chỉ đến một dãy sẽ được tạo ra bằng lệnh cấp phát dãy động) và một số nguyên đặc tả độ dài của dãy. Các hàm public bao gồm một constructor (sẽ tạo ra dãy bằng lệnh cấp phát động và nhập giá trị cho các phần tử của dãy) và các hàm thành viên dùng để hiển thị tất cả các thành phần của IntArray và để tìm một phần tử (theo giá trị) trong dãy. Bài 3. Xây dựng một class Rectangle that có các thành phần private length và width là các số thực. Các hàm thành viên public của class bao gồm một constructor khởi động các giá trị length và width về 0, các hàm perimeter() và area() để tính chu vi và diện tích hình chữ nhật, một hàm getdata() to để nhập giá trị cho length và width từ bàn
phím, và một hàm showdata() để hiển thị chiều dài, chiều rộng, chu vi và diện tích hình chữ nhật. Include the Rectangle class within a working C++ program. Bài 4. Cho class point được định nghĩa như sau: class point { private: int x,y; public: point( int xnew, int ynew); void getdata(); void display(); }; point::point(int xnew, ynew) //constructor { x = xnew; y = ynew; } void point::getdata() { cout << “Enter an integer value \n”; cin >> x; cout << “Enter an integer value \n”; cin >> y; } void point::display() { cout << “Entered numbers are \n”; cout << “ x = “ << x << ‘\t’ << “ y = “ << y << endl; } Viết một chương trình chính tạo ra hai đối tượng point trong vùng nhớ heap, hiển thị các đối tượng này (bằng cách gọi phương thức display) và sau đó giải phóng các vùng nhớ dành cho các đối tượng này khỏi heap. Bài 5. Cho class như sau class Auto { public: Auto(char*, double); displayAuto(); private: char* szCarMake; double dCarEngine; }; Auto::Auto(char* szMake, double dEngine){ szCarMake = new char[25]; strcpy(szCarMake, szMake); dCarEngine = dEngine; }
Auto::displayAuto(){ cout<< “The car make: “<< szCarMake<< endl; cout<< “The car engine size: “<< dCarEngine<< endl; } void main(){ Auto oldCar(“Chevy”, 351); Auto newCar(oldCar); oldCar.displayAuto(); newCar.displayAuto(); } a. Viết destructor thích hợp cho class Auto. b. Viết chương trình chính tạo ra 2 đối tượng Auto trên vùng nhớ heap, hiển thị các đối tượng này rồi xoá chúng khỏi heap. Bài 6. Cho class như sau class Employee{ public: Employee(const char*, const char*); char *getFirstName() const; char *getLastName() const; private: char *firstName; char *lastName; }; Employee::Employee(const char *first, const char *last){ firstName = new char[strlen(first)+1]; strcpy(firstName, first); lastName = new char[strlen(last)+1]; strcpy(lastName, last); } char *Employee::getFirstName() const{ return firstName; } char *Employee::getLastName() const{ return lastName; } void main(){ Employee *e1Ptr = new Employee(“Susan”, “Baker”); Employee *e2Ptr = new Employee(“Robert”, “Jones”); cout << “\n Employee 1: “ << e1Ptr->getFirstName() << “ “ << e1Ptr->getLastName() << “\n Employee 2: “ << e2Ptr->getFirstName() << “ “ << e2Ptr->getLastName()<< endl; delete e1Ptr; delete e2Ptr; }
Hãy viết destructor tương ứng cho class Employee. Bài 7. Viết một base class Point chứa toạ độ x và y . Từ class này, tạo ra một class con có tên Circle có thêm một thành phần mang tên radius. Trong class Circle, thành phần x và y sẽ biểu diễn tâm và radius biểu diễn bán kính của đường tròn. Class Point sẽ có một constructor và có thêm một hàm thành viên mang tên distance() để tính khoảng cách giữa hai đối tượng Point. Class Circle sẽ override lại hàm distance này để tính khoảng cách tâm của hai đối tượng Circle, và có thêm một hàm area để tính diện tích đường tròn.