刚刚看了慕课网的Java入门第二季,写了一个简单Java的租车系统 。
车辆基本数据如下:
1.建立三种不同车型的抽象类
car.class
public abstract class car {
public abstract String carName();
public abstract int money();
public abstract int people();
}
trunk.class
public abstract class trunk {
public abstract String trunkName();
public abstract int money();
public abstract int content();
}
pika.class
public abstract class pika {
public abstract String pikaName();
public abstract int money();
public abstract int people();
public abstract int content();
}
2.重写不同品牌车型的类
public class audi extends car {
@Override
public String carName() {
return "奥迪A4";
}
@Override
public int money() {
return 500;
}
@Override
public int people() {
return 4;
}
}
3.自定义异常代码MyException.class
public class MyException extends Exception{
public MyException(){
}
public MyException(String message){
super(message);
}
}
4.主函数user.class
package WinterVacation.day3;
import Exception.MyException;
import WinterVacation.day3.MyCar.*;
import WinterVacation.day3.type.car;
import WinterVacation.day3.type.pika;
import WinterVacation.day3.type.trunk;
import java.util.Scanner;
public class user {
public static void main(String[] args){
System.out.printf("欢迎使用答答租车系统\n您是否要租车?1是 2否\n");//用户进入界面
Scanner kb = new Scanner(System.in);//输入流
/* 欢迎使用答答租车系统
您是否要租车?1是 2否
1
*/
int beginNum = kb.nextInt();
if (beginNum == 1) {
car ad = new audi();//导入奥迪A4
car mzd = new mazida();//马自达
car jl = new jinlong();//金龙
pika pkx = new pikaxue();//皮卡雪
trunk shj = new songhuajiang();//松花江
trunk ywk = new yiweike();//依维柯
System.out.println("您可租车的类型及其价目表:");
System.out.println("序号 汽车名称 租金 容量");//价目表头
System.out.println("1. " + ad.carName() + " " + ad.money() + "元/天 " + ad.people() + "人");
//1. 奥迪A4 500元/天 4人
System.out.println("2. " + mzd.carName() + " " + mzd.money() + "元/天 " + mzd.people() + "人");
System.out.println("3. " + jl.carName() + " " + jl.money() + "元/天 " + jl.people() + "人");
System.out.println("4. " + pkx.pikaName() + " " + pkx.money() + "元/天 " + pkx.people() + "人"+" "+pkx.content()+"吨");
System.out.println("5. " + shj.trunkName() + " " + shj.money() + "元/天 " + shj.content() + "吨");
System.out.println("6. " + ywk.trunkName() + " " + ywk.money() + "元/天 " + ywk.content() + "吨");
//输入租车天数
System.out.println("请输入您要租车的天数");
int Day=kb.nextInt();
//统计每种车的输入次数
int[] k=new int[7];
for(int i=0;i<=6;i++)
k[i]=0;
//输入您想租赁的汽车数量
System.out.println("请输入您想租赁的汽车数量。");
int n=kb.nextInt();//n为汽车数量
int moneyCount=0;//存储金额
int peopleCount=0;//总载客人数
int contentCount=0;//总载货量
for(int i=0;i<n;i++){
System.out.printf("请输入您选择的第%d辆车的序号,以回车键结束。\n",i+1);
int temp=kb.nextInt();
if(temp==1){
moneyCount+=ad.money()*Day;
peopleCount+=ad.people();
k[1]++;
}
else if(temp==2){
moneyCount+=mzd.money()*Day;
peopleCount+=mzd.people();
k[2]++;
}
else if(temp==3){
moneyCount+=jl.money()*Day;
peopleCount+=jl.people();
k[3]++;
}
else if(temp==4){
moneyCount+=pkx.money()*Day;
peopleCount+=pkx.people();
contentCount+=pkx.content();
k[4]++;
}
else if(temp==5){
moneyCount+=shj.money()*Day;
contentCount+=shj.content();
k[5]++;
}
else if(temp==6){
moneyCount+=ywk.money()*Day;
contentCount+=ywk.content();
k[6]++;
}
else{
//System.out.println("您的输入有误,请重新输入!");
i--;
try {
throw new MyException("您的输入有误,请重新输入!");
}catch (MyException e){
System.out.println(e.getMessage());
}
}
}
System.out.println("**************您的账单如下:**************");
System.out.println();
System.out.println("可以载人的车:");
for(int i=1;i<=4;i++){
if(k[i]!=0){
if(i==1)
System.out.print(ad.carName()+" ");
if(i==2)
System.out.print(mzd.carName()+" ");
if(i==3)
System.out.print(jl.carName()+" ");
if(i==4)
System.out.print(pkx.pikaName()+" ");
}
}
System.out.println("总计可载"+peopleCount+"人");
System.out.println("可以载货的车:");
for(int i=4;i<=6;i++) {
if (k[i] != 0) {
if (i == 4)
System.out.print(pkx.pikaName() + " ");
if (i == 5)
System.out.print(shj.trunkName() + " ");
if (i == 6)
System.out.print(ywk.trunkName() + " ");
}
}
System.out.println("总计可载货"+contentCount+"吨");
System.out.println("****总计费用为"+moneyCount+"元****");
}
else
System.out.println("欢迎您的下次使用,谢谢!");
}
}
觉得不错,可以访问我的小站CodingLink's Blog - 林克的编程小记