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. 18 HTML标签以及属性全

    基本结构标签: <HTML>,表示该文件为HTML文件 <HEAD>,包含文件的标题,使用的脚本,样式定义等 <TITLE>---</TITLE>,包含 ...

  2. win2008环境mysql主从配置

    一.主库相关配置.设置 step1:主库配置文件 [mysqld] # 数据库id,唯一 server-id = 1# 二进制日志文件,必填项,否则不能同步数据;如果不取名字的话,会以计算机的名字加编 ...

  3. mini木马c源码

    #pragma comment(lib, "ws2_32.lib") #pragma comment(linker,"/subsystem:\"windows\ ...

  4. HBase 学习之路(十)—— HBase的SQL中间层 Phoenix

    一.Phoenix简介 Phoenix是HBase的开源SQL中间层,它允许你使用标准JDBC的方式来操作HBase上的数据.在Phoenix之前,如果你要访问HBase,只能调用它的Java API ...

  5. Java上机题(封装)(编写student类)

    今天帮大一的童鞋写Java上机题 题目虽然很简单,但是刚拿到题目的时候愣了一下,然后就疯狂get set QuQ 其实这是一个特别基本的封装的题目(之前实验室面试大二的时候竟然还有蛮多人不知道封装的概 ...

  6. Python中的函数及函数参数的使用

    函数:一个工具,随调随用 降级代码冗余 增加代码的复用性,提高开发效率,为了不成为cv战士 提高程序扩展性 函数有两个阶段:定义阶段,调用阶段. 定义时:只检查函数体内代码语法,不执行函数体内代码. ...

  7. BZOJ 3295:[Cqoi2011]动态逆序对(三维偏序 CDQ分治+树状数组)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3295 题意:简单明了. 思路:终于好像有点明白CDQ分治处理三维偏序了.把删除操作看作是插入操作,那 ...

  8. jsp传值

    是由a1.jsp发出请求然后由a2.jsp转发给ok.jsp,由ok.jsp响应a1.jsp. 但是这个转发过程是在服务端发生的,客户端不知道所以地址是不变的 转发请求的代码: request.get ...

  9. kuangbin专题 专题一 简单搜索 Shuffle'm Up POJ - 3087

    题意:(1)有两副颜色多样的扑克牌,(A~H)表示不同颜色,给你两副牌,S1,S2和一副你需要洗出的KEY,S12由S2最底部,S1底部...一直下去,直到洗成S12,就是图片展示的那样.(2)洗好的 ...

  10. 最近学习了HBase

    HBase是什么 最近学习了HBase,正常来说写这篇文章,应该从DB有什么缺点,HBase如何弥补DB的缺点开始讲会更有体感,但是本文这些暂时不讲,只讲HBase,把HBase相关原理和使用讲清楚, ...