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

Đề tài: Sinh viên - Bài tập thừa kế

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

    Mặc định Sinh viên - Bài tập thừa kế

    C++ Code:
    1. /* #######################NTA########################
    2.    Bai tap: Sinh vien
    3.    ##################################################
    4. */
    5.  
    6. #include <stdio.h>
    7. #include <iostream.h>
    8. #include <conio.h>
    9. #include <math.h>
    10. #include <stdlib.h>
    11. #include <string.h>
    12.  
    13. class people
    14. {
    15.   char *name;
    16.   char *add;
    17.   public:
    18.   char *n;
    19.   char *a;
    20.    people(char *n=NULL,char *a=NULL)
    21.   {
    22.     int temp;
    23.     temp = strlen(n);
    24.     name = new char[temp+1];
    25.     strcpy(name,n);
    26.  
    27.     temp=strlen(a);
    28.     add = new char[temp+1];
    29.     strcpy(add,a);
    30.  
    31.   }
    32.  
    33.  
    34.  
    35.   void setp(char *n,char *a)
    36.   {
    37.     int temp;
    38.     temp = strlen(n);
    39.     name = new char[temp+1];
    40.     strcpy(name,n);
    41.  
    42.     temp=strlen(a);
    43.     add = new char[temp+1];
    44.     strcpy(add,a);
    45.   }
    46.  
    47.   void display()
    48.   {
    49.     cout<<"Ten: "<<name<<endl;
    50.     cout<<"Dia chi: "<<add<<endl;
    51.  
    52.   }
    53.  
    54.   ~people()
    55.   {
    56.     delete name;
    57.     delete add;
    58.   }
    59.  
    60. };
    61.  
    62. class date
    63. {
    64.   int day,month,year,recent;
    65.   public:
    66.  
    67.   date(int d=0,int m=0,int y=0)  // ngay` thi` ko co ngay` a^m
    68.   {
    69.     day = d;
    70.     month = m;
    71.     year = y;
    72.   }
    73.  
    74.   void setd(int d,int m,int y)
    75.   {
    76.     day = d;
    77.     month = m;
    78.     year = y;
    79.   }
    80.  
    81.   int getdate()
    82.   {
    83.     return (2008-year);
    84.   }
    85.  
    86.   void display()
    87.   {
    88.     cout<<"Ngay thang nam sinh: "<<day<<"/"<<month<<"/"<<year<<endl;
    89.   }
    90.  
    91.  
    92. };
    93.  
    94. class student:public people,public date
    95. {
    96.     char *group;
    97.     char *info;  // co bo` hay chua
    98.     float toan,ly,hoa,diemtb;
    99. //    sort s;
    100.  
    101.     public:
    102.  
    103.     student(int d=0,int m=0,int y=0,char *n=NULL,char *a=NULL,char *g=NULL,char *i=NULL,float t=0,float l=0,float h=0,float dtb=0):date(d,m,y),people(n,a)
    104.     {
    105.       int temp;
    106.       temp = strlen(info);
    107.       info = new char[temp + 1];
    108.       strcpy(info,i);
    109.  
    110.       temp = strlen(g);
    111.       group = new char[temp + 1];
    112.       strcpy(group,g);
    113.  
    114.       toan = t;
    115.       ly = l;
    116.       hoa = h;
    117.       diemtb = (toan + ly + hoa)/3;
    118.  
    119.     }
    120.  
    121.     char getinfo()
    122.     {
    123.        return *info;
    124.     }
    125.  
    126.  
    127.     ~student()
    128.     {
    129.  
    130.       delete group;
    131.       delete info;
    132.     }
    133.  
    134.     void sets(int d,int m,int y,char *n,char *a,char *g,char *i,float t,float l,float h)
    135.     {
    136.       people::setp(n,a);
    137.       date::setd(d,m,y);
    138.       int temp;
    139.       temp = strlen(info);
    140.       info = new char[temp + 1];
    141.       strcpy(info,i);
    142.  
    143.       temp = strlen(g);
    144.       group = new char[temp + 1];
    145.       strcpy(group,g);
    146.  
    147.       toan = t;
    148.       ly = l;
    149.       hoa = h;
    150.       diemtb = (toan + ly + hoa)/3;
    151.     }
    152.  
    153.     void sort()
    154.     {
    155.      if(diemtb>=8)                cout<<"Sinh vien gioi"<<endl;
    156.      else
    157.     if(5<=diemtb)                     cout<<"Sinh vien kha"<<endl;
    158.     else
    159.        if(4<=diemtb)              cout<<"Sinh vien trung binh"<<endl;
    160.        else
    161.           if(2<=diemtb)               cout<<"Sinh vien co the hoc lai"<<endl;
    162.           else
    163.          if(diemtb<2)         cout<<"Sinh vien bi duoi hoc"<<endl;
    164.  
    165.     }
    166.  
    167.     void in()
    168.     {
    169.       cout<<info<<endl;
    170.     }
    171.  
    172.     void display()
    173.     {
    174.  
    175.       people::display();
    176.       date::display();
    177.       cout<<"Co' nguoi yeu roi hay chua: ";
    178.       in();
    179.       cout<<"Tuoi:  "<<getdate()<<"(Tuoi nay co nguoi yeu duoc roi do)"<<endl;
    180.       cout<<"\nHien dang hoc tai lop': "<<group<<endl;
    181.       cout<<"Diem cac mon hoc phan: \t"<<"Mon 1: "<<toan<<"\t"<<"Mon 2: "<<ly<<"\t"<<"Mon 3: "<<hoa<<endl;
    182.       sort();
    183.       cout<<endl;
    184.     }
    185.  
    186.     void show()
    187.     {
    188.  
    189.     }
    190.  
    191. };
    192.  
    193. void main()
    194. {
    195.   clrscr();
    196.   int d,m,y,j,k,temp=1;
    197.   float t,l,h;
    198.   char *n,*a,*g,*i;
    199.   cout<<"Nhap vao day so sinh vien: ";
    200.   cin>>k;
    201.   clrscr();
    202.   student p[100];
    203.  
    204.   for(j=1;j<=k;j++)
    205.   {
    206.     cout<<"Sinh vien "<<j<<endl;
    207.     cout<<"Ten: ";
    208.     cin.ignore();
    209.     cin.getline(n,50);
    210.     cout<<"Lop: ";
    211.     cin.getline(g,20);
    212.     cout<<"Ngay thang nam sinh: "<<endl;
    213.     cout<<"Ngay : ";     cin>>d;
    214.     cin.ignore();
    215.     cout<<"Thang: ";     cin>>m;
    216.     cout<<"Nam  : ";      cin>>y;
    217.     cout<<"Dia chi: ";
    218.     cin.ignore();
    219.     cin.getline(a,50);
    220.     cout<<"Co nguoi yeu roi hay chua(R/C)(^_^): ";
    221.     cin.getline(i,10);
    222.     cout<<"Diem cac mon hoc phan: "<<endl;
    223.     cout<<"Mon 1: ";    cin>>t;
    224.     cout<<"Mon 2: ";    cin>>l;
    225.     cout<<"Mon 3: ";    cin>>h;
    226.     cout<<endl;
    227.     p[j] = student(d,m,y,n,a,g,i,t,l,h);
    228.   }
    229.   clrscr();
    230.   cout<<temp;
    231.   if(temp==1)
    232.   {
    233.    cout<<"----------**-----------Mot so thong tin cua sinh vien------------**------------ "<<endl;
    234.      for(j=1;j<=k;j++)
    235.        p[j].display();
    236.   }
    237.     else
    238.     {
    239.       cout<<"----------**-----------Mot so thong tin cua sinh vien------------**------------ "<<endl;
    240.        for(j=1;j<=k;j++)
    241.     p[j].show();
    242.     }
    243.  
    244.   getch();
    245. }

    boy làm, bài này là lớp sinh viên thừa kế từ lớp people và lớp date
    cho boy hỏi là tại sao khi nhập tên vào thì khi hiển thị nó ko hiển thị đúng tên mà mình nhập
    thêm nữa là khi nhập có người yêu nhưng khi in ra cũng lỗi

    CT chạy hoàn thiện nhưng khi in ra theo bảng hoặc đoạn thì phải có cout<<temp chứ ko là chương trình không in đúng được theo ý đồ là 1 thì thực hiện .display() ,0 là thực hiện .show()

    Gần phải nộp bài rồi, bạn nào hiểu thì giúp boy với nha
    Thanks mấy bạn đã xem bài và góp ý cho boy lắm lắm^^

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    - Mất căn bản trầm trọng quá ! Viết bừa như vậy không có lợi ích gì đâu cậu à. Đọc sách lại cho kĩ phần lý thuyết rồi hãy viết. Ví dụ :
    C++ Code:
    1. date(int d=0,int m=0,int y=0)  // ngay` thi` ko co ngay` a^m
    2.   {
    3.     day = d;
    4.     month = m;
    5.     year = y;
    6.   }
    Cậu thử bỏ ngày âm vào xem, nó có in ra ngày âm không ?

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

    Trích dẫn Nguyên bản được gửi bởi rox_rook Xem bài viết
    - Mất căn bản trầm trọng quá ! Viết bừa như vậy không có lợi ích gì đâu cậu à. Đọc sách lại cho kĩ phần lý thuyết rồi hãy viết. Ví dụ :
    C++ Code:
    1. date(int d=0,int m=0,int y=0)  // ngay` thi` ko co ngay` a^m
    2.   {
    3.     day = d;
    4.     month = m;
    5.     year = y;
    6.   }
    Cậu thử bỏ ngày âm vào xem, nó có in ra ngày âm không ?

    bạn đã có lòng giúp thì giúp cho đàng hoàng đi bạn ơi
    cái dòng ở ngoài là mình ghi cho mình hiểu thôi chứ mình đã cài đặt j` đâu ?
    mà cái đó cũng ko nằm trong cái mà mình cần hỏi, mình cần hỏi là cái khác mà...
    dù sao cũng thanks bạn đã trả lời

  4. #4
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    C++ Code:
    1. char *n;
    2.   char *a;
    3.    people(char *n=NULL,char *a=NULL)
    4.   {
    5.     int temp;
    6.     temp = strlen(n);
    7.     name = new char[temp+1];
    8.     strcpy(name,n);
    9.  
    10.     temp=strlen(a);
    11.     add = new char[temp+1];
    12.     strcpy(add,a);
    13.  
    14.   }
    Tại sao cậu lại để n và a public ?
    Multiple inheritance :
    C++ Code:
    1. class student:public people,public date
    Cứ mỗi lần constructor của student gọi thì nó phải gọi cả people và date ? Compiler will not be happy about it.

  5. #5
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    Máy mình báo lỗi ngay từ lúc constructor student, ko bit làm sao mà bạn lại nhập dc nhỉ...
    C++ Code:
    1. for(;;){cout<<"Busy"<<endl;}
    2. system("cls");
    Hãy ủng hộ cho quỹ phát triển cộng đồng C Việt
    http://congdongcviet.com/quyphattrien-congdongcviet.cpp

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

    Mặc định Sinh viên - Bài tập thừa kế

    @rox_rock: hì, chắc có lẽ tại vì để public
    boy thử để là mảng, ko phải con trỏ thì chương trình chạy hoàn thiện rồi ^^

    @thienthan: chạy tốt mà bạn, bạn chạy bằng CT j` thế ?

  7. #7
    Ngày gia nhập
    12 2008
    Bài viết
    10

    Bạn nào chỉ giùm mình bài: Hệ thống xử lý các đối tượng hình hoc bằng kế thừa với.
    Mình mới học C++ nen không biết lắm, lại sắp thi nữa.
    Không thì send cho mình đoạn code mình tham khảo với
    Help me! Hỡi các bậc đàn anh

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

  1. làm sao để select sinh viên theo mã sinh viên trong 1 chuỗi mã sinh viên
    Gửi bởi thuan trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 11
    Bài viết cuối: 14-12-2012, 08:37 PM
  2. Hà Nội.Sao mai soft -Tuyển sinh viên thực tập C#,C++,JAVA - nhóm sinh viên tiềm năng
    Gửi bởi kimbap trong diễn đàn Tuyển dụng - Việc làm CNTT
    Trả lời: 1
    Bài viết cuối: 26-09-2011, 09:49 AM
  3. 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
  4. 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
  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