今天用java编写了一个租车系统,过程中主要遇到的两个问题:

1、输出数组信息问题:

在得到cars[]数组后,要生成租车信息表,目前有两种思路:一是用循环输出;二是用arrays.tostring()输出数组信息。

用tostring()方法输出数组输出……@……形式的哈希码地址,这里需要对tostring()方法进行重写,在数组涉及到的类中进行重写。

不过用第二种方法输出的其实还是一个数组,形式如图所示。那么问题来了——还有没有更好的输出方法呢?

2、父类方法不能访问子类成员变量:

本来在父类car中写好的getpersoncapacity()和getgoodcapacity()方法似乎不能访问子类中的personcapacity和goodcapacity 这两个成员变量,导致调用参数时始终为0;所以在各子类方法中又独立加上了前面两个方法,问题得以解决。

运行效果图:

代码如下:

package rentcarsys;

/*

* 总共有三种车型:载人auto,载货van,载人载货pickup

* car 为这三种车型的父类

* 有4种属性:

* 编号 = number

* 品牌 = brand

* 租金/天 = fee

* 载人容量 = personcapacity

* 载货容量 = goodcapacity

*/

public class car {

int number;

string brand;

double fee;

int personcapacity;

double goodcapacity;

public car(int number, string brand, double fee){ //构造方法

this.number = number;

this.brand = brand;

this.fee = fee;

}

public int getnumber(){

return number;

}

public string getbrand(){

return brand;

}

public double getfee(){

return fee;

}

public int getpersoncapacity(){

return personcapacity;

}

public double getgoodcapacity(){

return goodcapacity;

}

}

package rentcarsys;

/*

* auto为载人汽车,除了car中的属性之外还有载人容量 personcapacity

*/

public class auto extends car{

private int personcapacity;

public auto(int number, string brand, double fee, int personcapacity) {

super(number, brand, fee);

this.personcapacity = personcapacity;

}

public int getpersoncapacity() {

return personcapacity;

}

@override

public string tostring() {

return number + "\t" + brand + "\t" + fee + "元/天\t" + personcapacity + "人\n";

}

}

package rentcarsys;

/*

* van为载货汽车,除了car中的属性之外还有载货容量 goodcapacity

*/

public class van extends car{

private double goodcapacity;

public van(int number, string brand, double fee, double goodcapacity) {

super(number, brand, fee);

this.goodcapacity = goodcapacity;

}

public double getgoodcapacity(){

return goodcapacity;

}

public string tostring() {

return number + "\t" + brand + "\t" + fee + "元/天\t" + goodcapacity + "吨" + "\n";

}

}

package rentcarsys;

/*

* pickup为载人载货汽车,除了car中的属性之外还有载人容量 personcapacity,载货容量goodcapacity

*/

public class pickup extends car{

private int personcapacity;

private double goodcapacity;

public pickup(int number, string brand, double fee, int personcapacity, double goodcapacity) {

super(number, brand, fee);

this.personcapacity = personcapacity;

this.goodcapacity = goodcapacity;

}

public int getpersoncapacity() {

return personcapacity;

}

public double getgoodcapacity(){

return goodcapacity;

}

@override

public string tostring() {

return number + "\t" + brand + "\t" + fee + "元/天\t" +

personcapacity + "人\t" + goodcapacity + "吨\n";

}

}

package rentcarsys;

import java.util.arrays;

import java.util.scanner;

public class login {

public static void main(string[] args){

scanner input = new scanner(system.in);

car[] cars = new car[6];

system.out.print("欢迎使用答答租车系统:");

system.out.print("您是否要租车?1、是 2、否(请输入1或2)");

int input1 = input.nextint();

if (input1 == 1){

system.out.println("下面是所有车的信息:");

cars[0] = new auto(1, "奥迪a4", 500.0, 4);

cars[1] = new auto(2, "马自达6", 400.0, 4);

cars[2] = new pickup(3, "皮卡雪6", 450.0, 4, 2);

cars[3] = new auto(4, "金龙", 800.0, 20);

cars[4] = new van(5, "松花江", 400.0, 4);

cars[5] = new van(6, "依维柯", 1000.0, 20);

system.out.println("序号\t" + "汽车名称\t" + "租金\t\t" + "容量(载人/载货)");

system.out.println(arrays.tostring(cars));

// for(int i = 0; i < cars.length; i++){

// system.out.println("编号:"+ (i+1) +" 品牌:"+ cars[i].getbrand()

// +" 租金:"+ cars[i].getfee() +"/天 载客量:"+ cars[i].getpersoncapacity()+"人"

// +" 载货量:"+ cars[i].getgoodcapacity()+"吨" );

// }

}else{

system.out.println("谢谢使用,再见!");

}

system.out.print("请输入你要租几种车:");

int rentnum = input.nextint();

//selected用来保存客户选中了什么车型,以及每种车型的辆数,与car数组是对应关系

int[] selected = new int[6];

for (int i = 1; i <= rentnum; i++){

system.out.println("请输入第" + i + "种车型的序号:" );

int nums = input.nextint() - 1;

system.out.println(cars[nums].getbrand() +"总共需要多少辆:");

int num = input.nextint();

selected[nums] = num;

}

system.out.println("请输入租车天数:");

int daysnum = input.nextint();

system.out.println("您的账单:--------------------------");

double total = 0;

for (int i = 0; i < cars.length; i++){

if (selected[i] !=0 ){

system.out.println(selected[i] + "辆" + cars[i].getbrand() +

" 总共载客量:"+selected[i]*cars[i].getpersoncapacity()+"人"+

" 总共载货量:"+selected[i]*cars[i].getgoodcapacity()+"吨"+

" "+daysnum+"天单项费用:"+selected[i]*cars[i].getfee()*daysnum+"元");

total += selected[i]*cars[i].getfee()*daysnum;

}

}

system.out.println("租车总费用:" + total + "元" + "\n" + "欢迎下次光临!------------------------");

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

希望与广大网友互动??

点此进行留言吧!

用java编写租车系统代码_java实现租车系统相关推荐

  1. java电商网站建设教程_java开发电商系统实战开发视频教程

    JAVA 当前位置:主页 > 编程教程 > JAVA > java开发电商系统实战开发视频教程 java开发电商系统实战开发视频教程 教程大小:4GB   发布时间:2018-07- ...

  2. 用JAVA编写50以内的素数_java求50以内的素数

    java求50以内的素数 [2021-02-01 12:46:22]  简介: python求100内的所有素数的方法:使用判断该数除了1和它本身以外不再有其他因数即可,代码为[i=2 for i i ...

  3. 用java编写关于母亲节的代码,java编纂图形用户界面程序-实例2:母亲节快乐!o~ 努力...

    java编写图形用户界面程序--实例2:母亲节快乐!^_^o~ 努力! 最近时间越来越少了,又要准备省赛,又要备考四级! 作为一个地地道道的"农村娃"."计算机渣&quo ...

  4. java如何编写出菱形的代码_java编写菱形代码

    菱形代码 public class Diamond { public static void main(String[] args) { for (int i = 1; i <= 5; i++) ...

  5. java中取系统时间_JAVA中获取当前系统时间(示例代码)

    一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; public class NowStrin ...

  6. 简易atm java代码_Java的简易ATM系统

    大纲 ATM 机系统 1.注册(账户(系统随机生成 15 位) - 密码(6位) - 余额) 2.登录 4.修改密码 3.查询余额 4.存钱 -(显示操作完成后的余额) 5.取钱 - (显示操作完成后 ...

  7. java登录注册抽奖完整代码_Java抽奖系统(附完整代码)

    完整代码import java.util.Scanner;import java.util.ArrayList;import java.io.*;import java.util.StringToke ...

  8. java大嘴鱼游戏代码_Java编写大嘴怪游戏--原创

    第一步:大嘴鱼类 package fish; import java.awt.Color; import java.awt.Graphics; import java.awt.event.Action ...

  9. java购物车系统代码_java购物车系统 团队博客

    1. 团队名称.团队成员介绍(需要有照片) 团队名称:一颗LFL 团队成员:廖余俊 计算机工程学院网络工程1512 学号201521123053 方旭 计算机工程学院网络工程1512 学号201521 ...

最新文章

  1. Lampiao靶机渗透测试
  2. linux挂载卸载不掉 umount target is busy
  3. WinAPI: GetDoubleClickTime、SetDoubleClickTime - 获取与设置鼠标双击间隔时间
  4. 计算机二级vb和vba,读取本机硬件信息的VBA代码
  5. asc desc排序_HIVE的学习之路(六)Hive的分组Join排序
  6. Knockout中ko.utils中处理数组的方法集合
  7. 九度OJ 1054:字符串内排序
  8. poj3723Conscription
  9. 前端学习(3206):初始化state
  10. 关于“Unknown or unsupported command ‘install‘”问题解决的小结
  11. [转载] [转载] python反三角函数arctan_Python numpy.arctan() 使用实例
  12. mysql 计算天数_mysql计算两个日期之间的天数
  13. Spring启动执行流程
  14. 凝望深渊,并发控制的尽头
  15. IEEE 754 浮点数的详细分析
  16. git 申请合并冲突:rebase 解决合成一条再合并
  17. android x86 最新手机,Android-x86 9.0-r2 稳定版发布:底层升级至Android 9.0
  18. 近红外光谱模型构建流程与评估
  19. SpringMvc参数传递
  20. java代码去连接flash media server服务器_flash media server 第一课:Hello world!

热门文章

  1. java发送html模板的高逼格邮件
  2. dede修改mysql,织梦教程:如何修改dedecms系统数据库表前缀?
  3. es6 Promise是什么?
  4. java植物大战僵尸小游戏
  5. 【《Unity着色器和屏幕特效开发秘笈》】学习整理:关于屏幕特效【2】
  6. 屏蔽 FutureWarning
  7. python web编程之django post请求
  8. 坐在电脑前是高一点好还是低一点好
  9. 本科计算机科学与技术毕业论文题目,(计算机科学与技术本科毕业论文选题.doc...
  10. 上网设备linux共享网络,共享上网 - Linux Wiki