使用c++编写程序:药品管理系统实现1添加模块2删除模块3查询模块4修改模块5浏览模块6排序模块7退出模块
时间: 2023-07-13 13:17:03 浏览: 63
好的,下面是一个简单的药品管理系统的C++代码,实现了以下功能:
1. 添加药品信息
2. 删除药品信息
3. 查询药品信息
4. 修改药品信息
5. 浏览药品信息
6. 排序药品信息
7. 保存并退出
代码如下:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
struct Drug {
string name;
string type;
string production_date;
string expiration_date;
float price;
int quantity;
};
vector<Drug> drugs;
void addDrug() {
Drug drug;
cout << "请输入药品名称:";
cin >> drug.name;
cout << "请输入药品类型:";
cin >> drug.type;
cout << "请输入生产日期:";
cin >> drug.production_date;
cout << "请输入保质期:";
cin >> drug.expiration_date;
cout << "请输入单价:";
cin >> drug.price;
cout << "请输入数量:";
cin >> drug.quantity;
drugs.push_back(drug);
cout << "添加成功!" << endl;
}
void deleteDrug() {
string name;
cout << "请输入要删除的药品名称:";
cin >> name;
for (int i = 0; i < drugs.size(); i++) {
if (drugs[i].name == name) {
drugs.erase(drugs.begin() + i);
cout << "删除成功!" << endl;
return;
}
}
cout << "没有找到该药品!" << endl;
}
void queryDrug() {
string name;
cout << "请输入要查询的药品名称:";
cin >> name;
for (int i = 0; i < drugs.size(); i++) {
if (drugs[i].name == name) {
cout << "药品名称:" << drugs[i].name << endl;
cout << "药品类型:" << drugs[i].type << endl;
cout << "生产日期:" << drugs[i].production_date << endl;
cout << "保质期:" << drugs[i].expiration_date << endl;
cout << "单价:" << drugs[i].price << endl;
cout << "数量:" << drugs[i].quantity << endl;
return;
}
}
cout << "没有找到该药品!" << endl;
}
void modifyDrug() {
string name;
cout << "请输入要修改的药品名称:";
cin >> name;
for (int i = 0; i < drugs.size(); i++) {
if (drugs[i].name == name) {
cout << "请输入新的药品名称:";
cin >> drugs[i].name;
cout << "请输入新的药品类型:";
cin >> drugs[i].type;
cout << "请输入新的生产日期:";
cin >> drugs[i].production_date;
cout << "请输入新的保质期:";
cin >> drugs[i].expiration_date;
cout << "请输入新的单价:";
cin >> drugs[i].price;
cout << "请输入新的数量:";
cin >> drugs[i].quantity;
cout << "修改成功!" << endl;
return;
}
}
cout << "没有找到该药品!" << endl;
}
void browseDrug() {
for (int i = 0; i < drugs.size(); i++) {
cout << "药品名称:" << drugs[i].name << endl;
cout << "药品类型:" << drugs[i].type << endl;
cout << "生产日期:" << drugs[i].production_date << endl;
cout << "保质期:" << drugs[i].expiration_date << endl;
cout << "单价:" << drugs[i].price << endl;
cout << "数量:" << drugs[i].quantity << endl;
cout << endl;
}
}
void sortDrug() {
int choice;
cout << "请选择排序方式:" << endl;
cout << "1.按药品名称排序" << endl;
cout << "2.按药品类型排序" << endl;
cout << "3.按生产日期排序" << endl;
cout << "4.按保质期排序" << endl;
cout << "5.按单价排序" << endl;
cout << "6.按数量排序" << endl;
cin >> choice;
switch (choice) {
case 1:
sort(drugs.begin(), drugs.end(), [](Drug a, Drug b) {
return a.name < b.name;
});
break;
case 2:
sort(drugs.begin(), drugs.end(), [](Drug a, Drug b) {
return a.type < b.type;
});
break;
case 3:
sort(drugs.begin(), drugs.end(), [](Drug a, Drug b) {
return a.production_date < b.production_date;
});
break;
case 4:
sort(drugs.begin(), drugs.end(), [](Drug a, Drug b) {
return a.expiration_date < b.expiration_date;
});
break;
case 5:
sort(drugs.begin(), drugs.end(), [](Drug a, Drug b) {
return a.price < b.price;
});
break;
case 6:
sort(drugs.begin(), drugs.end(), [](Drug a, Drug b) {
return a.quantity < b.quantity;
});
break;
default:
cout << "选择无效!" << endl;
return;
}
cout << "排序成功!" << endl;
}
void saveAndExit() {
ofstream outfile("drugs.txt");
for (int i = 0; i < drugs.size(); i++) {
outfile << drugs[i].name << " " << drugs[i].type << " " << drugs[i].production_date << " "
<< drugs[i].expiration_date << " " << drugs[i].price << " " << drugs[i].quantity << endl;
}
outfile.close();
cout << "保存成功!" << endl;
exit(0);
}
void loadDrugs() {
ifstream infile("drugs.txt");
while (true) {
Drug drug;
infile >> drug.name >> drug.type >> drug.production_date >> drug.expiration_date >> drug.price >> drug.quantity;
if (infile.eof()) {
break;
}
drugs.push_back(drug);
}
infile.close();
}
int main() {
loadDrugs();
while (true) {
int choice;
cout << "请选择操作:" << endl;
cout << "1.添加药品信息" << endl;
cout << "2.删除药品信息" << endl;
cout << "3.查询药品信息" << endl;
cout << "4.修改药品信息" << endl;
cout << "5.浏览药品信息" << endl;
cout << "6.排序药品信息" << endl;
cout << "7.保存并退出" << endl;
cin >> choice;
switch (choice) {
case 1:
addDrug();
break;
case 2:
deleteDrug();
break;
case 3:
queryDrug();
break;
case 4:
modifyDrug();
break;
case 5:
browseDrug();
break;
case 6:
sortDrug();
break;
case 7:
saveAndExit();
break;
default:
cout << "选择无效!" << endl;
break;
}
}
return 0;
}
```
在这个程序中,药品信息被存储在一个 `vector` 中,其中每个元素都是一个 `Drug` 结构体,包含药品的名称、类型、生产日期、保质期、单价和数量等信息。
程序在开始时会从文件 `drugs.txt` 中加载药品信息,用户可以进行添加、删除、查询、修改、浏览、排序等操作。用户在退出前可以选择保存数据,程序将把药品信息保存到文件 `drugs.txt` 中。