新手做的,答答租車系統(tǒng),望大家多多指教~
首先定義Car抽象類;
package?dadasystem2; public?abstract?class?Car?{ private?String?name; private?int?num; private?int?person; private?int?weight; private?int?price; //定義4個私有成員變量,名字,數(shù)量,載客量,載重量,單價 public?abstract?void?show(); //定義輸出車輛信息的抽象函數(shù) public?String?getName()?{ return?name; } public?void?setName(String?name)?{ this.name?=?name; } public?int?getNum()?{ return?num; } public?void?setNum(int?num)?{ this.num?=?num; } public?int?getPerson()?{ return?person; } public?void?setPerson(int?person)?{ this.person?=?person; } public?int?getWeight()?{ return?weight; } public?void?setWeight(int?weight)?{ this.weight?=?weight; } public?int?getPrice()?{ return?price; } public?void?setPrice(int?price)?{ this.price?=?price; } }
然后定義小車類Scar,
package?dadasystem2; public?class?Scar?extends?Car?{ public?Scar?(String?name,int?num,int?person,int?price)?{ this.setName(name); //這里也可以不要this this.setNum(num); this.setPerson(person); this.setPrice(price); } @Override public?void?show()?{ //?TODO?Auto-generated?method?stub System.out.println(getName()+"\t"+getNum()+"\t"+getPerson()+"\t"+"-"+"\t"+getPrice()); } }
定義載貨車Lcar,
package?dadasystem2; public?class?Lcar?extends?Car?{ public?Lcar?(String?name,int?num,int?weight,int?price)?{ setName(name); //可以不要this setNum(num); setWeight(weight); setPrice(price); } @Override public?void?show()?{ //?TODO?Auto-generated?method?stub System.out.println(getName()+"\t"+getNum()+"\t"+"-"+"\t"+getWeight()+"\t"+getPrice()); } }
定義載人載貨兩用車Bcar,
package?dadasystem2; public?class?Bcar?extends?Car?{ public?Bcar?(String?name,int?num,int?person,int?weight,int?price)?{ setName(name); //好像可以不要this setNum(num); setPerson(person); setWeight(weight); setPrice(price); } @Override public?void?show()?{ //?TODO?Auto-generated?method?stub System.out.println(getName()+"\t"+getNum()+"\t"+getPerson()+"\t"+getWeight()+"\t"+getPrice()); } }
最后看看測試類,
package?dadasystem2; import?java.util.Scanner;; public?class?Test? { public?static?void?main(String[]?args)? { //?TODO?Auto-generated?method?stub Car?car[]?= { new?Scar("野馬",?10,?5,?500), new?Scar("奔奔",?10,?8,?300), new?Lcar("東方",?10,?10,?1000), new?Lcar("重汽",?10,?40,?3000), new?Bcar("皮卡",?10,?2,?3,?500), new?Bcar("卡車",?10,?5,?5,?800) }; //創(chuàng)建car車型數(shù)組,存放6個不同的車型對象 System.out.println("***歡迎使用答答租車系統(tǒng)***"); System.out.println("租車請按1,退出請按其他鍵。"); Scanner?in1?=?new?Scanner(System.in); while?(in1.nextInt()==1)? { System.out.println("序號"+"\t"+"車名"+"\t"+"可租車量"+"\t"+"載人量"+"\t"+"載貨量"+"\t"+"價格"); for?(int?i=0;?i<=5;?i++)? { System.out.print((i+1)+"\t"); car[i].show(); } System.out.println("------------------------------------------------"); System.out.print("請輸入您要租車的數(shù)量:"); Scanner?in2?=?new?Scanner(System.in); int?NUM?=?in2.nextInt(); //用?NUM?表示需要租車的數(shù)量 Car?[]?Zcar?=?new?Car[NUM]; //創(chuàng)建Zcar數(shù)組,存放租車對象 for(int?j=0;?j<NUM;?j++?)? { System.out.println("請輸入您要租的第"+(j+1)+"輛車的序號:"); //循環(huán)進行?NUM?輛車的錄用和輸出信息 Scanner?in3?=?new?Scanner(System.in); int?flag?=?in3.nextInt(); //?flag?表示當前第j輛車的?????租車的序號 Zcar[j]=car[flag-1]; car[flag-1].setNum(car[flag-1].getNum()-1); //?車型數(shù)組car中,第?flag?類車的數(shù)量-1,保證數(shù)量問題 System.out.println("第"+(j+1)+"輛車租車完成"); } System.out.println("------------"+NUM+"輛車租車完成------------"+"\n"+"下面開始統(tǒng)計數(shù)據(jù).........."); //租車完成,開始統(tǒng)計數(shù)據(jù)并輸出 int?per=0,?wei=0,?pri=0,?NUM2=0; for?(int?i=0;?i<NUM;?i++) { per?+=?Zcar[i].getPerson(); wei?+=?Zcar[i].getWeight(); pri?+=?Zcar[i].getPrice(); NUM2?+=?Zcar[i].getNum(); } System.out.println("一共租車"+NUM+"輛"); System.out.println("共可載"+per+"人"); System.out.println("共可載貨"+wei+"噸"); System.out.println("共需付款"+pri+"元"); ? System.out.print("請輸入付款金額:"); //加的小程序?????O(∩_∩)O哈哈~ Scanner?in4?=?new?Scanner(System.in); while?(pri!=in4.nextInt()) System.out.println("輸入錯誤,請重新輸入金額!"); System.out.print("請輸入付款密碼:"); Scanner?in5?=?new?Scanner(System.in); while?(in5.nextInt()!=123456) System.out.println("密碼錯誤,請重新輸入!"); System.out.println("交易成功!"); System.out.println("繼續(xù)租車請按1,退出請按其他鍵。"); } System.out.println("***歡迎再次使用本系統(tǒng),再見!***"); } }
本系統(tǒng)加了一個剩余車輛數(shù)量的程序,再輸入付款密碼,交易成功之后,可繼續(xù)租車,此時可租車輛就不再是默認的10輛了,會減去已租車輛數(shù)。
//程序還可以修改,加一個判斷 ? 當租車數(shù)大于車輛剩余數(shù)量的時候 ? 返回錯誤
剛開始學java,還希望大家多多指導?。?!
測試車輛數(shù)量是否有更新:
現(xiàn)在想問問大神們,如何修改程序,可以在程序的任意位置,直接退出??
比如說租車完成后,要選擇繼續(xù)租車,才能看到車輛列表的更新狀態(tài),但是看了之后,有必須要再執(zhí)行一遍租車系統(tǒng),就很迷了,真的是迷~~~
2018-03-27
定義一個布爾類型再用IF語句拋出異常?throw new RuntimeEXception(" ? ? ");
Em......我也是新手......