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

Đề tài: [ Solved ]Cách làm menu trong lớp(tính đóng gói)

  1. #1
    No Avatar
    becauseofyoublue Khách

    Post [ Solved ]Cách làm menu trong lớp(tính đóng gói)

    hihi
    xin lỗi các bạn giờ mình mới up code lên được.
    các bạn giúp mình chuyển menu vào trong lớp và gọi các chức năng ở trong menu.thắc mắc của mình như đã post lên ở trên


    C++ Code:
    1. #include<conio.h>
    2. #include<iostream.h>
    3. #include<iomanip.h>
    4. #include<stdio.h>
    5. #include<stdlib.h>
    6.  
    7. class Array
    8. {
    9. protected:
    10.     int n;
    11.     float *val;
    12. public:
    13.     Array()
    14.     {
    15.        n=0;
    16.        val=NULL;
    17.        cout<<"\nKhoi tao thanh cong!";
    18.     }
    19.     Array(int m);
    20.     Array(const Array& b);
    21.     ~Array()
    22.     {
    23.        delete val;
    24.     }
    25.     friend istream& operator>>(istream& is,Array &a);
    26.     friend ostream& operator<<(ostream& os,Array &a);
    27.     Array& operator=(const Array &a);
    28.     Array operator+(Array& b);
    29.     Array operator-(Array& b);
    30.  
    31. };
    32. //======Khoi tao mang co n phan tu==============
    33. Array::Array(int m)
    34. {
    35.    n=m;
    36.    val=new float[n];
    37. }
    38. //======Khoi tao 1 mang tu 1 mang da co=========
    39. Array::Array(const Array& b)
    40. {
    41.    this->n=b.n;
    42.    this->val=new float[n];
    43.    for(int i=0;i<this->n;i++)
    44.    {
    45.        this->val[i]=b.val[i];
    46.    }
    47. }
    48. //=======Ham da nang toan tu nhap============
    49.  
    50. istream& operator>>(istream& is,Array& a)
    51. {
    52.    cout<<"\n\nArray "<<a.n<<" phan tu!";
    53.    for(int i=0;i<a.n;i++)
    54.    {
    55.        cout<<"\nNhap phan tu thu "<<i+1<<":";
    56.        is>>a.val[i];
    57.    }
    58.    return is;
    59. }
    60. //=======Ham da nang toan tu xuat============
    61. ostream& operator<<(ostream& os,Array& a)
    62. {
    63.    for(int i=0;i<a.n;i++)
    64.    {
    65.      os<<setw(6)<<setprecision(1)<<a.val[i];
    66.    }
    67.    return os;
    68. }
    69. //========da nang hoa toan tu gan=========
    70. Array& Array::operator=(const Array &a)
    71. {
    72.    if(this!=&a)
    73.    {
    74.       delete val;
    75.       val=new float[n=a.n];
    76.       for(int i=0;i<n;i++)
    77.       val[i]=a.val[i];
    78.    }
    79.    return *this;
    80. }
    81. //======Ham cong mang===================
    82. Array Array::operator+(Array& b)
    83. {
    84.    if(n!=b.n)
    85.    {
    86.       cout<<"\nHai Array co size khac nhau";
    87.       cout<<"\nTra ve Array:";
    88.       return *this;
    89.    }
    90.    else
    91.    {
    92.        Array kq;
    93.        kq.n=n;
    94.        kq.val=new float[kq.n];
    95.        for(int i=0;i<kq.n;i++)
    96.        {
    97.       kq.val[i]=val[i]+b.val[i];
    98.        }
    99.        return kq;
    100.    }
    101. }
    102. //=========Hieu hai Array=====================
    103. Array Array::operator-(Array& b)
    104. {
    105.    if(n!=b.n)
    106.    {
    107.       cout<<"\nHai Array co size khac nhau";
    108.       cout<<"\nTra ve Array:";
    109.       return *this;
    110.    }
    111.    else
    112.    {
    113.        Array kq;
    114.        kq.n=n;
    115.        kq.val=new float[kq.n];
    116.        for(int i=0;i<kq.n;i++)
    117.        {
    118.       kq.val[i]=val[i]-b.val[i];
    119.        }
    120.        return kq;
    121.    }
    122. }
    123. //===========MENU=====================
    124. void Menu();
    125. void menu_Array();
    126. void menu_Array()
    127. {
    128.    Array A1(3),A2(3);
    129.    int chon;
    130.    while(1)
    131.    {
    132.      clrscr();
    133.      cout<<"\n++++++++++++++++++++++MENU++++++++++++++++++++++";
    134.      cout<<"\n++++  1. Khoi tao Array rong               +++++";
    135.      cout<<"\n++++  2. Khoi tao Array n phan tu          +++++";
    136.      cout<<"\n++++  3. Khoi tao Array tu mot Array khac ++++++";
    137.      cout<<"\n++++  4. Cong hai Array                   ++++++";
    138.      cout<<"\n++++  5. Hieu hai Array                   ++++++";
    139.      cout<<"\n++++  6. Nhap Array                       ++++++";
    140.      cout<<"\n++++  7. Hien thi Array                   ++++++";
    141.      cout<<"\n++++  0. Exit                             ++++++";
    142.      cout<<"\n++++++++++++++++++++++++++++++++++++++++++++++++";
    143.      cout<<"\n\tMoi ban chon:";cin>>chon;
    144.      switch(chon)
    145.      {
    146.     case 1: Array();  getch();  break;
    147.     case 2: int m;
    148.         cout<<"\nBao nhieu phan tu:";
    149.         cin>>m;
    150.         Array(m);   cout<<"\nKhoi tao thanh cong!";
    151.         getch();
    152.         break;
    153.     case 3:
    154.         Array a1(A1);
    155.         cout<<"\nArray thu nhat la:"<<A1;
    156.         cout<<"\nArray duoc khoi tao la:";
    157.         cout<<a1;
    158.         getch();
    159.         break;
    160.     case 4: Array kq(3);
    161.         kq=A1+A2;
    162.         clrscr();
    163.         cout<<"\nArray thu nhat:\n"<<A1;
    164.         cout<<"\nArray thu hai :\n"<<A2;
    165.         cout<<"\nArray tong :\n"<<kq;
    166.         getch();
    167.         break;
    168.     case 5:
    169.         Array kq1(3);
    170.         kq1=A1-A2;
    171.         clrscr();
    172.         cout<<"\nArray thu nhat:\n"<<A1;
    173.         cout<<"\nArray thu hai :\n"<<A2;
    174.         cout<<"\nArray tong :\n"<<kq1;
    175.         getch();
    176.         break;
    177.     case 6: cout<<"\nNhap Array thu nhat:"; cin>> A1;
    178.         cout<<"\nNhap Array thu hai:"; cin>> A2;
    179.         getch();
    180.         break;
    181.     case 7:
    182.         cout<<"\nArray thu nhat:\n"<< A1;
    183.         cout<<"\nArray thu hai:\n"<< A2;
    184.         getch();
    185.         break;
    186.  
    187.     case 0:Menu();
    188.      }
    189.     }
    190. }
    191. /*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
    192. class Vector:public Array
    193. {
    194. public:
    195.     Vector()
    196.     {
    197.  
    198.     }
    199.     Vector(int m);
    200.     Vector(Vector& v);
    201.     ~Vector()
    202.     {
    203.        delete val;
    204.     }
    205.     friend istream& operator>>(istream& is,Vector &vt);
    206.     friend ostream& operator<<(ostream& os,Vector &vt);
    207.     Vector& operator=(const Vector &a);
    208.     Vector operator+(const Vector& b);
    209.     Vector operator+=(const Vector& b);
    210.     Vector operator-(const Vector& b);
    211.     void init_vt(int pt);
    212.  
    213. };
    214. void Vector::init_vt(int pt)
    215. {
    216.   val=new float [n=pt];
    217. }
    218. //&&&&&&_Ham khoi tao Vector n chieu_&&&&&&&&&&&
    219. Vector::Vector(int schieu)
    220. {
    221.    n=schieu;
    222.    val=new float[n];
    223. }
    224. //$$$$$$_Ham khoi tao Vector tu mot Vector da co_&&&&&
    225. Vector::Vector(Vector& v)
    226. {
    227.    this->val=new float[this->n=v.n];
    228.    for(int i=0;i<this->n;i++)
    229.        this->val[i]=v.val[i];
    230. }
    231. //#$$$$_Ham da nang toan tu nhap_$$$$$$$$$$$
    232. istream& operator>>(istream& is,Vector& vt)
    233. {
    234.    cout<<"\nSo chieu cua Vector la:"<<vt.n;
    235.    for(int i=0;i<vt.n;i++)
    236.    {
    237.       cout<<"\nChieu thu "<<i+1<<": ";
    238.       is>>vt.val[i];
    239.    }
    240.    return is;
    241. }
    242. //=============Da nang toan tu gan=============
    243. Vector& Vector::operator=(const Vector &a)
    244. {
    245.     if(this!= &a)
    246.     {
    247.     delete val;
    248.     this->n=a.n;
    249.     val=new float[this->n];
    250.     for(int i=0;i<n;i++)
    251.         val[i]=a.val[i];
    252.     }
    253.     return *this;
    254. }
    255. //$$$$$_Ham da nang toan tu xuat_$$$$$$$$$$$
    256. ostream& operator<<(ostream& os,Vector& vt)
    257. {
    258.    os<<"\n(";
    259.    os<<vt.val[0];
    260.    for(int i=1;i<vt.n-1;i++)
    261.    {
    262.       os<<setprecision(1)<<", "<<vt.val[i];
    263.    }
    264.    os<<", "<<vt.val[i]<<" )";
    265.    return os;
    266. }
    267. //$$$$$$$$_Ham cong hai Vector_$$$$$$$$$$$
    268. Vector Vector::operator+(const Vector &b)
    269. {
    270.     if(n!=b.n)
    271.    {
    272.       cout<<"\nHai Array co size khac nhau";
    273.       cout<<"\nTra ve Array:";
    274.       return *this;
    275.    }
    276.    else
    277.    {
    278.        Vector kq;
    279.        kq.n=n;
    280.        kq.val=new float[kq.n];
    281.        for(int i=0;i<kq.n;i++)
    282.        {
    283.       kq.val[i]=val[i]+b.val[i];
    284.        }
    285.        return kq;
    286.    }
    287. }
    288. //=============================================
    289. Vector Vector::operator+=(const Vector &b)
    290. {
    291.        //Vector kq;
    292.        //kq.n=n;
    293.       // kq.val=new float[kq.n];
    294.        for(int i=0;i<n;i++)
    295.        {
    296.       val[i]+=b.val[i];
    297.        }
    298. return *this;
    299. }
    300. //--------------Ham tru hai Vector-----------
    301. Vector Vector::operator-(const Vector &b)
    302. {
    303.     if(n!=b.n)
    304.    {
    305.       cout<<"\nHai Array co size khac nhau";
    306.       cout<<"\nTra ve Array:";
    307.       return *this;
    308.    }
    309.    else
    310.    {
    311.        Vector kq;
    312.        kq.n=n;
    313.        kq.val=new float[kq.n];
    314.        for(int i=0;i<kq.n;i++)
    315.        {
    316.       kq.val[i]=val[i]-b.val[i];
    317.        }
    318.        return kq;
    319.    }
    320. }
    321. //==========================================================
    322. void menu_vector();
    323. void menu_vector()
    324. {
    325.    Vector A1(4),A2(4);//int so_vector;
    326.    int chon;
    327.    while(1)
    328.    {
    329.      clrscr();
    330.      cout<<"\n++++++++++++++++++++++MENU+++++++++++++++++++++++";
    331.      cout<<"\n++++  1. Khoi tao Vector n phan tu          +++++";
    332.      cout<<"\n++++  2. Khoi tao Vector tu mot Vector khac +++++";
    333.      cout<<"\n++++  3. Nhap Vector                        +++++";
    334.      cout<<"\n++++  4. Hien thi Vector                    +++++";
    335.      cout<<"\n++++  5. Cong Vector                 ++++++";
    336.      cout<<"\n++++  6. Hieu Vector                 ++++++";
    337.      cout<<"\n++++  0. Exit                              ++++++";
    338.      cout<<"\n+++++++++++++++++++++++++++++++++++++++++++++++++";
    339.      cout<<"\n\tMoi ban chon:";cin>>chon;
    340.      switch(chon)
    341.      {
    342.     case 1: int m;
    343.         cout<<"\nKhoi tao bao nhieu phan tu:";
    344.         cin>>m;
    345.         Vector(m);
    346.         getch();
    347.         break;
    348.     case 2:
    349.         Vector a1(A1);
    350.         clrscr();
    351.         cout<<"\nVevtor dau tien da nhap la:"<<A1;
    352.         cout<<"\nVector thu hai duoc khoi tao tu Vector tren:";
    353.         cout<<a1;
    354.         getch();
    355.         break;
    356.  
    357.     case 5: Vector kq(3);
    358.         kq=A1+A2;
    359.         clrscr();
    360.         cout<<"\nVector thu nhat:\n"<<A1;
    361.         cout<<"\nVector thu hai :\n"<<A2;
    362.         cout<<"\nVector tong :\n"<<kq;
    363.         getch();
    364.         break;
    365.     case 6: Vector kq1(3);
    366.         kq1=A1-A2;
    367.         clrscr();
    368.         cout<<"\nVector thu nhat:\n"<<A1;
    369.         cout<<"\nVector thu hai :\n"<<A2;
    370.         cout<<"\nVector Hieu :\n"<<kq1;
    371.         getch();
    372.         break;
    373.  
    374.     case 3: cout<<"\nNhap Vector thu nhat:"; cin>> A1;
    375.         cout<<"\nNhap Vector thu hai:"; cin>> A2;
    376.         getch();
    377.         break;
    378.     case 4:
    379.         cout<<"\nVector thu nhat:\n"<< A1;
    380.         cout<<"\nVector thu hai:\n"<< A2;
    381.         getch();
    382.         break;
    383.      case 0:Menu();
    384.      }
    385.     }
    386. }
    387. void Menu()
    388. {
    389.  Array a;
    390.  Vector v;
    391.  int mainchon;
    392.  while(1)
    393.  {
    394.    clrscr();
    395.    cout<<"\n+++++++++MENU+++++++++";
    396.    cout<<"\n++++ 1. Array ! ++++++";
    397.    cout<<"\n++++ 2. Vector! ++++++";
    398.    cout<<"\n++++ 0. Exit  ! ++++++";
    399.    cout<<"\n++++++++++++++++++++++";
    400.    cout<<"\n\tMoi ban chon:";cin>>mainchon;
    401.    switch(mainchon)
    402.    {
    403.       case 1: menu_Array();
    404.           break;
    405.       case 2: menu_vector();
    406.           break;
    407.       case 0: exit(1);
    408.    }
    409.  }
    410.  
    411. }
    412.  
    413. void main()
    414. {
    415.     Menu();
    416. }

    đây mình làm menu ngoài lớp và đã chạy được rùi.chỉ giúp mình chuyển menu vào trong lớp tương ứng và giọ các chức năng tương ứng với từng đối tượng.
    nói rõ cho mình bít khi thực hiện các chức năng thì sẽ làm trên đối tượng gọi menu hay hay phải tạo đối tượng mới và thực hiện trên đối tượng đó

    Vui lòng để code vào tag code. Đọc Nội quy để biết thêm chi tiết
    Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 28-05-2008 lúc 10:07 PM. Lý do: Nhắc nhở

  2. #2
    No Avatar
    becauseofyoublue Khách

    trời ui sao không ai trả lời hộ tui thế này

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

    nói rõ cho mình bít khi thực hiện các chức năng thì sẽ làm trên đối tượng gọi menu hay hay phải tạo đối tượng mới và thực hiện trên đối tượng đó
    - Dùng friend hoặc standalone function thì khỏi phải tạo đối tương.
    C++ Code:
    1. void menu_vector()
    Đây là stand-alone method.

  4. #4
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Trích dẫn Nguyên bản được gửi bởi rox_rook Xem bài viết
    - Dùng friend hoặc standalone function thì khỏi phải tạo đối tương.
    C++ Code:
    1. void menu_vector()
    Đây là stand-alone method.
    cái stand-alone method có phải là hàm tự do như các tài liệu tiếng Việt gọi không nhỉ?
    Cánh Chym ứ mỏi

  5. #5
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Trích dẫn Nguyên bản được gửi bởi dieucay555 Xem bài viết
    cái stand-alone method có phải là hàm tự do như các tài liệu tiếng Việt gọi không nhỉ?
    không phụ thuộc đối tượng, hàm tự do.
    Đó là friend và standalone.
    Nhưng 2 cái này không khuyến khích dùng vì không đảm bảo đóng gói, vì bị truy xuất ra ngoài tự do (để bị Đột Kích )
    None!

  6. #6
    No Avatar
    becauseofyoublue Khách

    Mặc định [ Solved ]Cách làm menu trong lớp(tính đóng gói)

    nếu dùng hàm bạn thì còn gì tính đóng gói nữa hả bạn.
    Mình muốn thao tác trực tiếp trên đối tượng gọi menu

  7. #7
    Ngày gia nhập
    08 2008
    Nơi ở
    Liên Bang Nga
    Bài viết
    46

    Cái này chẳng có gì là menu, cũng chẳng có gì là đặc biệt cả, ngay cả C, thậm chí Pascal viết thế này cũng được. Trong C ta nên dùng lớp cmenu() để tạo ra một chuỗi các danh mục của menu, rồi sau đó dùng một mảng khác là conmenu() để chứa nội dung của các danh mục trong menu, thế mới gọi là đối tượng, hướng đối tượng chứ. (Ý kiến cá nhân)
    Tôi thường thích những cái gì mà tôi không bao giờ có được...

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

  1. Trả lời: 9
    Bài viết cuối: 20-06-2011, 04:26 PM
  2. Lỗi khi đóng gói phần mềm | Làm sao để đóng gói kèm theo folder???
    Gửi bởi KISS trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 16-05-2009, 10:40 AM
  3. Hỏi cách đóng gói trong C#?
    Gửi bởi minhdv85 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 09-03-2009, 01:25 PM
  4. [ Solved ]Hỏi về cách đóng gói
    Gửi bởi trungdoanbattu trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 15-09-2008, 11:30 PM
  5. Hỏi về làm menu trong trong lớp(tính đóng gói của lớp)
    Gửi bởi becauseofyoublue trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 09-06-2008, 11:26 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