达达java_java第二季的达达租车软件模拟

花了一晚上,和大家比较后发现我的方法太复杂,,分别构造了一堆子类。

不过效果基本上达到了要求。

抽象类Cars

package com.projectrent;

public abstract class Cars {

protected int rent=0;

protected String name="";

protected int num=0;

protected boolean forMan=false;

protected int numOfPassengers;

protected boolean forGoods=false;

protected int tonsOfGoods;

protected int totalRent;

protected int totalNumOfPassengers;

protected int totalTonsOfGoods;

public abstract void setRent();

public abstract void setName();

public abstract void setNum();

public abstract void display();

public abstract void dispARentInfo(int[] nums,int[] days);

}

Car1

package com.projectrent;

public class Car1 extends Cars implements Carforman{

public Car1(){

setRent();

setName();

setNum();

numOfPassengers();

}

@Override

public void setRent() {

// TODO Auto-generated method stub

rent=500;

}

@Override

public void setName() {

// TODO Auto-generated method stub

name="奥迪A4";

}

@Override

public void setNum() {

// TODO Auto-generated method stub

num=1;

}

@Override

public void numOfPassengers() {

// TODO Auto-generated method stub

forMan=true;

numOfPassengers=4;

}

@Override

public void display() {

// TODO Auto-generated method stub

System.out.print(num+"\t"+name+"\t"+rent+"元/天"+"\t");

if(forMan){

System.out.print("载人:"+numOfPassengers+"人");

if(forGoods){

System.out.print(",载货:"+tonsOfGoods+"吨");

}

}else if(forGoods){

System.out.print("载货:"+tonsOfGoods+"吨");

}

}

@Override

public void dispARentInfo(int[] nums, int[] days) {

// TODO Auto-generated method stub

if(nums[0]!=0){

int m=0;

System.out.print(num+"\t"+name+"\t"+rent+"元/天"+"\t");

if(forMan){

m=1;

if(forGoods){

m=3;

}

}else if(forGoods){

m=2;

}

switch(m){

case 1:System.out.print("载人:"+numOfPassengers+"人\t");break;

case 2:System.out.print("载货:"+tonsOfGoods+"吨\t");break;

case 3:System.out.print("载人:"+numOfPassengers+"人");System.out.print(",载货:"+tonsOfGoods+"吨");break;

default:System.out.println("system error");

}

totalRent=rent*nums[0]*days[0];

totalNumOfPassengers=nums[0]*numOfPassengers;

totalTonsOfGoods=nums[0]*tonsOfGoods;

System.out.print("\t"+nums[0]+"\t"+days[0]+"\t"+totalRent+"元\t");

switch(m){

case 1:System.out.print("载人:"+totalNumOfPassengers+"人");break;

case 2:System.out.print("载货:"+totalTonsOfGoods+"吨");break;

case 3:System.out.print("载人:"+totalNumOfPassengers+"人");System.out.print(",载货:"+totalTonsOfGoods+"吨");break;

default:System.out.println("system error");

}

}

}

}

Car2

package com.projectrent;

public class Car2 extends Cars implements Carforman {

public Car2(){

setRent();

setName();

setNum();

numOfPassengers();

}

@Override

public void numOfPassengers() {

// TODO Auto-generated method stub

forMan=true;

numOfPassengers=4;

}

@Override

public void setRent() {

// TODO Auto-generated method stub

rent=400;

}

@Override

public void setName() {

// TODO Auto-generated method stub

name="马自达6";

}

@Override

public void setNum() {

// TODO Auto-generated method stub

num=2;

}

@Override

public void display() {

// TODO Auto-generated method stub

System.out.println();

System.out.print(num+"\t"+name+"\t"+rent+"元/天"+"\t");

if(forMan){

System.out.print("载人:"+numOfPassengers+"人");

if(forGoods){

System.out.print(",载货:"+tonsOfGoods+"吨");

}

}else if(forGoods){

System.out.print("载货:"+tonsOfGoods+"吨");

}

}

@Override

public void dispARentInfo(int[] nums, int[] days) {

// TODO Auto-generated method stub

if(nums[1]!=0){

System.out.println();

int m=0;

System.out.print(num+"\t"+name+"\t"+rent+"元/天"+"\t");

if(forMan){

m=1;

if(forGoods){

m=3;

}

}else if(forGoods){

m=2;

}

switch(m){

case 1:System.out.print("载人:"+numOfPassengers+"人\t");break;

case 2:System.out.print("载货:"+tonsOfGoods+"吨\t");break;

case 3:System.out.print("载人:"+numOfPassengers+"人");System.out.print(",载货:"+tonsOfGoods+"吨");break;

default:System.out.println("system error");

}

totalRent=rent*nums[1]*days[1];

totalNumOfPassengers=nums[1]*numOfPassengers;

totalTonsOfGoods=nums[1]*tonsOfGoods;

System.out.print("\t"+nums[1]+"\t"+days[1]+"\t"+totalRent+"元\t");

switch(m){

case 1:System.out.print("载人:"+totalNumOfPassengers+"人");break;

case 2:System.out.print("载货:"+totalTonsOfGoods+"吨");break;

case 3:System.out.print("载人:"+totalNumOfPassengers+"人");System.out.print(",载货:"+totalTonsOfGoods+"吨");break;

default:System.out.println("system error");

}

}

}

}

Car3

package com.projectrent;

public class Car3 extends Cars implements Carforman, Carforgoods {

public Car3(){

setRent();

setName();

setNum();

numOfPassengers();

tonsOfGoods();

}

@Override

public void tonsOfGoods() {

// TODO Auto-generated method stub

forGoods=true;

tonsOfGoods=2;

}

@Override

public void numOfPassengers() {

// TODO Auto-generated method stub

forMan=true;

numOfPassengers=4;

}

@Override

public void setRent() {

// TODO Auto-generated method stub

rent=450;

}

@Override

public void setName() {

// TODO Auto-generated method stub

name="皮卡雪6";

}

@Override

public void setNum() {

// TODO Auto-generated method stub

num=3;

}

@Override

public void display() {

// TODO Auto-generated method stub

System.out.println();

System.out.print(num+"\t"+name+"\t"+rent+"元/天"+"\t");

if(forMan){

System.out.print("载人:"+numOfPassengers+"人");

if(forGoods){

System.out.print(",载货:"+tonsOfGoods+"吨");

}

}else if(forGoods){

System.out.print("载货:"+tonsOfGoods+"吨");

}

}

@Override

public void dispARentInfo(int[] nums, int[] days) {

// TODO Auto-generated method stub

if(nums[2]!=0){

System.out.println();

int m=0;

System.out.print(num+"\t"+name+"\t"+rent+"元/天"+"\t");

if(forMan){

m=1;

if(forGoods){

m=3;

}

}else if(forGoods){

m=2;

}

switch(m){

case 1:System.out.print("载人:"+numOfPassengers+"人\t");break;

case 2:System.out.print("载货:"+tonsOfGoods+"吨\t");break;

case 3:System.out.print("载人:"+numOfPassengers+"人");System.out.print(",载货:"+tonsOfGoods+"吨");break;

default:System.out.println("system error");

}

totalRent=rent*nums[2]*days[2];

totalNumOfPassengers=nums[2]*numOfPassengers;

totalTonsOfGoods=nums[2]*tonsOfGoods;

System.out.print("\t"+nums[2]+"\t"+days[2]+"\t"+totalRent+"元\t");

switch(m){

case 1:System.out.print("载人:"+totalNumOfPassengers+"人");break;

case 2:System.out.print("载货:"+totalTonsOfGoods+"吨");break;

case 3:System.out.print("载人:"+totalNumOfPassengers+"人");System.out.print(",载货:"+totalTonsOfGoods+"吨");break;

default:System.out.println("system error");

}

}

}

}

Car4

package com.projectrent;

public class Car4 extends Cars implements Carforman {

public Car4(){

setRent();

setName();

setNum();

numOfPassengers();

}

@Override

public void numOfPassengers() {

// TODO Auto-generated method stub

forMan=true;

numOfPassengers=20;

}

@Override

public void setRent() {

// TODO Auto-generated method stub

rent=800;

}

@Override

public void setName() {

// TODO Auto-generated method stub

name="金龙";

}

@Override

public void setNum() {

// TODO Auto-generated method stub

num=4;

}

@Override

public void display() {

// TODO Auto-generated method stub

System.out.println();

System.out.print(num+"\t"+name+"\t"+rent+"元/天"+"\t");

if(forMan){

System.out.print("载人:"+numOfPassengers+"人");

if(forGoods){

System.out.print(",载货:"+tonsOfGoods+"吨");

}

}else if(forGoods){

System.out.print("载货:"+tonsOfGoods+"吨");

}

}

@Override

public void dispARentInfo(int[] nums, int[] days) {

// TODO Auto-generated method stub

if(nums[3]!=0){

System.out.println();

int m=0;

System.out.print(num+"\t"+name+"\t"+rent+"元/天"+"\t");

if(forMan){

m=1;

if(forGoods){

m=3;

}

}else if(forGoods){

m=2;

}

switch(m){

case 1:System.out.print("载人:"+numOfPassengers+"人\t");break;

case 2:System.out.print("载货:"+tonsOfGoods+"吨\t");break;

case 3:System.out.print("载人:"+numOfPassengers+"人");System.out.print(",载货:"+tonsOfGoods+"吨");break;

default:System.out.println("system error");

}

totalRent=rent*nums[3]*days[3];

totalNumOfPassengers=nums[3]*numOfPassengers;

totalTonsOfGoods=nums[3]*tonsOfGoods;

System.out.print("\t"+nums[3]+"\t"+days[3]+"\t"+totalRent+"元\t");

switch(m){

case 1:System.out.print("载人:"+totalNumOfPassengers+"人");break;

case 2:System.out.print("载货:"+totalTonsOfGoods+"吨");break;

case 3:System.out.print("载人:"+totalNumOfPassengers+"人");System.out.print(",载货:"+totalTonsOfGoods+"吨");break;

default:System.out.println("system error");

}

}

}

}

Car5

package com.projectrent;

public class Car5 extends Cars implements Carforgoods {

public Car5(){

setRent();

setName();

setNum();

tonsOfGoods();

}

@Override

public void tonsOfGoods() {

// TODO Auto-generated method stub

forGoods=true;

tonsOfGoods=4;

}

@Override

public void setRent() {

// TODO Auto-generated method stub

rent=400;

}

@Override

public void setName() {

// TODO Auto-generated method stub

name="松花江";

}

@Override

public void setNum() {

// TODO Auto-generated method stub

num=5;

}

@Override

public void display() {

// TODO Auto-generated method stub

System.out.println();

System.out.print(num+"\t"+name+"\t"+rent+"元/天"+"\t");

if(forMan){

System.out.print("载人:"+numOfPassengers+"人");

if(forGoods){

System.out.print(",载货:"+tonsOfGoods+"吨");

}

}else if(forGoods){

System.out.print("载货:"+tonsOfGoods+"吨");

}

}

@Override

public void dispARentInfo(int[] nums, int[] days) {

// TODO Auto-generated method stub

if(nums[4]!=0){

System.out.println();

int m=0;

System.out.print(num+"\t"+name+"\t"+rent+"元/天"+"\t");

if(forMan){

m=1;

if(forGoods){

m=3;

}

}else if(forGoods){

m=2;

}

switch(m){

case 1:System.out.print("载人:"+numOfPassengers+"人\t");break;

case 2:System.out.print("载货:"+tonsOfGoods+"吨\t");break;

case 3:System.out.print("载人:"+numOfPassengers+"人");System.out.print(",载货:"+tonsOfGoods+"吨");break;

default:System.out.println("system error");

}

totalRent=rent*nums[4]*days[4];

totalNumOfPassengers=nums[4]*numOfPassengers;

totalTonsOfGoods=nums[4]*tonsOfGoods;

System.out.print("\t"+nums[4]+"\t"+days[4]+"\t"+totalRent+"元\t");

switch(m){

case 1:System.out.print("载人:"+totalNumOfPassengers+"人");break;

case 2:System.out.print("载货:"+totalTonsOfGoods+"吨");break;

case 3:System.out.print("载人:"+totalNumOfPassengers+"人");System.out.print(",载货:"+totalTonsOfGoods+"吨");break;

default:System.out.println("system error");

}

}

}

}

Car6

package com.projectrent;

public class Car6 extends Cars implements Carforgoods {

public Car6(){

setRent();

setName();

setNum();

tonsOfGoods();

}

@Override

public void tonsOfGoods() {

// TODO Auto-generated method stub

forGoods=true;

tonsOfGoods=20;

}

@Override

public void setRent() {

// TODO Auto-generated method stub

rent=1000;

}

@Override

public void setName() {

// TODO Auto-generated method stub

name="依维柯";

}

@Override

public void setNum() {

// TODO Auto-generated method stub

num=6;

}

@Override

public void display() {

// TODO Auto-generated method stub

System.out.println();

System.out.print(num+"\t"+name+"\t"+rent+"元/天"+"\t");

if(forMan){

System.out.print("载人:"+numOfPassengers+"人");

if(forGoods){

System.out.print(",载货:"+tonsOfGoods+"吨");

}

}else if(forGoods){

System.out.print("载货:"+tonsOfGoods+"吨");

}

}

@Override

public void dispARentInfo(int[] nums, int[] days) {

// TODO Auto-generated method stub

if(nums[5]!=0){

System.out.println();

int m=0;

System.out.print(num+"\t"+name+"\t"+rent+"元/天"+"\t");

if(forMan){

m=1;

if(forGoods){

m=3;

}

}else if(forGoods){

m=2;

}

switch(m){

case 1:System.out.print("载人:"+numOfPassengers+"人\t");break;

case 2:System.out.print("载货:"+tonsOfGoods+"吨\t");break;

case 3:System.out.print("载人:"+numOfPassengers+"人");System.out.print(",载货:"+tonsOfGoods+"吨");break;

default:System.out.println("system error");

}

totalRent=rent*nums[5]*days[5];

totalNumOfPassengers=nums[5]*numOfPassengers;

totalTonsOfGoods=nums[5]*tonsOfGoods;

System.out.print("\t"+nums[5]+"\t"+days[5]+"\t"+totalRent+"元\t");

switch(m){

case 1:System.out.print("载人:"+totalNumOfPassengers+"人");break;

case 2:System.out.print("载货:"+totalTonsOfGoods+"吨");break;

case 3:System.out.print("载人:"+totalNumOfPassengers+"人");System.out.print(",载货:"+totalTonsOfGoods+"吨");break;

default:System.out.println("system error");

}

}

}

}

Initial

package com.projectrent;

import java.util.Scanner;

public class Initial {

static Scanner input;

static int[] nums=new int[6];

static int[] days=new int[6];

static boolean endOfInput=false;

static int allNumOfCars;

static int allRent;

static int allPassengers;

static int allGoods;

static boolean exit=false;

//display cars information

public static void display(){

Cars car1=new Car1();

Cars car2=new Car2();

Cars car3=new Car3();

Cars car4=new Car4();

Cars car5=new Car5();

Cars car6=new Car6();

System.out.println("下面是可租车辆类型与租金信息:");

System.out.println("序号\t名称\t租金\t载人/载货");

car1.display();

car2.display();

car3.display();

car4.display();

car5.display();

car6.display();

}

//获得租车信息

public static void getRentInfo(){

int rentOrNot,No;

do{

System.out.print("所租车序号:");

No=input.nextInt();

System.out.print("该类车数量:");

nums[No-1]=input.nextInt();

System.out.print("共租借天数:");

days[No-1]=input.nextInt();

System.out.println("是否继续输入:(1是 0否)");

do{

rentOrNot=input.nextInt();

if(rentOrNot==1){

break;

}

else if(rentOrNot==0){

endOfInput=true;

System.out.println("正在输出您的租车信息,请稍候...");

break;

}

else System.out.println("请重新输入:");

}while(true);

}while(!endOfInput);

}

//输出租车信息

public static void dispRentInfo(){

Cars car1=new Car1();

Cars car2=new Car2();

Cars car3=new Car3();

Cars car4=new Car4();

Cars car5=new Car5();

Cars car6=new Car6();

System.out.println("您的租车信息为:");

System.out.println("序号\t名称\t租金\t载人/载货\t\t数量\t天数\t总金额\t总载重(人/货)");

car1.dispARentInfo(nums, days);

car2.dispARentInfo(nums, days);

car3.dispARentInfo(nums, days);

car4.dispARentInfo(nums, days);

car5.dispARentInfo(nums, days);

car6.dispARentInfo(nums, days);

System.out.println();

for(int a=0;a<6;a++){

allNumOfCars+=nums[a];

}

allRent=car1.totalRent+car2.totalRent+car3.totalRent+car4.totalRent+car5.totalRent+car6.totalRent;

allPassengers=car1.totalNumOfPassengers+car2.totalNumOfPassengers+car3.totalNumOfPassengers+car4.totalNumOfPassengers+car5.totalNumOfPassengers+car6.totalNumOfPassengers;

allGoods=car1.totalTonsOfGoods+car2.totalTonsOfGoods+car3.totalTonsOfGoods+car4.totalTonsOfGoods+car5.totalTonsOfGoods+car6.totalTonsOfGoods;

System.out.print("合计\t--\t--\t--\t\t"+allNumOfCars+"\t-\t"+allRent+"元\t");

if(allPassengers!=0){

System.out.print("载人:"+allPassengers+"人");

if(allGoods!=0){

System.out.print(",载货:"+allGoods+"吨");

}

}else if(allGoods!=0){

System.out.print("载货:"+allGoods+"吨");

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

//verification & display

input=new Scanner(System.in);

int rentOrNot,No;

System.out.println("*******欢迎使用答答租车系统*******\n您是否要租车?(1是 0否)");

do{

rentOrNot=input.nextInt();

if(rentOrNot==1){

display();break;

}

else if(rentOrNot==0){

System.out.println("成功退出。欢迎再次使用。");

exit=true;break;

}

else System.out.println("请重新输入:");

}while(!exit);

if(!exit){

System.out.println();

System.out.println("*****请输入租车信息:*****");

//get info of rent cars, include Nos, nums of cars, nums of days

getRentInfo();

dispRentInfo();

//confirmation module

System.out.println();

System.out.println("*****以上为您的租车信息,请确认:*****");

do{

System.out.println("1确认 0取消");

rentOrNot=input.nextInt();

if(rentOrNot==1){//rent info confirmation

System.out.println("正在处理,请稍候...");break;

}

else if(rentOrNot==0){//cancel confirmation

System.out.println("确定要取消吗?(1确定 0返回确认信息)");

do{

rentOrNot=input.nextInt();

if(rentOrNot==1){//really cancel

System.out.println("成功取消。欢迎再次使用。");

exit=true;break;

}else if(rentOrNot==0){//get back

break;

}else System.out.println("请重新输入:");

}while(!exit);

}

else System.out.println("请重新输入:");

}while(!exit);

if(!exit){

//payment module

do{

System.out.println("您需要支付的金额为:"+allRent+"元\n请选择支付方式:");

System.out.println("1支付成功 0支付失败 7直接退出");

rentOrNot=input.nextInt();

if(rentOrNot==1){

System.out.println("您已成功支付,可打印以上信息作为凭证。\n******谢谢使用,再见******");break;

}

else if(rentOrNot==0){

System.out.println("支付失败,请重试。");

}

else if(rentOrNot==7){

System.out.println("成功退出。欢迎再次使用。");

exit=true;break;

}

else System.out.println("请重新输入:");

}while(!exit);

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值