Java oop:租车系统详细解析和颜色分层,帮你更易看懂结构

package b;
import java.util.Scanner;
public class Text {
public static void main(String[] args) {
che xiaohuoche = new huoche(1, "小货车", 30, 0, 3);
che dahuoche = new huoche(2, "大货车", 50, 0, 5);
che xiaokeche = new keche(3, "小客车", 40, 4, 0);
che dakeche = new keche(4, "大客车", 80, 10, 0);
che xiaopika = new pika(5, "小皮车", 60, 2, 4);
che dapika = new pika(6, "大皮车", 100, 4, 8);
che[] c = new che[6];
c[0] = xiaohuoche;
c[1] = dahuoche;
c[2] = xiaokeche;
c[3] = dakeche;
c[4] = xiaopika;
c[5] = dapika;
yonghu yh = new yonghu();
che[] c_zuche = null;
while (true) {
System.out.println("---------神舟租车系统-----------");
System.out.println("请输入你的操作:1.登录 2.注册 3.跳出系统");
Scanner s = new Scanner(System.in);
int num = s.nextInt();
if (num == 1) {
System.out.println("----执行登录操作----");
System.out.println("请输入用户名:");
String uname = s.next();
System.out.println("请输入你的密码");
String pwd = s.next();
if (uname.equals(yh.uname) && pwd.equals(yh.pwd)) {
System.out.println("登录成功!");
break;
} else {
System.out.println("登录失败");
}
} else if (num == 2) {
System.out.println("----执行注册操作----");
System.out.println("请输入用户名:");
String uname = s.next();
System.out.println("请输入你的密码");
String pwd = s.next();
System.out.println("请输入你的姓名");
String name = s.next();
yh.uname = uname;
yh.pwd = pwd;
yh.name = name;
System.out.println("注册成功!");
} else if (num == 3) {
System.exit(0);
}
}
// 租车操作
while (true) {
System.out.println("欢迎," + yh.name + "请选择你的操作:");
System.out
.println("1.查看车辆列表 2.进行租车 3.查看我的租车总价格,总载人量,总载物量 4.跳出系统");
Scanner s1 = new Scanner(System.in);
int num = s1.nextInt();
if (num == 1) {
for (che i : c) {/* 相当于for(int i=0;i<c.length;i++) */
i.jieshao();
}
} else if (num == 2) {
System.out.println("请输入你要租的车辆数");
int num1 = s1.nextInt();
c_zuche = new che[num1];
for (int i = 0; i < num1; i++) {
System.out.println("请输入第" + (i + 1) + "车辆的编号");
int bianhao = s1.nextInt();
switch (bianhao) {
case 1:
c_zuche[i] = xiaohuoche;
break;
case 2:
c_zuche[i] = dahuoche;
break;
case 3:
c_zuche[i] = xiaokeche;
break;
case 4:
c_zuche[i] = dakeche;
break;
case 5:
c_zuche[i] = xiaopika;
break;
case 6:
c_zuche[i] = dapika;
break;
}
}
System.out.println("租车成功!");
} else if (num == 3) {
if (c_zuche == null) {
System.out.println("你还没有进行租车呢!");
} else {
int zongjiage = 0;
int zongzairenliang = 0;
int zongzaiwuliang = 0;
for (che i : c_zuche) {
i.jieshao();
zongjiage += i.jiage;
zongzairenliang += i.zaikeliang;
zongzaiwuliang += i.zaiwuliang;
}
System.out.println("总价格" + zongjiage + "总载人量" +
zongzairenliang + "总载物量" + zongzaiwuliang);
}
} else {
System.exit(0);/* 终止系统,不可为break,break是跳出循环 */
}
}
}
}
class yonghu {
String uname;
String pwd;
String name;
}
abstract class che {
int bianhao;
String name;
int jiage;
int zaikeliang;
int zaiwuliang;
public che(int bianhao, String name, int jiage, int zaikeliang,int zaiwuliang) {
this.bianhao = bianhao;
this.name = name;
this.jiage = jiage;
this.zaikeliang = zaikeliang;
this.zaiwuliang = zaiwuliang;
}
abstract void jieshao();
}
class huoche extends che {
public huoche(int bianhao, String name, int jiage,
int zaikeliang, int zaiwuliang) {
super(bianhao, name, jiage, zaikeliang, zaiwuliang);
}
void jieshao() {
System.out.println("编号" + this.bianhao + "\t名称" + this.name +
"\t价格" + this.jiage + "\t载物量" + this.zaiwuliang);
}
}
class keche extends che {
public keche(int bianhao, String name, int jiage, int zaikeliang,
int zaiwuliang) {
super(bianhao, name, jiage, zaikeliang, zaiwuliang);
}
void jieshao() {
System.out.println("编号" + this.bianhao + "\t名称" +
this.name + "\t价格" + this.jiage + "\t载人量" + this.zaikeliang);
}
}
class pika extends che {
public pika(int bianhao, String name, int jiage, int zaikeliang,
int zaiwuliang) {
super(bianhao, name, jiage, zaikeliang, zaiwuliang);
}
void jieshao() {
System.out.println("编号" + this.bianhao + "\t名称" +
this.name + "\t价格" + this.jiage + "\t载人量" + this.zaikeliang + "载物量" +
this.zaiwuliang);
}
}


