zoukankan      html  css  js  c++  java
  • 抽象类的应用——汽车租赁系统

    汽车租赁

    任务描述

    系统搭建

    首先要绑定初始数据

    //保存可租用车的集合
    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;
    }

     

  • 相关阅读:
    昆石VOS3000_2.1.4.0完整安装包及安装脚本
    KVPhone,VOS官方的SIP软电话电脑客户端
    昆石VOS2009 VOS3000无漏洞去后门电脑管理客户端大全
    2017年最新(4月20日)手机号码归属地数据库分享
    2017年最新VOS2009/VOS3000最新手机号段导入文件(手机归属地数据)
    Android:onNewIntent()
    三星S4使用体验(Markdown版)
    apple公司的潮起潮落——浪潮之巅
    microsoft的罗马帝国——浪潮之巅
    我的iOS开发之路
  • 原文地址:https://www.cnblogs.com/PGYXZ/p/4640831.html
Copyright © 2011-2022 走看看