zoukankan      html  css  js  c++  java
  • 汽车租赁系统(第二种方式)

    一、系统窗体

     

    1)vehic类

      //父类  汽车类
       public abstract  class Vehicle
        {
           //汽车牌照
            public string  CarID { get; set; }
           //汽车名
            public string Name { get; set; }
           //颜色
            public string  Color { get; set; }
           //使用 时间
            public int  RentDate { get; set; }
           //日租金
            public int Price { get; set; }
           //计算租金的抽象方法
            public abstract double GetPrice(int day);
        }

    2)Car小轿车类

    //小车类
       public  class Car:Vehicle
        {
           //计算汽车租金
            public override double GetPrice(int day)
            {
                double Price = this.Price * day;
                return Price;
            }
        }
    

      

    3)Truck卡车类

    public  class Truck:Vehicle
        {
           //卡车载重
            public int Load { get; set; }
    
           //计算卡车的租金
            public override double GetPrice( int day)
            {
                double Price = this.Price * day;
                return Price;
            }
        }
    

      

    4)FrmMain窗体的代码

     public partial class FrmMain : Form
        {
            public FrmMain()
            {
                InitializeComponent();
            }
            //保存可租车辆的信息  (Key : 车牌号  ,  Value: 车辆对象)
            public Dictionary<string, Vehicle> RentalCar = new Dictionary<string, Vehicle>();
    
            //保存租车 车辆信息  (Key : 车牌号 , Value 车辆对象)
            public Dictionary<string, Vehicle> EndCar = new Dictionary<string, Vehicle>();
    
           
    
            //初始化租车信息
            public void Rental()
            {
                Car car1 = new Car();
                car1.CarID = "京Ro7845";
                car1.Color = "红色";
                car1.Name = "奔驰";
                car1.Price = 100;
                car1.RentDate = 30;
    
                Car car2 = new Car();
                car2.CarID = "湘Rok545";
                car2.Color = "红色";
                car2.Name = "大众";
                car2.Price = 500;
                car2.RentDate = 30;
                
                Truck truck1 = new Truck();
                truck1.CarID = "粤Jo7845";
                truck1.Color = "黑色";
                truck1.Name = "路虎";
                truck1.Price = 60;
                truck1.RentDate = 30;
                truck1.Load = 130;
    
                Truck truck2 = new Truck();
                truck2.CarID = "赣Kjg845";
                truck2.Color = "白色";
                truck2.Name = "三菱";
                truck2.Price = 120;
                truck2.RentDate = 30;
                truck2.Load = 60;
    
                RentalCar.Add(car1.CarID, car1);
                RentalCar.Add(truck1.CarID, truck1);
                RentalCar.Add(car2.CarID, car2);
                RentalCar.Add(truck2.CarID, truck2);
            }
    
            private void FrmMain_Load(object sender, EventArgs e)
            {
                //初始化租车信息
                Rental();
                //绑定数据到租车信息的listview上
                GetDataToList();
            }
    
            //给租车Listview上绑定数据
            private void GetDataToList()
            {
                //清空Iistview集合的数据 重新绑定
                lvlist.Items.Clear();
    
                foreach (KeyValuePair<string,Vehicle> item in RentalCar)
                {
                    ListViewItem list = new ListViewItem(item.Value.CarID);
                    list.SubItems.Add(item.Value.Name);
                    list.SubItems.Add(item.Value.Color);
                    list.SubItems.Add(item.Value.RentDate.ToString());
                    list.SubItems.Add(item.Value.Price.ToString());
                    if (item.Value is Truck)
                    {
                        Truck truck = (Truck)item.Value;
                        list.SubItems.Add(truck.Load.ToString());
                    }
                    else
                    {
                        list.SubItems.Add("无");
                    }
                    
                    
                  
                    lvlist.Items.Add(list);
                }
                
            }
    
            //给还车ListView绑定数据
            public void GetDataToListEnd()
            {
    
                //清空数据
                lvlistEnd.Items.Clear();
    
                foreach (KeyValuePair<string, Vehicle> item in EndCar)
                {
                    ListViewItem list = new ListViewItem(item.Value.CarID);
                    list.SubItems.Add(item.Value.Name);
                    list.SubItems.Add(item.Value.Color);
                    list.SubItems.Add(item.Value.RentDate.ToString());
                    list.SubItems.Add(item.Value.Price.ToString());
                    if (item.Value is Truck)
                    {
                        Truck truck = (Truck)item.Value;
                        list.SubItems.Add(truck.Load.ToString());
                    }
                    else
                    {
                        list.SubItems.Add("无");
                    }
    
    
    
                    lvlistEnd.Items.Add(list);
                }
                
            }
    
            //租车刷新
            private void button2_Click(object sender, EventArgs e)
            {
               
    
                GetDataToList();
    
            }
    
          
            //租车
            private void button1_Click(object sender, EventArgs e)
            {
                //判断租车人信息不为空
                if (txtName.Text != "")
                {
                    //判断是否选中一项
                    if (lvlist.SelectedItems.Count > 0)
                    {
                        //获取选中车辆的车牌号
                    string   CarID = lvlist.SelectedItems[0].SubItems[0].Text;
                        //在可租集合里面找到车牌号为CarID的车辆,并将其车对象赋值到已租车辆的集合中
                        EndCar.Add(CarID, RentalCar[CarID]);
                        //移除可租车辆里该车辆的信息
                        RentalCar.Remove(CarID);
                        MessageBox.Show("租车成功!!");
                    }
                    else
                    {
                        MessageBox.Show("请选择一项!!");
                    }
                   
                    
                }
                else
                {
                    MessageBox.Show("请填写租车人信息!!");
                }
            }
    
            //还车刷新
            private void button3_Click(object sender, EventArgs e)
            {
                //刷新还车list
                GetDataToListEnd();
            }
    
            //选择选项卡时发生
            private void tabControl1_Selected(object sender, TabControlEventArgs e)
            {
    
                if (e.TabPage == tabPage1)     //租车的选项卡
                {
                    //刷新租车List
                    GetDataToList();
                }
                else if (e.TabPage == tabPage2)  //还车选项卡
                {
                    //刷新还车list
                    GetDataToListEnd();
                }
                else
                {
                    rdoCar.Checked = true;
                }
              
    
            }
    
            //还车结算
            private void button4_Click(object sender, EventArgs e)
            {
              
                //判断租车时间不为空
                if (txtDay.Text != "")
                {
                    //获得租车的天数
                    int Day = Convert.ToInt32(txtDay.Text);
    
                    //判断是否选中一项
                    if (lvlist.SelectedItems.Count > 0)
                    {
                        //获取选中车辆的车牌号
                        string CarID = lvlistEnd.SelectedItems[0].SubItems[0].Text;
                        //调用计算价格的方法
                        double Price = EndCar[CarID].GetPrice(Day);
                        MessageBox.Show("您的总价格是"+Price.ToString());
                        //将已借车辆从已借集合中复制到可借车辆集合中
                        RentalCar.Add(CarID,EndCar[CarID]);
                        //移除已借车辆集合中的该车对象
                        EndCar.Remove(CarID);
                    }
                    else
                    {
                        MessageBox.Show("请选择一项!!");
                    }
                }
                else
                {
                    MessageBox.Show("请填写租车使用时间");
                }
    
            }
    
            //新车入库
            private void button5_Click(object sender, EventArgs e)
            {
    
                //获得车牌号
                string CarId = txtCarId.Text;
                //获得车名
                string CarName = txtName.Text;
                //获得车颜色
                string CarColor = rboColor.Text;
                //获得车使用时间
                int Day = Convert.ToInt32(txtuseTime.Text);
                //获得日租金
                int Price = Convert.ToInt32(txtPrice.Text);
    
                //判断是选中的卡车还是汽车
                if (rdoTruck.Checked == true)
                {
                    //获得载重量
                    int Height = Height = Convert.ToInt32(txtHeight.Text);
                    Truck truck = new Truck();
                    truck.CarID = CarId;
                    truck.Name = CarName;
                    truck.Price = Price;
                    truck.RentDate = Day;
                    truck.Color = CarColor;
                    //将新增车加入到可借集合中
                    RentalCar.Add(CarId,truck);
    
                }
                else
                {
                    Car car = new Car();
                    car.CarID = CarId;
                    car.Name = CarName;
                    car.Price = Price;
                    car.RentDate = Day;
                    car.Color = CarColor;
                    //将新增车加入到可借集合中
                    RentalCar.Add(CarId, car);
                }
    
               
            }
    
            //单选按钮
            private void rdoCar_CheckedChanged(object sender, EventArgs e)
            {
                //判断是选中的卡车还是汽车
                if (rdoTruck.Checked == true)
                {
                    Clear();
                    //启用载重控件
                    txtHeight.Enabled = true;
    
    
                }
                else
                {
                    Clear();
                    //禁用载重控件
                    txtHeight.Enabled = false;
                }
            }
    
    
            //清空txt文本的值
            public void Clear()
            {
                  txtCarId.Text = "";
                 txtName.Text = "";
                 rboColor.Text = "";
                 txtuseTime.Text= "";
                  txtPrice.Text= "";
                  txtCarName.Text = "";
            }
          
    
    
    
        }
    

      这种方法相对简单理解

  • 相关阅读:
    Ubuntu 16.04远程登录服务器--ssh的安装和配置
    设置淘宝源
    shell 循环 read line
    apt-get update 报错 W: Unknown Multi-Arch type 'no' for package 'compiz-core'
    expdp dblink
    ubuntu apt-update NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
    listener.log文件过大导致oracle假死
    rsync_ssh
    ssh多主机
    elk大纲
  • 原文地址:https://www.cnblogs.com/yejiaojiao/p/5252002.html
Copyright © 2011-2022 走看看