深入.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篇:综合练习——单身狗租赁系统(数组版)
因为现在只学习了基本语法,所以在综合练习之前,先补充关于方法概念. 方法的作用:把一系列的代码放在一起,然后再取个别名.之后通过这个别名的调用,就相当于执行了这一系列的代码. 方法的语法:([]中的内 ...
随机推荐
- Elasticsearch查询——布尔查询Bool Query
Elasticsearch在2.x版本的时候把filter查询给摘掉了,因此在query dsl里面已经找不到filter query了.其实es并没有完全抛弃filter query,而是它的设计与 ...
- KnockoutJS 3.X API 第七章 其他技术(5) 使用其他事件处理程序
在大多数情况下,数据绑定属性提供了一种干净和简洁的方式来绑定到视图模型. 然而,事件处理是一个常常会导致详细数据绑定属性的领域,因为匿名函数通常是传递参数的推荐技术. 例如: <a href=& ...
- 设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。
一. 设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...
- EasyUI刚加载时候Window窗体自动弹出的解决办法
- 字典 Key值转换为数组
public static string[] GetCategories() { Dictionary<string, int> itemMap = new Dictionary<s ...
- 前端学PHP之面向对象系列第一篇——类和对象
× 目录 [1]类 [2]成员属性[3]成员方法[4]对象[5]成员访问[6]this 前面的话 面向对象程序设计(OOP)是一种计算机编程架构.计算机程序由单个能够起到子程序作用的单元或对象组成,为 ...
- Android图片处理
相信做Android开发的小伙伴对于Android图片压缩.裁剪一定有很深的印象,今天我将带领大家一起学习一下这个看着高深莫测的知识,以便再以后的学习.工作中可以帮助到大家. 首先我们看一下这个问题出 ...
- 一起学微软Power BI系列-官方文档-入门指南(6)Power BI与Excel
今天介绍了官方入门文档中有关PowerBI和Excel的知识.前几篇入门文档有点仓促,加上最近时间的研究,会有更多技巧性和入门型的文章或者视频发布,最后2篇入门文档将更加详细一点,因为部分文章进行简单 ...
- Java 8新特性-2 接口定义增强
为了解决当原有的接口中方法不足时,向原有的接口中添加新的方法,该接口下的N多实现类也需要重写该方法的问题!Java8引入了接口定义增强概念! Java8 打破了原有的接口的方法定义: 公共的.抽象的 ...
- Android随笔之——闹钟制作铺垫之AlarmManager详解
说实话,之前写的两篇博客Android广播机制Broadcast详解.Android时间.日期相关类和方法以及现在要写的,都算是为之后要写的闹钟应用做铺垫,有兴趣的话,大家可以去看看前两篇博客. 一. ...