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

Đề tài: Code đa hình trên C#, giúp mình sửa lỗi?

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

    Red face Code đa hình trên C#, giúp mình sửa lỗi?

    //mình mới học c#.bài ko biết lam sao ở phần menu. giup minh với

    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Text;
    4.  
    5. namespace dahinh_nhavien
    6. {
    7.     class NHANVIEN
    8.     {
    9.         public string manv;
    10.         public string ten;
    11.  
    12.         public virtual void nhap()
    13.         {
    14.             Console.WriteLine("nhap manv:");
    15.             manv = Console.ReadLine();
    16.             Console.WriteLine("nhap ten:");
    17.             ten = Console.ReadLine();
    18.         }
    19.         public virtual void xuat()
    20.         {
    21.             Console.WriteLine("manv:{0}",manv);
    22.             Console.WriteLine("ten nhan vien:{0}",ten);
    23.         }
    24.         public virtual int tinhluong()
    25.         {
    26.             return 0;
    27.         }
    28.     }
    29.     class NVBC : NHANVIEN
    30.     {
    31.         public int luongcanban;
    32.         public int phucap;
    33.         public override void nhap()
    34.         {
    35.             base.nhap();
    36.             Console.WriteLine("nhap luong can ban:");
    37.             luongcanban = int.Parse(Console.ReadLine());
    38.             Console.WriteLine("nhap phu cap:");
    39.             phucap =int.Parse (Console.ReadLine());
    40.            
    41.         }
    42.         public override void xuat()
    43.         {
    44.             base.xuat();
    45.             Console.WriteLine("luong co ban:{0}",luongcanban);
    46.             Console.WriteLine("phu cap:{0}",phucap);
    47.             Console.WriteLine("luong={0}",luongcanban+phucap);
    48.         }
    49.         public override int tinhluong()
    50.         {
    51.             return  luongcanban + phucap;
    52.            
    53.         }
    54.     }
    55.     class NVHD : NHANVIEN
    56.     {
    57.         public int sogiolam;
    58.         public int luonggio;
    59.  
    60.         public override void nhap()
    61.         {
    62.             base.nhap();
    63.             Console.WriteLine("nhap so gio lam:");
    64.             sogiolam = int.Parse(Console.ReadLine());
    65.             Console.WriteLine("nhap luong gio:");
    66.             luonggio =int.Parse (Console.ReadLine());
    67.         }
    68.         public override void xuat()
    69.         {
    70.             base.xuat();
    71.             Console.WriteLine("so gio lam:{0}",sogiolam);
    72.             Console.WriteLine("luong gio:{0}",luonggio);
    73.             Console.WriteLine("Luong={0}", tinhluong());
    74.         }
    75.         public override int tinhluong()
    76.         {
    77.            
    78.             return sogiolam * luonggio;
    79.             //return luongHD;
    80.         }
    81.     }
    82.     class Program
    83.     {
    84.         static void Main(string[] args)
    85.         {
    86.             NHANVIEN[] nv = null;  //khai bao mang nhan vien
    87.             int sonv;
    88.             int chon;
    89.             do
    90.             {
    91.                 Console.WriteLine("\t\t1.nhap");
    92.                 Console.WriteLine("\t\t2.xuat");
    93.                 Console.WriteLine("\t\t3.sapxep");
    94.                 Console.WriteLine("\t\t4.thoat");
    95.                 chon = int.Parse(Console.ReadLine());
    96.                
    97.                 switch (chon)
    98.                 {
    99.                     case 1:
    100.                         Console.WriteLine("moi nhap so NV:");
    101.                         sonv = int.Parse(Console.ReadLine());
    102.                         nv = new NHANVIEN[sonv];
    103.                        
    104.                         for (int i = 0; i < sonv; i++)
    105.                         {
    106.                             int tam;
    107.                             Console.WriteLine("1: nhap NVBC");
    108.                             Console.WriteLine("2. nhap NVHD");
    109.                             tam = int.Parse(Console.ReadLine());
    110.                             if (tam == 1)
    111.                                 nv[i] = new NVBC();
    112.                             else
    113.                                 nv[i] = new NVHD();
    114.                             nv[i].nhap();
    115.                         }
    116.                         break;
    117.                     case 2:
    118.                        
    119.                         for (int i = 0; i < sonv; i++)   //sai
    120.                         {
    121.                             nv[i].xuat();
    122.                            
    123.                         }
    124.                         break;
    125.                     case 3:
    126.                         break;     //giup minh lam sap xep
    127.                     default:
    128.                         break;
    129.                 }
    130.  
    131.                
    132.             } while (chon!=4);
    133.  
    134.            
    135.         }
    136.     }
    137. }
    Đã được chỉnh sửa lần cuối bởi namroyal88 : 17-04-2009 lúc 08:39 PM.

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

    for (int i = 0; i < sonv; i++) //sai

    là vì bạn chưa khởi tạo biến sonv. int sonv=0;

    còn sắp xếp thì bạn nên chọn các lớp có những gì chung nhất cần sắp xếp. chung nhất thì nằm ở lớp cơ sở (lớp Nhanvien) như họ tên chẳng hạn.

    //nếu đơn giản thì dùng thuật toán này thôi
    for(int sx1=0;sapxep<arraynhanvien.length-1)
    {
    for(int sx2=1;sapxep<arraynhanvien.length)
    {
    if (arraynhanvien[sx1].họ tên<arraynhanvien[sx2].họ tên)
    //hoán đổi

    }

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

    bạn chưa khai báo số nhân viên, mà bạn nên làm theo list hoặc arraylist cho dễ sắp xếp. Ngại sửa bài cho bạn wa mình mới làm bài đa hình ẫn phẩm bạn xem tính đa hình và sx nha;

    PHP Code:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;

    namespace 
    anphamminh
    {
        class 
    anpham IComparable
        
    {
            private 
    string tde;
            public 
    string TuaDe
            
    {
                
    get { return tde; }
                
    set tde value; }
            }
            private 
    int gia;
            public 
    int Gia
            
    {
                
    get { return gia; }
                
    set gia value; }
            }
            private 
    string nhasx;
            public 
    string NhaSX
            
    {
                
    get { return nhasx; }
                
    set nhasx value; }
            }
            public 
    anpham(string TDint Gstring NSX)
            {
                
    tde TDgia Gnhasx NSX;
            }
            
    string id;
            public 
    virtual string ID
            
    {
                
    get { return id "AP"; }
            }
            public 
    virtual string xuat()
            {
                return 
    "Tua de :" TuaDe.PadRight(12' ') + "Gia :" Gia.ToString().PadRight(7' ') + " Nha sx : " NhaSX.PadRight(10' ');
            }
            public static 
    emsort moi()
            {
                return new 
    anpham.emsort();
            }
            public 
    int CompareTo(object apham2)
            {
                
    anpham a = (anpham)apham2;
                return 
    ID.CompareTo(a.ID);
            }
            public 
    int CompareTo(anpham remsort.Type gi)
            {
                switch (
    gi)
                {
                    case 
    emsort.Type.ID:
                        return 
    ID.CompareTo(r.ID);
                    case 
    emsort.Type.TuaDe:
                        return 
    TuaDe.CompareTo(r.TuaDe);
                    case 
    emsort.Type.TuaDeID:
                        if (
    ID.CompareTo(r.ID) == 1)
                        {
                            return 
    ID.CompareTo(r.ID);

                        }
                        if (
    ID.CompareTo(r.ID) == 0)
                        {
                            return 
    TuaDe.CompareTo(r.TuaDe);
                        }
                        return -
    1;
                    case 
    emsort.Type.Gia:
                        return 
    Gia.CompareTo(r.Gia);
                    default: return 
    0;
                }
            }
            public class 
    emsort System.Collections.Generic.IComparer<anpham>
            {
                
    Type temp;
                public 
    enum Type
                
    {
                    
    TuaDeTuaDeIDGiaID
                
    }
                public 
    int Compare(anpham lapanpham rap)
                {

                    return 
    lap.CompareTo(raptemp);
                }
                public 
    Type gi
                
    {
                    
    get { return temp; }
                    
    set temp value; }
                }
            }
            class 
    sach anpham
            
    {
                private 
    string tga;

                public 
    string TacGia
                
    {
                    
    get { return tga; }
                    
    set tga value; }
                }
                public 
    sach(string TDint Gstring NSXstring TG)
                    : 
    base(TDGNSX)
                {
                    
    tga TG;
                }
                public 
    override string ID
                
    {
                    
    get { return id "AS"; }
                }
                public 
    override string xuat()
                {
                    return 
    base.xuat() + "Tac Gia :" TacGia.PadRight(10' ');
                }

            }
            class 
    cd anpham
            
    {
                public 
    cd(string TDint Gstring NSX)
                    : 
    base(TDGNSX)
                { }
                public 
    override string ID
                
    {
                    
    get { return id "C"; }
                }
            }
            class 
    cuahang
            
    {
                List<
    anphamls;
                public 
    cuahang()
                {
                    
    ls = new List<anpham>();
                }
                public 
    void nhapsan()
                {
                    
    ls.Add(new cd("tuan hung"14000"van hoa"));
                    
    ls.Add(new sach("toan hoc co"18000"dong nai""vo tong"));
                    
    ls.Add(new sach("van hoc hd",18000,"thoi dai","vo tong"));
                    
    ls.Add(new cd("manh quynh"10000"van hoa"));
                    
    ls.Add(new sach("tho hoc co"13000"van hoa""minh tran"));
                    
    ls.Add(new cd("my tam"17000"van hoa"));
                    
    ls.Add(new sach("van hoc co"17000"van hoa""minh tran"));
                    
    ls.Add(new sach("tinh hoc co",12000,"van hoa","vo tong"));
                    
    ls.Add(new sach("chuoi hoc co",14000,"dong nai","vo tong"));
                    
    ls.Add(new cd("minh tran",19000,"thoi dai"));
               
                }

                public 
    void nhap()
                {
                
    menu:
                    
    int chose;
                    
    Console.WriteLine("\n......................................................................");
                    
    Console.WriteLine("");
                    
    Console.WriteLine("            1       nhap them sach   ");
                    
    Console.WriteLine("            2       nhap them CD     ");
                    
    Console.WriteLine("            0       khong them gi nua");
                    
    Console.WriteLine("");
                    
    Console.WriteLine("......................................................................\n");
                    try
                    {
                        
    Console.Write("nhap vao mot so trong menu :\t");
                        
    chose int.Parse(Console.ReadLine());
                        if (
    chose || chose 2)
                            
    Console.WriteLine("\n\n\nLam on");
                    }
                    catch (
    Exception)
                    {
                        
    Console.WriteLine("\n\n\nLam on");
                        goto 
    menu;
                    }
                    while (
    chose 0)
                    {
                        if (
    chose == 1)
                        {
                            
    //nhap vao sach
                            
    Console.Write("nhap vao tua de:\t");
                            
    string td Console.ReadLine();
                        
    gia:
                            try
                            {
                                
    Console.Write("nhap vao gia:\t");
                                
    int gia int.Parse(Console.ReadLine());
                                
    Console.Write("nhap vao nha san xuat:\t");
                                
    string nsx Console.ReadLine();
                                
    Console.Write("nhap vao tac gia :\t");
                                
    string tg Console.ReadLine();
                                
    ls.Add(new sach(tdgiansxtg));
                            }
                            catch (
    Exception)
                            {
                                
    Console.WriteLine("\n\n\nlam on nhap vao so nguyen");
                                goto 
    gia;
                            }
                        }
                        else if (
    chose == 2)
                        {
                            
    //nhap vao sach
                            
    Console.Write("nhap vao tua de:\t");
                            
    string tdc Console.ReadLine();
                        
    gia:
                            try
                            {
                                
    Console.Write("nhap vao gia:\t");
                                
    int giac int.Parse(Console.ReadLine());
                                
    Console.Write("nhap vao nha san xuat:\t");
                                
    string nsxc Console.ReadLine();
                                
    ls.Add(new cd(tdcgiacnsxc));
                            }
                            catch (
    Exception)
                            {
                                
    Console.WriteLine("\n\n\nlam on nhap vao so nguyen");
                                goto 
    gia;
                            }


                        }
                        goto 
    menu;
                    }



                }
                public 
    void xuat()
                {
                    for (
    int i 0ls.Counti++)
                    {
                        if (
    ls[i].ID == "AS")
                            
    Console.WriteLine("(SACH) " ls[i].xuat());
                        if (
    ls[i].ID == "C")
                            
    Console.WriteLine("(CD)   " ls[i].xuat());

                    }
                }
                public 
    void sort()
                {
                    
    ls.Sort();
                }

                public 
    void sort1()
                {
                    
    anpham.emsort c anpham.moi();
                    
    c.gi anpham.emsort.Type.TuaDeID;
                    
    ls.Sort(c);

                }
                public 
    void sort2()
                {
                    
    anpham.emsort c anpham.moi();
                    
    c.gi anpham.emsort.Type.Gia;
                    
    ls.Sort(c);
                }
                public 
    void ApnhaX(string x)
                {
                    for (
    int i 0ls.Counti++)
                    {
                        if (
    ls[i].NhaSX == x)
                            
    Console.WriteLine(ls[i].xuat());
                    }
                }
                public 
    bool KiemTraNhaxbcohaychua(string x)
                {
                    for (
    int i 0ls.Counti++)
                    {
                        if (
    ls[i].NhaSX == x)
                            return 
    true;
                    }
                    return 
    false;
                }
            }

            class 
    Program
            
    {
                static 
    void Main(string[] args)
                {
                    
    cuahang ch = new cuahang();
                
    menu:
                    
    Console.WriteLine("\n\n\n.......................................................................");
                    
    Console.WriteLine("");
                    
    Console.WriteLine("                 1 nhap                        ");
                    
    Console.WriteLine("                 2 xuat                        ");
                    
    Console.WriteLine("                 3 sap xep theo  ID              ");
                    
    Console.WriteLine("                 4 nhu tren nhung neu cung ID thi sap xep theo ten      ");
                    
    Console.WriteLine("                 5 theo gia      ");
                    
    Console.WriteLine("                 6 Xuat cac an pham nha xuat ban X      ");
                    
    Console.WriteLine("                 7 nhap san roi them vao danh sach mau      ");
                    
    Console.WriteLine("                 0 thoat                ");
                    
    Console.WriteLine("");
                    
    Console.WriteLine(".......................................................................");
                    
    int chose;
                    try
                    {
                        
    Console.Write("chon mot so trong menu:\t");
                        
    chose int.Parse(Console.ReadLine());
                        if (
    chose || chose 7)
                        {
                            
    Console.WriteLine("\n\nLAM ON");
                            goto 
    menu;
                        }
                    }
                    catch (
    Exception)
                    {
                        
    Console.WriteLine("\n\nLAM ON");
                        goto 
    menu;
                    }
                    switch (
    chose)
                    {
                        case 
    0: break;
                        case 
    1:
                            
    ch.nhap();
                            goto 
    menu;

                        case 
    2:
                            
    ch.xuat();
                            break;
                        case 
    3:
                            
    ch.sort();
                            
    ch.xuat();
                            break;
                        case 
    4:
                            
    ch.sort1();
                            
    ch.xuat();
                            break;
                        case 
    5:
                            
    ch.sort2();
                            
    ch.xuat();
                            break;
                        case 
    6:
                            
    Console.Write("nhap vao ten NXB can xuat cac an pham:\t");
                            
    string nxb Console.ReadLine();
                            if (
    ch.KiemTraNhaxbcohaychua(nxb) == true)
                                
    ch.ApnhaX(nxb);
                            else
                            {
                                
    Console.WriteLine("\n\n\nLam quai gi da co nha xuat ban nay");
                            }
                            break;
                        case 
    7:
                            
    ch.nhapsan();
                            break;
                           default: goto 
    menu;
                    }
                    if (
    chose 0)
                    {
                    
    menu1:
                        
    Console.WriteLine(".............................................................");
                        
    Console.WriteLine("");
                        
    Console.WriteLine("           1 - goto menu");
                        
    Console.WriteLine("           0 - thoat");
                        
    Console.WriteLine("");
                        
    Console.WriteLine(".............................................................");
                        
    int chose1;
                        try
                        {
                            
    Console.Write("chon mot so trong menu:\t");
                            
    chose1 int.Parse(Console.ReadLine());
                            if (
    chose1 || chose1 1)
                            {
                                
    Console.WriteLine("\n\nLAM ON");
                                goto 
    menu1;
                            }
                        }
                        catch (
    Exception)
                        {
                            
    Console.WriteLine("\n\nLAM ON");
                            goto 
    menu1;
                        }
                        while (
    chose1 0)
                        {
                            switch (
    chose)
                            {
                                case 
    0: break;
                                default: goto 
    menu;

                            }
                        }
                    }



                }
            }
        }


  4. #4
    Ngày gia nhập
    04 2009
    Bài viết
    18

    thank so much...!

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

    anh ơi cho em hỏi NHANVIEN[] nv = null; ở trên có nghĩa là gì anh,như vậy là mình đã tạo 1 array rỗng nhưng em chưa hiểu về nó lắm
    Nếu biết ngày mai em lấy chồng
    Anh về cưới vợ thế là xong
    Đợi mai sau này con anh lớn
    Tìm đến con em trả thù lòng

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

  1. Đoạn code về dịch bit trên C++. Có ai giúp mình hiểu về nó không?
    Gửi bởi tatyasurai trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 13
    Bài viết cuối: 10-10-2011, 03:47 PM
  2. code về mảng trên C#. Giúp mình hiểu?
    Gửi bởi [kunz] trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 3
    Bài viết cuối: 14-09-2011, 07:48 PM
  3. Đoạn code về linked trên C bị lỗi khi build trên Dev C++. Xem giúp mình
    Gửi bởi birthis trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 4
    Bài viết cuối: 06-05-2010, 01:17 PM
  4. Code in ra số nguyên tố và số chính phương của một dãy trên C. Giúp mình kiểm tra code?
    Gửi bởi lavender trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 7
    Bài viết cuối: 07-06-2009, 01:52 PM
  5. Code C++ | Tính toán trên phân số, các bạn sửa giúp mình?
    Gửi bởi ntvhuy0891990 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 11
    Bài viết cuối: 10-05-2009, 02:04 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