Bài tập C++: Lớp cơ sở ảo (Virtual Class)



Bài tập

Viết chương trình C++ để nhận điểm và tính tổng điểm của sinh viên bởi sử dụng Lớp cơ sở ảo (Virtual Base Class) trong C++.

Lời giải

Dưới đây là chương trình C++ để giải bài tập trên. Sau đây là các bước mình liệt kê để bạn dễ theo dõi:

  • Bước 1: Khai báo lớp cơ sở sinhvien

  • Bước 2: Khai báo và định nghĩa hàm getnumber() và hàm putnumber()

  • Bước 3: Tạo lớp kế thừa diemthi được kế thừa ảo từ lớp cơ sở sinhvien

  • Bước 4: Khai báo và định nghĩa hàm getmark() và putmark()

  • Bước 5: Tạo lớp kế thừa gdthechat được kế thừa ảo từ lớp cơ sở sinhvien

  • Bước 6: Khai báo các hàm getscore() và putscore()

  • Bước 7: Tạo lớp kế thừa ketqua được kế thừa từ các lớp diemthi và gdthechat

  • Bước 8: Khai báo và định nghĩa hàm display() để tính toán tổng điểm

  • Bước 9: Tạo đối tượng obj của lớp kế thừa

  • Bước 10: Gọi các hàm getnumber(), getmark(), getscore(0 và display()

Quảng cáo
#include<iostream>
#include<conio.h>
using namespace std;
 
class sinhvien
{
   int mssv;
  public:
   void getnumber()
   {
              cout<<"Nhap MSSV: ";
              cin>>mssv;
   }
   void putnumber()
   {
              cout<<"\n\n\tMSSV la: "<<mssv<<"\n";
   }
};
 
class diemthi:virtual public sinhvien
{
  
  public:
   int diemthi1,diemthi2;
   void getmark()
   {
              cout<<"Nhap cac diem thi\n";
              cout<<"Diem thi 1 la: ";
              cin>>diemthi1;
              cout<<"Diem thi 2 la: ";
              cin>>diemthi2;
   }
   void putmark()
   {
              cout<<"\tCac diem thi da nhap\n";
              cout<<"\n\tDiem thi 1 la: "<<diemthi1;
              cout<<"\n\tDiem thi 2 la: "<<diemthi2;
   }
};

class gdthechat:public virtual sinhvien
{
 
  public:
    int diemtc;
    void getscore()
    {
              cout<<"Nhap diem Giao duc the chat: ";
              cin>>diemtc;
    }
    void putscore()
    {
              cout<<"\n\tDiem Giao duc the chat la: "<<diemtc;
    }
};

class ketqua:public diemthi,public gdthechat
{
    int tongdiem;
  public:
   void display()
   {
      tongdiem=diemthi1+diemthi2+diemtc;
      putnumber();
      putmark();
      putscore();
      cout<<"\n\tTong diem: "<<tongdiem;
   }
};
 
int main()
{
   ketqua obj;
   
   obj.getnumber();
   obj.getmark();
   obj.getscore();
   obj.display();
   return 0;
}


Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

Quảng cáo
Bài tập về Lớp cơ sở ảo (Virtual Class) trong C++

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.




Tài liệu giáo viên