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

Đề tài: Quản lý sinh viên bằng lập trình C++ hướng đối tượng

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    0

    Mặc định Quản lý sinh viên bằng lập trình C++ hướng đối tượng

    Em có một bài tập lớn về quản lý sinh viên mong các anh chị giúp đỡ:
    Xây dựng chương trình quản lý sinh viên gồm các chức năng:
    1.Quản lý SV:
    -các thông tin sv:mã sv,họ tên,ngày sinh giới tính,quê quán,diện chính sách.
    -các chức năng:hiển thị danh sách sv,thêm mới ,cập nhật,xóa,tìm kiếm theo mã sv, tên, ngày sinh.....
    2.Quản lý điểm:
    -các thông tin:mã sv,tên sv,điểm tb,điểm rèn luyện ,điểm cộng.
    -chức năng:hiển thị danh sách điểm theo thứ tự giảm dần của điểm tb,thêm,sửa, xóa,tìm kiếm theo dtb.
    3.Quản lý học bổng:
    -các thông tin:mã sv,tên sv,ngày sinh,điểm tb,điểm rèn luyện,diện chính sách,học bổng, tiền trợ cấp.
    -các chức năng:
    +thực hiện tính học bổng:nếu điểm tb+điểm cộng >9 và điểm rèn luyện >9 thì học bổng 300000.nếu điểm trung bình học tập +điểm cộng >9 va điểm rèn luyện <9 thì học bổng 270000.còn lại học bổng =0.
    +thực hiện tính trợ cấp:con thương binh 200000,hộ nghèo 180000.
    +hiện thị các thông tin này ra màn hình.
    Em mới học lập trình hướng đối tượng theo ngôn ngữ C++ nên mong các anh chị giúp đỡ em phần code.Em xin cảm ơn.

    C++ Code:
    1. #include<fstream.h>
    2. #include<iostream.h>
    3. #include<conio.h>
    4. #include<stdio.h>
    5. #include<iomanip.h>
    6. #include<ctype.h>
    7. #include<stdlib.h>
    8. #include<time.h>
    9. #include<string.h>
    10.  
    11. /*              XAY DUNG CLASS NGAY SINH                */
    12.  
    13. class ngaysinh
    14. {
    15. protected:
    16.     int ngay;
    17.     int thang;
    18.     int nam;
    19. public:
    20.     ngaysinh(int ngay, int thang, int nam);
    21.     ~ngaysinh();
    22.     void nhapns();
    23.     void hienns();
    24. };
    25.  
    26. ngaysinh::ngaysinh(int ngay, int thang, int nam)
    27. {
    28.     ngay=ngay;
    29.     thang=thang;
    30.     nam=nam;
    31. }
    32. ngaysinh::~ngaysinh()
    33. {
    34.     ngay=thang=nam=0;
    35. }
    36.  
    37. void ngaysinh::nhapns()
    38. {
    39.     char ch;
    40.     cout<<"\nnhap ngay, thang, nam sinh(dd/mm/yyyy)  ";
    41.     cin>>ngay>>ch>>thang>>ch>>nam;
    42. };
    43.  
    44. void ngaysinh::hienns()
    45. {
    46.     cout<<endl;
    47.     cout<<ngay<<"/"<<thang<<"/"<<nam<<endl;
    48. };
    49.  
    50. /*                       XAY DUNG CLASS NGUOI                           */
    51.  
    52. class nguoi:public ngaysinh
    53. {
    54.     protected:
    55.         int masv;
    56.         char ten[30];
    57.         ngaysinh ns;
    58.         int gt;
    59.     public:
    60.         void nhapn();
    61.         void inn();
    62. };
    63.  
    64. void nguoi::nhapn()
    65. {
    66.     cout<<"\n Nhap ma so sinh vien:";cin>>masv;
    67.     cout<<"\n Nhap ho va ten sinh vien:";
    68.     cin.get(ten,30);
    69.     cin.ignore(1);
    70.     ns.nhapns();
    71.     cout<<"\n Nhap gioi tinh ( Nam 1 / Nu 0 ) :";cin>>gt;
    72. }
    73.  
    74. void nguoi::inn()
    75. {
    76.     cout<<"\n --------------------------------------------------";
    77.     cout<<"\n Ma so sinh vien:"<<masv;
    78.     cout<<"\n Ho va ten:"<<ten;
    79.     cout<<"\n Ngay sinh:";ns.hienns();
    80.     cout<<"\n Gioi tinh:";
    81.     if (gt==1)
    82.         cout<<"Nam";
    83.     else
    84.         cout<<"Nu";
    85. }
    86.  
    87. /*                   XAY DUNG CLASS DIEM                               */
    88.  
    89. class diem : public nguoi
    90. {
    91.     private:
    92.         float dtb;
    93.         float drl;
    94.         float dcong;
    95.     public:
    96.         diem(){}
    97.         void nhapd();
    98.         void ind();
    99.         void sapxep();
    100.         void timkiemdiem_dtb(float diemtb);
    101.         void timkiemdiem_masv(int msv);
    102.         void timkiemdiem_ten(char tensv[]);
    103.         void ghi_file();
    104.         void doc_file(int sod);
    105.         int diem::dem();
    106.         float laydtb();
    107. };
    108.  
    109. //HAM NHAP
    110.  
    111. void diem::nhapd()
    112. {
    113.     nhapn();
    114.     cout<<"\n Nhap diem trung binh:";cin>>dtb;
    115.     cout<<"\n Nhap diem ren luyen:";cin>>drl;
    116.     cout<<"\n Nhap diem cong:";cin>>dcong;
    117. }
    118.  
    119. //HAM IN
    120.  
    121. void diem::ind()
    122. {
    123.     inn();
    124.     cout<<"\n Diem TB:"<<dtb;
    125.     cout<<"\n Diem ren luyen:"<<drl;
    126.     cout<<"\n Diem cong:"<<dcong;
    127. }
    128.  
    129. //HAM GHI FILE
    130.  
    131. void diem::ghi_file()
    132. {
    133.     fstream f;
    134.     f.open("DIEM.TXT", ios::binary|ios::app|ios::out);
    135.     f.write((char*)this, sizeof(*this));
    136.     f.close();
    137. }
    138.  
    139. //HAM DOC FILE
    140.  
    141. void diem::doc_file(int sod)
    142. {
    143.     fstream f;
    144.     f.open("DIEM.TXT",ios::binary|ios::in);
    145.     f.seekg( sod * sizeof(diem) );
    146.     f.read((char*)this,sizeof(*this));
    147.     f.close();
    148. }
    149.  
    150. //HAM DEM
    151.  
    152. int diem::dem()
    153. {
    154.     ifstream f;
    155.     f.open("DIEM.TXT", ios::binary);
    156.     f.seekg(0, ios::end);
    157.     if(!f)
    158.         return 0;
    159.     else
    160.         return (int)f.tellg() / sizeof(diem);
    161. }
    162.  
    163. //TIM KIEM DIEM THEO MA SV
    164.  
    165. void diem::timkiemdiem_masv(int msv)
    166. {
    167.     diem d;
    168.     int so=diem::dem();
    169.     for(int i=0;i<so;i++)
    170.     {
    171.         d.doc_file(i);
    172.         if(masv==msv)
    173.             d.ind();
    174.     }
    175. }
    176.  
    177. //TIM KIEM DIEM THEO TEN
    178.  
    179. void diem::timkiemdiem_ten(char tensv[])
    180. {
    181.     diem d;
    182.     int so=diem::dem();
    183.     for(int i=0;i<so;i++)
    184.     {
    185.         d.doc_file(i);
    186.         if(ten==tensv)
    187.             d.ind();
    188.     }
    189. }
    190.  
    191. //TIM KIEM THEO DTB
    192.  
    193. void diem::timkiemdiem_dtb(float diemtb)
    194. {
    195.     diem d;
    196.     int so=diem::dem();
    197.     for(int i=0;i<so;i++)
    198.     {
    199.         d.doc_file(i);
    200.         if(dtb==diemtb)
    201.             d.ind();
    202.     }
    203. }
    204.  
    205. /*                   XAY DUNG CLASS SINH VIEN                         */
    206.  
    207. class sinhvien : public nguoi
    208. {
    209.     private:
    210.         char qq[50];
    211.         char cs[20];
    212.     public:
    213.         sinhvien(){}
    214.         void nhapsv();
    215.         void insv();
    216.         void dssv();
    217.         void ghi_file();
    218.         void doc_file(int sosv);
    219.         int sinhvien::dem();
    220.         void timkiem_masv(int msv);
    221.         void timkiem_ten(char ten[]);
    222. };
    223.  
    224. //HAM NHAP
    225.  
    226. void sinhvien::nhapsv()
    227. {
    228.  
    229.     nhapn();
    230.     cout<<"\n Nhap que quan:";
    231.     cin.get(qq,50);
    232.     cin.ignore(1);
    233.     cout<<"\n Nhap dien chinh sach:";
    234.     cin.get(cs,20);
    235.     cin.ignore(1);
    236. }
    237.  
    238. //HAM IN
    239.  
    240. void sinhvien::insv()
    241. {
    242.     inn();
    243.     cout<<"\n Que quan:"<<qq;
    244.     cout<<"\n Dien chinh sach:"<<cs;
    245. }
    246.  
    247. //GHI FILE
    248.  
    249. void sinhvien::ghi_file()
    250. {
    251.     fstream f;
    252.     f.open("SINHVIEN.TXT", ios::binary|ios::app|ios::out);
    253.     f.write((char*)this, sizeof(*this));
    254.     f.close();
    255. }
    256.  
    257. //DOC FILE
    258.  
    259. void sinhvien::doc_file(int sosv)
    260. {
    261.     fstream f;
    262.     f.open("SINHVIEN.TXT",ios::binary|ios::in);
    263.     f.seekg(sosv* sizeof(sinhvien) );
    264.     f.read((char*)this,sizeof(*this));
    265.     f.close();
    266. }
    267.  
    268. //DEM SO SINH VIEN
    269.  
    270. int sinhvien::dem()
    271. {
    272.      ifstream f;
    273.      f.open("SINHVIEN.TXT", ios::binary);
    274.      f.seekg(0, ios::end);
    275.      if(!f)
    276.         return 0;
    277.      else
    278.         return (int)f.tellg() / sizeof(sinhvien);
    279. }
    280.  
    281. //HIEN THI DANH SACH SINH VIEN
    282.  
    283. void sinhvien::dssv()
    284. {
    285.     sinhvien sv;
    286.     cout<<"\n Co tat ca "<<sinhvien::dem()<<" sinhvien";
    287.     for (int i=0 ; i<sv.dem();i++)
    288.     {
    289.         sv.doc_file(i);
    290.         sv.insv();
    291.     }
    292. }
    293.  
    294. //TIM KIEM THEO MA SO SV
    295.  
    296. void sinhvien::timkiem_masv(int msv)
    297. {
    298.     sinhvien sv;
    299.     cout<<"\n Sinh vien co ma so sinh vien "<<msv<<"  la: \n";
    300.     int sosv=sinhvien::dem();
    301.     for(int i=0;i<sosv;i++)
    302.     {
    303.         sv.doc_file(i);
    304.         if(masv==msv)
    305.             sv.insv();
    306.     }
    307.  
    308. }
    309.  
    310. //TIM KIEM THEO TEN
    311.  
    312. void sinhvien::timkiem_ten(char tensv[])
    313. {
    314.     sinhvien sv;
    315.     cout<<"\n Nhung sinh vien ten "<<tensv<<" la:\n";
    316.     int sosv=sinhvien::dem();
    317.     for(int i=0;i<sosv;i++)
    318.     {
    319.         sv.doc_file(i);
    320.         if(ten==tensv)
    321.             sv.insv();
    322.     }
    323. }
    324.  
    325. //MAIN MENU
    326.  
    327. void MM(sinhvien &sv,diem &d)
    328. {
    329.     cout<<"\n*******************************************************";
    330.     cout<<"\n*              HE THONG QUAN LY SINH VIEN             *";
    331.     cout<<"\n*                                                     *";
    332.     cout<<"\n*  QUAN LY SINH VIEN                                  *";
    333.     cout<<"\n*                                                     *";
    334.     cout<<"\n*  1. Nhap vao sinh vien                              *";
    335.     cout<<"\n*  2. Tim kiem theo ma so sinh vien                   *";
    336.     cout<<"\n*  3. Tim kiem theo ten sinh vien                     *";
    337.     cout<<"\n*  4. Danh sach sinh vien                             *";
    338.     cout<<"\n*  5. Xoa                                             *";
    339.     cout<<"\n*                                                     *";
    340.     cout<<"\n*  QUAN LY DIEM                                       *";
    341.     cout<<"\n*                                                     *";
    342.     cout<<"\n*  6. Nhap diem cua sinh vien                         *";
    343.     cout<<"\n*  7. Tim kiem theo ma so sinh vien                   *";
    344.     cout<<"\n*  8. Tim kiem theo ten                               *";
    345.     cout<<"\n*  9. Tim kiem theo diem trung binh                   *";
    346.     cout<<"\n*  10. Danh sach SV theo thu tu giam dan cua DTB      *";
    347.     cout<<"\n*  11.xoa                                             *";
    348.     cout<<"\n*                                                     *";
    349.     cout<<"\n*  QUAN LY HOC BONG                                   *";
    350.     cout<<"\n*                                                     *";
    351.     cout<<"\n*  12. Danh sach hoc bong                             *";
    352.     cout<<"\n*  13. Gioi thieu                                     *";
    353.     cout<<"\n*  14. Thoat chuong trinh                             *";
    354.     cout<<"\n*                                                     *";
    355.     cout<<"\n*******************************************************";
    356.     cout<<"\n\nLua chon cong viec tuong ung ";
    357.     int n;
    358.     cin>>n;
    359.     switch(n)
    360.     {
    361.         case (1) :
    362.             {
    363.                 sv.nhapsv();
    364.                 MM(sv,d);
    365.                 break;
    366.             }
    367.         case (2) :
    368.             {
    369.                 int ma;
    370.                 cout<<"\n Ma so sinh vien can tim: ";
    371.                 cin>>ma;
    372.                 sv.timkiem_masv(ma);
    373.                 MM(sv,d);
    374.                 break;
    375.             }
    376.         case (3) :
    377.             {
    378.                 char t[30];
    379.                 cout<<"\n Ten sinh vien can tim: ";
    380.                 fflush(stdin);
    381.                 cin.get(t,30);
    382.                 sv.timkiem_ten(t);
    383.                 MM(sv,d);
    384.                 break;
    385.             }
    386.         case (4) :
    387.             {
    388.                 sv.dssv();
    389.                 MM(sv,d);
    390.                 break;
    391.             }
    392.     /*    case (5) :
    393.             {
    394.                 cv.nhap();
    395.                 MM(ld,cv);
    396.                 break;
    397.             }    */
    398.         case (6) :
    399.             {
    400.                 d.nhapd();
    401.                 MM(sv,d);
    402.                 break;
    403.             }
    404.         case (7) :
    405.             {
    406.                 int ma;
    407.                 cout<<"\n Ma so sinh vien can tim: ";
    408.                 cin>>ma;
    409.                 d.timkiemdiem_masv(ma);
    410.                 MM(sv,d);
    411.                 break;
    412.             }
    413.         case (8) :
    414.             {
    415.                 char t[30];
    416.                 cout<<"\n Ten sinh vien can tim: ";
    417.                 fflush(stdin);
    418.                 cin.get(t,30);
    419.                 d.timkiemdiem_ten(t);
    420.                 MM(sv,d);
    421.                 break;
    422.             }
    423.         case (9) :
    424.             {
    425.                 float d1;
    426.                 cout<<"\n DTB can tim: ";
    427.                 cin>>d1;
    428.                 d.timkiemdiem_dtb(d1);
    429.                 MM(sv,d);
    430.                 break;
    431.             }
    432.     /*    case(10) :
    433.             {
    434.                
    435.             }
    436.         case(11) :
    437.             {
    438.            
    439.             }
    440.         case (12):
    441.             {
    442.                
    443.             }          */
    444.         case(13) :
    445.             {
    446.                 cout<<"\n---------------------------------"
    447.                     <<"\n--------------------------"
    448.                     <<"----------------------------"
    449.                     <<"\n-----------------";
    450.                 MM(sv,d);
    451.                 break;
    452.             }
    453.         case(14) :
    454.             {
    455.                 exit(1);
    456.                 break;
    457.             }
    458.  
    459.         default : cout<<"Gia tri nhap vao khong thich hop";
    460.     }
    461. }
    462.  
    463. //CHUONG TRINH CHINH
    464.  
    465. void main()
    466. {
    467.     clrscr();
    468.     sinhvien sv();
    469.     diem d();
    470.     MM(sv,d);
    471. }
    đây là bài em đã làm nhưng mà còn lỗi chưa dịch được mong các anh chị giúp đỡ sửa giúp em và hướng dẫn cho em phần sửa ,xóa,sắp xếp điểm và tính học bổng

  2. #2
    Ngày gia nhập
    02 2009
    Bài viết
    2

    mình làm thử class sinhvien mọi ng góp ý kiến sửa giúp với ~!~
    Attached Files Attached Files

  3. #3
    Ngày gia nhập
    11 2007
    Bài viết
    47

    Trích dẫn Nguyên bản được gửi bởi kentzeck Xem bài viết
    mình làm thử class sinhvien mọi ng góp ý kiến sửa giúp với ~!~
    Bài của bạn đã dịch được chưa?
    sinhvien SV("DSSV.TXT");
    -> lỗi ở đây nè. Chưa có phương thức khởi tạo này

  4. #4
    Ngày gia nhập
    11 2007
    Bài viết
    47

    1. Lỗi 1:
    Sao class người lại kế thừa class ngày sinh? Có buồn cười ko nhỉ?
    2. Lỗi 2:
    Khi class B kế thừa từ class A thì class A phải có phương thức khởi tạo không tham số.
    Bạn phải thêm dòng này vào trong các phương thức của class ngaysinh:

    Code:
    class ngaysinh
    {
    protected:
        int ngay;
        int thang;
        int nam;
    public:
        ngaysinh() {
        }
    
        ngaysinh(int ngay, int thang, int nam);
        ~ngaysinh();
        void nhapns();
        void hienns();
    };
    Đoạn cuối:
    Code:
    sinhvien sv;
        diem d;
        MM(sv,d);
    thì bỏ dấu () ở sv và d đi. Sẽ biên dịch được. Bạn biên dịch đi rồi chạy thử. Lỗi ở đâu thông báo tiếp. ok?

  5. #5
    Ngày gia nhập
    06 2008
    Bài viết
    51

    bác nào có bài này phần C thì cho em với, em xin đa tạ.

  6. #6
    Ngày gia nhập
    03 2009
    Bài viết
    0

    Mặc định Quản lý sinh viên bằng lập trình C++ hướng đối tượng

    em đã sửa lại code và đã dịch được nhưng các anh xem lại dùm em phần tìm kiếm có lúc tìm kiếm nó in ra tất cả danh sách,có lúc nó lại không đưa ra kết quả.
    Attached Files Attached Files

  7. #7
    Ngày gia nhập
    03 2009
    Bài viết
    0

    em đã sửa xong phần tìm kiếm giờ mong các anh hướng đẫn cho em phần sắp xếp thứ tự sinh viên theo thứ tự giảm dần của điểm trung bình ,xóa 1 sinh viên khỏi danh sách và phần tính học bổng.Em cảm ơn nhiều

  8. #8
    Ngày gia nhập
    11 2007
    Bài viết
    47

    Trích dẫn Nguyên bản được gửi bởi dtthang89 Xem bài viết
    em đã sửa xong phần tìm kiếm giờ mong các anh hướng đẫn cho em phần sắp xếp thứ tự sinh viên theo thứ tự giảm dần của điểm trung bình ,xóa 1 sinh viên khỏi danh sách và phần tính học bổng.Em cảm ơn nhiều
    Nói thật là bài này bạn làm hơi sai 1 chút.
    Đúng ra thì phải như thế này:

    + class ngày sinh
    + class điểm
    + class người trong đó nhận 1 thuộc tính là class ngày sinh
    + class sinh viên kế thừa class người và có 1 thuộc tính là class điểm
    + danh sách nhập vào là 1 mảng kiểu sinh viên
    làm như bạn việc sắp xếp, chỉnh sửa rất khó. Và ko hợp logic lắm.

    Giả sử bạn đã có 1 mảng sinh viên, khi đó việc sắp xếp bạn đưa về như bài toán sắp xếp dãy giảm dần, khi đỏi chỗ thì đỏi chỗ toàn bộ các trường của sinh viên[i] với sinh viên [j] là được.
    Khi xóa 1 sinh viên, bạn chỉ cần tìm sinh viên đó ở vị trí nào trong mảng danh sách sinh viên rồi xóa
    Tính học bổng thì dựa vào điểm trung bình. Không có gì khó cả

  9. #9
    Ngày gia nhập
    03 2009
    Bài viết
    0

    anh ơi anh có thể giúp đỡ em đoạn code lấy dữ liệu từ file .txt ra đưa vào một mảng rồi sắp xếp mảng và ghi lại vào file được không ạ.em cảm ơn anh

  10. #10
    Ngày gia nhập
    11 2007
    Bài viết
    47

    Sử dụng tệp tiêu đề #include <fstream>
    Luồng file đề đọc: -> ifstream
    Luồng file để ghi: -> ofstream
    Mở file: open("tên_file", chế đồ mở)
    Đóng file: close();
    Lấy dữ liệu ra từ file: getline, >>
    ghi vào file: <<
    Cách sử dụng và ví dụ bạn xem ở đây nhé:

    http://www.cplusplus.com/reference/iostream/ifstream/

Các đề tài tương tự

  1. Quản lí sinh viên bằng stack dùng danh sách liên kết. Làm sao để nhập nhiều sinh viên?
    Gửi bởi hoainamken trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 24-08-2011, 10:34 AM
  2. Bài tập quản lý sinh viên trong lập trình C#. Tìm kiếm sinh viên in ra cả danh sách?
    Gửi bởi anhduc12c5 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 24-08-2011, 08:32 AM
  3. Chương trình quản lí sinh viên viết trong visual c++ 2010. Lỗi không chạy khi in danh sách sinh viên theo năm
    Gửi bởi hikaru1015 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 9
    Bài viết cuối: 03-06-2011, 09:31 AM
  4. Kỹ thuật C code bài tập về quản lý sinh viên. Không hiển thị đc tên với mã số sinh viên?
    Gửi bởi seudaudokt trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 06-09-2010, 12:18 AM
  5. Chương trình quản lý sinh viên viết bằng C. Làm sao tìm kiếm sinh viên theo tên và sắp xếp?
    Gửi bởi linhdong24 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 24-06-2009, 12:53 AM

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