ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:190.17KB ,
资源ID:8000875      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8000875.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c#课程设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c#课程设计.docx

1、c#课程设计目录设计题目 2题目: 2完成任务: 2题目分析及实现步骤 2题目分析: 2阶段任务: 2阶段1:创建窗体。 2阶段2:创建不同类型的汽车对象,填充到窗体。 4阶段3:选择一项,实现租赁,添加到已租赁集合。 5阶段4:在还车窗口进行结算,不同类型的车结算方式不同。 5阶段5:使用简单工厂实现添加不同类型的汽车。 6程序代码 6Form1.cs 6Car.cs 10Truck.cs 11Vehicle.cs 12VenhicleFactory.cs 14设计体会 14设计题目题目:租车系统完成任务:(1) 创建租车系统窗体。(2) 系统可以实现两种类型的汽车入库。(3) 不同类型的汽

2、车计算价格方式不同。题目分析及实现步骤题目分析:此租车系统就是对泛型集合的操作,通过创建两个泛型集合,调用一定的方法,实现对集合中元素的增删,即可实现题目要求的功能。租车部分,就是将可出租车辆中被选中的项的用户设置成文本框中的名字,同时将该项移动到已出租车辆集合中。还车部分,就是将已出租车辆中被选中的项的使用时间设置成文本框中的数字,调用结账函数的语句,实现结算并显示出来,同时将该项移动到可出租车辆集合中。新车入库则直接使用汽车工厂类中的创建函数,函数所需的参数从文本框等获得,返回一个交通工具对象,最后将该对象添加到可出租汽车集合中。阶段任务:阶段1:创建窗体。创建程序界面的窗体,添加所需的控

3、件,实现下图界面所示效果:阶段2:创建不同类型的汽车对象,填充到窗体。创建汽车类、轿车类、卡车类,实现继承关系,子类使用base调用父类的构造函数。类关系图如下图所示:泛型集合Dictionary(可租车辆集合),保持两种类型的汽车,并将泛型集合填充到窗体中。本阶段实现效果如下图所示:阶段3:选择一项,实现租赁,添加到已租赁集合。在刷新按钮单击事件中添加刷新代码,在租车按钮单击事件中添加代码,实现:选择一辆车,录入一个姓名,实现租车;将选择的车保存到租出的车的集合中;将租出的车移除可租车辆的集合。实现的程序界面如下图所示:阶段4:在还车窗口进行结算,不同类型的车结算方式不同。将已租车辆的集合填

4、充到ListView中;选择一辆车,录入天数,计算价格;计算价格的方法,作为抽象方法放在父类中,子类重写。程序实现结果如下图:阶段5:使用简单工厂实现添加不同类型的汽车。在新车入库窗体中,添加可租用的新车,添加项为使用简单工厂创建不同的子类对象。程序实现如下图:程序代码Form1.csnamespace CarSystem public partial class Form1 : Form Dictionary vehicles; Dictionary rentVehicles; public Form1() InitializeComponent(); private void Form1_

5、Load(object sender, EventArgs e) /this.txtCapacity.Enabled = false; /刷新初始数据 this.tbLoad.Text = 0; vehicles = new Dictionary(); Car car = new Car(京R00000, 奥迪A6L, 黑色, 3, 240); Truck truck = new Truck(京D11111, 东风, 蓝色, 3, 240, 20); vehicles.Add(car.LicenseNO, car); vehicles.Add(truck.LicenseNO, truck);

6、rentVehicles = new Dictionary(); /刷新需要结算车的初始信息 Car rentCar = new Car(沪R00000, 宝马318, 白色, 3, 250); rentCar.RentUser= this.tbUser.Text; Truck rentTruck = new Truck(粤D11111, 东风, 蓝色, 3, 240, 20); rentTruck.RentUser = this.tbUser.Text; /保存到泛型集合 rentVehicles.Add(rentCar.LicenseNO, rentCar); rentVehicles.A

7、dd(rentTruck.LicenseNO, rentTruck); UpdateRentCar(); UpdateBackCar(); private void UpdateRentCar()/刷新函数,刷新可出租车辆 this.lvRentCar.Items.Clear(); foreach(Vehicle v in vehicles.Values ) ListViewItem item=new ListViewItem(v.LicenseNO ); item.SubItems.AddRange(new string v.Name, v.Color, v.YearsOfService.T

8、oString(), v.DailyRent.ToString(), v.Load.ToString() ); lvRentCar.Items.Add(item); private void UpdateBackCar()/刷新函数,刷新已出租车辆 this.lvBackCar.Items.Clear(); foreach (Vehicle v in rentVehicles.Values) ListViewItem item = new ListViewItem(v.LicenseNO); item.SubItems.AddRange(new string v.Name, v.Color,

9、v.YearsOfService.ToString(), v.DailyRent.ToString(), v.Load.ToString() ); lvBackCar.Items.Add(item); private void btnRefreshz_Click(object sender, EventArgs e)/刷新按钮 this.UpdateRentCar(); private void btnRefreshh_Click(object sender, EventArgs e)/刷新按钮 this.UpdateBackCar(); private void btnRent_Click(

10、object sender, EventArgs e)/租车 try if (tbUser.Text = ) MessageBox.Show(请输入租用者姓名!); else string key = lvRentCar.SelectedItems0.Text; vehicleskey.RentUser = this.tbUser.Text; rentVehicles.Add(vehicleskey.LicenseNO, vehicleskey); if (vehicles.ContainsKey(key) vehicles.Remove(key); UpdateRentCar(); Upda

11、teBackCar(); catch (ArgumentOutOfRangeException) MessageBox.Show(请选中所要租车的车牌号!); private void btnExit_Click(object sender, EventArgs e)/退出 Application.Exit(); private void btnAccounts_Click(object sender, EventArgs e)/还车 try if (tbDays.Text = ) MessageBox.Show(请输入租用天数!); else string key = lvBackCar.S

12、electedItems0.Text; rentVehicleskey.RentDate= Int16.Parse(tbDays.Text); rentVehicleskey.RentUser = ; vehicles.Add(rentVehicleskey.LicenseNO, rentVehicleskey); MessageBox.Show(结算金额为 + rentVehicleskey.CalcPrice() + ¥); if (rentVehicles.ContainsKey(key) rentVehicles.Remove(key); UpdateBackCar(); Update

13、RentCar(); catch (ArgumentOutOfRangeException) MessageBox.Show(请选中所要还车的车牌号!); private void btnIn_Click(object sender, EventArgs e)/新车入库 try string str = ; if (rbCar.Checked) str = car; else if (rbTruck.Checked) str = truck; Vehicle vel = VenhicleFactory.CreateVehicle(tbLisenceNo.Text, tbName.Text, c

14、bColor.SelectedItem.ToString(), Int16.Parse(tbUseDays.Text), Double.Parse(tbDayMoney.Text), Int16.Parse(tbLoad.Text), str); vehicles.Add(vel.LicenseNO, vel); catch (Exception) MessageBox.Show(输入数据有误,请重新输入!); UpdateRentCar(); Car.csnamespace CarSystem class Car : Vehicle public Car(string licenseNO,

15、string name, string color, int yearsOfService, double dailyRent) : base(licenseNO, name, color, yearsOfService, dailyRent,0) public override double CalcPrice() double totalPrice = 0; double basicPrice = this.RentDate * this.DailyRent; if (this.RentDate = 30) totalPrice = basicPrice; else totalPrice

16、= basicPrice + (this.RentDate - 30) * this.DailyRent * 0.1; return totalPrice; Truck.csnamespace CarSystem class Truck: Vehicle /卡车类继承自vehicle public Truck(string licenseNO, string name, string color, int yearsOfService, double dailyRent,int load) : base(licenseNO, name, color, yearsOfService, daily

17、Rent,load) public override double CalcPrice() double totalPrice = 0; double basicPrice = this.RentDate* this.DailyRent; if (this.RentDate= 30) totalPrice = basicPrice; else /30以上超出部分:每天、每吨(载重量)增加日租金的10% totalPrice = basicPrice + (this.RentDate- 30) * this.Load * this.DailyRent * 0.1; return totalPri

18、ce; Vehicle.csnamespace CarSystem abstract class Vehicle private int rentDate; public int RentDate get return rentDate; set rentDate = value; private string rentUser; public string RentUser get return rentUser; set rentUser = value; private int load; public int Load get return load; set load = value

19、; private string licenseNO; public string LicenseNO get return licenseNO; set licenseNO = value; private string name; public string Name get return name; set name = value; private string color; public string Color get return color; set color = value; private int yearsOfService; public int YearsOfSer

20、vice get return yearsOfService; set yearsOfService = value; private double dailyRent; public double DailyRent get return dailyRent; set dailyRent = value; public Vehicle(string licenseNO, string name, string color, int yearsOfService, double dailyRent,int load) this.licenseNO = licenseNO; this.name

21、= name; this.color = color; this.yearsOfService = yearsOfService; this.dailyRent = dailyRent; this.load = load; public abstract double CalcPrice(); VenhicleFactory.csnamespace CarSystem class VenhicleFactory public static Vehicle CreateVehicle(string licenseNO, string name, string color, int yearsOf

22、Service, 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 vehicl

23、e; 设计体会设计体会:通过此次课程设计,我更加深刻的理解了C#程序设计语言的魅力。它的强大功能不仅体现在其类库中,还有各个控件的应用更是方便且节省了程序员在做题目时所花的时间。现在感觉C#很像一个模板,我们想做什么只要把大的框架写好了,其他的直接在类库或控件中添加就行,这样就能实现我们所想实现的功能。虽然我成功的做出了老师要求的题目,其中也遇到不少困难,但最后通过查阅资料,请教同学,回想平时学习积累的经验,最终完成了一个完整的租车系统,感觉很欣慰。虽然我没有参加我们的C#兴趣学习小组,但我也一直没有放弃C#的学习,我相信,只要我们能掌握好一门编程语言,其他的语言也不会难到哪里去,因为各种编程语言中有很多东西是相通的,并且我们计算机的学生只要有机会就应该要多了解一些其他语言,这对我们出去工作一定会有很大帮助的。而且通过这学期的C#学习及做本次C#的课程设计,让我的JAVA也提高了不少。最后,感谢余老师这学期来带我们C#课程以及对我们计算机专业的就业方向的指导和教育!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1