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

Đề tài: Xem hộ mình class MENU với nó báo lỗi hoài ak

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

    Angry Xem hộ mình class MENU với nó báo lỗi hoài ak

    PHP Code:
    //chuong trinh nhap 1 da thuc va tinh ket qua cua da thuc
    #include<conio.h>
    #include<stdio.h>
    #include<iostream.h>
    #include<dos.h>
    #include<math.h>
    class DATHUC
    {
        private:
           
    int n;        //bac cua da thuc
           
    double *a;        //tro den vi tri chua he so cua cac don thuc cua da thuc
        
    public:
           
    DATHUC()
           {
           
    a=NULL;
           
    n=0;
           }
           
    DATHUC (int n1)
           {
        
    n=n1;    a=new double[n1+1];
           }
           
    friend ostreamoperator<<(ostreamos,const DATHUC &d);    //phuong thuc nhap
           
    friend istreamoperator>>(istreamis,DATHUC &d);    //phuong thuc hien
           
    DATHUC operator+(DATHUC &d2);    //phuong thuc cong hai da thuc
           
    DATHUC operator-();            //phuong thuc tao so doi
           
    DATHUC operator-(DATHUC &d2);           //phuong thuc tru hai da thuc
           
    DATHUC operator*(DATHUC &d2);     //phuong thuc nhan hai da thuc
           
    double operator[](int i)
          {
          if (
    i<0)
              return 
    double(n);
          else
              return 
    a[i];
          }
           
    double operator^(DATHUC b);
    };

    //=====================================================
    double F(DATHUC d,double &x)
    {
        
    double s=0.0,t=1.0;
        
    int n;
        
    n=int(d[-1]);
        for (
    int i=0;i<=n;i++)
        {
            
    s+=d[i]*t;
            
    t*=x;
        }
        return 
    s;
    }
    //=====================================================
    ostreamoperator<<(ostreamos,const DATHUC &d)
    {

        for (
    int i=0;i<=d.n;i++)
          {
    d.a[i]=int(d.a[i]);
           
    os<<d.a[i]<<"*X^"<<i;
           if (
    i<d.n)   os<<"+ ";
          }
        return 
    os;
    }
    //=====================================================
    istreamoperator>>(istreamis,DATHUC &d)
    {
        if (
    d.a!=NULL)        delete d.a;
        
    cout<<"\n- Bac cua da thuc: ";
        
    cin>>d.n;
        
    d.a=new double[d.n+1];
        
    cout<<"\nNhap cac he so cua da thuc: ";
        for (
    int i=0;i<=d.n;i++)
        {
          
    cout<<"\nHe so bac "<<"i"<<": ";
          
    is>>d.a[i];
        }
        return 
    is;
    }
    //=====================================================
    DATHUC DATHUC::operator-()
    {
        
    DATHUC p;
        
    p.n=n;
        
    p.a=new double[n+1];
        for (
    int i=0;i<=n;i++)
        
    p.a[i]=-a[i];
        return 
    p;
    }
    //=====================================================
    DATHUC DATHUC::operator+(DATHUC &d2)
    {
        
    int k;
        if (
    n>=d2.n)
         
    k=n;
        else
         
    k=d2.n;
        
    DATHUC c(k);
        for (
    int i=0;i<=k;i++)
        if (
    i<=n&&i<=d2.n)
            
    c.a[i]=a[i]+d2.a[i];
        else if (
    i<=nc.a[i]=a[i];
             else      
    c.a[i]=d2.a[i];
        
    i=k;
        while (
    i>0&&c.a[i]==0)   i--;
        
    c.n=i;
        return 
    c;
    }
    //=====================================================
    DATHUC DATHUC::operator-(DATHUC &d2)
    {
        return (*
    this+(-d2));
    }
    //=====================================================
    DATHUC DATHUC::operator*(DATHUC &d2)
    {
        
    int i,j;
        
    int k=n+d2.n;
        
    DATHUC c(k);
        for (
    i=0;i<=n;i++)
        
    c.a[i]=0;
        for (
    i=0;i<=n;i++)
        for (
    j=0;j<=d2.n;j++)
            
    c.a[i+j]+=a[i]*d2.a[j];
        return 
    c;
    }
    //=====================================================
    class NUT
    {    private:
            
    int xt,yt;
            
    char td[15];
        public:
            
    NUT(){};
            
    void gan_dl(int a,int b,char s[]);
            
    void ve(int i);
    };
    //---------------------------------------------------------------------------
    class MENU
    {    private:
            
    int somuc;
            
    NUT *p;
            
    int ch;
        public:
            
    MENU(int n,int a[],int b[],char s[][15]);
            
    void vemenu();
            
    int chon();
            
    void khung();
    };
    //-----------------------------------------------------------------------------
    MENU::MENU(int n,int a[],int b[],char s[][15])
    {    
    int i;
        
    p=new NUT[n];
        for (
    i=0;i<n;i++)
        
    p[i].gan_dl(a[i],b[i],s[i]);
        
    somuc=n;
        
    ch=0;
    }
    //--------------------------------------------------------------------------
    void NUT::gan_dl(int a,int b,char s[])
    {    
    xt=a;yt=b;
        
    strcpy(td,s);
    }
    //---------------------------------------------------------------------------
    void NUT::ve(int i//i=1 la ve NUT, i=2 ve NUT voi mau khac
    {   char m1,m2;
        if (
    i==1)
            { 
    m1=2;m2=8;setfillstyle(1,2);}
        else
            { 
    m1=4;m2=7;setfillstyle(1,4);}
        
    setcolor(m2);
        
    pieslice(xt,yt+11,0,360,10);
        
    setcolor(m1);
        
    pieslice(xt,yt+11,0,360,8);
        
    setcolor(15);
        
    settextjustify(1,1);
        
    outtextxy(xt+130/2+1,yt+20/2+1,td);
    }
    //---------------------------------------------------------------------------
    void MENU::vemenu()
    {    
    int i;
        for (
    i=0;i<somuc;i++)
            if (
    i!=ch)
                (
    p+i)->ve(1);
            else (
    p+i)->ve(2);
    }
    //---------------------------------------------------------------------------
    void MENU::khung()
    {   
    settextstyle(1,0,1);
        
    setfillstyle(1,9);
        
    bar(125,50,485,450);
        
    setlinestyle(0,0,THICK_WIDTH);
        
    setcolor(8);
        
    line(126,50,486,50);
        
    line(127,49,487,49);
        
    line(487,48,487,448);
        
    line(486,50,486,449);
        
    setcolor(14);
        
    settextjustify(1,1);
        
    outtextxy(305,90,"CHUONG TRINH LAM VIEC TREN DA THUC");
        
    settextjustify(1,1);
        
    outtextxy(305,120,"DA THUC");
    }
    //---------------------------------------------------------------------------
    int MENU::chon() //Phuong thuc bat phim va ve MENU theo gia tri NUT duoc chon
    {    char c;
        do
        {    
    c=getch();
            if (
    c==13) return(ch);
            if (
    c==27) return 5;
            if (
    c==0)
                {    
    c=getch();
                    (
    p+ch)->ve(1);
                    if (
    c==72)
                        if(
    ch>0ch--;
                        else 
    ch=somuc-1;
                    if (
    c==80)
                        if(
    ch<somuc-1ch++;
                        else 
    ch=0;
                        
    p[ch].ve(2);
                }
        }while (
    1);
    }
    //--------------------------------------------------------------------------
    void ktdh()
    {    
    int gd=0,gm=0;
        
    initgraph(&gd,&gm,"..\\bgi");
    }
    //---------------------------------------------------------------------------
    void main()
    {    
            
    DATHUC g,h,i,l;
            
    double x;
        
    int i,j,kq;
        
    int x[5]; //Mang toa do x cua 6 nut;
        
    int y[5]; //Mang toa do y cua 6 nut;
        
    for(i=0;i<5;i++)
        {    
    x[i]=250;
            
    y[i]=200+i*35;//+i*35;
        
    }
        
    char s[5][15]={"Nhap da thuc","Hien da thuc","Gia tri da thuc","Cac phep tinh da thuc","Ket_thuc"};//Tieu de 5 nut
        
    ktdh();
        
    MENU a(5,x,y,s);
        while(
    1)
        {    
    setbkcolor(15);
            
    a.khung();
            
    settextstyle(0,0,1);
            
    a.vemenu();
            
    kq=a.chon();
            switch(
    kq)
            {    
                case 
    1:
                    
    closegraph();
                    
    cin>>g;
                    
    getch();
                    
    ktdh();
                    break;
                case 
    2:
                    
    closegraph();
                    
    cout<<"\nDa thuc vua nhap: ";
                          
    cout<<g;
                    
    getch();
                    
    ktdh();
                    break;
                case 
    3:
                    
    closegraph();
                    
    cout<<"\nNhap gia tri cua x: ";
                          
    cin>>x;
                          
    cout<<"\nGia tri cua da thuc: ";
                          
    cout<<F(g,x);
                    
    getch();
                    
    ktdh();
                    break;
                    case 
    4:
                    
    closegraph();
                    
    cout<<endl<<"Nhap da thuc h:"<<endl;
                          
    cin>>h;
                          
    cout<<h;
                          
    cout<<endl<<"Nhap da thuc i:"<<endl;
                          
    cin>>i;
                          
    cout<<i;
                    
    cout<<endl<<"Nhap da thuc g:"<<endl;
                          
    cin>>g;
                          
    cout<<g;
                          
    l=h*i+g;
                          
    cout<<endl;
                          
    cout<<endl<<"Ket qua l=g+h*i:"<<endl;
                          
    cout<<l;
                    
    getch();
                    
    ktdh();
                    break;
                case 
    5:
                    
    gotoxy(25,12);
                        
    cprintf ("\nKET THUC CHUONG TRINH");
                        
    delay(100);
                    break;
            }
        }
        
    closegraph();

    Đã được chỉnh sửa lần cuối bởi ngocnam_it : 27-11-2008 lúc 03:34 PM. Lý do: sửa cho đẹp

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

    Bạn xem lại constructor của class MENU đi.
    PHP Code:
    private:
            
    int somuc;
            
    NUT *p;
            
    int ch
    Constructor :
    PHP Code:
     MENU(int n,int a[],int b[],char s[][15]); 
    Class có 3 thuộc tính mà Constructor lấy đâu ra lắm tham số thế
    Cánh Chym ứ mỏi

  3. #3
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mình sửa được tới đây rồi bí luôn, ko hiểu ý bạn viết cái gì nữa. Code này chắc ko phải của bạn viết mà có lẽ là sao chép từ nhiều nơi, mỗi nơi một ít. Bởi thế nên mới tiền hậu bất nhất. Mình bó tay, sửa ko được.

    C++ Code:
    1. //chuong trinh nhap 1 da thuc va tinh ket qua cua da thuc
    2. #include<conio.h>
    3. #include<stdio.h>
    4. #include<iostream.h>
    5. #include<dos.h>
    6. #include<math.h>
    7. #include<string.h>
    8. #include<graphics.h>
    9.  
    10. class DATHUC
    11. {
    12.     private:
    13.        int n;        //bac cua da thuc
    14.        double *a;        //tro den vi tri chua he so cua cac don thuc cua da thuc
    15.     public:
    16.        DATHUC()
    17.        {
    18.              a=NULL;
    19.              n=0;
    20.        }
    21.        DATHUC (int n1)
    22.        {
    23.             n=n1;
    24.             a=new double[n1+1];
    25.        }
    26.        friend ostream& operator<<(ostream& os,const DATHUC &d);    //phuong thuc nhap
    27.        friend istream& operator>>(istream& is,DATHUC &d);    //phuong thuc hien
    28.        DATHUC operator+(DATHUC &d2);    //phuong thuc cong hai da thuc
    29.        DATHUC operator-();            //phuong thuc tao so doi
    30.        DATHUC operator-(DATHUC &d2);           //phuong thuc tru hai da thuc
    31.        DATHUC operator*(DATHUC &d2);     //phuong thuc nhan hai da thuc
    32.        double operator[](int i)
    33.       {
    34.       if (i<0)
    35.           return double(n);
    36.       else
    37.           return a[i];
    38.       }
    39.        double operator^(DATHUC b);
    40. };
    41.  
    42. //=====================================================
    43. double F(DATHUC d,double &x)
    44. {
    45.     double s=0.0,t=1.0;
    46.     int n;
    47.     n=int(d[-1]);
    48.     for (int i=0;i<=n;i++)
    49.     {
    50.         s+=d[i]*t;
    51.         t*=x;
    52.     }
    53.     return s;
    54. }
    55. //=====================================================
    56. ostream& operator<<(ostream& os,const DATHUC &d)
    57. {
    58.  
    59.     for (int i=0;i<=d.n;i++)
    60.       {d.a[i]=int(d.a[i]);
    61.        os<<d.a[i]<<"*X^"<<i;
    62.        if (i<d.n)   os<<"+ ";
    63.       }
    64.     return os;
    65. }
    66. //=====================================================
    67. istream& operator>>(istream& is,DATHUC &d)
    68. {
    69.     if (d.a!=NULL)        delete d.a;
    70.     cout<<"\n- Bac cua da thuc: ";
    71.     cin>>d.n;
    72.     d.a=new double[d.n+1];
    73.     cout<<"\nNhap cac he so cua da thuc: ";
    74.     for (int i=0;i<=d.n;i++)
    75.     {
    76.       cout<<"\nHe so bac "<<"i"<<": ";
    77.       is>>d.a[i];
    78.     }
    79.     return is;
    80. }
    81. //=====================================================
    82. DATHUC DATHUC::operator-()
    83. {
    84.     DATHUC p;
    85.     p.n=n;
    86.     p.a=new double[n+1];
    87.     for (int i=0;i<=n;i++)
    88.     p.a[i]=-a[i];
    89.     return p;
    90. }
    91. //=====================================================
    92. DATHUC DATHUC::operator+(DATHUC &d2)
    93. {
    94.     int k;
    95.     if (n>=d2.n)
    96.      k=n;
    97.     else
    98.      k=d2.n;
    99.     DATHUC c(k);
    100.     for (int i=0;i<=k;i++)
    101.     if (i<=n&&i<=d2.n)
    102.         c.a[i]=a[i]+d2.a[i];
    103.     else if (i<=n) c.a[i]=a[i];
    104.          else      c.a[i]=d2.a[i];
    105.     i=k;
    106.     while (i>0&&c.a[i]==0)   i--;
    107.     c.n=i;
    108.     return c;
    109. }
    110. //=====================================================
    111. DATHUC DATHUC::operator-(DATHUC &d2)
    112. {
    113.     return (*this+(-d2));
    114. }
    115. //=====================================================
    116. DATHUC DATHUC::operator*(DATHUC &d2)
    117. {
    118.     int i,j;
    119.     int k=n+d2.n;
    120.     DATHUC c(k);
    121.     for (i=0;i<=n;i++)
    122.     c.a[i]=0;
    123.     for (i=0;i<=n;i++)
    124.     for (j=0;j<=d2.n;j++)
    125.         c.a[i+j]+=a[i]*d2.a[j];
    126.     return c;
    127. }
    128. //=====================================================
    129. class NUT
    130. {    private:
    131.         int xt,yt;
    132.         char td[15];
    133.     public:
    134.         NUT(){};
    135.         void gan_dl(int a,int b,char s[]);
    136.         void ve(int i);
    137. };
    138. //---------------------------------------------------------------------------
    139. class MENU
    140. {    private:
    141.         int somuc;
    142.         NUT *p;
    143.         int ch;
    144.     public:
    145.         MENU(int n,int a[],int b[],char s[][15]);
    146.         void vemenu();
    147.         int chon();
    148.         void khung();
    149. };
    150. //-----------------------------------------------------------------------------
    151. MENU::MENU(int n,int a[],int b[],char s[][15])
    152. {    int i;
    153.     p=new NUT[n];
    154.     for (i=0;i<n;i++)
    155.     p[i].gan_dl(a[i],b[i],s[i]);
    156.     somuc=n;
    157.     ch=0;
    158. }
    159. //--------------------------------------------------------------------------
    160. void NUT::gan_dl(int a,int b,char s[])
    161. {    xt=a;yt=b;
    162.     strcpy(td,s);
    163. }
    164. //---------------------------------------------------------------------------
    165. void NUT::ve(int i) //i=1 la ve NUT, i=2 ve NUT voi mau khac
    166. {   char m1,m2;
    167.     if (i==1)
    168.         { m1=2;m2=8;setfillstyle(1,2);}
    169.     else
    170.         { m1=4;m2=7;setfillstyle(1,4);}
    171.     setcolor(m2);
    172.     pieslice(xt,yt+11,0,360,10);
    173.     setcolor(m1);
    174.     pieslice(xt,yt+11,0,360,8);
    175.     setcolor(15);
    176.     settextjustify(1,1);
    177.     outtextxy(xt+130/2+1,yt+20/2+1,td);
    178. }
    179. //---------------------------------------------------------------------------
    180. void MENU::vemenu()
    181. {    int i;
    182.     for (i=0;i<somuc;i++)
    183.         if (i!=ch)
    184.             (p+i)->ve(1);
    185.         else (p+i)->ve(2);
    186. }
    187. //---------------------------------------------------------------------------
    188. void MENU::khung()
    189. {   settextstyle(1,0,1);
    190.     setfillstyle(1,9);
    191.     bar(125,50,485,450);
    192.     setlinestyle(0,0,THICK_WIDTH);
    193.     setcolor(8);
    194.     line(126,50,486,50);
    195.     line(127,49,487,49);
    196.     line(487,48,487,448);
    197.     line(486,50,486,449);
    198.     setcolor(14);
    199.     settextjustify(1,1);
    200.     outtextxy(305,90,"CHUONG TRINH LAM VIEC TREN DA THUC");
    201.     settextjustify(1,1);
    202.     outtextxy(305,120,"DA THUC");
    203. }
    204. //---------------------------------------------------------------------------
    205. int MENU::chon() //Phuong thuc bat phim va ve MENU theo gia tri NUT duoc chon
    206. {    char c;
    207.     do
    208.     {    c=getch();
    209.         if (c==13) return(ch);
    210.         if (c==27) return 5;
    211.         if (c==0)
    212.             {    c=getch();
    213.                 (p+ch)->ve(1);
    214.                 if (c==72)
    215.                     if(ch>0) ch--;
    216.                     else ch=somuc-1;
    217.                 if (c==80)
    218.                     if(ch<somuc-1) ch++;
    219.                     else ch=0;
    220.                     p[ch].ve(2);
    221.             }
    222.     }while (1);
    223. }
    224. //--------------------------------------------------------------------------
    225. void ktdh()
    226. {    int gd=0,gm=0;
    227.     initgraph(&gd,&gm,"..\\bgi");
    228. }
    229. //---------------------------------------------------------------------------
    230. void main()
    231. {    
    232.      DATHUC g,h,l;
    233.      int i,j,kq;
    234.      int x[5]; //Mang toa do x cua 6 nut;
    235.      int y[5]; //Mang toa do y cua 6 nut;
    236.  
    237.      for(i=0;i<5;i++)
    238.      {
    239.           x[i]=250;
    240.         y[i]=200+i*35;//+i*35;
    241.     }
    242.      char s[5][30]= {"Nhap da thuc","Hien da thuc","Gia tri da thuc","Cac phep tinh da thuc","Ket_thuc" };//Tieu de 5 nut
    243.  
    244.      ktdh();
    245.     MENU a(5,x,y,s);
    246.     while(1)
    247.     {    setbkcolor(15);
    248.         a.khung();
    249.         settextstyle(0,0,1);
    250.         a.vemenu();
    251.         kq=a.chon();
    252.         switch(kq)
    253.         {    
    254.             case 1:
    255.                 closegraph();
    256.                 cin>>g;
    257.                 getch();
    258.                 ktdh();
    259.                 break;
    260.             case 2:
    261.                 closegraph();
    262.                 cout<<"\nDa thuc vua nhap: ";
    263.                       cout<<g;
    264.                 getch();
    265.                 ktdh();
    266.                 break;
    267.             case 3:
    268.                 closegraph();
    269.                 cout<<"\nNhap gia tri cua x: ";
    270.                       cin>>x;
    271.                       cout<<"\nGia tri cua da thuc: ";
    272.                       cout<<F(g,x);
    273.                 getch();
    274.                 ktdh();
    275.                 break;
    276.                 case 4:
    277.                 closegraph();
    278.                 cout<<endl<<"Nhap da thuc h:"<<endl;
    279.                       cin>>h;
    280.                       cout<<h;
    281.                       cout<<endl<<"Nhap da thuc i:"<<endl;
    282.                       cin>>i;
    283.                       cout<<i;
    284.                 cout<<endl<<"Nhap da thuc g:"<<endl;
    285.                       cin>>g;
    286.                       cout<<g;
    287.                       l=h*i+g;
    288.                       cout<<endl;
    289.                       cout<<endl<<"Ket qua l=g+h*i:"<<endl;
    290.                       cout<<l;
    291.                 getch();
    292.                 ktdh();
    293.                 break;
    294.             case 5:
    295.                 gotoxy(25,12);
    296.                     cprintf ("\nKET THUC CHUONG TRINH");
    297.                     delay(100);
    298.                 break;
    299.         }
    300.     }
    301.     closegraph();
    302. }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

  1. Dựng 1 menu Asp.net bằng thẻ <ul> <li> hay Control [ Menu , SiteMap , Repeater , Treeview]
    Gửi bởi teodainhan trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 8
    Bài viết cuối: 30-05-2013, 01:04 PM
  2. Source Code menu thêm item vào Menu Context
    Gửi bởi babyboy_pk trong diễn đàn Dự án & Source code C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 25-03-2013, 01:56 PM
  3. Cách set class="active_menu" vào menu HELP??
    Gửi bởi nhoczinno1 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 08-08-2012, 11:34 AM
  4. Xây dựng class nhập xuất nhân viên theo menu?
    Gửi bởi fuji13 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: 11-05-2011, 08:13 PM
  5. Cách tạo class quản lý các menu và form
    Gửi bởi tnf trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 17-08-2008, 11:29 PM

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