Java结合面向对象编程思想,开发“裹裹快投”快递服务控制台程序,可实现用户寄件、
时间: 2024-05-05 15:22:51 浏览: 49
查询、签收、投诉等功能。
首先,我们需要定义一些类来表示快递服务中的各种对象。比如,我们可以定义一个用户类(User),一个快递员类(Courier),以及一个快递类(Express)等等。
下面是一个简单的 User 类的定义:
```
public class User {
private String name; // 用户名
private String phone; // 手机号码
private String address; // 收件地址
// 构造函数
public User(String name, String phone, String address) {
this.name = name;
this.phone = phone;
this.address = address;
}
// getter/setter 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
```
快递员类和快递类的定义类似,这里就不赘述了。
接下来,我们需要定义一个主控制台程序,用来实现用户输入指令、查询快递信息等功能。以下是一个简单的主程序的代码:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 初始化快递公司
ExpressCompany company = new ExpressCompany();
// 进入主循环
while (true) {
System.out.println("请输入指令:");
String command = scanner.nextLine();
if (command.equals("寄件")) {
// 用户输入寄件相关信息
System.out.println("请输入寄件人姓名:");
String senderName = scanner.nextLine();
System.out.println("请输入寄件人手机号码:");
String senderPhone = scanner.nextLine();
System.out.println("请输入寄件人地址:");
String senderAddress = scanner.nextLine();
System.out.println("请输入收件人姓名:");
String receiverName = scanner.nextLine();
System.out.println("请输入收件人手机号码:");
String receiverPhone = scanner.nextLine();
System.out.println("请输入收件人地址:");
String receiverAddress = scanner.nextLine();
// 创建快递对象并保存到快递公司中
Express express = new Express(senderName, senderPhone, senderAddress, receiverName, receiverPhone, receiverAddress);
company.addExpress(express);
System.out.println("寄件成功!");
} else if (command.equals("查询")) {
// 用户输入快递单号
System.out.println("请输入快递单号:");
String expressNumber = scanner.nextLine();
// 查询快递信息并输出
Express express = company.findExpress(expressNumber);
if (express != null) {
System.out.println("快递单号:" + express.getNumber());
System.out.println("寄件人姓名:" + express.getSenderName());
System.out.println("寄件人手机号码:" + express.getSenderPhone());
System.out.println("寄件人地址:" + express.getSenderAddress());
System.out.println("收件人姓名:" + express.getReceiverName());
System.out.println("收件人手机号码:" + express.getReceiverPhone());
System.out.println("收件人地址:" + express.getReceiverAddress());
} else {
System.out.println("快递单号不存在!");
}
} else if (command.equals("签收")) {
// 用户输入快递单号
System.out.println("请输入快递单号:");
String expressNumber = scanner.nextLine();
// 签收快递并输出结果
boolean result = company.signExpress(expressNumber);
if (result) {
System.out.println("签收成功!");
} else {
System.out.println("快递单号不存在或已被签收!");
}
} else if (command.equals("投诉")) {
// 用户输入快递单号和投诉信息
System.out.println("请输入快递单号:");
String expressNumber = scanner.nextLine();
System.out.println("请输入投诉信息:");
String complaint = scanner.nextLine();
// 添加投诉信息并输出结果
boolean result = company.addComplaint(expressNumber, complaint);
if (result) {
System.out.println("投诉成功!");
} else {
System.out.println("快递单号不存在!");
}
} else if (command.equals("退出")) {
// 退出程序
break;
} else {
// 非法指令
System.out.println("非法指令,请重新输入!");
}
}
}
}
```
以上代码仅为示例,具体实现可能需要根据实际情况进行修改和完善。
阅读全文