博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
抽象类的应用——汽车租赁系统
阅读量:6815 次
发布时间:2019-06-26

本文共 3887 字,大约阅读时间需要 12 分钟。

汽车租赁

 

任务描述

 

 

 

系统搭建

 

 

 

首先要绑定初始数据

//保存可租用车的集合

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;
}

 

 

转载于:https://www.cnblogs.com/PGYXZ/p/4640831.html

你可能感兴趣的文章
45个实用的JavaScript技巧、窍门和最佳实践
查看>>
sqlserver 2005 列字符串拼接
查看>>
TSharding源码阅读-MapperShardingInitializer
查看>>
XWifiMouse早期写的一个Android鼠标App
查看>>
postgres预写式日志的内核实现详解-wal记录写入
查看>>
用面向接口编程思想看找对象
查看>>
OC文件操作习题
查看>>
Nginx常用命令
查看>>
TWaver GIS在电信中的使用
查看>>
几款程序员常用的辅助编程工具
查看>>
MySQL5.7使用Notifier启动、停止服务时出现的问题
查看>>
今天用java弄个json数据交换接口,个人感觉这样实现省事实力。
查看>>
color值
查看>>
mybatis 多表关联查询
查看>>
Android RxJava:一文带你全面了解 背压策略
查看>>
5 Servlet
查看>>
百度创始人李彦宏:要做最好的中文搜索引擎
查看>>
3.26作业
查看>>
Python里的append和extend
查看>>
cut命令
查看>>