bai ve may bay

    Share

    minhchi692002
    New Member
    New Member

    Giới tính: Nam Bài gửi: 9
    Tổng Điểm: 11
    Điểm Thưởng: 0
    Sinh Nhật: 13/09/1990 Bị Dụ Dỗ: 21/09/2009
    Tuổi: 21

    default bai ve may bay

    Bài gửi by minhchi692002 on 11/11/2009, 22:59

    bai nay minh code lai nhung con cho sai mong ban sua dum minh

    Code:
     class date
        {
            public date(byte ngay, byte thang, short nam)
            {
                this.ngay = ngay;
                this.thang = thang;
                this.nam = nam;
            }
            public void getngay(out byte ngay, out byte thang, out short nam)
            {
                ngay = this.ngay;
                thang = this.thang;
                nam = this.nam;
            }
            byte ngay;
            byte thang;
            short nam;
        }



    Code:
     class time
        {
            public time(byte gio, byte phut)
            {
                this.gio = gio;
                this.phut = phut;
            }
            public void getgio(out byte gio, out byte phut)
            {
                gio = this.gio;
                phut = this.phut;
            }
            byte gio;
            byte phut;
        }



    Code:

    class ticket
        {
            public ticket(date ngaykhoihanh, time giokhoihanh, string hovatenkh, byte soluongve, double giave, byte loaicabin, bool khuyenmai)
            {
                this.ngaykhoihanh = ngaykhoihanh;
                this.giokhoihanh = giokhoihanh;
                this.hovatenkh = hovatenkh;
                this.soluongve = soluongve;
                this.giave = giave;
                this.loaicabin = loaicabin;
                this.khuyenmai = khuyenmai;
            }
            public date ngaykhoihanh
            {
                get
                {
                    return ngaykhoihanh;
                }
                set
                {
                    ngaykhoihanh = value;
                }
            }
            public time giokhoihanh
            {
                get
                {
                    return giokhoihanh;
                }
                set
                {
                    giokhoihanh = value;
                }
            }
            public double tienkhuyenmai()
            {
                byte ngay , thang , nam ,gio , phut ;
                short nam ;
                double tkm =0;
                if ( khuyenmai )
                {
                    if ( loaicabin ==1 && soluongve >3 )
                        tkm == 0.2 * soluongve * giave ;
                    if ( loaicabin == 2 && soluongve >2 )
                        tkm == 0.25 * soluongve * giave * loaicabin ;
                    if ( loaicabin ==3 && soluongve >1 )
                        tkm == 0.3 * soluongve *  giave * loaicabin ;
                }
                getngay( out ngay , out thang , out nam );
                getgio ( out gio , out phut );
                if ( gio <6 || gio == 6 && phut <31 )
                    tkm += 0.15 * soluongve * giave * loaicabin ;
                else if (ngay < 6 )
                    tkm += 0.1 * soluongve * giave * loaicabin ;
                return tkm;
            }
            public double tongtien()
            {
                return soluongve * giave * loaicabin - tienkhuyenmai();
            }

            public void hienthingay()
            {
                byte ngay, thang;
                short nam ;
                ngaykhoihanh.getngay(out ngay, out thang, out nam);
                Console.WriteLine("{0},{1},{2}", ngay, thang, nam);
            }
            public void hienthigio ()
            {
                byte gio , phut ;
                giokhoihanh.getgio ( out gio , out phut );
                Console.WriteLine("{0},{1}", gio , phut );
            }
            public void hienthithongtin()
            {
                Console.WriteLine(" ho va ten khach hang : {0}", hovatenkh);
                Console.WriteLine(" soluongve  :{0}", soluongve);
                Console.WriteLine(" loaicabin : {0}", loaicabin);
                Console.WriteLine(" hienthingay :"); hienthingay();
                Console.WriteLine(" hine thi gio :"); hienthigio();
            }
            date ngaykhoihanh;
            time giokhoihanh;
            string hovatenkh;
            byte soluongve;
            double giave;
            byte loaicabin;
            bool khuyenmai;
        }
    }

    Code:
     class tests
        {
            date date = new date(20, 11, 1990);
            time time = new time(5, 30);
            ticket ve = new ticket(date, time, " nguyen minh ", 1, 100000, 2, true);
            Console.WriteLine ( " thong tin ve :") ve.hienthithongtin();
            Console.ReadLine();
        }

    Vy Thanh Định
    Web Master
    Web Master

    Giới tính: Nam Bài gửi: 228
    Tổng Điểm: 544
    Điểm Thưởng: 16
    Sinh Nhật: 19/05/1990 Bị Dụ Dỗ: 11/09/2009
    Tuổi: 22

    default Re: bai ve may bay

    Bài gửi by Vy Thanh Định on 12/11/2009, 00:17

    Chà chà bài của bạn lỗi khá nhìu. Mình đi từ lớp tester trước:
    Thứ nhất là bạn thiếu public static voi Main() sửa lại sẽ như sau
    Spoiler:
    Code:
    using System;
    class tests
    {
        public static void Main()
        {
            date date = new date(20, 11, 1990);
            time time = new time(5, 30);
            ticket ve = new ticket(date, time, " nguyen minh ", 1, 100000, 2, true);
            Console.WriteLine(" thong tin ve :"); ve.hienthithongtin();
            Console.ReadLine();
        }
    }


    Trong thân class ve cũng có nhìu bất ổn :
    Thứ nhất khi bạn đóng gói dữ liệu thì không đặt cái tên đó trùng với tên biến bạn đóng gói, trong hai cái ngaykhoihanh và giokhoihanhcua bạn thì đều trùng hết, không nên như thế mà sửa lại một như thế này
    Spoiler:
    Code:
    public date Ngaykhoihanh
            {
                get
                {
                    return ngaykhoihanh;
                }
                set
                {
                    ngaykhoihanh = value;
                }
            }
    Chỉ cần sửa lại một chút cho nó khác dữ liệu cần đóng gói là ok

    Tiếp đến trong phương thức tính tiền khuyến mãi bạn không thể getngay trực tiếp mà phải gọi về là Ngaykhoihanh.getngay( out ngay , out thang , out nam );
    Giokhoihanh.getgio ( out gio , out phut );
    Ngoài ra bạn lưu ý là khi đặt biến tránh đặt nhầm tên và đặt hai lần sẽ lỗi ngay lập tức, mong bạn cố găng hơn Very Happy

      Hôm nay: 20/5/2012, 19:49