太不容易了,还是小借鉴了下别人的,终于实现了,第一个自己动手写的小系统,继续加油!!!!

来源:12-2 项目问题解析 1

樱桃小栗子

2015-06-09 14:26

package com.imooc;

import java.util.Scanner;

public class DaDaRent {

public static void main(String []args){

 float sum=0f;//保存用户消费总额

 Vehicle []vehicle={new Car(1,"奥迪A6",5,200f),new Car(2,"保时捷A6L",5,200),

   new Truck(3,"马自达",13,500),new Truck(4,"依维柯",10,400),

   new PickUp(5,"QQ",6,5,300),

   new PickUp(6,"金龙",8f,3,400f)};

 Scanner input=new Scanner(System.in);//创建Scanner对象

 System.out.println("***************欢迎来到dada租车系统***************");

 System.out.println("是否真的租车?是1否0 请输入:");

 int userIn=input.nextInt();//获取用户输入的结果并保存到userIn变量中

 //用户确认要租车

 if(userIn==1){

 System.out.println("租车信息列表如下:");

 System.out.println("车牌号:"+"\t\t"+"车名字:"+"\t\t"+"车型:"+"\t\t"+"载货量(座位数):"+"\t\t\t"+"价钱:");

 for(int i=0;i<vehicle.length;i++){

  vehicle[i].infoShow();

 }

 System.out.println("请输入您要租车的数量:");

 int carNum=input.nextInt();//租车数量保存到carNum变量中

     int []carId=new int[100];//定义一个足够大的数组carId,用来接收存储用户选择的车牌号

 System.out.println("请选择你需要租车的车牌号:");

 for(int i=0;i<carNum;i++){

  carId[i]=input.nextInt();

 }

 System.out.println("请输入你需要租车的天数:");

 int day=input.nextInt();//租车天数保存到day变量中

 System.out.println("**************您在dada租车系统的订单如下:*****************");

 System.out.println("你选择的车辆信息如下:");

 System.out.println("车牌号:"+"\t\t"+"车名字:"+"\t\t"+"车型:"+"\t\t"+"载货量(座位数):"+"\t\t\t"+"价钱:");

 for(int i=0;i<carNum;i++){

  for(int j=0;j<vehicle.length;j++){

   if(vehicle[j].getId()==carId[i]){

   vehicle[j].infoShow();

   sum=sum+vehicle[j].getPrice();

   }

 }

 }

 System.out.println(sum);

 System.out.println("您租车的数量为:"+carNum+"您租车的天数为:"+day);

 System.out.println("您总共消费为:"+sum*day);

 }

 //用户确认不租车

 else{

      System.out.println("欢迎下次光临dada租车系统!");

 }

}

}
package com.imooc;
public abstract class  Vehicle {
 int id;//车牌号
 String name;//车名字
 float price;//车的价钱
 public Vehicle(int id,String name,float price){
  super();//调用父类的构造方法,Vehicle类的父类默认为Object类。
  this.id=id;
  this.name=name;
  this.price=price; 
 }
 
 public int getId(){
  return id;
 }
 
 public void setId(int id){
  this.id=id;
 }
 
 public String getName(){
  return name;
 }
 
 public void setName(){
  this.name=name;
 }
 
 public float getPrice(){
  return price;
 }
 
 public void setPrice(float price){
  this.price=price;
 }
 
 public abstract void infoShow();//将车辆信息打印出来
}

package com.imooc;
public class Car extends Vehicle {
 public final String cartype="载客车";
 int seatNum;
 public Car(int id,String name,int seatNum,float price){
  super(id,name,price);//调用父类的构造方法,进行车辆信息的初始化。
  this.seatNum=seatNum;
 }
 
 public int getSeatNum(){
  return(seatNum);
 }
 
 public void setSeatNum(){
  this.seatNum=seatNum;
 }
 @Override
 public void infoShow() {
  // TODO Auto-generated method stub
       // System.out.println("车牌号:"+id+"车名字:"+name+"车型:"+cartype+"座位数:"+seatNum+"价钱:"+price);
  System.out.println(id+"\t\t"+name+"\t\t"+cartype+"\t\t"+seatNum+"人"+"\t\t\t\t"+price+"元/天");
 }
}

package com.imooc;
public class Truck extends Vehicle {
 public final String cartype="载货车";
 float loadNum;
 public Truck(int id,String name,float loadNum,float price){
  super(id,name,price);//调用父类的构造方法,进行车辆信息的初始化。
  this.loadNum=loadNum;
 }
 
 public float getLoadNum(){
  return(loadNum);
 }
 
 public void setLoadNum(){
  this.loadNum=loadNum;
 }
 @Override
 public void infoShow() {
  // TODO Auto-generated method stub
  System.out.println(id+"\t\t"+name+"\t\t"+cartype+"\t\t"+loadNum+"吨"+"\t\t\t\t"+price+"元/天");
 }
}


package com.imooc;
public class PickUp extends Vehicle {
 public final String cartype="兼容车型";
 /*由于子类PickUp继承了父类Vehicle,父类中定义了id,name,price变量,
  * 如果子类中重新定义这些变量的话,则创建一个指向子类的对象时候,首先执行构造方法,然后初始化成员变量,
  * 在该类中,调用父类的构造方法进行id,name,price的初始化,然后再执行子类中成员变量的初始化,
  * 则id,name,price又被默认赋值为默认值(0,NULL,0.0),所以这里子类不应该再重新定义这三个变量。
 int id;
    String name;
    float price;*/
 float loadNum;
 int seatNum;
 public PickUp(int id,String name,float loadNum,int seatNum,float price){
  super(id,name,price);//调用父类的构造方法,进行车辆信息的初始化。
  this.loadNum=loadNum;
  this.seatNum=seatNum;
 }
 
 public float getLoadNum(){
  return(loadNum);
 }
 
 public void setLoadNum(){
  this.loadNum=loadNum;
 }
 
 public int getSeatNum(){
  return(seatNum);
 }
 
 public void setSeatNum(){
  this.seatNum=seatNum;
 }
 @Override
 public void infoShow() {
  // TODO Auto-generated method stub
  System.out.println(id+"\t\t"+name+"\t\t"+cartype+"\t\t"+loadNum+"吨"+"\t\t"+seatNum+"人"+"\t\t"+price+"元/天");
 }
}

写回答 关注

1回答

  • newdays
    2015-06-09 16:07:25

    为什么不传到作品里,让大家都来学习你的代码

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

531022 学习 · 6160 问题

查看课程

相似问题