package?com.bk.may.test01;
import?java.util.Scanner;
public?class?Test?{
??//靜態(tài)初始化對(duì)象?ps:傳上來的時(shí)候直接粘貼忘了分行,,,點(diǎn)進(jìn)去一看全都貼在一起了
??static?Car?c0?=?new?Car();
??static?Scanner?sc?=?new?Scanner(System.in);
??//初始化所有汽車的屬性
??public?static?void?setAttribute(){
??????c0.setCarAttribute(1,500,4,"奧迪A4??",0);
??????c0.setCarAttribute(2,400,4,"馬自達(dá)6??",0);
??????c0.setCarAttribute(3,450,4,"皮卡雪6??",0);
??????c0.setCarAttribute(4,800,20,"金龍??",2);
??????c0.setCarAttribute(5,400,0,"松花江??",4);
??????c0.setCarAttribute(6,1000,0,"依維柯??",20);
??}
??//進(jìn)入系統(tǒng)時(shí)詢問使用者是否要租車
??public?static?void?enterSystem()?{
????System.out.println("歡迎使用噠噠租車系統(tǒng):\n請(qǐng)問您是否要租車?(1.是?2.否)");
????int?num?=?sc.nextInt();
????if(num?==?1)?
??????mainSystem();
????else?if(num?==?2)?
????????????System.out.println("感謝您的來訪!");
??? ???else?{
??? ?????System.out.println("輸入信息非法,請(qǐng)重試!");
??? ?????enterSystem();
??? ???}
????}
????//main方法執(zhí)行設(shè)置屬性方法和進(jìn)入系統(tǒng)方法
????public?static?void?main(String[]?args)?{
??????setAttribute();
??????enterSystem();
????}
????//主菜單方法
??public?static?void?mainSystem()?{
????int?car_num?=?0;
????//展示租車信息
????System.out.println("以下是您可租車的類型及其價(jià)目表:");
????System.out.println("序號(hào)???汽車名稱????租金 ???容量");
????for(int?i=1;i<7;i++)
??????c0.showInformation(i);
????//詢問租車數(shù)量
????do?{
??????System.out.println("請(qǐng)輸入您要租汽車的數(shù)量:");
??????car_num?=?sc.nextInt();
??????if(car_num<1)?{
??????????System.out.println("輸入數(shù)量超出范圍,請(qǐng)重新輸入!");
??????} ?????
????}while(car_num<1);???
????//根據(jù)租車數(shù)量設(shè)置數(shù)組的長(zhǎng)度
????//c0.setC_r_n(car_num);?暫時(shí)沒有用到
????for(int?i=1;?i<=car_num;?i++)?{
????????System.out.println("請(qǐng)輸入第"+i+"輛車的序號(hào):");
??????int?s_n?=?sc.nextInt();
??????if(s_n>0?&&?s_n<7)?
??????????c0.scanInformation(i,s_n);
??????else?{
??????????System.out.println("輸入序號(hào)超出范圍,請(qǐng)重新輸入!");
??????????i--;
??????}
????}
????System.out.println("請(qǐng)輸入您要租汽車的天數(shù):");
????int?car_days?=?sc.nextInt();
????while(car_days<=0){
??????System.out.println("輸入天數(shù)不在法定范圍內(nèi),請(qǐng)重新輸入!");
??????System.out.println("請(qǐng)輸入您要租汽車的天數(shù):");
??????car_days?=?sc.nextInt();
????}
????//傳遞租車天數(shù)后打印賬單
????c0.setA_r(car_days);
????c0.settleAccounts();
??}
}
public?class?Car?{
??//分別定義:序號(hào)、租金/天,載人量
??private?int?seq_name[]?=?new?int[10];
??private?int?rent[]?=?new?int[10];
??private?int?per_cap[]?=?new?int[10];
??private?int?car_rent_num[]?=?new?int[100];
??private?int?all_rent_daily?=?0;
??private?int?all_rent?=?0;
??private?int?all_per_cap?=?0;
??//定義載貨量
??private?double?fre_vol[]?=?new?double[10];
??private?double?all_fre_vol?=?0;
??//定義汽車名稱
??private?String?car_name[]?=?new?String[10];
??private?String?all_per_cap_name?=?"";
??private?String?all_fre_vol_name?=?"";
??//當(dāng)載人數(shù)>0時(shí)返回字符串
??private?String?printPer_cap(int?s_n){
????if(per_cap[s_n-1]>0){
??????return?"載人數(shù):"+per_cap[s_n-1]+"人??";
????}
????else{
??????return?"?";
????}
??}
??//當(dāng)載貨量>0時(shí)返回字符串
??private?String?printFre_vol(int?s_n){
????if(fre_vol[s_n-1]>0){
????????return?"載貨量:"+fre_vol[s_n-1]+"噸??";
????}
????else{
??????return?"";
????}
??}
??//返回含有汽車相關(guān)信息的字符串
??private?String?printFirst(int?s_n){
????return?seq_name[s_n-1]+".??"+car_name[s_n-1]+"?"+rent[s_n-1]+"元/天??";
??}
??//輸出汽車的所有相關(guān)信息
??public?void?showInformation(int?s_n){
????System.out.println(printFirst(s_n)+printPer_cap(s_n)+printFre_vol(s_n));
??}
??//統(tǒng)計(jì)所租汽車的信息
??public?void?scanInformation(int?i,int?s_n){
????car_rent_num[i-1]?=?s_n;
????all_rent_daily?+=?rent[s_n-1];
????if(per_cap[s_n-1]>0)?{
????????all_per_cap?+=?per_cap[s_n-1];
??????all_per_cap_name?+=?car_name[s_n-1]+"?";
????}
????if(fre_vol[s_n-1]>0)?{
??????all_fre_vol?+=?fre_vol[s_n-1];
??????all_fre_vol_name?+=?car_name[s_n-1]+"?";
????}
??}??????
??//暫時(shí)沒有用到
??int?getC_r_n(int?s_n){
????return?car_rent_num[s_n];
??}
??String?getC_n(){
????return?"?"+car_name;
??}
??//定義一個(gè)set方法給數(shù)組賦值
??void?setCarAttribute(int?s_n,?int?r,?int?p_c,?String?c_n,?double?f_v){
????seq_name[s_n-1]?=?s_n;
????rent[s_n-1]?=?r;
????per_cap[s_n-1]?=?p_c;
????car_name[s_n-1]?=?c_n;
????fre_vol[s_n-1]?=?f_v;
??}
??//設(shè)置所租車數(shù)組的長(zhǎng)度并儲(chǔ)存所租的每一輛車的序號(hào)
??/* 暫時(shí)沒有用到,可以通過檢索每種車序號(hào)出現(xiàn)的次數(shù)打印出完整的可用車輛
??*? eg:?"奧迪A4*5? 松花江*3"
??*? 但是已經(jīng)懶得做了23333
??void?setC_r_n(int?c_n){
????int?car_rent_num[]?=?new?int[c_n];
??}
??*/
??//根據(jù)租車天數(shù)和每日租金計(jì)算得出總租金
??void?setA_r(int?c_ds){
????all_rent?=?c_ds*all_rent_daily;
??}
??//輸出賬單
??public?void?settleAccounts()?{
????System.out.println("您的賬單:");
????if(all_per_cap>0)
??????System.out.println("***可載人的車有:\n"+all_per_cap_name+"???共載人:"+all_per_cap+"人");
????if(all_fre_vol>0)
??????System.out.println("***可載貨的車有:\n"+all_fre_vol_name+"???共載貨:"+all_fre_vol+"噸");
????System.out.println("***租車總價(jià)格:"+all_rent+"元");
??}
}
2019-07-24
很不錯(cuò)很不錯(cuò)很不錯(cuò)很不錯(cuò)很不錯(cuò)很不錯(cuò)
2019-07-24
非常完美了!