快递系统(数组储存)的分析解题思路
前言
本系列是我自己关于遇到过的编程题目进行的分析思路总结,希望能够帮助到需要帮助的那些需要帮助的编程小白,同时也欢迎各位前辈予以指正和批评指导,谢谢。
题目:
任务用于熟悉快递管理业务,完成快递管理控制台项目,具体需求如图。
个人初步分析
- 需存储的数据有快递单号,快递公司,取件码,柜子位置(个人认为实际生活中位置应该是快递员选择指定),这里要求采用二维数组的方式存储数据
- 管理员有快递录入,快递删除(根据单号),快递修改(根据单号),查看所有快递(遍历)4个功能
- 普通用户只能根据取件码取快递
个人解题思路
说明
1.快递系统
① Views类(视图类)
② Data类(数据存储类)
③ Import类(数据使用类)
④ Call类(执行方法调度类)
⑤ Main类(程序执行类)
2.实现功能
① 快递员
快递录入
- 柜子位置生成(系统随机生成)
- 快递单号生成(输入)
- 快递公司(输入)
- 取件码(系统随机生成)
快递信息修改
快递删除
全部快递查找
② 普通用户
快递取件
- 输入取件码,取出快递同时删除系统内快递信息
1.视图类Views
根据要求进行各类视图的编码
/**
* 视图类
*/
public class Views {
private Scanner input = new Scanner(System.in);
/**
* 欢迎用方法
*/
public void welcome(){
System.out.println("欢迎使用XXX快递系统");
}
/**
* 结束再见用方法
*/
public void bye(){
System.out.println("欢迎下次使用,再见!");
}
/**
* 身份选择菜单
*/
public int menu(){
// 交互菜单
System.out.println("请根据以下提示,输入功能序号:");
System.out.println("1.快递员");
System.out.println("2.普通用户");
System.out.println("0.退出");
// 输入交互内容
String text = input.nextLine();
// 定义num
int num = -1;
// 异常处理
try{
num = Integer.parseInt(text);
}catch (NumberFormatException e){
}
// 如果不是0,1,2则重新输入
if (num<0 || num>2){
return menu();
}
return num;
}
/**
* 快递员菜单
*/
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.退出");
// 输入交互内容
String text = input.nextLine();
// 定义num
int num = -1;
// 异常处理
try{
num = Integer.parseInt(text);
}catch (NumberFormatException e){
}
// 如果不是0,1,2,3,4则重新输入
if (num<0 || num>4){
System.out.println("选择内容错误,请重新选择");
return cMenu();
}
return num;
}
/**
* 录入信息
*/
public Data insert(){
System.out.println("请根据以下提示,输入快递信息:");
System.out.print("请输入快递单号:");
System.out.println();
// 输入快递单号
String number = input.nextLine();
System.out.print("请输入快递公司:");
// 输入快递公司
String company = input.nextLine();
Data e = new Data();
// 数据录入
e.setNumber(number);
e.setCompany(company);
return e;
}
/**
* 查找快递
*/
public String findByNumber(){
System.out.println("请根据以下提示,输入快递信息:");
System.out.print("请输入需要进行操作的快递单号:");
// 输入需查找快递单号
String number = input.nextLine();
// 返回快递单号数据
return number;
}
/**
* 查找快递
*/
public void printData(Data e){
System.out.println("快递信息如下:");
System.out.println("快递公司:"+e.