zoukankan      html  css  js  c++  java
  • 汽车租赁系统

    首先:在窗体上头先定义储存的集合!!
     public partial class FrmMain : Form
        {
            public FrmMain()
            {
                InitializeComponent();
                this.skinEngine1.SkinFile = "Silver.ssk";
                
            }
            //初始化可租用车集合信息
            Dictionary<string, Vehicle> dic = new Dictionary<string, Vehicle>();
            //初始化结算车的集合信息
            Dictionary<string, Vehicle> rentVehicles = new Dictionary<string, Vehicle>();
       //抽象类
       public abstract class Vehicle
        {
            public string Color { get; set; }//颜色
            public double DailyRent { get; set; }//每日租金
            public string LicenseNO { get; set; }//车牌号
            public string Name { get; set; }//名字
            public int RentDate { get; set; }//还日期
            public string RentUser { get; set; }//租用者
            public int YearOfService { get; set; }//使用时间
            public Vehicle() { }
            public Vehicle(string Color, double DailyRent, string LicenseNO, string Name,int YearOfService) 
              {
                  this.Color = Color;
                  this.DailyRent = DailyRent;
                  this.LicenseNO = LicenseNO; ;
                  this.Name = Name;           
                  this.YearOfService = YearOfService;      
            }
            //计算价格的方法
            public abstract double CalculatePrice();
        }
    抽象类,父类
     //卡车类
       public class Truck:Vehicle
        {
            private int load;//装载量      
            public Truck(){ }
            public Truck(string Color, double DailyRent, string LicenseNO, string Name,int YearOfService,int load)
                : base(Color, DailyRent, LicenseNO, Name,YearOfService) 
            {
                this.Load = load;
            }
            public int Load
            {
                get { return load; }
                set { load = value; }
            }
           //卡车类的计算方法
            public override double CalculatePrice()
            {
                double money = this.DailyRent * RentDate;
                return money;
            }
           
        }
    卡车类
    轿车类
    轿车类

     初始化几个放在Load事件里:

     // 主窗口   
            private void FrmMain_Load(object sender, EventArgs e)
            {
    
                Car car = new Car("黄色", 300, "鲁888888", "法拉利",3);
                Car car1 = new Car("白色", 250, "鲁88888", "奥托",4);
                Truck t1 = new Truck
                {
                    LicenseNO = "湘B666666",
                    Name = "东风A5",
                    Color = "蓝色",
                    DailyRent = 2000,
                    YearOfService = 2,
                    Load = 120
                };
                dic.Add(car.LicenseNO, car);
                dic.Add(car1.LicenseNO, car1);
                dic.Add(t1.LicenseNO, t1);
                //绑定控件
                Info(dic, listView1);
                //给颜色下拉框赋值
                this.comboBox1.Items.Add("红色");
                this.comboBox1.Items.Add("蓝色");
                this.comboBox1.Items.Add("白色");
                this.comboBox1.Items.Add("黑色");
                this.comboBox1.Items.Add("灰色");
                this.textBox5.Enabled = false;
            }
     //初始值出租
            public void Info(Dictionary<string, Vehicle> dic, ListView lv)
            {                      
                //循环之前先清空
                lv.Items.Clear();  
                //循环绑定         
                foreach (Vehicle item in dic.Values)
                {              
                    ListViewItem lv1 = new ListViewItem();
                    lv1.Text = item.LicenseNO;
                    lv1.SubItems.Add(item.Name);
                    lv1.SubItems.Add(item.Color);
                    lv1.SubItems.Add(item.DailyRent.ToString());
                    lv1.SubItems.Add(item.RentDate.ToString());
                    //判断
                    if (item is Truck)
                    {
                        lv1.SubItems.Add((item as Truck).Load.ToString());
                    }
                    else
                    {
                        lv1.SubItems.Add("");
                        
                    }
                    //总的
                    lv.Items.Add(lv1);
    
                }
            }
    初始值出租

    2.到这里出租的listView中已经有显示:

     //刷新的按钮
            private void btnRefresh_Click(object sender, EventArgs e)
            {
                Info(dic,listView1);
            }

    3.点击租车按钮:从列表中删除然后放到还车的列表中;

      //租车
            private void btnCar_Click(object sender, EventArgs e)
            {
                //判断
                if (listView1.SelectedItems.Count == 0)
                {
                    MessageBox.Show("请选择一行!");
                }
                else if (this.txtHirer.Text == "")
                {
                    MessageBox.Show("请输入租用者的名字");
                }
                else
                {
                    //这是通过选择车牌号
                    string key = listView1.SelectedItems[0].Text;
                    //租用者和车牌号绑定在一起
                    dic[key].RentUser = this.txtHirer.Text;
                    //将已租车辆放入到已租集合中
                    rentVehicles.Add(dic[key].LicenseNO, dic[key]);
                    //判断是否已经出租
                    if (dic.ContainsKey(key))
                    {
                        dic.Remove(key);
                    }
                    //重新绑定listView
                    Info(dic, listView1);
                    MessageBox.Show("已出租");
                    //使用者赋空
                    this.txtHirer.Text = "";
                }
                

     4.还车列表:

     //还车的循环刷新
            public void Info1(Dictionary<string, Vehicle> rentVehicles, ListView list)
            {
                list.Items.Clear();
                foreach (Vehicle item in rentVehicles.Values)
                {
                    ListViewItem lv1 = new ListViewItem();
                    lv1.Text = item.LicenseNO;
                    lv1.SubItems.Add(item.Name);
                    lv1.SubItems.Add(item.Color);
                    lv1.SubItems.Add(item.DailyRent.ToString());
                    lv1.SubItems.Add(item.RentDate.ToString());
                    //判断
                    if (item is Truck)
                    {
                        lv1.SubItems.Add((item as Truck).Load.ToString());
                    }
                    else
                    {
                        lv1.SubItems.Add("");
    
                    }
                    //总的
                    list.Items.Add(lv1);
                }
            }

    接着把方法名放到刷新的按钮中!
     //还车刷新
            private void btnshaxin_Click(object sender, EventArgs e)
            {
                Info1(rentVehicles,listView2);
            }

    5.点击还车按钮,从还车列表中删除然后放到租车列表中去!

      //还车的选择结算
            private void btnMoney_Click(object sender, EventArgs e)
            {
                if (this.listView2.SelectedItems.Count == 0)
                {
                    MessageBox.Show("请选择车辆!!");
                    return;
                }
                if (this.txtDay.Text == "")
                {
                    MessageBox.Show("请输入租用天数!");
                    return;
                }
                string key = listView2.SelectedItems[0].Text;
                rentVehicles[key].RentDate = int.Parse(this.txtDay.Text);
                //调用抽象方法
                double totalPrice = rentVehicles[key].CalculatePrice();
                string msg = string.Format("您的总价是{0}",totalPrice.ToString());
                MessageBox.Show(msg,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
                //加入到可租车辆集合里
                dic.Add(rentVehicles[key].LicenseNO,rentVehicles[key]);
                //从当前的集合中移除
                if (rentVehicles.ContainsKey(key))
                {
                    rentVehicles.Remove(key);
                }
                //重新刷新列表
                Info1(rentVehicles, listView2);
                //租用天数赋空
                this.txtDay.Text = "";
    
    

     5.新车入库(还有各种的友情提示)。

      //新车入库按钮
            private void btnRuku_Click(object sender, EventArgs e)
            {
                //友情判断
                if (limousine() == true)
                {
                    //遍历车牌号
                    foreach (string item in dic.Keys)
                    {
                        
                        if (textBox1.Text == item)
                        {
                            
                            MessageBox.Show("该车牌号已经存在");
                            return;
                        }                  
    
                    }
                    Vehicle vs = null;
                    //运用里氏替换原则
                    if (radioButton1.Checked == true)
                    {
                      
                        vs = new Car();
    
                    }
                    else if (radioButton2.Checked == true)
                    {
                        Truck tr = new Truck();
                        tr.Load = Convert.ToInt32(textBox5.Text);
                        vs = new Truck();
                        vs = tr;
                               
    
                    }
                    //01获取对应文本框中的值,
                    vs.LicenseNO = textBox1.Text;//车号
                    vs.Name = textBox2.Text;//车型
                    vs.Color = comboBox1.Text;//颜色
                    vs.YearOfService = Convert.ToInt32(textBox3.Text);//使用时间
                    vs.DailyRent = Convert.ToInt32(textBox4.Text);//每日租金  
                    dic.Add(vs.LicenseNO, vs);
                    uptatetxt();
                    MessageBox.Show("添加成功!");
    
    
               
                }
              
            }
            //卡车友情提示
            public bool truck()
            {
                if (radioButton1.Checked == false&& radioButton2.Checked == false)
                {
                    MessageBox.Show("请选择车辆类型!");
                    return false;
                }
                else if (textBox1.Text == ""||textBox2.Text == ""||textBox3.Text == ""||comboBox1.Text == ""||textBox4.Text == ""||textBox5.Text == "")
                {
                    MessageBox.Show("请填写完整!!");
                    return false;
                }
                else
                {
                    return true;  
                }
            }
    
            //轿车的友情提示
            public bool limousine()
            {
                if (radioButton1.Checked == false && radioButton2.Checked == false)
                {
                    MessageBox.Show("请选择车辆类型!");
                    return false;
                }
                else if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || comboBox1.Text == "" || textBox4.Text == "")
                {
                    MessageBox.Show("请填写完整!!");
                    return false;
                }
                else
                {
                    return true;
                }
            }
            //轿车
            private void radioButton1_CheckedChanged(object sender, EventArgs e)
            {
                if (radioButton1.Checked == true)
                {
                    this.textBox5.Enabled = false;
                }
            }
            //卡车
            private void radioButton2_CheckedChanged(object sender, EventArgs e)
            {
                if (radioButton2.Checked == true)
                {
                    this.textBox5.Enabled = true;
                }
            }
            //当写完文本框赋空
            public void uptatetxt()
            {
                this.textBox1.Text = "";
                this.textBox2.Text = "";
                this.textBox3.Text = "";
                this.textBox4.Text = "";
                this.textBox5.Text = "";
                this.comboBox1.Text = "";
            }



     




  • 相关阅读:
    学习动态性能表 第五篇V$SESSION
    学习动态性能表 第八篇V$LOCK
    学习动态性能表 第十九篇V$UNDOSTAT
    学习动态性能表 第四篇(1)V$SQLTEXT
    学习动态性能表 第十六篇V$ROWCACHE
    学习动态性能表 第十八篇V$SYSTEM_EVENT
    备份打开的数据库脚本
    学习动态性能表 第九篇V$FILESTAT
    学习动态性能表 第六篇(1)V$SESSION_WAIT
    学习动态性能表 第二十篇V$WAITSTAT
  • 原文地址:https://www.cnblogs.com/www-yang-com/p/8892287.html
Copyright © 2011-2022 走看看