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. 章节十四、7-如何切换到iFrame

    以下案例使用https://jqueryui.com/网站为例. 一.如何确定元素是否包含在iFarme中? 1.按F12打开发者选项,定位到指定的元素. 2.向上查找元素是否被包含在ifarme标签 ...

  2. 【转】子弹短信内部技术分享:Redis

    原理 Redis 是一个内存型「数据库」,除存储之外,它还有许多强大的命令,使之远远超出了数据库的定义,所以官方称之为「data structure store」,数据结构存储系统. 通过 Redis ...

  3. C# Winfrom 简单的运用Timer控件

    注意,在使用DateAndTime时,需要添加引用 using Microsoft.VisualBasic;否则不可以计算时间之间的差值. using System; using System.Col ...

  4. 【oracle】Oracle整理笔记

    原博主总结了很多技能和小技巧,本人觉的非常实用,转载记录下: Oracle学习笔记整理手册 作者:@smileNicky 链接:https://blog.csdn.net/u014427391/art ...

  5. CSS3文本与字体

    一.CSS3 换行 1.word-break(规定自动换行的处理方法) word-break: normal / break-all / keep-all; /* normal:使用浏览器默认的换行规 ...

  6. AD域控制器安装使用

    AD域控制器安装使用 一. 在服务器上安装域控制器 二. 将此服务器提升为域控制器 三. 将主机加入到我们创建的域中 在AD域控制器上查看加入的主机

  7. EXPLAIN说明

    列名 类型 解释 id   SELECT语句的ID编号,优先执行编号较大的查询,如果编号相同,则从上向下执行 select_type SIMPLE 一条没有UNION或子查询部分的SELECT语句 P ...

  8. HDU 6053:TrickGCD(莫比乌斯反演)

    题目链接 题意 给出n个数,问在这n个数里面,有多少组bi(1<=bi<=ai)可以使得任意两个bi不互质. 思路 想法就是枚举2~min(ai),然后去对于每个ai都去除以这些质数,然后 ...

  9. 分享常见的HTTP状态码

    本内容摘抄自RUNOOB.COM 当浏览一个网页时,浏览器会向网页所在服务器发出请求.当浏览器确定接收并显示网页之前,此网页所在的服务器会返回一个含有HTTP状态码(HTTP Status Code) ...

  10. Docker环境下的前后端分离项目部署与运维(十二)使用Portainer管理Docker

    安装 docker hub地址:https://hub.docker.com/r/portainer/portainer/ # 每台服务器都要安装 docker pull portainer/port ...