深入.NET和C#的小型汽车租赁系统的框架
前言:写这个小型系统之前呢,我们应该要猜测可能要用到哪些知识点。
那么对于这个小型系统:主要用到了如下的知识:
封装,集合(ArrayList和HashTable)和泛型和非泛型集合(泛型:List<>和非泛型:Dictioanry<>),
构造函数,方法重载,多态(继承,抽象:抽象类和抽象方法),怎么动态绑定数据到ListView上-----------
效果图:



第一步.
创建几个类
01:工具类(vehicle)(父类,超类,基类),此类为抽象类
有方法重载,构造函数
该类主要负责提供车类的属性
属性:
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; }
02:创建一个汽车类(Car)(子类)
构造函数,方法重载。
03:创建一个卡车 类(Truck)(子类)
构造函数,方法重载
属性:
public int Load
{
get { return load; }
set { load = value; }
}
04:创建一个工具(工厂)类(VehicleUtil)
第二步.
代码实现思路:
01:工具,父类(vehicle):
代码如下:
public Vehicle()
{
}
public Vehicle(string color, double dailyrent, string licenseno, string name, int yearsofservice)
{
Color = color;
DailyRent = dailyrent;
LicenseNO = licenseno;
Name = name;
YearsOfService = yearsofservice;
}
public abstract double CalcPrice();
02:汽车类(Car)
代码如下:
public Car()
{
}
public Car(string licenseno, string name, string color, int yearsofservice, double dailyrent)
{
Color = color;
DailyRent = dailyrent;
LicenseNO = licenseno;
Name = name;
YearsOfService = yearsofservice;
}
public override double CalcPrice()
{
;
totalPrice = RentDate * DailyRent;
return totalPrice;
}
03:卡车 类(Truck)
代码如下:
public Truck(string licenseno, string name, string color, int yearsofservice, double dailyrent, int load)
{
Color = color;
DailyRent = dailyrent;
LicenseNO = licenseno;
Name = name;
YearsOfService = yearsofservice;
Load = load;
}
public override double CalcPrice()
{
;
totalPrice = RentDate * DailyRent;
return totalPrice;
}
04:工具(工厂)类(VehicleUtil
代码如下:
public static Vehicle CreateVehicle(string licenseno, string name, string color, int yearsofservice, double dailyrent, int load, string type)
{
Vehicle vehicle = null;
switch (type)
{
case "Car":
vehicle = new Car(licenseno, name, color, yearsofservice, dailyrent);
break;
case "Truck":
vehicle = new Truck(licenseno, name, color, yearsofservice, dailyrent, load);
break;
default:
break;
}
return vehicle;
}
第三步.
出租事件:(btnRent_Click(object sender, EventArgs e))
关键代码如下:
)
{
MessageBox.Show("请选择一行");
return;
}
if (txtUser.Text == "")
{
MessageBox.Show("请输入客户名字!");
return;
}
].Text;
Vehicle vehicle = vehicles[key];
vehicles.Remove(key);
rentvehicles.Add(key, vehicle);
PrintVehicles(vehicles, lvlist);
MessageBox.Show("出租成功!!");
//PrintVehicles绑定数据到listview上
public void PrintVehicles(Dictionary<string, Vehicle> listprirnt, ListView lvinfo)
{
ListViewItem lv=null;
lvinfo.Items.Clear();
foreach (Vehicle item in listprirnt.Values)
{
if (item is Car)
{
lv = new ListViewItem(item.LicenseNO);
lv.SubItems.Add(item.Name);
lv.SubItems.Add(item.Color.ToString());
lv.SubItems.Add(item.YearsOfService.ToString());
lv.SubItems.Add(item.DailyRent.ToString());
lvinfo.Items.Add(lv);
}
else if(item is Truck)
{
lv = new ListViewItem(item.LicenseNO);
lv.SubItems.Add(item.Name);
lv.SubItems.Add(item.Color.ToString());
lv.SubItems.Add(item.YearsOfService.ToString());
lv.SubItems.Add(item.DailyRent.ToString());
lv.SubItems.Add(((Truck)item).Load.ToString());
lvinfo.Items.Add(lv);
}
第四步
还车.在btnGiveMoney_Click事件中写
if (txtDayNum.Text == string.Empty)
{
MessageBox.Show("请输入天数!");
return;
}
].Text;
Vehicle vechile = rentvehicles[addNum];
rentvehicles.Remove(addNum);
vechile.RentDate = Convert.ToInt32(txtDayNum.Text);
;
//调用计算价格方法
money = vechile.CalcPrice();
MessageBox.Show("你一共要福le" + money);
vehicles.Add(addNum, vechile);
//刷新
PrintVehicles(rentvehicles, lvlistGive);
MessageBox.Show("成功!!");
第五步.
添加车辆在 btnIncAR_Click事件中写
if (txtWeight.Text == "" || txtUseTime.Text == "" || txtType.Text == "" || txtID.Text == "" || txtDayRentMoney.Text == "" || cboColor.Text == "")
{
MessageBox.Show("请您填写完整!");
}
else
{
string licon = txtID.Text;
string color = cboColor.Text;
double mon = Convert.ToDouble(txtDayRentMoney.Text);
int tine = Convert.ToInt32(txtUseTime.Text);
string ty = txtType.Text;
if (radJiaoCar.Checked)
{
Car ca = new Car(licon, ty, color, tine, mon);
vehicles.Add(licon, ca);
}
if (radKaCar.Checked)
{
int load = Convert.ToInt32(txtWeight.Text);
Truck tr = new Truck(licon, ty, color, tine, mon, load);
vehicles.Add(licon, tr);
}
MessageBox.Show("添加成功!");
}
注:此文没有代码的注释,是因为想在看代码的任何情况下,
也能看懂代码的含义。
深入.NET和C#的小型汽车租赁系统的框架的更多相关文章
- Java汽车租赁系统[源码+数据库]
系统名称 Java汽车租赁系统 (源码在文末) 系统概要 汽车租赁系统总共分为两个大的模块,分别是系统模块和业务模块.其中系统模块和业务模块底下又有其子模块. 功能模块 一.业务模块 1.客户管理 ...
- Java代码~~汽车租赁系统
租车信息: 输出结果: 代码: 1.先定义抽象类(汽车类:Moto) package cn.aura.demo01; public abstract class Moto { //公共属性 priva ...
- C#汽车租赁系统
类图: 父类(车类,抽象类) /// <summary> /// 车辆基本信息类.搞一个抽象类玩玩 /// </summary> public abstract class V ...
- Springboot+vue 实现汽车租赁系统(毕业设计二)(前后端项目分离)
文章目录 1.系统功能列表 2.管理员端界面 2.1 商家登录界面 2.2 用户信息管理界面 2.3 汽车管理界面 2.4 订单界面 2.5 汽车图形报表 2.6 优惠券新增界面 3.普通用户界面 3 ...
- C#汽车租赁系统 完整版
Truck.cs类 //卡车类 public class Truck : Vehicle1 { //重载 public int Load { get; set; } //构造函数 public T ...
- 一种基于Java Swing/HTML/MySQL的汽车租赁系统
该项目是一个Java的课程作业(大二),主要运用Java.Swing.HTML.MySQL,实现基本的租车逻辑.界面可视化.信息导出.数据存储等功能.实现管理员.用户两种角色登录,并结合Java开发中 ...
- .Net中的AOP系列之构建一个汽车租赁应用
返回<.Net中的AOP>系列学习总目录 本篇目录 开始一个新项目 没有AOP的生活 变更的代价 使用AOP重构 本系列的源码本人已托管于Coding上:点击查看. 本系列的实验环境:VS ...
- Lyft、Uber、滴滴涉足汽车租赁领域,能打破既有汽车所有权模式吗?
自共享经济出现之后,众多相关项目遍地开花.这些共享经济项目对于人们来说,最直观的感受就是实惠.性价比高.方便.不过抛开这些使用层面的优点来看的话,共享经济项目最大的特色或许就是改变了事物的所有权.一件 ...
- 《Java从入门到放弃》JavaSE篇:综合练习——单身狗租赁系统(数组版)
因为现在只学习了基本语法,所以在综合练习之前,先补充关于方法概念. 方法的作用:把一系列的代码放在一起,然后再取个别名.之后通过这个别名的调用,就相当于执行了这一系列的代码. 方法的语法:([]中的内 ...
随机推荐
- Java中常见的29个运行异常
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotR ...
- Atitit 分区后的查询 mysql分区记录的流程与原理
Atitit 分区后的查询 mysql分区记录的流程与原理 1.1.1. ibd是MySQL数据文件.索引文件1 1.2. 已经又数据了,如何分区? 给已有的表加上分区 ]1 1.3. 分成4个区, ...
- Nginx重写
一.location匹配 1.分类:(1)正则location:~,~*(2)普通location:=,^~,@,无2.匹配规则:(1) = 精确匹配.如果找到,停止搜索(2) ^~ 普通 ...
- WCF学习之旅—WCF第二个示例(五)
二.WCF服务端应用程序 第一步,创建WCF服务应用程序项目 打开Visual Studio 2015,在菜单上点击文件—>新建—>项目—>WCF服务应用程序.在弹出界面的“名称”对 ...
- WPF入门教程系列十五——WPF中的数据绑定(一)
使用Windows Presentation Foundation (WPF) 可以很方便的设计出强大的用户界面,同时 WPF提供了数据绑定功能.WPF的数据绑定跟Winform与ASP.NET中的数 ...
- VS中行号对齐的辅助线(虚线)去除
3张图 2 3
- Sql Server系列:Update语句
1 UPDATE语法结构 [ WITH <common_table_expression> [...n] ] UPDATE [ TOP ( expression ) [ PERCENT ] ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 咨询管理的架构
咨询.留言.投诉等功能是网站应具备的基本功能,可以加强管理员与用户的交流,在上次完成文章部分后,这次开始做Member区域的咨询功能(留言.投诉都是咨询).咨询跟文章非常相似,而且内容更少.更简单. ...
- 深入理解脚本化CSS系列第三篇——脚本化CSS类
前面的话 在实际工作中,我们使用javascript操作CSS样式时,如果要改变大量样式,会使用脚本化CSS类的技术,本文将详细介绍脚本化CSS类 style 我们在改变元素的少部分样式时,一般会直接 ...
- boa + ajax + cgi ajax请求cgi
最近公司要做一个通讯管理机,然后需要和另外一个同事一起做,我们需要用到boa+Ajax+CGI,以前没试过与CGI交互,一开始发现问题挺大的,用ajax请求cgi,总是不返回数据,又或者请求回来的是c ...