GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

default GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!

Bài gửi by Admin on Mon Oct 17, 2011 10:11 pm

GIẢI ĐỀ THI C++ NHÓM 2



Đề lẻ:
Cho class Nguoi sau:


Code:



class Nguoi{
   private:
      char ma_so[10];      
      char *ho_ten;   
      int nam_sinh;   
   public:   
        Nguoi();       
        ~Nguoi();            
      void NhapTT(); 
      void InTT(); 
    };   

Nguoi::Nguoi(){
    strcpy(ma_so,"");
    ho_ten = new char[100];
    nam_sinh = 0;
    };

Nguoi::~Nguoi() {
    delete[] ho_ten;   
    } 

void Nguoi::NhapTT(){     
    cout<<"\n Ma so:";
    cin>>ma_so;
    cout<<"Ho ten:";
    cin.ignore();
    cin.getline(ho_ten,100);
    cout<<"Nam sinh:";
    cin>>nam_sinh;           
    };

void Nguoi::InTT(){     
    cout<<"\n "<<ma_so<<" : "<<ho_ten<<" (nam sinh:"<<nam_sinh<<")";             
    };




Trên cơ sở class Nguoi làm các yêu cầu sau: Xây dựng 1 class sinh viên viên thường hướng các thuộc tính của class Nguoi và cho phép nhập điểm trung bình. Xây dựng 1 class lớp học có các thuộc tính mã lớp, tên lớp và danh sách sinh viên cho phép nhập n sinh viên và sắp xếp danh sách sinh viên sau khi nhập xong theo thứ tự điểm trung bình giảm dần.
Lưu ý: Đề còn yêu cầu làm thêm hàm khởi tạo và hàm cấp phát bộ nhớ và thu hồi vùng nhớ cho class sinhvien và class lophoc


BÀI GIẢI:


Code:



/* Ten: Phan Chi Tam
  MSSV:xxxxxxxxxxxx
  May: 43        */


#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>

class Nguoi{
   private:
      char ma_so[10];      
      char *ho_ten;   
      int nam_sinh;   
   public:   
        Nguoi();       
        ~Nguoi();            
      void NhapTT(); 
      void InTT(); 
    };   

Nguoi::Nguoi(){
    strcpy(ma_so,"");
    ho_ten = new char[100];
    nam_sinh = 0;
    };

Nguoi::~Nguoi() {
    delete[] ho_ten;   
    } 

void Nguoi::NhapTT(){     
    cout<<"\n Ma so:";
    cin>>ma_so;
    cout<<"Ho ten:";
    cin.ignore();
    cin.getline(ho_ten,100);
    cout<<"Nam sinh:";
    cin>>nam_sinh;           
    };

void Nguoi::InTT(){     
    cout<<"\n "<<ma_so<<" : "<<ho_ten<<" (nam sinh:"<<nam_sinh<<")";             
    };
class sinhvien: public Nguoi{
      float tb;
      public:
        float getTB() {return tb;}
        sinhvien()
        {
            Nguoi();
            tb=0;
        }
        void NhapSV(char* str="")
        {
              cout<<str;
              NhapTT();
              cout<<"Nhap diem trung binh: "; cin>>tb;
        }
        void InSV(char* str="")
        {
              cout<<str;
              InTT(); cout<<" | DTB:"<<tb;
        }
friend class lophoc;
};
class lophoc{
      char ml[10];
      char* tl;
      int slsv;
      sinhvien dssv[200];
      public:
        lophoc()
        {
          strcpy(ml,"");
          tl = new char[100];
          slsv=0;
        }
        ~lophoc() { delete[] tl;}
        void NhapL(char* str="")
        {
            cout<<str;
            cout<<"\nNhap ma lop: "; cin>>ml;
            cin.ignore();
            cout<<"\nNhap ten lop: "; cin.getline(tl,100);
            cout<<"\nNhap so luong sinh vien: "; cin>>slsv;
            for(int i=0; i<slsv;i++)
              { dssv[i].NhapSV(); }
        }
        void InL(char* str="")
        {    cout<<str; 
            cout<<"\n "<<ml<<" | "<<tl<<" | SS:"<<slsv;
            cout<<"\n-----====Danh sach sinh vien cua lop====---- ";
            for(int i=0; i<slsv; i++)
              {dssv[i].InSV();}
        }
        void SapXep(char* str="")
        {
            cout<<str;
            sinhvien temp;
            for (int i=0; i<slsv; i++)
                for(int j=i+1; j<=slsv; j++)
                      if(dssv[i].getTB() < dssv[j].getTB())
                      {
                          temp=dssv[i];
                          dssv[i]=dssv[j];
                          dssv[j]=temp;
                      }
        }
};
int main()
{
    lophoc a;
    a.NhapL("\n------====Nhap thong tin lop====-----");
    a.SapXep();
    a.InL("\n---***---In thong tin lop---***---");
    getch();
}








Mình làm đề lẻ nên mình chỉ sửa được đề lẻ thôi, các bạn tập hợp đề lên đây hoặc vào lớp mình hỏi các đề khác rồi giải sau. Chúc tất cả anh em đạt điểm số cao nhất


Được sửa bởi Admin ngày Tue Oct 18, 2011 11:32 am; sửa lần 4.

Admin

Posts : 1013
Thanked : 47
Gia Nhập 25/08/2010

Tài Sản
Thú nuôi:

http://k4info.forumr.net

Về Đầu Trang Go down

default Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!

Bài gửi by Admin on Mon Oct 17, 2011 10:23 pm

Cách 2:


Code:



/* Ten: Phan Chi Tam
  MSSV:xxxxxxxxxxxxx
  May: 43        */


#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>

class Nguoi{
   private:
      char ma_so[10];      
      char *ho_ten;   
      int nam_sinh;   
   public:   
        Nguoi();       
        ~Nguoi();            
      void NhapTT(); 
      void InTT(); 
    };   

Nguoi::Nguoi(){
    strcpy(ma_so,"");
    ho_ten = new char[100];
    nam_sinh = 0;
    };

Nguoi::~Nguoi() {
    delete[] ho_ten;   
    } 

void Nguoi::NhapTT(){     
    cout<<"\n Ma so:";
    cin>>ma_so;
    cout<<"Ho ten:";
    cin.ignore();
    cin.getline(ho_ten,100);
    cout<<"Nam sinh:";
    cin>>nam_sinh;           
    };

void Nguoi::InTT(){     
    cout<<"\n "<<ma_so<<" : "<<ho_ten<<" (nam sinh:"<<nam_sinh<<")";             
    };
class sinhvien: public Nguoi{
      float tb;
      public:
        sinhvien()
        {
            Nguoi();
            tb=0;
        }
        void NhapSV(char* str="")
        {
              cout<<str;
              NhapTT();
              cout<<"Nhap diem trung binh: "; cin>>tb;
        }
        void InSV(char* str="")
        {
              cout<<str;
              InTT(); cout<<" | DTB:"<<tb;
        }
friend class lophoc;
};
class lophoc{
      char ml[10];
      char* tl;
      int slsv;
      sinhvien dssv[200];
      public:
        lophoc()
        {
          strcpy(ml,"");
          tl = new char[100];
          slsv=0;
        }
        ~lophoc() { delete[] tl;}
        void NhapL(char* str="")
        {
            cout<<str;
            cout<<"\nNhap ma lop: "; cin>>ml;
            cin.ignore();
            cout<<"\nNhap ten lop: "; cin.getline(tl,100);
            cout<<"\nNhap so luong sinh vien: "; cin>>slsv;
            for(int i=0; i<slsv;i++)
              { dssv[i].NhapSV(); }
        }
        void InL(char* str="")
        {    cout<<str; 
            cout<<"\n "<<ml<<" | "<<tl<<" | SS:"<<slsv;
            cout<<"\n-----====Danh sach sinh vien cua lop====---- ";
            for(int i=0; i<slsv; i++)
              {dssv[i].InSV();}
        }
        void SapXep(char* str="")
        {
            cout<<str;
            sinhvien temp;
            for (int i=0; i<slsv; i++)
                for(int j=i+1; j<=slsv; j++)
                      if(dssv[i].tb < dssv[j].tb)
                      {
                          temp=dssv[i];
                          dssv[i]=dssv[j];
                          dssv[j]=temp;
                      }
        }
};
int main()
{
    lophoc a;
    a.NhapL("\n------====Nhap thong tin lop====-----");
    a.SapXep();
    a.InL("\n---***---In thong tin lop---***---");
    getch();
}




Được sửa bởi Admin ngày Mon Oct 17, 2011 10:39 pm; sửa lần 1.

Admin

Posts : 1013
Thanked : 47
Gia Nhập 25/08/2010

Tài Sản
Thú nuôi:

http://k4info.forumr.net

Về Đầu Trang Go down

default Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!

Bài gửi by Admin on Mon Oct 17, 2011 10:26 pm

Lưu ý tên sinh cuối danh sách sau khi sắp xếp khi chạy demo, hình demo mình up ở trên bị lỗi là do class Nguoi của Cô bi lỗi ở getline(ho_ten,100). Hàm Nguoi cô đưa sao làm y vậy không dám sửa, mà sửa làm gì mắc công .

Admin

Posts : 1013
Thanked : 47
Gia Nhập 25/08/2010

Tài Sản
Thú nuôi:

http://k4info.forumr.net

Về Đầu Trang Go down

default Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!

Bài gửi by TeamCook on Mon Oct 17, 2011 10:45 pm

hay quá bác Sad

TeamCook

Posts : 114
Thanked : 11
Gia Nhập 27/08/2011

Tài Sản
Thú nuôi:

Về Đầu Trang Go down

default Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!

Bài gửi by shippou777 on Tue Oct 18, 2011 6:19 am

Đề 4 của nhóm 1 yêu cầu nhập và in n phòng thực hành lận nhỉ.
Cô ác vl.

shippou777

Posts : 460
Thanked : 8
Gia Nhập 11/10/2011

Tài Sản
Thú nuôi:

Về Đầu Trang Go down

default Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!

Bài gửi by Admin on Tue Oct 18, 2011 11:25 am

shippou777 đã viết:Đề 4 của nhóm 1 yêu cầu nhập và in n phòng thực hành lận nhỉ.
Cô ác vl.

Đề là gì mình muốn tham khảo giải với bạn post lên đây được không!

Admin

Posts : 1013
Thanked : 47
Gia Nhập 25/08/2010

Tài Sản
Thú nuôi:

http://k4info.forumr.net

Về Đầu Trang Go down

default Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!

Bài gửi by shippou777 on Tue Oct 18, 2011 11:45 am

Admin đã viết:

Đề là gì mình muốn tham khảo giải với bạn post lên đây được không!

Đề y chang nhau thôi. Mình không co save lại, nhớ sau ghi vậy.
-Cho trước cái class DoVat(mã số,tên,năm sx).
-Yêu cầu:
+ Tạo class DungCu (+thêm chất liệu,số lượng) kế thừa class DoVat
+Xây dựng class PhongThucHanh (mã số,tên, nhập vào n DungCu)
+Có dùng hàm xây dựng, hàm hủy, cấp phát vùng nhớ...
+Nhập n PhongThucHanh và In thông tin trong đó danh sách DungCu được sắp xếp theo thứ tự số lượng giảm dần.
+ Còn cái gì nữa không nhớ....

shippou777

Posts : 460
Thanked : 8
Gia Nhập 11/10/2011

Tài Sản
Thú nuôi:

Về Đầu Trang Go down

default Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!

Bài gửi by Admin on Tue Oct 18, 2011 5:51 pm


Đề y chang nhau thôi. Mình không co save lại, nhớ sau ghi vậy.
-Cho trước cái class DoVat(mã số,tên,năm sx).
-Yêu cầu:
+ Tạo class DungCu (+thêm chất liệu,số lượng) kế thừa class DoVat
+Xây dựng class PhongThucHanh (mã số,tên, nhập vào n DungCu)
+Có dùng hàm xây dựng, hàm hủy, cấp phát vùng nhớ...
+Nhập n PhongThucHanh và In thông tin trong đó danh sách DungCu được sắp xếp theo thứ tự số lượng giảm dần.
+ Còn cái gì nữa không nhớ....


Bài Giải



Code:



#include<conio.h>
#include<stdio.h>
#include<iostream.h>
#include<string.h>
class dovat {
  char ms[10];
  char* tdv;
  int nsx;
  public:
    dovat()
    {
      strcpy(ms,"");
      tdv = new char[100];
      nsx=0;
    }
    ~dovat() {delete[] tdv;}
    void NhapDV(char* str="")
    {
        cout<<str;
        cout<<"\nNhap ma so do vat:"; cin>>ms;
        cin.ignore();
        cout<<"\nNhap ten do vat:"; cin.getline(tdv,100);
        cout<<"\nNhap nam san xuat:"; cin>>nsx;   
    }
    void InDV(char* str="")
    {
        cout<<str;
        cout<<"\n"<<ms<<" | "<<tdv<<" | (NSX:"<<nsx<<")";
    }
};
class dungcu : public dovat {
      char* cl;
      int sl;
      public:
      int getSL() {return sl;}
        dungcu()
        {
          dovat();
          cl = new char[50];
          sl=0;
        }
        void NhapDC(char* str="")
        {
            cout<<str;
            NhapDV();
            cin.ignore();
            cout<<"\nChat lieu:"; cin.getline(cl,50);
            cout<<"\nSo luong: "; cin>>sl;
        }
        void InDC(char* str="")
        {
            cout<<str;
            InDV();
            cout<<" | "<<cl<<" | SL:"<<sl;
        }
friend class phongthuchanh;
};
class phongthuchanh {
      char mp[10];
      char* tp;
      int sldc;
      dungcu dsdc[200];
      public:
        phongthuchanh()
        {
            strcpy(mp,"");
            tp= new char[100];
            sldc=0;
        }
      void NhapPTH(char* str="")
      {
            cout<<str;
            dungcu temp;
            cout<<"\nMa phong:"; cin>>mp;
            cin.ignore();
            cout<<"\nTen phong:"; cin.getline(tp,100);
            cout<<"\nBao nhieu loai dung cu:"; cin>>sldc;
            for(int i=0;i<sldc;i++)
              {dsdc[i].NhapDC();}
            for(int i=0; i<sldc;i++)
                for(int j=i+1; j<=sldc;j++)
                    if(dsdc[i].getSL() < dsdc[j].getSL())
                    {
                    temp=dsdc[i];
                    dsdc[i]=dsdc[j];
                    dsdc[j]=temp;
                    }
      }
      void InPTH(char* str="")
      {
          cout<<str;
          cout<<"\n"<<mp<<" | "<<tp<<" | (SDC:"<<sldc<<")";
          cout<<"\nDanh sach dung cu trong phong:";
          for(int i=0;i<sldc;i++)
          {dsdc[i].InDC();}
      }
};
int main()
{
    phongthuchanh a[200];
    int n;
    cout<<"\nNhap so luong phong thuc hanh:"; cin>>n;
    for(int i=0;i<n;i++)
    {a[i].NhapPTH();}
    for(int i=0;i<n;i++)
    {a[i].InPTH();}
    getch();
}



Admin

Posts : 1013
Thanked : 47
Gia Nhập 25/08/2010

Tài Sản
Thú nuôi:

http://k4info.forumr.net

Về Đầu Trang Go down

default Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!

Bài gửi by Admin on Tue Oct 18, 2011 5:53 pm

Đối với bài mình để áp dụng cho nhập n phòng học thì làm theo cách sau:


Code:



/* Ten: Phan Chi Tam
  MSSV:xxxxxxxxxxxx
  May: 43        */


#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>

class Nguoi{
   private:
      char ma_so[10];      
      char *ho_ten;   
      int nam_sinh;   
   public:   
        Nguoi();       
        ~Nguoi();            
      void NhapTT(); 
      void InTT(); 
    };   

Nguoi::Nguoi(){
    strcpy(ma_so,"");
    ho_ten = new char[100];
    nam_sinh = 0;
    };

Nguoi::~Nguoi() {
    delete[] ho_ten;   
    } 

void Nguoi::NhapTT(){     
    cout<<"\n Ma so:";
    cin>>ma_so;
    cout<<"Ho ten:";
    cin.ignore();
    cin.getline(ho_ten,100);
    cout<<"Nam sinh:";
    cin>>nam_sinh;           
    };

void Nguoi::InTT(){     
    cout<<"\n "<<ma_so<<" : "<<ho_ten<<" (nam sinh:"<<nam_sinh<<")";             
    };
class sinhvien: public Nguoi{
      float tb;
      public:
        float getTB() {return tb;}
        sinhvien()
        {
            Nguoi();
            tb=0;
        }
        void NhapSV(char* str="")
        {
              cout<<str;
              NhapTT();
              cout<<"Nhap diem trung binh: "; cin>>tb;
        }
        void InSV(char* str="")
        {
              cout<<str;
              InTT(); cout<<" | DTB:"<<tb;
        }
friend class lophoc;
};
class lophoc{
      char ml[10];
      char* tl;
      int slsv;
      sinhvien dssv[200];
      public:
        lophoc()
        {
          strcpy(ml,"");
          tl = new char[100];
          slsv=0;
        }
        ~lophoc() { delete[] tl;}
        void NhapL(char* str="")
        {
            cout<<str;
            cout<<"\nNhap ma lop: "; cin>>ml;
            cin.ignore();
            cout<<"\nNhap ten lop: "; cin.getline(tl,100);
            cout<<"\nNhap so luong sinh vien: "; cin>>slsv;
            for(int i=0; i<slsv;i++)
              { dssv[i].NhapSV(); }
            sinhvien temp;
            for (int i=0; i<slsv; i++)
                for(int j=i+1; j<=slsv; j++)
                      if(dssv[i].getTB() < dssv[j].getTB())
                      {
                          temp=dssv[i];
                          dssv[i]=dssv[j];
                          dssv[j]=temp;
                      }
        }
        void InL(char* str="")
        {    cout<<str; 
            cout<<"\n "<<ml<<" | "<<tl<<" | SS:"<<slsv;
            cout<<"\n-----====Danh sach sinh vien cua lop====---- ";
            for(int i=0; i<slsv; i++)
              {  dssv[i].InSV();}
        }
};
int main()
{
    lophoc a[200];
    int n;
    cout<<"\nNhap so luong lop:"; cin>>n;
    for(int i=0;i<n;i++)
    { a[i].NhapL();}
    for(int i=0;i<n;i++)
    { a[i].InL();}
    getch();
}




Admin

Posts : 1013
Thanked : 47
Gia Nhập 25/08/2010

Tài Sản
Thú nuôi:

http://k4info.forumr.net

Về Đầu Trang Go down

default Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!

Bài gửi by mtuanmt on Thu Oct 18, 2012 10:45 am

rầu quá thu 7 e thi ma chua biet gi hết:((

mtuanmt

Posts : 4
Thanked : 0
Gia Nhập 11/09/2012

Về Đầu Trang Go down

default Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!

Bài gửi by pht0991 on Thu Oct 18, 2012 5:41 pm

mtuanmt đã viết:rầu quá thu 7 e thi ma chua biet gi hết:((
tao cũng thế!!! Smile

pht0991

Posts : 222
Thanked : 3
Gia Nhập 24/02/2011

Tài Sản
Thú nuôi:

Về Đầu Trang Go down

default Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!

Bài gửi by Sponsored content


Sponsored content


Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết