欢迎光临散文网 会员登陆 & 注册

Java oop :租车系统

2019-12-25 16:37 作者:诗书画唱  | 我要投稿

本期看点:

// 神州租车系统

// 声明一个车的数组,存储各种货车,客车和皮卡车

// 1、声明用户类记录用户名和密码

// 2、声明货车类,客车类和皮卡车类继承自车类

// 3、声明载物和载人的接口,货车继承载物的接口

// 客车继承载人的接口,皮卡车继承载人载物的接口

// 使用多态数组初始化车辆的信息,打印并计算租车的总价格

package a;//U12复习课2_租车系统


import java.util.Scanner;


public class  Student{//demo1

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)/*死循环,while(flase)为永不循环*/{

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{

/*abstract抽象父类可以改为普通父类,通过以下方法:删掉class 和void前面的abstract,在类中的方法中加上打印等语句等。*/

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;/*因为che[] c=new che[6];声明在前面,即全局,故this.jiage或jiage等带点的在全局都可自己用 ,若声明在class中this.jiage或jiage等带点的就只可在class里面直接用*/

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);

}


}


Java oop :租车系统的评论 (共 条)

分享到微博请遵守国家法律