• 抽象类的应用——汽车租赁系统


    汽车租赁

    任务描述

    系统搭建

    首先要绑定初始数据

    //保存可租用车的集合
    Dictionary<string, Vehicle> vehicles=new Dictionary<string,Vehicle>();
    //保存租出的车的集合
    Dictionary<string, Vehicle> rentVehicles=new Dictionary<string,Vehicle>();

    //初始信息

    public void Initial()
    {
    Car car=new Car("京A10001","奥迪A6","黑色",3,240);
    vehicles.Add(car.LicenseNo, car);

    Truck truck = new Truck("京R44944", "东风", "蓝色", 3, 300,20);
    vehicles.Add(truck.LicenseNo, truck);

    Car car2=new Car("京A10002","奥迪A7","黑色",3,240);
    vehicles.Add(car2.LicenseNo, car2);

    //绑定数据
    public void Binder()
    {

    this.lvRent.Items.Clear();
    foreach (Vehicle item in vehicles.Values)
    {
    ListViewItem lvitem = new ListViewItem(item.LicenseNo);
    if (item is Car)
    {
    lvitem.SubItems.Add(item.Name);
    lvitem.SubItems.Add(item.Color);
    lvitem.SubItems.Add(item.YearOfService.ToString());
    lvitem.SubItems.Add(item.DailyRent.ToString());
    }
    if (item is Truck)
    {
    lvitem.SubItems.Add(item.Name);
    lvitem.SubItems.Add(item.Color);
    lvitem.SubItems.Add(item.YearOfService.ToString());
    lvitem.SubItems.Add(item.DailyRent.ToString());
    lvitem.SubItems.Add(((Truck)item).Load.ToString());
    }
    lvRent.Items.Add(lvitem);
    }
    }

    租车

    //租车 点击刷新时
    private void btnQueryRent_Click(object sender, EventArgs e)
    {
    Binder();

    }

    //点击租车时
    private void btnRent_Click(object sender, EventArgs e)
    {
    if (this.txtRenter.Text=="")
    {
    MessageBox.Show("请输入租车人姓名","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
    }
    string key = lvRent.SelectedItems[0].Text;
    Vehicle ve = vehicles[key];
    vehicles.Remove(key);
    Binder();
    rentVehicles.Add(key,ve);
    MessageBox.Show("租车成功");
    }

    还车

    //点击租车时
    private void btnRent_Click(object sender, EventArgs e)
    {
    if (this.txtRenter.Text=="")
    {
    MessageBox.Show("请输入租车人姓名","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
    }
    string key = lvRent.SelectedItems[0].Text;
    Vehicle ve = vehicles[key];
    vehicles.Remove(key);
    Binder();
    rentVehicles.Add(key,ve);
    MessageBox.Show("租车成功");

    }
    //退出
    private void btnExit_Click(object sender, EventArgs e)
    {
    this.Close();
    }
    //还车 点击刷新时
    private void btnQueryReturn_Click(object sender, EventArgs e)
    {
    this.lvReturn.Items.Clear();
    foreach (Vehicle item in rentVehicles.Values)
    {
    ListViewItem lvitem = new ListViewItem(item.LicenseNo);
    if (item is Car)
    {
    lvitem.SubItems.Add(item.Name);
    lvitem.SubItems.Add(item.Color);
    lvitem.SubItems.Add(item.YearOfService.ToString());
    lvitem.SubItems.Add(item.DailyRent.ToString());
    }
    if (item is Truck)
    {
    lvitem.SubItems.Add(item.Name);
    lvitem.SubItems.Add(item.Color);
    lvitem.SubItems.Add(item.YearOfService.ToString());
    lvitem.SubItems.Add(item.DailyRent.ToString());
    lvitem.SubItems.Add(((Truck)item).Load.ToString());
    }
    lvReturn.Items.Add(lvitem);
    }
    }
    //结算金额
    private void btnCompute_Click(object sender, EventArgs e)
    {
    if (txtRentDate.Text == "")
    {
    MessageBox.Show("请输入租车时间");
    return;
    }
    //01.将车A从已租集合中移除 //02,将车A加入到可租车辆中
    string number = lvReturn.SelectedItems[0].Text;
    Vehicle ve = rentVehicles[number];
    rentVehicles.Remove(number);
    Binder();
    vehicles.Add(number, ve);
    ve.RentDate = int.Parse( txtRentDate.Text);

    double money = 0;
    money = ve.CalcPrice();
    MessageBox.Show("你需要支付"+money+"元");
    }

    新车入库

    private void btnAdd_Click(object sender, EventArgs e)
    {
    string licenseNo = this.txtAutoNum.Text;
    string name = this.txtName.Text;
    string color = this.chColor.Text;
    int year = int.Parse(this.txtYears.Text);
    double dailyRent = double.Parse(this.txtLetting.Text);
    if (rdoCar.Checked)
    {
    Car car = new Car(licenseNo,name,color,year,dailyRent);
    vehicles.Add(licenseNo,car);
    MessageBox.Show("入库成功");
    }
    if (rdoTruck.Checked)
    {
    int load = int.Parse( this.txtLoad.Text);
    Truck truck = new Truck(licenseNo, name, color, year, dailyRent,load);
    vehicles.Add(licenseNo,truck);
    MessageBox.Show("入库成功");
    }
    }

    private void rdoCar_CheckedChanged(object sender, EventArgs e)
    {
    this.txtLoad.Enabled = false;
    }

    private void rdoTruck_CheckedChanged(object sender, EventArgs e)
    {
    this.txtLoad.Enabled = true;
    }

     

  • 相关阅读:
    圣诞放长假了
    设计模式Top10排行榜
    成长的烦恼
    小三的故事发家篇
    《家庭财务总管》升级(1.0.0.2)
    紧急项目处理方法
    隐身大法,使民无知
    如何维护自己文章的版权
    在深度学习的视觉VISION领域数据预处理的魔法常数magic constant、黄金数值: mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225]
    ImageNet数据集下载
  • 原文地址:https://www.cnblogs.com/PGYXZ/p/4640831.html
Copyright © 2020-2023  润新知