汽车租凭系统

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace CarSys.Entity
 8 {
 9     /// <summary>
10     /// 汽车类(父类)
11     /// </summary>
12     public abstract class Vehicle
13     {
14         /// <summary>
15         /// 颜色
16         /// </summary>
17         public string Color { get; set; }
18
19         /// <summary>
20         /// 日租金额
21         /// </summary>
22         public double DailyRent { get; set; }
23
24         /// <summary>
25         /// 车牌号
26         /// </summary>
27         public string LicenseNo { get; set; }
28
29         /// <summary>
30         /// 租车人姓名
31         /// </summary>
32         public string Name { get; set; }
33
34         /// <summary>
35         /// 租借日期
36         /// </summary>
37         public int RentDate { get; set; }
38
39         /// <summary>
40         /// 租借人
41         /// </summary>
42         public string RentUser { get; set; }
43
44         /// <summary>
45         /// 服务年限
46         /// </summary>
47         public string YearOfService { get; set; }
48
49         /// <summary>
50         /// 构造方法
51         /// </summary>
52         public Vehicle(string color, double dailyRent, string licenseNo, string name, int rentDate, string rentUser, string yearOfService)
53         {
54             this.Color = color;
55             this.DailyRent = dailyRent;
56             this.LicenseNo = licenseNo;
57             this.Name = name;
58             this.RentDate = rentDate;
59             this.RentUser = rentUser;
60             this.YearOfService = yearOfService;
61         }
62
63         public Vehicle() { }
64
65         /// <summary>
66         /// 计算租金(抽象方法)
67         /// </summary>
68         /// <returns></returns>
69         public abstract double TotalPrice();
70     }
71 }

Vehicle(父类)

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace CarSys.Entity
 8 {
 9     /// <summary>
10     /// 小汽车类(子类)
11     /// </summary>
12     public class Car:Vehicle
13     {
14
15         /// <summary>
16         /// 构造函数
17         /// </summary>
18         /// <param name="color">车颜色</param>
19         /// <param name="dailyRent">日租金</param>
20         /// <param name="licenseNo">车牌号</param>
21         /// <param name="name">车品名</param>
22         /// <param name="rentDate">租借日期</param>
23         /// <param name="rentUser">租借人</param>
24         /// <param name="yearOfService">服务年限</param>
25         public Car(string color, double dailyRent, string licenseNo, string name, int rentDate, string rentUser, string yearOfService)
26             : base(color, dailyRent, licenseNo, name, rentDate, rentUser,yearOfService)
27         {
28         }
29
30         /// <summary>
31         /// 重写Vehicle计算总价格的抽象方法
32         /// </summary>
33         /// <returns></returns>
34         public override double TotalPrice()
35         {
36             double price = this.RentDate * this.DailyRent;
37             return price;
38         }
39     }
40 }

Car(子类)

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace CarSys.Entity
 8 {
 9     /// <summary>
10     /// 货车类(子类)
11     /// </summary>
12     public class Truck:Vehicle
13     {
14         /// <summary>
15         /// 载重量
16         /// </summary>
17         public int Load { get; set; }
18
19         /// <summary>
20         /// 构造函数
21         /// </summary>
22         /// <param name="color">车颜色</param>
23         /// <param name="dailyRent">日租金</param>
24         /// <param name="licenseNo">车牌号</param>
25         /// <param name="name">车品名</param>
26         /// <param name="rentDate">租借日期</param>
27         /// <param name="rentUser">租借人</param>
28         /// <param name="yearOfService">服务年限</param>
29         /// <param name="load">载重量</param>
30         public Truck(string color, double dailyRent, string licenseNo, string name, int rentDate, string rentUser, string yearOfService,int load)
31             : base(color, dailyRent, licenseNo, name, rentDate, rentUser,yearOfService)
32         {
33             this.Load = load;
34         }
35
36         /// <summary>
37         /// 重写Vehicle计算总价格的抽象方法
38         /// </summary>
39         /// <returns></returns>
40         public override double TotalPrice()
41         {
42             double price = this.RentDate * this.DailyRent;
43             return price;
44         }
45     }
46 }

Truck(子类)

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace CarSys.Entity
 8 {
 9     /// <summary>
10     /// 创建新车(工具类)
11     /// </summary>
12     public class VehicleUtil
13     {
14         /// <summary>
15         /// 创建车
16         /// </summary>
17         /// <param name="licenseNo"></param>
18         /// <param name="name"></param>
19         /// <param name="color"></param>
20         /// <param name="yearOfExp"></param>
21         /// <param name="dailyRent"></param>
22         /// <param name="load"></param>
23         /// <param name="type"></param>
24         /// <param name="rentDate"></param>
25         /// <param name="rentUser"></param>
26         /// <param name="yearOfSer"></param>
27         /// <returns></returns>
28         public static Vehicle CreateVehicle(string licenseNo, string name, string color, int yearOfExp, double dailyRent, int load, string type, int rentDate, string rentUser, string yearOfSer)
29         {
30             Vehicle vehicle = null;
31             switch (type)
32             {
33                 case "Car":
34                     vehicle = new Car(color,dailyRent,licenseNo,name,rentDate,rentUser,yearOfSer);
35                     break;
36                 case "Truck":
37                     vehicle = new Truck(color, dailyRent, licenseNo, name, rentDate, rentUser, yearOfSer, load);
38                     break;
39             }
40             return vehicle;
41         }
42     }
43 }

VehicleUtil(工具类)

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10 using CarSys.Entity;
 11
 12 namespace CarSys
 13 {
 14     public partial class FrmMain : Form
 15     {
 16         public FrmMain()
 17         {
 18             InitializeComponent();
 19         }
 20
 21         VehicleUtil util;
 22
 23         /// <summary>
 24         /// 保存了可租用车的集合
 25         /// </summary>
 26         public Dictionary<string, Vehicle> vehicle = new Dictionary<string,Vehicle>();
 27
 28         /// <summary>
 29         /// 保存已租出车的集合
 30         /// </summary>
 31         public Dictionary<string, Vehicle> rentVehicle = new Dictionary<string,Vehicle>();
 32
 33         /// <summary>
 34         /// 初始化数据
 35         /// </summary>
 36         public void Inital()
 37         {
 38             Vehicle car1 = new Car("蓝色", 300, "粤A111111", "AE86", 3 ,"A路人","3");
 39             Vehicle car2 = new Car("红色", 600, "粤A222222", "雪佛兰", 3,"B路人","3");
 40             Vehicle car3 = new Car("黑色", 1000, "粤A333333", "奥迪", 3,"C路人","3");
 41
 42             Vehicle truck1 = new Truck("黑色", 200, "粤A000000", "水泥车", 3,"D路人","3", 500);
 43             Vehicle truck2 = new Truck("黄色", 250, "粤A123456", "货车", 3,"E路人","3", 450);
 44             Vehicle truck3 = new Truck("灰色", 300, "粤A654321", "水泥车", 3,"F路人","3", 300);
 45
 46             vehicle.Add(car1.LicenseNo, car1);
 47             vehicle.Add(car2.LicenseNo, car2);
 48             vehicle.Add(car3.LicenseNo, car3);
 49             vehicle.Add(truck1.LicenseNo, truck1);
 50             vehicle.Add(truck2.LicenseNo, truck2);
 51             vehicle.Add(truck3.LicenseNo, truck3);
 52         }
 53
 54         /// <summary>
 55         /// 绑定租车的数据源
 56         /// </summary>
 57         public void BindList()
 58         {
 59             lvShow.Items.Clear();
 60             foreach (var item in vehicle.Values)
 61             {
 62                 ListViewItem lvitem = new ListViewItem(item.LicenseNo);
 63                 lvitem.SubItems.Add(item.Name);
 64                 lvitem.SubItems.Add(item.Color.ToString());
 65                 lvitem.SubItems.Add(item.RentDate.ToString());
 66                 lvitem.SubItems.Add(item.DailyRent.ToString());
 67                 if (item is Truck)
 68                 {
 69                     lvitem.SubItems.Add((item as Truck).Load.ToString());
 70                 }
 71                 else
 72                 {
 73                     lvitem.SubItems.Add("无");
 74                 }
 75                 lvShow.Items.Add(lvitem);
 76             }
 77         }
 78
 79         /// <summary>
 80         /// 窗体加载
 81         /// </summary>
 82         /// <param name="sender"></param>
 83         /// <param name="e"></param>
 84         private void FrmMain_Load(object sender, EventArgs e)
 85         {
 86             Inital();
 87         }
 88
 89         /// <summary>
 90         /// 点击租车的刷新
 91         /// </summary>
 92         /// <param name="sender"></param>
 93         /// <param name="e"></param>
 94         private void btnRefalsh_Click(object sender, EventArgs e)
 95         {
 96             BindList();
 97         }
 98
 99         /// <summary>
100         /// 退出程序
101         /// </summary>
102         /// <param name="sender"></param>
103         /// <param name="e"></param>
104         private void btnExit_Click(object sender, EventArgs e)
105         {
106             Application.Exit();
107         }
108
109         /// <summary>
110         /// 点击租车
111         /// </summary>
112         /// <param name="sender"></param>
113         /// <param name="e"></param>
114         private void btnLend_Click(object sender, EventArgs e)
115         {
116             if (lvShow.SelectedItems.Count == 0)
117             {
118                 MessageBox.Show("请选中车辆","提示");
119                 return;
120             }
121             if (string.IsNullOrEmpty(txtUser.Text.Trim()))
122             {
123                 MessageBox.Show("请填写租用者姓名!","提示");
124                 return;
125             }
126             //获取选中项的第一列(车牌号)
127             string LicenseNo = lvShow.SelectedItems[0].Text;
128             //根据 车牌号 填写 租用者
129             vehicle[LicenseNo].RentUser = txtUser.Text.Trim();
130             //为已租借车的集合添加数据
131             rentVehicle.Add(vehicle[LicenseNo].LicenseNo, vehicle[LicenseNo]);
132             if (vehicle.ContainsKey(LicenseNo))
133             {
134                 //根据车牌号移除数据
135                 vehicle.Remove(LicenseNo);
136             }
137             BindList();
138             MessageBox.Show("成功出租!","提示");
139         }
140
141         /// <summary>
142         /// 绑定还车的数据源
143         /// </summary>
144         public void BindReturn()
145         {
146             lvReturn.Items.Clear();
147             foreach (var item in rentVehicle.Values)
148             {
149                 ListViewItem lvitem = new ListViewItem(item.LicenseNo);
150                 lvitem.SubItems.Add(item.Name);
151                 lvitem.SubItems.Add(item.Color.ToString());
152                 lvitem.SubItems.Add(item.RentDate.ToString());
153                 lvitem.SubItems.Add(item.DailyRent.ToString());
154                 if (item is Truck)
155                 {
156                     lvitem.SubItems.Add((item as Truck).Load.ToString());
157                 }
158                 else
159                 {
160                     lvitem.SubItems.Add("无");
161                 }
162                 lvReturn.Items.Add(lvitem);
163             }
164         }
165
166         /// <summary>
167         /// 点击还车的刷新
168         /// </summary>
169         /// <param name="sender"></param>
170         /// <param name="e"></param>
171         private void btnSumRefalsh_Click(object sender, EventArgs e)
172         {
173             BindReturn();
174         }
175
176         /// <summary>
177         /// 点击选择结算(算租车费用)
178         /// </summary>
179         /// <param name="sender"></param>
180         /// <param name="e"></param>
181         private void btnSubmit_Click(object sender, EventArgs e)
182         {
183             if (lvReturn.SelectedItems.Count == 0)
184             {
185                 MessageBox.Show("请选中车辆", "提示");
186                 return;
187             }
188             if (string.IsNullOrEmpty(txtLendDay.Text.Trim()))
189             {
190                 MessageBox.Show("请填写租用天数!", "提示");
191                 return;
192             }
193             string CardId = lvReturn.SelectedItems[0].Text;
194             rentVehicle[CardId].RentDate = int.Parse(txtLendDay.Text.Trim());
195             //计算价格
196             double price = rentVehicle[CardId].TotalPrice();
197             string message = "总价格为: " + price.ToString();
198             MessageBox.Show(message,"提示");
199             //将已归还车辆添加至可租车当中
200             vehicle.Add(rentVehicle[CardId].LicenseNo, rentVehicle[CardId]);
201             if (rentVehicle.ContainsKey(CardId))
202             {
203                 rentVehicle.Remove(CardId);
204             }
205             MessageBox.Show("还车成功!", "提示");
206             //刷新绑定
207             BindReturn();
208         }
209
210         /// <summary>
211         /// 点击入库
212         /// </summary>
213         /// <param name="sender"></param>
214         /// <param name="e"></param>
215         private void btnIn_Click(object sender, EventArgs e)
216         {
217             if (string.IsNullOrEmpty(txtColor.Text) || string.IsNullOrEmpty(txtLicenseNo.Text) || string.IsNullOrEmpty(txtName.Text) ||string.IsNullOrEmpty(txtRentDate.Text) || string.IsNullOrEmpty(txtDailyRent.Text))
218             {
219                 MessageBox.Show("请填写信息!");
220                 return;
221             }
222             string vehicleType = null;
223             //选中卡车时,卡车载重可用
224             if (rbtnTruck.Checked)
225             {
226                 vehicleType = "Truck";
227             }
228             else if (rbtnCar.Checked)
229             {
230                 vehicleType = "Car";
231             }
232             else
233             {
234                 MessageBox.Show("请选择车类型!");
235                 return;
236             }
237             string cardID = txtLicenseNo.Text.Trim();
238             string type = txtName.Text.Trim();
239             string color = txtColor.Text.Trim();
240             int rendTime = int.Parse(txtRentDate.Text.Trim());
241             int dailyMoney = int.Parse(txtDailyRent.Text.Trim());
242             int load;
243             if (txtLoad.Enabled == false)
244             {
245                 load = 0;
246             }
247             else
248             {
249                 load = int.Parse(txtLoad.Text.Trim());
250             }
251
252             Vehicle vehicle1 = VehicleUtil.CreateVehicle(cardID, type, color, 3, dailyMoney, load, vehicleType, rendTime, "", "3");
253
254             vehicle.Add(vehicle1.LicenseNo, vehicle1);
255             MessageBox.Show("添加成功!");
256         }
257
258         /// <summary>
259         /// 卡车选中项,改变卡车载重能否填写
260         /// </summary>
261         /// <param name="sender"></param>
262         /// <param name="e"></param>
263         private void rbtnTruck_CheckedChanged(object sender, EventArgs e)
264         {
265             if (rbtnTruck.Checked)
266             {
267                 txtLoad.Enabled = true;
268             }
269         }
270
271         /// <summary>
272         /// 汽车选中项,改变卡车载重能否填写
273         /// </summary>
274         /// <param name="sender"></param>
275         /// <param name="e"></param>
276         private void rbtnCar_CheckedChanged(object sender, EventArgs e)
277         {
278             if (rbtnCar.Checked)
279             {
280                 txtLoad.Enabled = false;
281             }
282         }
283
284     }
285 }

主窗体

程序运行效果视频:

  请移步至 -->

程序界面图:

时间: 2024-10-10 23:40:10

汽车租凭系统的相关文章

汽车租货系统

//父类 public abstract class Superclass { public double money;// 单价 private double moneys;// 总价 private int sky;// 天数 public String info;// 车型和车牌 private String discount;// 折扣 /* * get和set天数 */ public int getSky() { return sky; } public void setSky(dou

第十章汽车租凭系统

1 namespace Vehicle 2 { 3 /// <summary> 4 /// 车辆类 5 /// </summary> 6 public abstract class Abstract 7 { 8 //颜色 9 public string Color { get; set;} 10 //日租金 11 public double DailyRent { get; set;} 12 13 //车牌号 14 public string LicenseNo { get; se

继承、封装和多态的一个简单应用(答答租车系统)

Car.java package com.imooc; //使用面向对象的封装特性public class Car {    // 描述汽车可能有特征    private String name; // 车的名称    private double cargoCapacity;// 车的载货量    private int busLoad;// 车的载客量    private int dailyRent;// 车的日租金 public String getName() {        re

简单的租车系统

完成了一个简单的租车系统.实现简单的租车功能,用户选择租车序号和每辆车所租的天数,计算出租车所需要的费用. /* * 使用gbk编码 */ package adad; import java.util.Scanner; import javax.print.DocFlavor.INPUT_STREAM; import org.omg.CORBA.PUBLIC_MEMBER; /* * 创建汽车类 */ abstract class car{ public void man(){ System.o

慕课网-哒哒租车系统

//定义一个父类 public class Car {      String name;//车名      double  rent;//租金    public String getName(){            return name;    }    public void setName(String carName){            this.name=carName;    }    public double getRent(){            return

答答租车系统(实际开发代码编写)

一.项目功能 1.展示所有可租车辆 2.选择车型.租车辆.租车天数 3.展示租车清单,包括总金额.总载货量及车型.总载客量及车型 二.项目分析 1.数据模型:通过对现实世界的事与物的主要特征的分析.抽象,提取数据结构及相应的约束.其中,数据结构的组成是:操作(方法).属性,如将现实的车写成代码.本项目的数据模型是??模型. 货车(载货量) 客车(载客量) 皮卡车(载货.载客量) 轻型(5t).重型(5-20t) 小客车(4人).大客车(>10人) 载货.载客 2.业务模型:设计程序之前,应该明确

汽车辐射监测系统-Qt开发[转]发

1.Wait()和Notify.NotifyAll都是Object的方法 2.多线程的协作是通过控制同一个对象的Wait()和Notify()完成 3.当调用Wait()方法时,当前线程进入阻塞状态,直到有另一线程调用了该对象的Notify()方法 package Thread.Wait; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.con

Mpale 在汽车底盘悬架系统公差分析应用

汽车底盘的作用是接受发动机的动力,使车轮转动,并保证汽车按驾驶员的操纵正常行驶.底盘包括传动系统.行驶系统.转向系统和制动系统这四大部分,通常,这四大系统也简称为传动系.行驶系.转向系和制动系.悬架是车架与车桥之间传力连接装置的总称,它的功用是把路面作用于车轮上的支撑力.牵引力.制动力和侧向力以及这些作用力所造成的力矩传递到车架(或车身)上,以保证汽车的正常行驶.在整个底盘的悬架系统,需要考虑前束和外倾角参数,在公差建模过程,把它们作为分析对象,计算各个输入公差对分析对象的影响. 一. 公差建模

慕课网Java入门第二季6.1 达达租车系统,使用到继承、重写、多态、toString函数

为了方便理解,画了个UML图,可以参考一下为了方便理解,画了个UML图,可以参考一下 定义Car类型:载人+载货 public class Car { int id; String name; int seat; double load; double price; public Car(int id,String name,int seat,double load,double price){ this.id = id; this.name = name; this.seat = seat;