也算是實(shí)現(xiàn)了所有功能
//我用的JCreator編的,不是eclipse,代碼的部分地方會(huì)略有不同但總體來說沒太大差別
import java.util.Scanner;
public class execP20601{
Car Aodi=new MannedCar("奧迪A4",500,4);
Car Mzd=new MannedCar("馬自達(dá)6",400,4);
Car Pkx=new Truck("皮卡雪6",450,4,2);
Car Jl=new MannedCar("金龍",800,20);
Car Shj=new Van("松花江",400,4);
Car Ywk=new Van("依維柯",1000,20);
Car[] CarInform={Aodi,Mzd,Pkx,Jl,Shj,Ywk};
public static void main(String args[]){
execP20601 Pro=new execP20601();
Pro.Step1();
Pro.Step2();
}
public void Step1(){
System.out.println("歡迎使用答答租車系統(tǒng):");
System.out.println("您是否要租車:1是? 0否");
try{
Scanner scan=new Scanner(System.in);
int Num1=scan.nextInt();
System.out.println();
int Jishu1=4;
while(Jishu1>0){
Jishu1--;
if(Num1!=1&&Num1!=0){
if(Jishu1>1)
System.out.println("輸入有誤,請(qǐng)重試,需輸入整數(shù)0或1,還可重試"+Jishu1+"次!");
if(Jishu1==1)
System.out.println("輸入有誤,請(qǐng)重試,需輸入整數(shù)0或1,還可重最后一次?。?!");
if(Jishu1<=0){
System.out.println("輸入失敗,程序?qū)⒆詣?dòng)退出");
System.exit(0);
}
System.out.println("您是否要租車:1是? 0否");
Num1=scan.nextInt();
if(Num1==1||Num1==0){
System.out.println();
break;
}
System.out.println();
}
}
if(Num1==1){
System.out.println("您可租車的類型及其價(jià)目表:");
System.out.println("序號(hào)? ?汽車名稱? ? ?租金? ? ? ?載量");?
System.out.println();
for(int i=0;i<CarInform.length;i++){
System.out.print(i+1);
CarInform[i].Inform();
}
}else if(Num1==0){
System.out.println("不好意思,打擾您了,程序?qū)⒆詣?dòng)退出,祝您生活愉快!");
System.exit(0);
}
}catch(Exception e){
e.printStackTrace();
System.out.println("輸入有誤");
}
}
public void Step2(){
System.out.println();
System.out.println("請(qǐng)輸入您要租車的數(shù)量:");
Scanner scan2=new Scanner(System.in);
int Num1=scan2.nextInt();
int Jishu2=0;
int DayRent=0;
int TotalRent=0;
try{
int[] CarNum=new int[Num1];
if(Num1<=0){
System.exit(0);
}
while(Jishu2<Num1){
//System.out.println("Jishu2:"+Jishu2);
System.out.println();
System.out.println("請(qǐng)輸入第"+(Jishu2+1)+"輛車的序號(hào):");
CarNum[Jishu2]=scan2.nextInt()-1;
//System.out.println(CarInform[CarNum[Jishu2]].getName());
DayRent+=CarInform[CarNum[Jishu2]].getPrice();
Jishu2++;
}
System.out.println();
System.out.println("請(qǐng)輸入租車天數(shù):");
int Day=scan2.nextInt();
TotalRent=DayRent*Day;
System.out.println();
System.out.println("您的賬單:");
System.out.println();
System.out.println("可載人的有:");
int CapaManNum=0;
for(int i=0;i<CarNum.length;i++){
if(CarInform[CarNum[i]].getType().equals("Man")||CarInform[CarNum[i]].getType().equals("Double")){
System.out.print(CarInform[CarNum[i]].getName()+"? ?");
CapaManNum+=CarInform[CarNum[i]].getCapaMan();
}
}
System.out.println("總共可載"+CapaManNum+"個(gè)人");
System.out.println();
System.out.println("可載貨的有:");
int CapaCargoNum=0;
for(int i=0;i<CarNum.length;i++){
if(CarInform[CarNum[i]].getType().equals("Cargo")||CarInform[CarNum[i]].getType().equals("Double")){
System.out.print(CarInform[CarNum[i]].getName()+"? ?");
CapaCargoNum+=CarInform[CarNum[i]].getCapaCargo();
}
}
System.out.println("總共可載"+CapaCargoNum+"噸貨");
System.out.println();
System.out.println("累計(jì)消費(fèi)"+TotalRent+"元");
System.out.println();
}catch(Exception e){
e.printStackTrace();
System.out.println("輸入有誤");
}
}
}
abstract class Car{
private String Type;
private String name;
private int price;
private int CapaMan;
private int CapaCargo;
public String getName(){
return name;
}
public String getType(){
return Type;
}
public int getPrice(){
return price;
}
public int getCapaMan(){
return CapaMan;
}
public int getCapaCargo(){
return CapaCargo;
}
public abstract void Inform();
}
class MannedCar extends Car{
private String Type="Man";
private String name;
private int price;
private int CapaMan;
public MannedCar(String name,int price,int CapaMan){
//Inform();
this.name=name;
this.price=price;
this.CapaMan=CapaMan;
}
public String getName(){
return name;
}
public String getType(){
return Type;
}
public int getPrice(){
return price;
}
public int getCapaMan(){
return CapaMan;
}
public void Inform(){
String DayRent=price+"/天";
String Capacity="載人:"+CapaMan+"人";
String Inform="."+"? ? ?"+name+"? ? ? ?"+DayRent+"? ? ?"+Capacity;
StringBuilder str=new StringBuilder(Inform);
int Location=Inform.indexOf(DayRent);
int DiffValue=17-Location;
if(DiffValue>0){
for(int i=DiffValue;i>0;i--){
str.insert(Location-DiffValue," ");
}
}
System.out.println(str.toString());
//System.out.println(Inform.indexOf(DayRent));
}
}
class Truck extends Car{
private String Type="Double";
private String name;
private int price=450;
private int CapaMan;
private int CapaCargo;
public Truck(String name,int price,int CapaMan,int CapaCargo){
//Inform();
this.name=name;
this.price=price;
this.CapaMan=CapaMan;
this.CapaCargo=CapaCargo;
}
public String getName(){
return name;
}
public String getType(){
return Type;
}
public int getPrice(){
return price;
}
public int getCapaMan(){
return CapaMan;
}
public int getCapaCargo(){
return CapaCargo;
}
public void Inform(){
String DayRent=price+"/天";
String Capacity="載人:"+CapaMan+"人? "+"載貨:"+CapaCargo+"噸";
String Inform="."+"? ? ?"+name+"? ? ? "+DayRent+"? ? ?"+Capacity;
System.out.println(Inform);
}
}
class Van extends Car{
private String Type="Cargo";
private String name;
private int price=400;
private int CapaCargo=4;
public Van(String name,int price,int CapaCargo){
//Inform();
this.name=name;
this.price=price;
this.CapaCargo=CapaCargo;
}
public String getName(){
return name;
}
public String getType(){
return Type;
}
public int getPrice(){
return price;
}
public int getCapaCargo(){
return CapaCargo;
}
public void Inform(){
String DayRent=price+"/天";
String Capacity="載貨:"+CapaCargo+"噸";
String Inform="."+"? ? ?"+name+"? ? ? ?"+DayRent+"? ? "+Capacity;
StringBuilder str=new StringBuilder(Inform);
int Location=Inform.indexOf(Capacity);
int DiffValue=26-Location;
if(DiffValue>0){
for(int i=DiffValue;i>0;i--){
str.insert(Location-DiffValue," ");
}
}
System.out.println(str.toString());
//System.out.println(Inform.indexOf(Capacity));
}
}
2020-01-12
為什么一粘貼到這里之后我的代碼排版就變了?