问答详情
源自:12-2 项目问题解析 1

第一次写的代码,请大家多多指教,非常感谢~~~

package com.dada;
//定义父类Car,定义车辆信息参数
public class Car {
 private String Num;
 private String chexing;
 private double price;
 private int Zaihuo;
 private int Zairen;
 
 
 public int getZaihuo() {
  return Zaihuo;
 }
 public void setZaihuo(int zaihuo) {
  Zaihuo = zaihuo;
 }
 public int getZairen() {
  return Zairen;
 }
 public void setZairen(int zairen) {
  Zairen = zairen;
 }
 public String getNum() {
  return Num;
 }
 public void setNum(String num) {
  Num = num;
 }
 public String getChexing() {
  return chexing;
 }
 public void setChexing(String chexing) {
  this.chexing = chexing;
 }
 public double getPrice() {
  return price;
 }
 public void setPrice(double price) {
  this.price = price;
 }
   
}


package com.dada;

public class Keche extends Car  {
 //集成父类Car,定义可出的参数病显示车辆信息,将载货量置为0
 public Keche(String Num,String chexing,double price,int Zairen) {
  // TODO Auto-generated constructor stub
        this.setNum(Num);
        this.setChexing(chexing);
        this.setPrice(price);
        this.setZairen(Zairen);
        this.setZaihuo(0);
        System.out.println(Num + " " + chexing + " " +price + "元/日 " + Zairen + "人");
 }


}

package com.dada;

public class Huoche extends Car {
 //集成父类Car,定义货车的参数病显示车辆信息,将载人数置为0
 public Huoche(String Num,String chexing,double price,int Zaihuo) {
  // TODO Auto-generated constructor stub
  this.setNum(Num);
  this.setChexing(chexing);
  this.setPrice(price);
  this.setZaihuo(Zaihuo);
  this.setZairen(0);
        System.out.println(Num + " " + chexing + " " +price + "元/日 " + Zaihuo + "吨");
 }


}

package com.dada;

public class Pika extends Car  {
 //集成父类Car,定义皮卡的参数病显示车辆信息
 public Pika(String Num,String chexing,double price,int Zaihuo,int Zairen) {
  
  // TODO Auto-generated constructor stub
  this.setNum(Num);
  this.setChexing(chexing);
  this.setPrice(price);
  this.setZaihuo(Zaihuo);
  this.setZairen(Zairen);
  System.out.println(Num + " " + chexing + " " +price + "元/日 " + Zaihuo + "吨  " + Zairen + "人");
 }

   
}

package com.dada;

import java.util.Scanner;

public class Show {
 //定义全局变量delflag,在zuche()和total(int[][] message)函数中使用
 public int delflag = 0;
 //定义全局变量i
 public int i = 0;
 //定义全局变量ans2,用来存储所需车辆数
 public int  ans2;
    //显示租车系统内容
 public void Show(){
        System.out.println("**************欢迎使用达达租车系统****************");
     System.out.println("请问是否要租车? (1  是,0  否)");
     Scanner scan1=new Scanner(System.in);
     int ans1 = scan1.nextInt();
     //定义变量ans1,判断是否要租车,1位租车,0位不租车,其他会提示输入有误,重新输入;
     if(ans1 == 1){
      //进入租车函数
         zuche();
     }
     else if(ans1 == 0){
         System.out.println("感谢您使用达达租车系统,欢迎您再次使用!");
        }
     else{
      System.out.println("输入有误,请您核实后重新输入!");
      Show();
     }
 }

 //租车函数
 public void  zuche()
 {
  System.out.println("车辆信息如下:");
        System.out.println("序号  车型 价格/天 容量");
        //显示所有车辆信息
        new Keche("1","奥迪A4",500,4);
        new Keche("2","马自达6 ",400,4);
        new Keche("3","金龙 ",800,20);
        new Pika("4","皮卡雪6",450,2,4);
        new Huoche("5","松花江",400,4);
        new Huoche("6","依维柯",1000,20);
       
        System.out.println("请输入需要的数量:");
     Scanner scan2=new Scanner(System.in);
     //用参数ans2存储所需车辆数
     ans2 = scan2.nextInt();
     //定义一个车辆数为行,3列的二维数组存储信息
     int[][] message = new int[ans2][3];

        //进行循环
     for(  ; i <ans2; i++)
     {
         System.out.println("请输入需要车的序号:");
      Scanner no=new Scanner(System.in);
      //定义变量num,存储所需要的车的序号
      int num = no.nextInt();
      //将序号赋值给message数组的第i行,第一列
      message[i][0] = num;
         System.out.println("请输入该序号的车所需数量:");
      Scanner ct=new Scanner(System.in);
      //定义变量count,存储所需要的序号的车的数量
      int count = ct.nextInt();
         System.out.println("请输入该序号的车所需天数:");
      Scanner d=new Scanner(System.in);
      //定义变量day,存储所需要的序号的车的天数
      int day = d.nextInt();
      //将天数赋值给message数组的第i行,第二列
      message[i][1] = day;
      //根据车的序号判断该车的金额,并赋值给message数组的第i行第3列
      if(num==1)
      {
       message[i][2] = 500;
      }
      if(num==2 || num==5)
      {
       message[i][2] = 400;
      }
      if(num==3)
      {
       message[i][2] = 800;
      }
      if(num==4)
      {
       message[i][2] = 450;
      }
      if(num==6)
      {
       message[i][2] = 1000;
      }
      //当某辆车所需要的数量大于1,并且还有剩余车辆数据需要录入时
      while(count >1 && i != ans2)
      {
       //如果该序号所需车辆大于总车辆数-已有车辆数
       if(count > ans2-i )
       {

        System.out.println("您输入的该序号车的数量已经超过您所需车的数量,请核对信息后重亲输入。如果是总数量输入错误,请按1,如果是该序号车数量输入错误,请按2");
        Scanner m=new Scanner(System.in);
        //定义棉量m1用来存储是需要对所有车辆信息重新输入还是该序号的车的车辆重新输入
        int m1 = m.nextInt();
        //如果需要对所有租车信息重新输入,则重新调用租车函数
        if(m1 == 1)
        {
            zuche();
        }

        else {
         System.out.println("请输入该序号的车所需数量:");
         Scanner ct1=new Scanner(System.in);
         //重新录入该序号的车的数量病复制给count
         count = ct1.nextInt();
            System.out.println("请输入该序号的车所需天数:");
         Scanner d1=new Scanner(System.in);
         //重新录入该序号的车的天数病复制给day,病复制给message数组第i行第2列
         day = d1.nextInt();
         message[i][1] = day;
        }
       }
       //如果该序号车的数量是符合逻辑的
       else{
        //讲该车数据循环复制给数组,并且将i的值增加
        for(int j= 0;j<count-1;j++){
         i++;
         message[i][0] = num;
         message[i][1] = day;
         message[i][2] = message[i-1][2];
        }
       break;
       }

      }
     
     }
    
        if(delflag !=1){
         //计算并显示账单,把message数组信息作为参数传递
         total(message);
        }

 }
 //计算并显示账单
 public void total(int[][] message)
 {
  //定义sum变量,用来存储总金额
     int sum = 0;
     //将所有的车的信息存在数组中
     Car c[] = {new Keche("1","奥迪A4",500,4),new Keche("2","马自达6 ",400,4),new Keche("3","金龙 ",800,20),
       new Pika("4","皮卡雪6",450,2,4),new Huoche("5","松花江",400,4),new Huoche("6","依维柯",1000,20)};
     System.out.println("您的账单如下:");
     System.out.println("序号 车型 价格/天 容量   天数    价格");
     //循环输出参数message数组中的车辆信息
     for(int s=0 ; s<message.length;s++)
     {
      //定义变量str用来存储传递的数组的行数-1
      int str= message[s][0]-1;
      //显示车辆信息
      System.out.println(c[str].getNum() + "  " + c[str].getChexing() + "  " + c[str].getPrice() + "  " + c[str].getZairen() + c[str].getZaihuo() + "  "  + "  " + message[s][1] + "  " + message[s][2]);
      //计算总金额
      sum += message[s][2]*message[s][1];
     }
     //输出总金额
     System.out.println("您的总价格为:" + sum + "元");
     delflag=1;
 }

}

package com.dada;


public class ini {

 public static void main(String[] args) throws Exception {
  
  // TODO Auto-generated method stub
  Show s = new Show();
  try{
   s.Show();
  }
  catch(Exception e){
   System.out.println("连接数据库异常:"+e.toString());
  }
  
  
  System.out.println("欢迎您再次使用达达租车系统");
 }
 

}

提问者:慕粉阳光小白 2016-06-06 15:36

个回答

  • Sky_Leo
    2016-06-13 12:54:08

    看起来不像是第一次写吧,写的很好啊,代码也不是很乱,楼上说代码繁琐的代码长的是自己菜吧。我大概看了下,思路很清晰,这倒不像是个刚刚会写代码的新手。

  • 慕粉小蜗牛
    2016-06-07 12:45:53

    下边看的头晕了,,,好繁琐

  • 慕运维6488095
    2016-06-06 18:23:37

    看得头晕


  • 高恒博
    2016-06-06 18:16:26

    你这代码好长啊,怪不得没人评论。