Truck.cs类

      //卡车类
public class Truck : Vehicle1
{
//重载
public int Load { get; set; }
//构造函数
public Truck(string color, double dailyrent, string licenseNO, string name, int rentDate, string rentUser, int yearsOfService, int load)
:base(color, dailyrent, licenseNO, name, rentDate, rentUser, yearsOfService)
{
this.Load = load;
}
//计算价格
public override double CalcPrice()
{
double Price = ;
Price = this.DailyRent * this.RentDate;
return Price;
}
}
}
Vehicle1.cs类
   //交通工具类
public abstract class Vehicle1
{
//颜色
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 YearsOfService { get; set; }
//构造函数
public Vehicle1(string color, double dailyrent, string licenseNO, string name, int rentDate, string rentUser, int yearsOfService) {
this.Color = color;
this.DailyRent = dailyrent;
this.LicenseNO = licenseNO;
this.Name = name;
this.RentDate = rentDate;
this.RentUser = rentUser;
this.YearsOfService = yearsOfService; }
//方法重写
public Vehicle1() { }
//执行
public abstract double CalcPrice();
}
}

主窗体代码:

    //可以出租车的集合
Dictionary<string, Vehicle1> dy = new Dictionary<string, Vehicle1>();
//已出租车的集合
Dictionary<string, Vehicle1> doy = new Dictionary<string, Vehicle1>(); private void Form1_Load(object sender, EventArgs e)
{ //调用方法
Init();
//绑定下拉框
cmba.Text = "请选择";
cmba.Text = "白色";
//卡车载重的文本框不可用
textBox6.Enabled = false; } public void Init()
{
//初始化租车
Vehicle1 c = new Car("白色", , "京A666666", "兰博基尼", , "xs", );
//添加车
dy.Add(c.LicenseNO, c); Vehicle1 car = new Car("红色", , "鲁A999999", "法拉利", , "zs", );
dy.Add(car.LicenseNO, car); Vehicle1 t = new Truck("黑色", , "鲁A333333", "本田思域", , "hs", , );
doy.Add(t.LicenseNO, t); Vehicle1 tk = new Truck("金色", , "鲁A888888", "东风雪铁龙", , "ps", , );
doy.Add(tk.LicenseNO, tk);
} private void button3_Click(object sender, EventArgs e)
{
//退出
this.Close();
}
// listView1绑定数据(租车)
public void show()
{
//清空租车的ListView1
listzc.Items.Clear();
//循环遍历(租车的双列集合)
foreach (var item in dy)
{
//
ListViewItem cc = new ListViewItem(item.Key);
cc.SubItems.Add(item.Value.Name);
cc.SubItems.Add(item.Value.Color);
//
cc.SubItems.Add(item.Value.RentDate.ToString());
cc.SubItems.Add(item.Value.DailyRent.ToString()); if (item.Value is Truck)
{
//
cc.SubItems.Add(((item.Value) as Truck).Load.ToString()); }
else
{
cc.SubItems.Add("");
}
listzc.Items.Add(cc);
}
}

     // listView2绑定数据(还车)
public void showw()
{
listhc.Items.Clear();
foreach (var item in doy)
{
//创建对象 并取K键,值
ListViewItem ccc = new ListViewItem(item.Key);
//
ccc.SubItems.Add(item.Value.Name);
ccc.SubItems.Add(item.Value.Color);
ccc.SubItems.Add(item.Value.RentDate.ToString());
ccc.SubItems.Add(item.Value.DailyRent.ToString()); if (item.Value is Truck)
{
ccc.SubItems.Add(((item.Value) as Truck).Load.ToString()); }
else
{
ccc.SubItems.Add("");
}
listhc.Items.Add(ccc);
} }
//刷新listView (zc)
private void button1_Click(object sender, EventArgs e)
{
showw();
}
//刷新listView(hc)
private void button5_Click(object sender, EventArgs e)
{
show();
}
// 租车
private void button4_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox2.Text.Trim()))
{
MessageBox.Show("请填写租车姓名", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
if (listhc.SelectedItems.Count < )
{
MessageBox.Show("请选择租车", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{ string key = listzc.SelectedItems[].Text;
doy.Add(dy[key].LicenseNO, dy[key]);
if (dy.ContainsKey(key))
{
dy.Remove(key);
show();
}
}
}
}

  // 结算
private void button2_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text.Trim()))
{
MessageBox.Show("请输入租车天数", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
if (listhc.SelectedItems.Count < )
{
MessageBox.Show("请选择还车", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
string key = listhc.SelectedItems[].Text;
doy[key].RentDate = int.Parse(this.textBox1.Text);
double a = doy[key].DailyRent;
double totalPrice = doy[key].CalcPrice();
string msg = string.Format("您的总价是:" + totalPrice.ToString());
MessageBox.Show(msg, "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
dy.Add(doy[key].LicenseNO, doy[key]);
if (doy.ContainsKey(key))
{
doy.Remove(key);
this.showw();
}
}
} }
//入库
private void button6_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(txtchep.Text.Trim()) || string.IsNullOrEmpty(txtchex.Text.Trim())
|| string.IsNullOrEmpty(cmba.Text.Trim()) || string.IsNullOrEmpty(txtje.Text.Trim())
|| string.IsNullOrEmpty(txtsj.Text.Trim()))
{
MessageBox.Show("请完善新车入库信息","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
Vehicle1 vehicle = null;
if (radioButton1.Checked == true)
{
vehicle = new Car(cmba.Text, int.Parse(txtje.Text), txtchep.Text, txtchex.Text, , "s", int.Parse(txtsj.Text));
}
else
{
vehicle = new Truck(cmba.Text, int.Parse(txtje.Text), txtchep.Text, txtchex.Text, int.Parse(txtsj.Text), txtsj.Text, , int.Parse(textBox6.Text));
}
try
{
dy.Add(vehicle.LicenseNO, vehicle);
MessageBox.Show("添加成功");
}
catch (Exception)
{
MessageBox.Show("车牌号重复");
}
}
}
// 轿车
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
//
radioButton1.Enabled = false;
}
//卡车
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
radioButton2.Enabled = true;
}

C#汽车租赁系统 完整版的更多相关文章

  1. Java汽车租赁系统[源码+数据库]

    系统名称 Java汽车租赁系统   (源码在文末) 系统概要 汽车租赁系统总共分为两个大的模块,分别是系统模块和业务模块.其中系统模块和业务模块底下又有其子模块. 功能模块 一.业务模块 1.客户管理 ...

  2. Java代码~~汽车租赁系统

    租车信息: 输出结果: 代码: 1.先定义抽象类(汽车类:Moto) package cn.aura.demo01; public abstract class Moto { //公共属性 priva ...

  3. 深入.NET和C#的小型汽车租赁系统的框架

    前言:写这个小型系统之前呢,我们应该要猜测可能要用到哪些知识点. 那么对于这个小型系统:主要用到了如下的知识:  封装,集合(ArrayList和HashTable)和泛型和非泛型集合(泛型:List ...

  4. 新手之VM下安装centos版本Linux系统完整版!

    一.安装必备软件 1:下载好VM workstations虚拟机 2:下载好你要安装的centos版本. 如果没有,请自己先百度下载好~或者找我要. 二.开始安装 VM workstation部分 1 ...

  5. xshell连接vmware系统完整版

    设置静态ip需要修改文件一共有两个要修改的文件vi /etc/resolv.confvi /etc/sysconfig/network-scripts/ifcfg-eno16777736 第一个文件 ...

  6. C#汽车租赁系统

    类图: 父类(车类,抽象类) /// <summary> /// 车辆基本信息类.搞一个抽象类玩玩 /// </summary> public abstract class V ...

  7. 一种基于Java Swing/HTML/MySQL的汽车租赁系统

    该项目是一个Java的课程作业(大二),主要运用Java.Swing.HTML.MySQL,实现基本的租车逻辑.界面可视化.信息导出.数据存储等功能.实现管理员.用户两种角色登录,并结合Java开发中 ...

  8. SVN 添加账号密码的方法(Windows 系统完整版)

    前言: 本人新接了一个项目,目前该项目基本完工,现在想要将该项目上传至SVN上保管,然后设置并添加账号密码信息,以便于后期加入这个项目的小伙伴可以通过新增加的账号密码信息获取到SVN项目,以便后期项目 ...

  9. Springboot+vue 实现汽车租赁系统(毕业设计二)(前后端项目分离)

    文章目录 1.系统功能列表 2.管理员端界面 2.1 商家登录界面 2.2 用户信息管理界面 2.3 汽车管理界面 2.4 订单界面 2.5 汽车图形报表 2.6 优惠券新增界面 3.普通用户界面 3 ...

随机推荐

  1. top命令的使用

    原地址:https://mp.weixin.qq.com/s/DVX86UgZDiTspVe497KKWw

  2. postman --- 如何在用户登陆和CSRF验证的场景下使用

    一.前提 安装postman和Postman Interceptor postman应用放到桌面: 二.用户登陆 这种场景很简单,只要开启Interceptor,然后先请求登陆地址,再继续请求其他地址 ...

  3. Java Collection秋招复习

    抽象类和接口的区别 我们先来看一下抽象类 * @auther draymonder */ public abstract class AbstractClassTest { private int T ...

  4. 系统学习 Java IO (十)----回退流 PushbackInputStream

    目录:系统学习 Java IO---- 目录,概览 PushbackInputStream 旨在从 InputStream 解析数据时使用. 有时您需要先读取几个字节以查看将要发生的事情,然后才能确定 ...

  5. Python程序中的协程操作-gevent模块

    目录 一.安装 二.Gevent模块介绍 2.1 用法介绍 2.2 例:遇到io主动切换 2.3 查看threading.current_thread().getName() 三.Gevent之同步与 ...

  6. 数据预处理之独热编码(One-Hot):为什么要使用one-hot编码?

    一.问题由来 最近在做ctr预估的实验时,还没思考过为何数据处理的时候要先进行one-hot编码,于是整理学习如下:  在很多机器学习任务如ctr预估任务中,特征不全是连续值,而有可能是分类值.如下: ...

  7. 并发编程-concurrent指南-ReadWriteLock

    ReadWriteLock也是一个接口,在它里面只定义了两个方法: public interface ReadWriteLock { /** * Returns the lock used for r ...

  8. 关于c++中的Debug以及runtime_error之segment_fault

    差不多每次编一些竞赛类的程序都会至少给我报一次runtime_error(运行时错误).这或许也是广大OIer心中永远的痛.~_~ 本文主要讨论如何对runtime_error以及其中的segment ...

  9. Spring入门配置(一) - IOC

    一.初始命名空间配置 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="h ...

  10. POJ 2679:Adventurous Driving(SPFA+DFS)

    http://poj.org/problem?id=2679 Adventurous Driving Time Limit: 1000MS   Memory Limit: 65536K Total S ...