本程序参考了手记中很多朋友的代码,对各位朋友,与imooc的老师表示感谢。
先说一下自己目前认为不足之处:
1、整个实现程序几乎全部在mai函数下,没有对程序进行分块编写。
2、备注不是很详细
Car类
package com.chen;
public class Car implements ICarryPassage,ICarryGoods{
protected int id;//声明车的序号
protected String name;//声明车名
protected int RentFee;//声明租车费用
/*
*变量初始化
*/
public Car (int newid,String newname,int newRentFee){
this.id=newid;
this.name=newname;
this.RentFee=newRentFee;
}
/*
* 设置 获得属性的方法
*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getRentFee() {
return RentFee;
}
public void setRentFee(int rentFee) {
RentFee = rentFee;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
/*
*显示
*/
public void show(){
System.out.println("汽车信息为name:"+name+"RentFee:"+RentFee+"Id:"+id);
}
@Override
public int getGoods() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void setGoods(int newgoods) {
// TODO Auto-generated method stub
}
@Override
public int getPerson() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void setPerson(int newperson) {
// TODO Auto-generated method stub
}
}
汽车类
package com.chen;
public class PassageCar extends Car implements ICarryPassage {
/*
* 声明载人人数
*/
private int person;
/*
*变量初始化
*/
public PassageCar(int newid, String newname, int newRentFee,int newperson) {
super(newid, newname, newRentFee);
// TODO Auto-generated constructor stub
this.setPerson(newperson);
}
public int getPerson() {
return person;
}
public void setPerson(int person) {
this.person = person;
}
public void show(){
System.out.println("序号:"+this.getId()+" 汽车信息为 车名:"+this.getName()+" 每日租金:"+this.getRentFee()+" 最大载人人数"+this.getPerson());
}
}
货车类
package com.chen;
public class truck extends Car implements ICarryGoods {
private int goods;//声明变量载货量
public truck(int newid, String newname, int newRentFee,int newgoods) {
super(newid, newname, newRentFee);
// TODO Auto-generated constructor stub
this.goods=newgoods;
}
@Override
public int getGoods() {
// TODO Auto-generated method stub
return goods;
}
@Override
public void setGoods(int newgoods) {
// TODO Auto-generated method stub
this.goods=newgoods;
}
public void show(){
System.out.println("序号:"+this.getId()+"汽车信息为 车名:"+this.getName()+"每日租金:"+this.getRentFee()+"最大载货量"+this.getGoods());
}
}
皮卡类
package com.chen;
public class PickUpTruck extends Car {
private int goods;//声明变量载货量
private int person;//声明最大载人数
public PickUpTruck(int newid, String newname, int newRentFee,int newperson,int newgoods) {
super(newid, newname, newRentFee);
// TODO Auto-generated constructor stub
this.goods=newgoods;
this.person=newperson;
}
public int getGoods() {
return goods;
}
public void setGoods(int goods) {
this.goods = goods;
}
public int getPerson() {
return person;
}
public void setPerson(int person) {
this.person = person;
}
public void show(){
System.out.println("序号:"+this.getId()+"汽车信息为 车名:"+this.getName()+"每日租金:"+this.getRentFee()+"最大载人人数"+this.getPerson()+"最大载货量(吨):"+this.getGoods());
}
}
载货接口
package com.chen;
/*
* 接口
* 可载货重量 单位吨
*/
public interface ICarryGoods {
int goods=0;
int getGoods();
void setGoods(int newgoods);
}
载人接口
package com.chen;
/*
* 接口
* 可载人人数
*/
public interface ICarryPassage {
int person=0;
int getPerson();
void setPerson(int newperson);
}
实现函数
package com.chen;
import java.util.Scanner;
public class Tset {
/**
* //每次最多租车10辆
* a 1进入系统0退出
* num 租车数量
* Car[] 车辆列表数组
* day 租车天数,默认0
* rentNum[] 所租车的序号
*
*
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
while(true){
//定义车
Car[] car={
new PassageCar(1,"奥迪A4",500,4),
new PassageCar(2,"马自达6",400,4),
new PickUpTruck(3,"皮卡雪6",450,4,2),
new PassageCar(4,"金龙",800,20),
new truck(5,"松花江",400,4),
new truck(6,"依维柯",1000,20)
};
//主界面
System.out.println("欢迎您使用答答租车系统:");
System.out.println("是否要租车:1是 0否");
Scanner in =new Scanner(System.in);
int a=in.nextInt();
if(a==1){
System.out.println("您可租车的类型及其价目:");
System.out.println("序号 汽车名称 租金 容量");
for(int i=0;i<car.length;i++){
car[i].show();
}
System.out.println("请输入您要租汽车的数量:");
int num=in.nextInt();
int rentNum[]=new int[10];//每次最多租车10辆
for(int i=0;i<num;){
i++;
System.out.println("请输入您要租车的第"+i+"辆车序号:");
rentNum[i]=in.nextInt();
}
int day=0;//默认租车0天
System.out.println("请输入租车天数:");
day=in.nextInt();
int sumPerson=0,sumGoods=0,sumRentFee=0;
System.out.println("您的账单为:");
System.out.println("***可载人的车有:");
for(int i=0;i<num;i++){
if(car[rentNum[i]].getPerson()>0){
System.out.print(car[rentNum[i]].getName()+"\t");
sumPerson+=car[rentNum[i]].getPerson();
}
}
System.out.println("总载客量为:"+sumPerson+"人");
/*
*计算载货量与总租金
*/
System.out.println("***可载货的车有:");
for(int i=0;i<num;i++){
if(car[rentNum[i]].getGoods()>0){
System.out.print(car[rentNum[i]].getName()+"\t");
sumGoods+=car[rentNum[i]].getGoods();
}//计算载货量
sumRentFee+=car[rentNum[i]].getRentFee();
}
System.out.println("总载货量为:"+sumGoods+"吨");
System.out.println("租车时间为:"+day+"天");
System.out.println("租车的总价格为:"+sumRentFee*day+"元");
}
//输入a等于0,退出
else if(a==0){
System.out.println("byebye!");
}
//输入a既不等于0,也不等于1
else {
System.out.println("输入有误,请重新输入。");
}
}
}
}