Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 6 của 6
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi itkttn
    ArrayList ks = new ArrayList();
    khởi tạo mà không add khách hàng vào thì ks.Count=0; làm sao mà tính tiền
    Vậy anh ơi, em nhập như thế nào để nó lưu y như là một mảng, kiểu dữ liệu là KHACHHANG?

    có phải như thế này không ạ?

    Mã:
    class KHACHSAN
        {
            ArrayList ks = new ArrayList();
            public int i = 0;
            public int chon;
            bool tt;
            public double s = 0;
            public void Nhap()
            {
                KHACHHANG kh = new KHACHHANG();
                Console.Write("Nhap thong tin khach hang. Nhap ky tu bat ky (Khong phai so) de ket thuc.
    ");
                do
                {
                    try
                    {
                        Console.Write("Khach trong nuoc (1) hay nuoc ngoai (2) ??");
                        chon = Convert.ToInt32(Console.ReadLine());
                        if (chon == 1)
                            kh = new TRONGNUOC();
                        else kh = new NUOCNGOAI();
                        kh.Nhap();
                        for (i = 0; i < ks.Count; i++)
                            ks.Add(kh);
                        tt = true;
                    }
                    catch (FormatException)
                    {
                        Console.Write("
    Ket thuc nhap.
    ");
                        tt = false;
                    }
                    i = i + 1;
                    
                } while (tt==true);
               
            }
    
    
            
            public double Tongtien()
            {
                for (i = 0; i < ks.Count; i++)
                    s += ???;
                return s;
            }
          
            public void Xuat()
            {
               
               Console.Write("Tong thu nhap trong ngay cua khach san la {0} dong. ", Tongtien());
            }
        }
    cái phương thức ks.Add() mà em tô màu đỏ đó có đúng không? Em chạy thì nó không báo lỗi, mà dùng ks.Count xem nó có bao nhiêu phần tử sau khi nhập thì nó ra kết quả là 0, có nghĩa là không có thằng nào được lưu vào ArrayList cả. Hic (
    các anh có thể giúp em viết hàm Nhập làm sao mà cho nó lưu vào ArrayList ks giùm em, và nhân thể viết giùm em hàm tính tiền luôn được không?? [IMG]images/smilies/biggrin.png[/IMG] em gà lắm ạ! Cám ơn các anh nhé!

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi nguyenlinhsv1
    cái phương thức ks.Add() mà em tô màu đỏ đó có đúng không? Em chạy thì nó không báo lỗi, mà dùng ks.Count xem nó có bao nhiêu phần tử sau khi nhập thì nó ra kết quả là 0, có nghĩa là không có thằng nào được lưu vào ArrayList cả. Hic (
    các anh có thể giúp em viết hàm Nhập làm sao mà cho nó lưu vào ArrayList ks giùm em, và nhân thể viết giùm em hàm tính tiền luôn được không?? [IMG]images/smilies/biggrin.png[/IMG] em gà lắm ạ! Cám ơn các anh nhé!
    bạn chạy vòng lặp nó chưa nhảy vào vòng chứ sao, lúc đầu
    for (i = 0; i < ks.Count; i++) sai ở đoạn ks.Count ( value nó đang = 0)

  3. #3
    Ngày tham gia
    Sep 2015
    Đang ở
    Hà Nội
    Bài viết
    0
    Tóm lại yêu cầu của bạn là: Tính được 1 ngày hôm đó khách sạn thu được bao nhiêu tiền ?
    Thế thì ko dùng Arraylist vẫn làm được mà bạn

    Mã:
    class KHACHSAN
        {
            ArrayList ks = new ArrayList();
            public int i = 0;
            public int chon;
            bool tt;
            public double s = 0;
            KHACHHANG kh = new KHACHHANG();
            public void Nhap()
            {
                //KHACHHANG kh = new KHACHHANG();
                Console.Write("Nhap thong tin khach hang. Nhap ky tu bat ky (Khong phai so) de ket thuc.
    ");
                do
                {
                    try
                    {
                        Console.Write("Khach trong nuoc (1) hay nuoc ngoai (2) ??");
                        chon = Convert.ToInt32(Console.ReadLine());
                        if (chon == 1)
                            kh = new TRONGNUOC();
                        else kh = new NUOCNGOAI();
                        kh.Nhap();
                        Tongtien();
                        i = i + 1;
                        tt = true;
                    }
                    catch (FormatException)
                    {
                        Console.Write("
    Ket thuc nhap.
    ");
                        tt = false;
                    }
                    //i = i + 1;
    
                } while (tt == true);
            }
    
            public void Tongtien()
            {           
                s += kh.Tinhtien();
                
            }
            public void Xuat()
            {
                Console.Write("Tong thu nhap trong ngay cua khach san la {0} dong. ", s.ToString());
            }
        }

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Dùng ArrayList trong chương trình tính tiền phòng khách sạn

    Chào các anh chị và các bạn. Em gặp rắc rối với bài tập C# mong các anh chị giúp đỡ. Các anh chị và các bạn giỏi về lập trình C# giúp em bài này với, hic hic. [IMG]images/smilies/21.gif[/IMG]

    Thiết kế chương trình theo hướng đối tượng với yêu cầu mô tả như sau:
    Viết chương trình tính toán doanh thu 1 ngày của khách sạn với yêu cầu:
    Giá phòng dành cho khách trong nước:
    - Phòng loại 1: 500
    - Loại 2: 300
    - Loại 3: 150
    Đơn giá cho thuê với khách nước ngoài bằng 1.5 lần khách trong nước, nhưng đối với khách người Nhật thì tính bằng với giá khách trong nước.
    Có hai loại khách:
    - Khách trong nước: Cần quan tâm các thông tin:
    • Số CMND
    • Họ tên
    • Số ngày ở.
    • Loại phòng
    - Khách nước ngoài cần quan tâm các thông tin:
    • Số hộ chiếu
    • Họ tên
    • Số ngày ở
    • Loại phòng.
    Khi khách đến đăng kí người dùng sẽ thêm hồ sơ của khách này vào chương trình và thu tiền trước ứng với số ngày đăng ký. Cuối ngày sẽ tính tổng tiền thu được của khách sạn.
    Chú ý: Khi khách chưa đến đăng ký thì người dùng sẽ không biết khách sắp đến sẽ là khách trong nước hay nước ngoài. Trước khi đóng chương trình không biết được ngày nay có bao nhiêu khách. Vì vậy khi muốn kết thúc nhập thì sẽ nhập số CMND hoặc hộ chiếu không là dạng số.


    Bài này em nghĩ là dùng ArrayList để lưu thông tin của các vị khách. Em thiết kế các lớp và kế thừa có vẻ như không có vấn đề gì. Nhưng em gặp rắc rối ở Class KHACHSAN, phần sử dụng ArrayList.
    Nếu ArrayList mà lưu từng thông tin ví dụ như Họ tên, ArrayList lưu Số ngày ở… mà mình nhập trực tiếp vào thì dùng phương thức TênArrayList.Add(console.readline()) để nhập thì em biết, nhưng cái đề này thì em bó tay. Mong các anh chị và các bạn giúp em phần đó, làm sao viết hàm nhập và hàm tính tiền cho cái ArrayList giùm em. Em cám ơn nhiều lắm.

    Code em viết, các anh chị sửa giùm em ạ:



    Mã:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    using System.IO;
    
    namespace Bai_KHACHSAN
    {
        class KHACHHANG
        {
            public string Hoten;
            public int Songayo;
            public int Loaiphong;
            public virtual void Nhap()
            {
                Console.Write("Nhap ho ten khach hang : ");
                Hoten = Console.ReadLine();
                Console.Write("Nhap so ngay o : ");
                Songayo = Convert.ToInt32(Console.ReadLine());
                Console.Write("Loai phong: ");
                Loaiphong = Convert.ToInt32(Console.ReadLine());
            }
            public virtual double Tinhtien()
            {
                return 0;
            }
            public virtual void Xuat()
            { 
                Console.Write("Tien phong cua khach {0} la {1} .
    ",Hoten,Tinhtien());
            }
        }
        class TRONGNUOC : KHACHHANG
        {
            public int CMND;
            public override void Nhap()
            {
                Console.Write("Nhap so CMND : ");
                CMND = Convert.ToInt32(Console.ReadLine());
                base.Nhap();
            }
            public override double Tinhtien()
            {
                if (Loaiphong == 1)
                    return Songayo * 500;
                else if (Loaiphong == 2)
                    return Songayo * 300;
                else return Songayo * 150;
            }
            public override void Xuat()
            {
                base.Xuat();
            }
        
        }
        class NUOCNGOAI : KHACHHANG
        {
            public int Hochieu;
            public string Quocgia;
            public override void Nhap()
            {
                Console.Write("Nhap so ho chieu: ");
                Hochieu = Convert.ToInt32(Console.ReadLine());
                Console.Write("Nhap quoc tich: ");
                Quocgia = Console.ReadLine();
                base.Nhap();
            }
            public override double Tinhtien()
            {
                if (Quocgia == "Nhat")
                {
                    if (Loaiphong == 1)
                        return Songayo * 500;
                    else if (Loaiphong == 2)
                        return Songayo * 300;
                    else return Songayo * 150;
                }
                else
                {
                    if (Loaiphong == 1)
                        return Songayo * 500 * 1.5;
                    else if (Loaiphong == 2)
                        return Songayo * 300 * 1.5;
                    else return Songayo * 150 * 1.5;
                }
            }
            public override void Xuat()
            {
                base.Xuat();
            }
        }
        class KHACHSAN
        {
            ArrayList ks = new ArrayList();
            public int i = 0;
            public int chon;
            bool tt;
            public double s = 0;
            KHACHHANG kh = new KHACHHANG();
            public void Nhap()
            {
                //KHACHHANG kh = new KHACHHANG();
                Console.Write("Nhap thong tin khach hang. Nhap ky tu bat ky (Khong phai so) de ket thuc.
    ");
                do
                {
                    try
                    {
                        Console.Write("Khach trong nuoc (1) hay nuoc ngoai (2) ??");
                        chon = Convert.ToInt32(Console.ReadLine());
                        if (chon == 1)
                            kh = new TRONGNUOC();
                        else kh = new NUOCNGOAI();
                        kh.Nhap();
                        tt = true;
                    }
                    catch (FormatException)
                    {
                        Console.Write("
    Ket thuc nhap.
    ");
                        tt = false;
                    }
                    i = i + 1;
                    
                } while (tt==true);
            }
    
               
    
        
          
          //  public void Nhapks()
           // {
                                
             //    ks.Add();
    
            //}
           
            
            public double Tongtien()
            {
                for (i = 0; i < ks.Count; i++)
                    s += kh.Tinhtien();
                return s;
            }
            public void Xuat()
            {
                Console.Write("Tong thu nhap trong ngay cua khach san la {0} dong. ", Tongtien());
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                KHACHSAN a = new KHACHSAN();
                a.Nhap();
                a.Xuat();
                Console.ReadLine();
            }
        }
    }
    Mong nhận được sự giúp đỡ của các anh chị và các bạn. Chân thành cảm ơn ạ.

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    ArrayList ks = new ArrayList();
    khởi tạo mà không add khách hàng vào thì ks.Count=0; làm sao mà tính tiền

  6. #6
    Thank anh! Em làm được rồi. Nhờ mod close topic lại giùm !

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •