Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Một bài hướng đối tương với c++!

  1. #1
    Ngày gia nhập
    04 2008
    Bài viết
    1

    Wink Một bài hướng đối tương với c++!

    LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Với C++

    VLEAGE 20888

    Mô tả:

    Một chuyên gia bóng đá cần quản lý các thông tin cơ bản của giải vô địch quốc gia VLEAGE 2008 như các đội bóng, cầu thủ và trận đấu. Trong đó, các thông tin chính cần quản lý như sau:

    Thông tin 1 cầu thủ gồm có: số CMND (hoặc số hộ chiếu), họ tên, quốc tịch, ngày sinh, chiều cao, cân nặng, vị trí thi đấu …(class CauThu)

    Thông tin 1 đội bóng gồm: tên đội bóng, địa phương, huấn luyện viên, danh sách các cầu thủ…(class DoiBong)

    Thông tin 1 trận đấu gồm: ngày thi đấu, sân thi đấu, tên 2 đội bóng, tỷ số…(class TranDau)

    Viết các lớp trên.
    Viết hàm main thực hiện các công việc sau:

    - Hiển thị thông tin của 1 cầu thủ, 1 đội bóng và 1 trận đấu.
    - Hiển thị danh sách các cầu thủ trong 1 đội bóng.
    - Thêm, sửa, xóa thông tin của 1 cầu thủ, 1 đội bóng.
    - Liệt kê kết quả các trận đấu trong 1 ngày, 1 tháng hoặc toàn giải.
    - Tính điểm cho các đội bóng tại 1 thời điểm
    - Liệt kê danh sách các cầu thủ dựa theo: năm sinh, vị trí thi đấu, …
    - Tìm cầu thủ cao nhất giải, thấp nhất giải, trẻ nhất giải,…

    (Có chú thích những chỗ khó hiểu càng tốt)!!
    Thanks!!!!!

    C++ Code:
    1. #include <iostream.h>
    2. #include <conio.h>
    3. #include<string.h>
    4. #include<stdio.h>
    5.  
    6. class Date{
    7.  
    8.           int ngay, thang, nam;
    9.        public:
    10.           Date(int d=0, int m=0, int y=0);
    11.           void hienthi() const;
    12.           void nhap();
    13.           int operator >(Date);
    14.           Date cong (int songay);
    15.           Date cong_n (Date);
    16.           void set(int d, int m, int y);
    17.           int layngay()   {return ngay;}
    18.           int laythang()  {return thang;}
    19.           int laynam()    {return nam;}
    20.           void chuanhoa();
    21.           static int songay(int m, int y);
    22. };
    23.  
    24.     Date::Date(int d, int m, int y)
    25.       {
    26.           ngay = d;
    27.           thang = m;
    28.           nam = y;
    29.       }
    30.  
    31.     void Date::hienthi() const
    32.       {
    33.           cout << ngay << "/" << thang <<"/" << nam;
    34.       }
    35.  
    36.     void Date::nhap()
    37.       {
    38.           cout << "Nhap ngay: ";cin >> ngay;
    39.           cout << "Nhap thang: ";cin >> thang;
    40.           cout << "Nhap nam: ";cin >> nam;
    41.       }
    42.  
    43.     Date Date::cong(int songay)
    44.       {
    45.           Date kq(ngay+songay, thang, nam);
    46.           kq.chuanhoa();
    47.           return kq;
    48.       }
    49.  
    50.     Date Date::cong_n (Date d)
    51.       {
    52.           Date kq(ngay + d.ngay, thang + d.thang, nam + d.nam);
    53.           kq.chuanhoa();
    54.           return kq;
    55.       }
    56.  
    57.     int Date ::operator > (Date d)
    58.       {
    59.           if (nam != d.nam)
    60.          return (nam > d.nam);
    61.           else if (thang != d.thang)
    62.               return (thang > d.thang);
    63.           return (ngay > d.ngay);
    64.       }
    65.  
    66.     void Date::chuanhoa()
    67.       {
    68.           while (songay(thang, nam) < ngay)
    69.            {
    70.               ngay -= songay(thang ,nam);
    71.               thang++;
    72.            }
    73.           nam += (thang / 12);
    74.           thang %= 12;
    75.      }
    76.  
    77.        int Date::songay(int m, int y)
    78.      {
    79.         switch (m)
    80.            {
    81.              case 1:
    82.              case 3:
    83.              case 5:
    84.              case 7:
    85.              case 8:
    86.              case 10:
    87.              case 12:
    88.                return 31;
    89.  
    90.              case 4:
    91.              case 6:
    92.              case 9:
    93.              case 11:
    94.                return 30;
    95.  
    96.              default:
    97.              if ((y % 4) == 0)
    98.              return 29;
    99.              else
    100.              return 28;
    101.           }
    102.   }
    103.  
    104.  
    105. class Cauthu
    106. {
    107.        char socmnd[9];
    108.        char *hoten;
    109.        char *quoctich;
    110.        Date ngaysinh;
    111.        float chieucao;
    112.        float cannang;
    113.        char *vtthidau;
    114.     public:
    115.  
    116.     Cauthu()
    117.       : ngaysinh(){
    118.         strcpy(socmnd, "");
    119.         hoten = new char[50];strcpy(hoten, "");
    120.         quoctich = new char[50];strcpy(quoctich, "");
    121.         chieucao = cannang=0;
    122.         vtthidau = new char[50];strcpy(vtthidau,"");
    123.       }
    124.  
    125.     Cauthu(char* cm, char* ht, char* qt, Date ns, float c,float n,char*vt)
    126.       : ngaysinh(ns){
    127.  
    128.         strcpy(socmnd,cm);
    129.         hoten = strdup(ht);
    130.         qt = strdup(quoctich);
    131.         chieucao = c;
    132.         cannang = n;
    133.         vt = strdup(vtthidau);
    134.       }
    135.  
    136.     Cauthu(const Cauthu& ct)
    137.       : ngaysinh(ct.ngaysinh){
    138.  
    139.         strcpy(socmnd,ct.socmnd);
    140.         hoten = strdup(ct.hoten);
    141.         quoctich = strdup(ct.quoctich);
    142.         chieucao = ct.chieucao;
    143.         cannang = ct.cannang;
    144.         vtthidau = strdup(ct.vtthidau);
    145.       }
    146.  
    147.  
    148.     void operator= (const Cauthu& ct){
    149.  
    150.         strcpy(socmnd,ct.socmnd);
    151.         hoten = strdup(ct.hoten);
    152.         quoctich = strdup(ct.quoctich);
    153.         ngaysinh = ct.ngaysinh;
    154.         chieucao = ct.chieucao;
    155.         cannang = ct.cannang;
    156.         vtthidau = strdup(ct.vtthidau);
    157.  
    158.       }
    159.  
    160.     ~Cauthu()
    161.         { delete[] hoten;  delete[] quoctich; delete[] vtthidau; }
    162.  
    163.     void Nhap(){
    164.        cout<< "\nNhap so chung minh nhan dan: ";gets(socmnd);
    165.        cout<< "\nNhap ho ten: ";gets(hoten);
    166.        cout<< "\nNhap quoc tich :";gets(quoctich);
    167.        cout<< "\nNhap ngay sinh: " << endl;
    168.        fflush(stdin);
    169.        ngaysinh.nhap();
    170.        cout<< "\nChieu cao: ";cin >> chieucao;
    171.        cout<<"\nNhap can nang: ";cin>>cannang;
    172.        cout<<"Nhap vi tri thi dau: ";gets(vtthidau);
    173.       }
    174.  
    175.     void In(){
    176.         cout<<"So chung minh nhan dan: " << socmnd << endl;
    177.         cout<<"Ho ten: " << hoten << endl;
    178.         cout<<"Quoc tich: " << quoctich << endl;
    179.         cout<<"Ngay sinh: "; ngaysinh.hienthi();
    180.         cout<<"\nChieu cao: " <<chieucao<<endl;
    181.         cout<<"Can nang:"<<endl;
    182.         cout<<"Vi tri thi dau:"<<vtthidau<<endl;
    183.           }
    184.  
    185.  
    186.     char* laysocmnd() { return socmnd; }
    187.     char* layhoten() { return hoten; }
    188.     char* layquoctich() { return quoctich; }
    189.     Date layngaysinh() { return ngaysinh; }
    190.     float laychieucao() { return chieucao; }
    191.     float laycannang() { return cannang; }
    192.     char* layvtthidau() { return vtthidau; }
    193. };
    194.  
    195. class Doibong
    196. {
    197.          char* ten;
    198.          char* diaphuong;
    199.          char* huanluyenvien;
    200.          Cauthu danhsach;
    201.      public:
    202.          Doibong()
    203.          :danhsach(){
    204.  
    205.          ten = new char[50];
    206.          diaphuong = new char[50];
    207.          huanluyenvien = new char[50];
    208.  
    209.           }
    210.          Doibong(char* t,char* dp,char* hlv,Cauthu ds)
    211.         :danhsach(ds){
    212.  
    213.          ten = new char[50]; strcpy(ten,t);
    214.          diaphuong = new char[50]; strcpy(diaphuong,dp);
    215.          huanluyenvien = new char[50]; strcpy(huanluyenvien,hlv);
    216.  
    217.           }
    218.          Doibong(const Doibong & db)
    219.         :danhsach(db.danhsach){
    220.  
    221.          ten = new char[50]; strcpy(ten,db.ten);
    222.          diaphuong = new char[50]; strcpy(diaphuong,db.diaphuong);
    223.          huanluyenvien = new char[50]; strcpy(huanluyenvien,db.huanluyenvien);
    224.  
    225.           }
    226.         void operator=(const Doibong & db){
    227.          ten = new char[50]; strcpy(ten,db.ten);
    228.          diaphuong = new char[50]; strcpy(diaphuong,db.diaphuong);
    229.          huanluyenvien = new char[50]; strcpy(huanluyenvien,db.huanluyenvien);
    230.          danhsach=db.danhsach;
    231.           }
    232.  
    233.  
    234. };
    235.  
    236. class Trandau
    237. {
    238. };
    239.  
    240.  
    241.  
    242. void main(){
    243.        clrscr();
    244.        int n;
    245.        cout << "Nhap so cau thu: "; cin >> n;
    246.        Cauthu *ds=new Cauthu[n];
    247.        for (int i=0; i<n; i++)
    248.           {
    249.          cout << endl << " Nhap thong tin cho cau thu " << (i+1) << endl;
    250.          ds[i].Nhap();            }
    251.        //tim cau thu cao nhat trong danh sach
    252.        float maxChieucao=0;
    253.        for ( i=1; i<n; i++)
    254.          if (ds[i].laychieucao() > ds[maxChieucao].laychieucao())
    255.          maxChieucao = i;
    256.  
    257.        cout << "-----------------------" << endl;
    258.        cout << "Cau thu cao nhat la: " << endl;
    259.        ds[maxChieucao].In();
    260.  
    261.  
    262.        getch();
    263.  
    264. }
    Đã được chỉnh sửa lần cuối bởi Forlorn_hope : 11-04-2008 lúc 06:39 AM. Lý do: Lần sau bỏ code vào cặp thẻ nha bạn

  2. #2
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Bạn đã làm được gì trong đề bài này?
    Bạn có thể đưa code của bạn để mọi người giúp, chứ không có thành viên nào có thời gian mà làm toàn bộ cho bạn.
    Không biết ghi gì luôn ...

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn