帮我写一个有关医疗病人信息管理系统,包含添加、修改、删除、查询、排序、统计程序的c++代码
时间: 2023-07-10 17:11:36 浏览: 286
好的,以下是一个简单的医疗病人信息管理系统的 C++ 代码,包含了添加、修改、删除、查询、排序、统计等功能:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
// 病人信息结构体
struct Patient {
string name; // 姓名
int age; // 年龄
string gender; // 性别
string id; // 身份证号
string phone; // 手机号码
};
// 全局变量,存储所有病人信息
vector<Patient> patients;
// 添加病人信息
void addPatient() {
Patient p;
cout << "请输入病人姓名:";
cin >> p.name;
cout << "请输入病人年龄:";
cin >> p.age;
cout << "请输入病人性别:";
cin >> p.gender;
cout << "请输入病人身份证号:";
cin >> p.id;
cout << "请输入病人手机号码:";
cin >> p.phone;
patients.push_back(p);
cout << "添加成功!" << endl;
}
// 修改病人信息
void modifyPatient() {
string id;
cout << "请输入要修改的病人身份证号:";
cin >> id;
bool found = false;
for (int i = 0; i < patients.size(); i++) {
if (patients[i].id == id) {
found = true;
cout << "请输入病人姓名:";
cin >> patients[i].name;
cout << "请输入病人年龄:";
cin >> patients[i].age;
cout << "请输入病人性别:";
cin >> patients[i].gender;
cout << "请输入病人手机号码:";
cin >> patients[i].phone;
cout << "修改成功!" << endl;
break;
}
}
if (!found) {
cout << "未找到该病人信息!" << endl;
}
}
// 删除病人信息
void deletePatient() {
string id;
cout << "请输入要删除的病人身份证号:";
cin >> id;
bool found = false;
for (int i = 0; i < patients.size(); i++) {
if (patients[i].id == id) {
found = true;
patients.erase(patients.begin() + i);
cout << "删除成功!" << endl;
break;
}
}
if (!found) {
cout << "未找到该病人信息!" << endl;
}
}
// 查询病人信息
void queryPatient() {
string id;
cout << "请输入要查询的病人身份证号:";
cin >> id;
bool found = false;
for (int i = 0; i < patients.size(); i++) {
if (patients[i].id == id) {
found = true;
cout << "姓名:" << patients[i].name << endl;
cout << "年龄:" << patients[i].age << endl;
cout << "性别:" << patients[i].gender << endl;
cout << "身份证号:" << patients[i].id << endl;
cout << "手机号码:" << patients[i].phone << endl;
break;
}
}
if (!found) {
cout << "未找到该病人信息!" << endl;
}
}
// 排序病人信息
bool cmp(const Patient& p1, const Patient& p2) {
return p1.age < p2.age;
}
void sortPatient() {
sort(patients.begin(), patients.end(), cmp);
cout << "排序成功!" << endl;
}
// 统计病人信息
void countPatient() {
cout << "共有 " << patients.size() << " 位病人信息。" << endl;
}
// 主函数
int main() {
int choice;
while (true) {
cout << "请选择功能:" << endl;
cout << "1. 添加病人信息" << endl;
cout << "2. 修改病人信息" << endl;
cout << "3. 删除病人信息" << endl;
cout << "4. 查询病人信息" << endl;
cout << "5. 排序病人信息" << endl;
cout << "6. 统计病人信息" << endl;
cout << "0. 退出程序" << endl;
cin >> choice;
switch (choice) {
case 1:
addPatient();
break;
case 2:
modifyPatient();
break;
case 3:
deletePatient();
break;
case 4:
queryPatient();
break;
case 5:
sortPatient();
break;
case 6:
countPatient();
break;
case 0:
return 0;
default:
cout << "输入的功能序号不正确,请重新输入!" << endl;
break;
}
}
return 0;
}
```
该程序使用了结构体来存储病人信息,并使用 vector 来存储所有病人信息。通过循环菜单,用户可以选择添加、修改、删除、查询、排序、统计等功能。其中,排序使用了标准库中的 `sort()` 函数,并传入了一个自定义的比较函数 `cmp()`,以实现按照年龄排序。
阅读全文