欢迎访问 生活随笔!

尊龙游戏旗舰厅官网

当前位置: 尊龙游戏旗舰厅官网 > 编程语言 > c# >内容正文

c#

c#总结项目《汽车租聘系统》项目代码实例【全注释版】 -尊龙游戏旗舰厅官网

发布时间:2024/10/8 c# 22 豆豆
尊龙游戏旗舰厅官网 收集整理的这篇文章主要介绍了 c#总结项目《汽车租聘系统》项目代码实例【全注释版】 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

所有代码均为自己编写,未尽允许,请勿转载

因为所有代码都有比较完整的注释,就不再多写文字了

汽车租聘系统页面样子,程序未加载的截图

关系图

 

1.vehicle车辆信息类(车辆信息)

//车辆类public abstract class vehicle{//车的颜色private string carcolor;//车一天的租金private double carmoney;//车牌号private string carnum;//车的名字private string carname;//使用时间private int cartime;//使用人private string carusername;//使用天数private int carday;//构造函数public vehicle() { } //构造函数重载public vehicle(string carcolor,double carmoney,string carnum,string carname,int cartime,string caruesrname,int carday){this.carcolor = carcolor;this.carmoney = carmoney;this.carnum = carnum;this.carname = carname;this.cartime = cartime;this.carusername = caruesrname;this.carday = carday;}//抽象方法-计算租车的价格public abstract double jisuan(int days);public string carcolor{get{return carcolor;}set{carcolor = value;}}public double carmoney{get{return carmoney;}set{carmoney = value;}}public string carnum{get{return carnum;}set{carnum = value;}}public string carname{get{return carname;}set{carname = value;}}public int cartime{get{return cartime;}set{cartime = value;}}public string carusername{get{return carusername;}set{carusername = value;}}public int carday{get{return carday;}set{carday = value;}}}

2.truck卡车类(存一个卡车多出的载重信息)

//卡车类public class truck : vehicle{//卡车载重private int load;//构造函数public truck(string carcolor, double carmoney, string carnum, string carname, int cartime, string caruesrname, int carday,int load):base(carcolor, carmoney, carnum, carname, cartime, caruesrname, carday){ this.load = load; }//重写父类的抽象方法public override double jisuan(int days){double jieguo = this.carmoney * days;return jieguo;}public int load{get{return load;}set{load = value;}}}

3.car轿车类

//汽车类public class car : vehicle{//构造函数public car(string carcolor, double carmoney, string carnum, string carname, int cartime, string caruesrname, int carday): base(carcolor, carmoney, carnum, carname, cartime, caruesrname, carday){ }//重写父类的抽象方法public override double jisuan(int days){double jieguo = this.carmoney * days;return jieguo;}}

实现思路:

1.初始化车辆的数据

//存储租车信息dictionary diczy = new dictionary();//存储租出车的信息dictionary diczc = new dictionary();//初始化租车信息public void chushizc(){//未租。。。//卡车diczy.add("京a125648", new truck("红色", 300, "京a125648", "一汽大众a8", 3, "", 0, 32));//汽车diczy.add("豫a451356", new car("白色", 120, "豫a451356", "宝马3系t3运动款", 3, "", 0));updatalistzy();//租出。。。//汽车diczc.add("贵g451323", new car("蓝色", 120, "贵g451323", "奔驰a级", 3, "张三", 5));updatalistzc();}

2.声明两个方法来刷新待出租和已租出的车辆信息

//刷新-租车//刷新listview列表操作public void updatalistzy() {//清空操作this.listview1.items.clear();foreach(vehicle ves in diczy.values){listviewitem lis = new listviewitem(ves.carnum);//存储车辆载重string load = "";//判断是轿车还是卡车if(ves is car){load = "无";}else if(ves is truck){truck tk = ves as truck;load = convert.tostring(tk.load);}//向lis对象中添加中lis.subitems.addrange(new string[] { ves.carname, ves.carcolor, convert.tostring(ves.cartime), convert.tostring(ves.carmoney), load });//向listview控件中添加存储信息的lis对象this.listview1.items.add(lis);}}//刷新-还车//刷新listview列表操作public void updatalistzc(){//清空操作this.listview2.items.clear();foreach (vehicle ves in diczc.values){listviewitem lis = new listviewitem(ves.carnum);//存储车辆载重string load = "";//判断是轿车还是卡车if (ves is car){load = "无";}else if (ves is truck){truck tk = ves as truck;load = convert.tostring(tk.load);}//向lis对象中添加中lis.subitems.addrange(new string[] { ves.carname, ves.carcolor, convert.tostring(ves.cartime), convert.tostring(ves.carmoney), load });//向listview控件中添加存储信息的lis对象this.listview2.items.add(lis);}}

3.设置窗体加载时发生的事情

private void form1_load(object sender, eventargs e){//初始化租聘车的信息并刷新显示chushizc();this.combobox1.selectedindex = 0;}

4.点击租车发生的事情

//点击租车按钮的操作private void button2_click(object sender, eventargs e){//获取租用者string username = this.textbox1.text.trim();if (!username.equals(string.empty)){if (this.listview1.selecteditems.count == 1){//记录查找车辆信息bool pd = false;//获取选中的车牌号string carnum = this.listview1.selecteditems[0].subitems[0].text;//遍历循环查询以下要租凭的车辆是否还在被租聘的列表中//因为可能用户没有刷新列表导致信息传输不及时foreach (string nums in diczy.keys){if (nums.equals(carnum)){pd = true;}}//判断是否匹配到车辆信息if (pd == true){//判断数据类型-添加相应的个数据if(diczy[carnum] is car){diczc.add(carnum, new car(diczy[carnum].carcolor, diczy[carnum].carmoney, diczy[carnum].carnum, diczy[carnum].carname, diczy[carnum].cartime, username, 0));}else if(diczy[carnum] is truck){diczc.add(carnum, new truck(diczy[carnum].carcolor, diczy[carnum].carmoney, diczy[carnum].carnum, diczy[carnum].carname, diczy[carnum].cartime, username, 0, convert.toint32(this.listview1.selecteditems[0].subitems[5].text)));}//删除租聘信息中的数据diczy.remove(carnum);//清除输入的姓名this.textbox1.text = null;//刷新车辆信息updatalistzy();updatalistzc();messagebox.show("租车成功!", ts);}else{messagebox.show("该车辆已经出租,请点击刷新刷新租车信息数据!", ts);}}else{messagebox.show("请选择一辆租车信息后再进行操作!");}}else{messagebox.show("租用者姓名不能为空!", ts);}}

5.点击换车的操作

//换车租用天数private void button4_click(object sender, eventargs e){//获取选中的键值string key = this.listview2.selecteditems[0].subitems[0].text;//获取用户输入天数string days = this.textbox2.text.trim();//验证输入天数是否为空if (days.equals(string.empty)){messagebox.show("租用天数不能为空!", ts);return;}//验证用户是否选中东西if (this.listview2.selecteditems.count != 1){messagebox.show("请选择一条车辆出租信息进行操作!", ts);return;}//记录车辆状态bool pd = false;//验证已出租的车辆中是否存在当前选中的车辆信息foreach(string strs in diczc.keys){if (strs.equals(key)){pd = true;}}//判断车辆状态if (pd == true){//开始结算操作try{double jieguo = diczc[key].jisuan(convert.toint32(days));messagebox.show("您的总价是:" jieguo "¥");//把信息添加到可租聘车量的信息中//判断添加的是什么类型的车if (diczc[key] is car){diczy.add(diczc[key].carnum, new car(diczc[key].carcolor, diczc[key].carmoney, diczc[key].carnum, diczc[key].carname, diczc[key].cartime, "", 0));}else if(diczc[key] is truck){diczy.add(diczc[key].carnum, new truck(diczc[key].carcolor, diczc[key].carmoney, diczc[key].carnum, diczc[key].carname, diczc[key].cartime, "", 0, convert.toint32(this.listview2.selecteditems[0].subitems[5].text)));}//删除在已出租车辆中的信息diczc.remove(key);//清空输入天数this.textbox2.text = null;//刷新车辆信息updatalistzc();updatalistzy();}catch(exception ex){messagebox.show(ex.message);}}else{messagebox.show("该车辆暂无租出,请点击刷新刷新租车信息数据!", ts);}}

6.点击入库

private void button6_click(object sender, eventargs e){try{//车牌号string carnum = this.textbox7.text.trim();//车型号string carname = this.textbox6.text.trim();//车辆的颜色string carcolor = this.combobox1.text;//使用时间string cartime =this.textbox5.text.trim();//每日租金string carmoney = this.textbox4.text.trim();//车辆载重string load = this.textbox3.text.trim();//判断if (carnum.equals(string.empty)){messagebox.show("车牌号不能为空", ts);return;}//车牌号不为空,foreach遍历循环查询是否存在相同的车牌号else{//待出租车辆判断foreach(string name1 in diczy.keys){if (name1.equals(carnum)){messagebox.show("已存在相同车牌号的车辆,请检查是否录入信息有误!", ts);return;}}//已出租车辆判断foreach(string name2 in diczc.keys){if (name2.equals(carnum)){messagebox.show("已存在相同车牌号的车辆,请检查是否录入信息有误!", ts);return;}}}if (carname.equals(string.empty)){messagebox.show("车型号不能为空", ts);return;}if (carcolor.equals(string.empty)){messagebox.show("车颜色不能为空!", ts);}if (cartime.equals(string.empty)){messagebox.show("使用时间不能为空", ts);return;}if (carmoney.equals(string.empty)){messagebox.show("每日租金不能为空", ts);return;}if (this.radiobutton1.checked == true){if (load.equals(string.empty)){//开始执行保存操作diczy.add(carnum, new car(carcolor, convert.todouble(carmoney), carnum, carname, convert.toint32(cartime), "", 0));messagebox.show("保存信息成功!");updatalistzy();huanyuan();return;}else{messagebox.show("轿车不需要填写载重!", ts);}}else if (this.radiobutton2.checked == true){if (load.equals(string.empty)){messagebox.show("卡车需要填写载重!", ts);return;}else{//开始执行保存操作diczy.add(carnum, new truck(carcolor, convert.todouble(carmoney), carnum, carname, convert.toint32(cartime), "", 0, convert.toint32(load)));messagebox.show("保存信息成功!");updatalistzy();return;}}else{messagebox.show("请选择车辆类型!", ts);}}catch(exception ex){messagebox.show(ex.message);}}//还原新车入库的空白填写框public void huanyuan(){//车牌号this.textbox7.text = null;//车型号this.textbox6.text = null;//车辆的颜色this.combobox1.selectedindex = 0;//使用时间this.textbox5.text = null;//每日租金this.textbox4.text = null;//车辆载重this.textbox3.text = null;//车辆类型this.radiobutton1.checked = false;this.radiobutton2.checked = false;}

7.租车功能中的刷新按钮

//租车-刷新private void button1_click(object sender, eventargs e){updatalistzy();}

8.还车中的刷新按钮

//还车-刷新private void button5_click(object sender, eventargs e){updatalistzc();}

9.点击退出按钮后

private void button3_click(object sender, eventargs e){application.exit();}

这个项目的具体实现大致就是这样,如果有细节处遗漏,请私信说一下我补全

项目要求来自北大青鸟accp8.0s2深入.net平台和c#变成第10章的项目作业

总结

以上是尊龙游戏旗舰厅官网为你收集整理的c#总结项目《汽车租聘系统》项目代码实例【全注释版】的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得尊龙游戏旗舰厅官网网站内容还不错,欢迎将尊龙游戏旗舰厅官网推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图