你可以用c++帮我写一个简单的快件管理系统吗,要求进入系统后首先选择取件人模式或管理员模式,内置管理员的账号密码,取件人可以凭借手机号或者快递单号取快递,管理员可以进行快件的录入,删除,读取,修改,查询已取快件,查询未取快件,一个快件应包含的信息有:随机生成的快递单号,寄件人,寄件人手机号,寄件人住址,收件人,收件人手机号,收件人住址。退出系统时回到选择模式的界面
时间: 2024-03-14 12:43:27 浏览: 17
好的,我可以帮你实现这个简单的快递管理系统。下面是一个大概的实现思路:
1. 首先定义一个快递类,包含随机生成的快递单号,寄件人,寄件人手机号,寄件人住址,收件人,收件人手机号,收件人住址等信息。
2. 定义一个管理员类,其中包含管理员的账号密码,以及快递列表。
3. 在主函数中,首先让用户选择是进入取件人模式还是管理员模式。如果是取件人模式,则让用户输入手机号或快递单号查询快递信息。如果是管理员模式,则要求管理员输入账号密码进行验证。
4. 验证成功后,管理员可以进行快递的录入、删除、读取、修改等操作。同时,管理员可以查询已取快件和未取快件信息。
5. 当管理员退出系统时,回到选择模式的界面。
下面是一个简单的代码实现,你可以根据自己的需要进行修改和完善。
```c++
#include <iostream>
#include <vector>
#include <string>
#include <ctime>
using namespace std;
// 定义一个快递类
class Express {
public:
string id; // 快递单号
string sender; // 寄件人
string sender_phone; // 寄件人手机号
string sender_address; // 寄件人住址
string receiver; // 收件人
string receiver_phone; // 收件人手机号
string receiver_address;// 收件人住址
Express() {
// 随机生成一个快递单号
srand(static_cast<unsigned int>(time(nullptr)));
id = "KJ" + to_string(rand() % 10000);
}
};
// 定义一个管理员类
class Admin {
private:
string username = "admin"; // 管理员账号
string password = "123456"; // 管理员密码
vector<Express> express_list; // 快递列表
public:
// 验证管理员账号密码
bool verify(string user, string pass) {
return (user == username && pass == password);
}
// 添加快递
void addExpress() {
Express e;
cout << "请输入快递信息:" << endl;
cout << "寄件人:";
getline(cin, e.sender);
cout << "寄件人手机号:";
getline(cin, e.sender_phone);
cout << "寄件人住址:";
getline(cin, e.sender_address);
cout << "收件人:";
getline(cin, e.receiver);
cout << "收件人手机号:";
getline(cin, e.receiver_phone);
cout << "收件人住址:";
getline(cin, e.receiver_address);
express_list.push_back(e);
cout << "添加成功!" << endl;
}
// 删除快递
void deleteExpress() {
string id;
cout << "请输入快递单号:";
getline(cin, id);
for (auto it = express_list.begin(); it != express_list.end(); ++it) {
if (it->id == id) {
express_list.erase(it);
cout << "删除成功!" << endl;
return;
}
}
cout << "快递单号不存在!" << endl;
}
// 修改快递
void modifyExpress() {
string id;
cout << "请输入快递单号:";
getline(cin, id);
for (auto& e : express_list) {
if (e.id == id) {
cout << "请输入新的快递信息:" << endl;
cout << "寄件人:";
getline(cin, e.sender);
cout << "寄件人手机号:";
getline(cin, e.sender_phone);
cout << "寄件人住址:";
getline(cin, e.sender_address);
cout << "收件人:";
getline(cin, e.receiver);
cout << "收件人手机号:";
getline(cin, e.receiver_phone);
cout << "收件人住址:";
getline(cin, e.receiver_address);
cout << "修改成功!" << endl;
return;
}
}
cout << "快递单号不存在!" << endl;
}
// 查询已取快递
void queryReceived() {
cout << "已取快递列表:" << endl;
for (const auto& e : express_list) {
if (e.receiver_phone != "") {
cout << "快递单号:" << e.id << ",收件人:" << e.receiver << ",收件人手机号:" << e.receiver_phone << endl;
}
}
}
// 查询未取快递
void queryUnreceived() {
cout << "未取快递列表:" << endl;
for (const auto& e : express_list) {
if (e.receiver_phone == "") {
cout << "快递单号:" << e.id << ",收件人:" << e.receiver << endl;
}
}
}
// 按快递单号查询快递信息
void queryById(string id) {
for (const auto& e : express_list) {
if (e.id == id) {
cout << "快递单号:" << e.id << endl;
cout << "寄件人:" << e.sender << ",寄件人手机号:" << e.sender_phone << ",寄件人住址:" << e.sender_address << endl;
cout << "收件人:" << e.receiver << ",收件人手机号:" << e.receiver_phone << ",收件人住址:" << e.receiver_address << endl;
return;
}
}
cout << "快递单号不存在!" << endl;
}
// 按手机号查询快递信息
void queryByPhone(string phone) {
cout << "查询结果:" << endl;
for (const auto& e : express_list) {
if (e.sender_phone == phone || e.receiver_phone == phone) {
cout << "快递单号:" << e.id << endl;
cout << "寄件人:" << e.sender << ",寄件人手机号:" << e.sender_phone << ",寄件人住址:" << e.sender_address << endl;
cout << "收件人:" << e.receiver << ",收件人手机号:" << e.receiver_phone << ",收件人住址:" << e.receiver_address << endl;
}
}
}
};
int main() {
Admin admin;
string user, pass;
string mode;
cout << "欢迎使用快递管理系统!" << endl;
while (true) {
cout << "请选择模式(1.取件人模式 2.管理员模式):";
getline(cin, mode);
if (mode == "1") {
string id_or_phone;
cout << "请输入快递单号或手机号:";
getline(cin, id_or_phone);
admin.queryById(id_or_phone);
admin.queryByPhone(id_or_phone);
} else if (mode == "2") {
cout << "请输入管理员账号:";
getline(cin, user);
cout << "请输入管理员密码:";
getline(cin, pass);
if (admin.verify(user, pass)) {
string op;
while (true) {
cout << "请选择操作(1.添加快递 2.删除快递 3.修改快递 4.查询已取快递 5.查询未取快递 6.退出):";
getline(cin, op);
if (op == "1") {
admin.addExpress();
} else if (op == "2") {
admin.deleteExpress();
} else if (op == "3") {
admin.modifyExpress();
} else if (op == "4") {
admin.queryReceived();
} else if (op == "5") {
admin.queryUnreceived();
} else if (op == "6") {
break;
} else {
cout << "无效操作!" << endl;
}
}
} else {
cout << "管理员账号或密码错误!" << endl;
}
} else {
cout << "无效模式!" << endl;
}
}
return 0;
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)