一、概述
这个是使用Java实现的一个智能快递柜的管理系统,系统中包含两个角色,分别是用户操作和快递员操作。实现的具体功能如下:
二、功能
1.管理员
(1)快递录入
———柜子的位置(系统产生,不能重复)
———快递单号(输入)
———快递公司(输入)
———6位取件码(系统产生,不能重复)
(2)删除快递(根据单号)
(3)修改快递(根据单号)
(4)查看所有快递(遍历)
2.普通用户
(1)取快递
————输入取件码:显示快递的信息和快递的位置。取出之后,将此快递信息删除。
三、采用的模式
此系统我采用了MVC模式,即:数据存取(M)、视图展示(V)、调度逻辑(C)。
数据存取(M):将快递信息存入,数据存取可以使用数组、集合或者是数据库。我写的这个直接 使用二维数组。
视图展示(V):负责打印,向用户展示界面,专门与用户打交道,提示用户输入快递信息等。
调度逻辑(C):根据视图接收到的用户输入的内容,调度数据存取。
MVC的好处:实现代码复用;降低模块间的耦合性;逻辑更清晰。
四、效果如下:
五、代码
1、视图层:
package com.java.view;
import com.java.bean.Express;
import java.util.Scanner;
//主界面
public class Views {
private Scanner input = new Scanner(System.in); //接收用户输入
/**
* 欢迎界面
*/
public void welcome(){
System.out.println("————---——欢迎使用小小张快递管理系统!---------");
}
/**
* 再见界面
*/
public void bye(){
System.out.println("宝,有缘再相见!");
}
/**
* 选择身份的菜单
*/
public int menu(){
System.out.println("----------请根据提示输入功能序号-----------");
System.out.println("1.快递员");
System.out.println("2.普通用户");
System.out.println("0.退出");
//这里的代码逻辑相较于.nextInt优点在哪?
//但思考这个方法内的逻辑,没有优点。
//但思考全局代码,是有优点的:所有方法均使用nextLine,不会因为输入产生冲突,还可以更好地接收各种的类型数据。
String text = input.nextLine(); //接收用户输入的数据。nextLine所有方法都可以使用,更好地接收键盘输入的各种数据类型。
int num = -1;
try {
num = Integer.parseInt(text);
}catch