**快递系统的管理**
一、快递管理系统的编程模式
快递管理系统我们采用MVC的编程思维模式来进行编写
M数据存取(快递数据)(也称dao层)
V视图展示(用户以及快递员界面所看到的欢迎,菜单,子菜单)
C逻辑调度(根据视图接收到的用户输入内容,调度数据)
二、视图层
1.创建一个views的包,里面创建一个Views类,开始创建视图层
一、完成对用户以及快递员可见的视图主菜单和欢迎退出的打印以及导包可接收用户输入信息的Scanner,这里的Scanner要私有化一下
代码如下(示例):
private Scanner input = new Scanner(System.in);
/**
* 欢迎
* 再见
*/
public void welcome(){
System.out.println("欢迎使用xxx快递系统");
}
public void bye(){
System.out.println("欢迎下次使用");
}
/**
* 选择身份的菜单
* @return
*/
public int menu() {
System.out.println("请根据提示,输入功能序号");
System.out.println("1.快递员");
System.out.println("2.普通用户");
System.out.println("0.退出");
//这里的代码逻辑相较于我们的.nextInt的有点在哪?
//单思考这个方法内的逻辑没有什么有点,但是思考全局代码是有优点的:所有方法均使用nextLine。不会因为输入产生冲突,还可以更好的接收各种类型的数据
String text = input.nextLine();
int num = -1;
try {
num = Integer.parseInt(text);
} catch (NumberFormatException e) {
}
if(num<0 || num>2){
System.out.println("输入有误,请重新选择");
return menu();
}
return num;
}
/**
* 快递员菜单
* @return
*/
二、建立一个快递员选项视图菜单
包括快递员的视图菜单和快递员所能进行的操作的菜单(增删改查)
public int cMenu(){
System.out.println("请根据提示,输入功能序号");
System.out.println("1.快递录入");
System.out.println("2.快递修改");
System.out.println("3.快递删除");
System.out.println("4.查看所有快递");
System.out.println("0.返回上级目录");
//这里的代码逻辑相较于我们的.nextInt的有点在哪?
//单思考这个方法内的逻辑没有什么有点,但是思考全局代码是有优点的:所有方法均使用nextLine。不会因为输入产生冲突,还可以更好的接收各种类型的数据
String text = input.nextLine();
int num = -1;
try {
num = Integer.parseInt(text);
} catch (NumberFormatException e) {
}
if(num<0 || num>4){
System.out.println("输入有误,请重新选择");
return cMenu();
}
return num;
}
/**
* 快递员录入快递
* @return包含了快递单号和快递公司的对象
*/
public Express insert(){
System.out.println("请根据提示,输入快递信息");
System.out.println("请输入快递单号");
String number = input.nextLine();
System.out.println("请输入快递公司");
String company = input.nextLine();
Express e = new Express();
e.setCompany(company);
e.setNumber(number);
return e;
/**
* 提示用户输入快递单号
* @return
*/
public String findByNumber(){
System.out.println("请根据提示,输入快递信息");
System.out.println("请输入要操作的快递单号");
String number = input