目录
6)Bike的借出(时间格式为:2022-6-28 12:30:30)
7)归还Bike(时间格式为:2022-6-28 12:30:30)
一,需求:
1)编写程序入口,实现菜单显示和切换,输入不正确的数字或字母报错
2)遍历所有公司下的Bike,获取数组元素信息,并进行显示
3)向bike数组新增n辆某品牌的单车信息,实现新增Bike信息(两种方法,可单个添加,也可多个添加)
4)按照输入的名称/编号,删除指定Bike(不允许删除借出状态的Bike。如果不存在指定Bike,给出提示)
5)按照输入的编号,借出指定Bike
查找要借出的Bike,判断是否存在,判断是否已借出,如果可借,修改状态值
6)编写方法,按照输入的编号归还借出的Bike,并修改状态值。未借出的无法归还。若输入的编号单车不存在,给出提示
7)增加菜单项“Bike排行榜” ,实现借车次数从大到小的顺序显示不同公司的借车排行榜(冒泡排序实现)
ps:单车类和公司类的中的get和set方法用lombok中的方法实现(需去lombok官网下载好后,手动添加的一个工具),如果不了解的,只需将类前的@Getter和@Setter注解删掉重写get和set方法即可
二,主要技能点:
① 选择结构、循环结构、二重循环结构
② 数组
③ 类和对象
④ SimpleDateFormat类(借出与归还单车的日期)
三,主要代码实现:
1)主程序:
package javasm.day08.project;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.Scanner;
/*
* @author: wyh
* @classname: BicycleTest
* @description:
* @date: 2022/6/25 22:45
* @version: 0.1
* @since: jdk11
*/public class BicycleTest {
static SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
static BikeCompany[] bikeCompanies = new BikeCompany[3];
static Bike[] bikes;
public static Scanner sc = new Scanner(System.in);
static Bike b;
public static void main(String[] args) {
bikes = new Bike[3];
bikes[0] = new Bike(1, "哈罗单车0", 1, "0");
bikes[1] = new Bike(2, "哈罗单车1", 0, "0");
bikes[2] = new Bike(3, "哈罗单车2", 1, "0");
bikeCompanies[0] = new BikeCompany(1, "哈罗单车", bikes, bikes.length, 3);
bikes = new Bike[2];
bikes[0] = new Bike(1, "摩拜单车0", 1, "0");
bikes[1] = new Bike(2, "摩拜单车1", 1, "0");
bikeCompanies[1] = new BikeCompany(2, "摩拜单车", bikes, bikes.length, 5);
bikes = new Bike[2];
bikes[0] = new Bike(1, "ofo单车0", 1, "0");
bikes[1] = new Bike(2, "ofo单车1", 1, "0");
bikeCompanies[2] = new BikeCompany(3, "ofo单车", bikes, bikes.length, 9);
//
boolean isContinue;
String exit;
do {
do {
isContinue = false;
System.out.println("欢迎使用迷你共享单车管理系统:");
System.out.println("*************************************");
System.out.println("\t\t\t1.投放Bike");
System.out.println("\t\t\t2.查看Bike");
System.out.println("\t\t\t3.删除Bike");
System.out.println("\t\t\t4.借出Bike");
System.out.println("\t\t\t5.归还Bike");
System.out.println("\t\t\t6.Bike排行榜");
System.out.println("\t\t\t7.退出");
System.out.println("*************************************");
System.out.println("请选择:");
int num = sc.nextInt();
switch (num) {
case 1:
System.out.println("------>投放Bike");
delivery();
break;
case 2:
System.out.println("------>查看所有Bike信息");
look();
break;
case 3:
System.out.println("------>删除Bike");
delete();
break;
case 4:
System.out.println("------->借出Bike");
lend();
break;
case 5:
System.out.println("------->归还Bike");
repaid();
break;
case 6:
System.out.println("------->Bike排行榜");
lv();
break;
case 7:
System.out.println("感谢您的使用,祝您旅途愉快");
exit();
break;
default:
isContinue = true;
System.out.println("输入错误,请重新输入:");
}
} while (isContinue);
System.out.println("是否继续使用共享系统:(输入y返回主菜单)");