在公司裏開始學習Java,感覺鴨梨有些大,但是也覺得動力很大,這個是實現的代碼,暫時沒有用到多態的性質,這是1.0初學版,注釋寫得很詳細,之後再利用接口來改動。輸入法不知出什麽問題衹有繁體了,望沒有閲讀困難。。。
补充:第二天我在复习的时候再看这个代码,发现之前忘说我的学习经验:看
程序一定先看代码,然后理解之后再看注释,这样的话,注释就像我在和你一起探讨问题甚至辩论问题,因为注释所以我们不是一个人在战斗。
Car父類
package com.imooc;
public abstract class Car {
public String name;
public int price;
}
Coach類(客車)
package com.imooc;
public class Coach extends Car{
private int carry;
public Coach(String name,int carry,int price){
this.name = name;
this.carry = carry;
this.price = price;
}
public int getCarry(){
return carry;
}
public String toString(){
return(name+"\t"+price+"元/天 \t"+carry+"人\t");
}
}
Truck類(貨車)
package com.imooc;
public class Truck extends Car {
private float load;
public Truck(String name,float load,int price){
this.name = name;
this.load = load;
this.price = price;
}
public float getLoad(){
return load;
}
public String toString(){
return (name+"\t"+price+"元/天"+"\t"+load+"吨\t");
}
}
Pickup類(皮卡)
package com.imooc;
public class Pickup extends Car{
private float load;
private int carry;
public Pickup(String name,int carry,float load,int price){
this.name = name;
this.carry = carry;
this.load = load;
this.price = price;
}
public int getCarry(){
return carry;
}
public float getLoad(){
return load;
}
public String toString(){
return(name+"\t"+price+"元/天\t"+carry+"人\t"+load+"吨\t");
}
}
Initial類 (主體)
package com.imooc;
import java.util.*;
public class Initial {
/**
* @author 李科瑋
* @version 1.0初學版
* @see 租車系統
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建一个存放Car对象的(对象)数组,并初始化6个对象
Car[] car = new Car[]{
new Truck("大货车",18.5f,800),
new Truck("小货车",10.5f,500),
new Coach("大客车",30,1000),
new Coach("小客车",20,700),
new Pickup("大皮卡",8,3.5f,500),
new Pickup("小皮卡",5,2f,300)
};
//创建一个Scanner类的对象input用来获取用户输入
Scanner input = new Scanner(System.in);
//进入主页面
System.out.println("****欢迎您使用答答租车系统****");
System.out.println("请问您是否租车");
System.out.println("是:输入1 否:输入任意键退出");
//如果输入是1则显示下面的程序
if(input.nextInt()==0){
System.out.println("不好意思,亲,您走错公司了。");
}
else
{
System.out.println("您可以租用的汽车类型和价目表如下:");
System.out.println("序号\t汽车类型\t租金\t容量\t");
//遍历数组并显示输出,注意這裏的循環變量i的取值,因爲car數組在引用時必須遵守從0開始的規則
//注意i的值改了之後,後面的循環條件也要改變
for(int i=0 ; i < car.length ; i++){
System.out.println((i+1)+"\t"+car[i]);
}
System.out.println("请输入您想租用的数量:");
//此时需要一个记录输入数量的变量,名为carNum
int carNum;
//将输入值赋值给carNum
carNum = input.nextInt();
//之后流程需要记录要使用哪些汽车,可能carNum不止一个,所以我们创建一个数组来存储
Car[] useCar = new Car[carNum];
//使用循环给useCar数组赋值,通过存着所有汽车类型的car数组实现
for(int j = 1; j <= carNum ; j++){
System.out.println("请输入第"+j+"辆车的序号:");
//需要一个记录用户输入的变量,此处创建num
int num;
num = input.nextInt();
//取出car中的元素依次附给useCar数组,此处注意数组引用需要长度-1,因为数组从0位置开始存储
useCar[j-1] = car[num-1];
}
System.out.println("请输入租用的天数:");
//需要一個儲存租用天數的變量
int rentDay;
rentDay = input.nextInt();
System.out.println("您的账单如下:");
//調用下文中的方法,分別是計算載人數、載貨量、總價錢
totalCarry(useCar);
totalLoad(useCar);
totalPay(useCar,rentDay);
}
//結束關閉程序
input.close();
}
public static void totalCarry(Car[] useCar){
//需要一個存儲縂載人數的變量
int k = 0 ;
System.out.println("**可载人的车有:");
//遍歷要使用車的數組,判斷裏面各個元素對象可以由那種對象替換
for(int i = 0; i <useCar.length; i++){
if(useCar[i] instanceof Coach){
System.out.println(useCar[i].name+"\t");
//因需要得到Carry的值,而Car類中沒有getCarry方法,需將useCar[i]對象轉化為Coach對象
k = k + ((Coach)useCar[i]).getCarry();
}
else if(useCar[i] instanceof Pickup){
System.out.println(useCar[i].name+"\t");
k = k + ((Pickup)useCar[i]).getCarry();
}
}System.out.println("共载人数:"+k+"人");
}
//totalLoad與上面方法基本相同
public static void totalLoad(Car[] useCar){
float k = 0 ;
System.out.println("**可载货的车有:");
for(int i = 0; i <useCar.length; i++){
if(useCar[i] instanceof Truck){
System.out.println(useCar[i].name+"\t");
k = k + ((Truck)useCar[i]).getLoad();
}
else if(useCar[i] instanceof Pickup){
System.out.println(useCar[i].name+"\t");
k = k + ((Pickup)useCar[i]).getLoad();
}
}
System.out.println("共载货物:"+k+"吨");
}
public static void totalPay(Car[] useCar,int rentDay){
int k = 0 ;
//遍歷useCar數組,並獲取useCar數組中各個元素對象的price,最後計算總和
for(int i = 0; i <useCar.length; i++){
k = k + useCar[i].price;
}
k=k*rentDay;
System.out.println("租车的总费用为:"+k+"元");
}
}
運行結果:
****欢迎您使用答答租车系统****
请问您是否租车
是:输入1 否:输入任意键退出
1
您可以租用的汽车类型和价目表如下:
序号 汽车类型 租金 容量
1 大货车 800元/天 18.5吨
2 小货车 500元/天 10.5吨
3 大客车 1000元/天 30人
4 小客车 700元/天 20人
5 大皮卡 500元/天 8人 3.5吨
6 小皮卡 300元/天 5人 2.0吨
请输入您想租用的数量:
2
请输入第1辆车的序号:
3
请输入第2辆车的序号:
1
请输入租用的天数:
2
您的账单如下:
**可载人的车有:
大客车
共载人数:30人
**可载货的车有:
大货车
共载货物:18.5吨
租车的总费用为:3600元
热门评论
如果租车3辆,有2辆属于同一类,如何只输出一次名字,要不要考虑这个
如果租车3辆,有2辆属于同一类,如何只输出一次名字,要不要考虑这个
能 加好友 指点一下吗?