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. 优秀的Restful API应该是什么样的

    1 你一直在错误的使用http协议 现在微服务真是火的一塌糊涂!大街小巷,逢人必谈微服务,各路大神纷纷忙着把自家的单体服务拆解成多个Web微小服务!而作为微服务之间通信的桥梁,Web API的设计就显 ...

  2. Vue.js 面试题整理

    Vue项目结构介绍 build 文件夹:用于存放 webpack 相关配置和脚本. config 文件夹:主要存放配置文件,比如配置开发环境的端口号.开启热加载或开启gzip压缩等. dist 文件夹 ...

  3. 最全java多线程总结2--如何进行线程同步

      上篇对线程的一些基础知识做了总结,本篇来对多线程编程中最重要,也是最麻烦的一个部分--同步,来做个总结.   创建线程并不难,难的是如何让多个线程能够良好的协作运行,大部分需要多线程处理的事情都不 ...

  4. VUE、微信for动态变量取值(拼接取值)

    item.value是其它循的值如value=[1,2,3] {{'images[arrAy' + item.value+']'}} 那么拼接结果是 {{images[arrAy1]}}, {{ima ...

  5. C#版剑指Offer-001二维数组中的查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  6. 【前端优化】js图片懒加载及优化

    一.前言 为啥要对图片使用懒加载?我们首先来聊聊这个问题,对于页面来说架子啊速度影响着最大的就是图片,一张普通的图片可以达到4-5M的大小,而代码压缩也就只有几十KB.当页面图片过多的时候,页面加载速 ...

  7. python面试题(二)字符串常用函数

    今天在微信的公众号上看到了一遍python学习开发的文章,里面有一些python的面试题,碰巧最近python不知道学什么了,索性学一下这篇文章啊!!先写一下一些字符串的常用函数.(ps:本人太菜,若 ...

  8. HDU 6019:MG loves gold(暴力set)

    http://acm.hdu.edu.cn/showproblem.php?pid=6019 题意:给出n个颜色的物品,你每次取只能取连续的不同颜色的物品,问最少要取多少次. 思路:从头往后扫,用se ...

  9. 跟我学SpringCloud | 第十一篇:使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪

    SpringCloud系列教程 | 第十一篇:使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪 Springboot: 2.1.6.RELEASE SpringCloud: ...

  10. redis module 学习—官网文档整理

    前言 redis在4.0版本中,推出了一个非常吸引的特性,可以通过编写插件的模式,来动态扩展redis的能力.在4.0之前,如果用户想拥有一个带TTL的INCRBY 命令,那么用户只能自己去改代码,重 ...