Một cửa hàng bán xe hơi có bán các loại xe khác nhau như:
Xe du lịch gồm các thông tin như sau: Nhãn hiệu, số chỗ ngồi, màu sắc, giá mua.
Xe tải gồm các thông tin như sau: Nhãn hiệu, trọng tải, màu sắc, giá mua.
Khi bán hàng giá nhập sẽ bao gồm giá mua + thuế cho từng loại xe.
Trong đó thuế cho từng loại xe được tính như sau: xe du lịch dưới 6 chỗ thuế là 200%, xe du lịch trên 6 chỗ thuế là 150%.
Xe tải trọng tải dưới 5 tấn thuế là 120%., xe tải trọng tải trên 5 tấn là 100%
1. Thiết kế các lớp để quản lý việc bán xe trên. (3đ)
2. Thiết kế các phương thức cho phép nhập và xuất thông tin của xe.(2đ)
3. Thiết kế các toán tử + cho phép tính giá mua tổng công của 2 chiếc xe.(2đ)
4. Sử dụng các thiết kế trênh viết chương trình (viết hàm Main) thực hiện chức năng sau:
a. Nhập vào lô hàng gồm 5 chiếc xe các loại. (1đ)
b. Xuất ra thông tin của từng chiếc xe bao gồm giá nhập của từng chiếc xe. (1đ)
c. Xuất ra giá trị sau thuế tổng cộng của lô hàng. (1đ)
- Code:
using System;
using System.Collections.Generic;
class Xe
{
public Xe()
{
}
public Xe(string nhanhieu, string mausac, long giagoc)
{
NhanHieu = nhanhieu;
MauSac = mausac;
GiaGoc = giagoc;
}
private string nhanHieu;
private string mauSac;
private long giaGoc;
public string NhanHieu
{
get { return nhanHieu; }
set { nhanHieu = value; }
}
public string MauSac
{
set { mauSac = value; }
get { return mauSac; }
}
public long GiaGoc
{
get { return giaGoc; }
set
{
if (value > 0) giaGoc = value;
else Console.Write("Khong hop le");
}
}
public long GiaSauThue
{
get
{
return GiaGoc + TinhThue();
}
}
public virtual long TinhThue()
{
return 0;
}
public virtual void Nhap()
{
Console.WriteLine("Nhap thong tin xe");
Console.Write("Nhap hieu:");
NhanHieu = Console.ReadLine();
Console.Write("Nhap mau sac cua xe:");
MauSac = Console.ReadLine();
Console.Write("Nhap gia mua cua xe:");
GiaGoc = Convert.ToInt64(Console.ReadLine());
}
public virtual void Xuat()
{
Console.WriteLine("Thong tin cua xe");
Console.WriteLine("Nhan hieu: " + NhanHieu);
Console.WriteLine("Mau sac: " + MauSac);
Console.WriteLine("Gia goc: " + GiaGoc);
}
public static long operator +(Xe a, Xe b)
{
return a.GiaGoc + b.GiaGoc;
}
public static long operator +(long b, Xe a)
{
return a.GiaGoc + b;
}
public static long operator +(Xe a, long b)
{
return a.GiaGoc + b;
}
}
class XeduLich : Xe
{
private int soChoNgoi;
public int SoChoNgoi
{
get { return soChoNgoi; }
set
{
if (value > 0) soChoNgoi = value;
else Console.Write("Khong hop le");
}
}
public override long TinhThue()
{
if (SoChoNgoi > 6) return GiaGoc * 150 / 100;
else return GiaGoc * 2;
}
public override void Nhap()
{
base.Nhap();
Console.Write("So cho ngoi: ");
SoChoNgoi = int.Parse(Console.ReadLine());
}
public override void Xuat()
{
base.Xuat();
Console.WriteLine("So cho ngoi: " + SoChoNgoi);
}
}
class XeTai : Xe
{
private int trongTai;
public int TrongTai
{
get { return trongTai; }
set
{
if (value <= 0) Console.Write("Khong hop le");
else trongTai = value;
}
}
public override void Nhap()
{
base.Nhap();
Console.Write("Nhap trong tai: ");
TrongTai = int.Parse(Console.ReadLine());
}
public override void Xuat()
{
base.Xuat();
Console.WriteLine("Trong tai: " + TrongTai);
}
}
class program
{
static void Main()
{
List<Xe> danhSach = new List<Xe>();
for (int i = 0; i < 5; i++)
{
Xe item;
Console.WriteLine("Nhap xe:\n [1] du lich,\n [2] xe tai");
string select = Console.ReadLine();
if (select == "1") item = new XeduLich();
else item = new XeTai();
item.Nhap();
danhSach.Add(item);
}
double tong = 0;
//Gia sau thue tong cong:
for (int i = 0; i < 5; i++)
{
danhSach[i].Xuat();
tong += danhSach[i].GiaSauThue;
}
Console.WriteLine("Gia tong cong:" + tong);
}
}
Được sửa bởi zero ngày Mon Apr 05, 2010 9:53 pm; sửa lần 1.