用C++实现病人就医管理 编写一个程序实现就医管理。在病人就医过程中,主要发生三件事: ⑴预检,分科室,挂号。 ⑵病人到达诊室,将病历本交给护士,排到等待队列中候诊。 ⑶护士从等待队列中取出一位病人的病历,该病人进入诊室就诊。 要求程序采用菜单方式,其选项及功能说明如下: ⑴挂号------预检,分科室,生成就诊号。
时间: 2023-12-30 14:06:51 浏览: 185
医院急诊预检分诊系统接口优化方案
好的,以下是用C++实现的病人就医管理程序,实现了您提供的功能:
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 病人就诊信息结构体
struct Patient {
string name; // 姓名
int age; // 年龄
string gender; // 性别
string visitNumber; // 就诊号
string department; // 科室
};
// 预检分科函数
void checkup(Patient& patient) {
// 这里只做了简单的预检分科的示例,实际情况需要根据实际需求进行修改
if (patient.age > 60) {
patient.department = "老年科";
} else if (patient.gender == "女") {
patient.department = "妇科";
} else {
patient.department = "内科";
}
}
// 挂号函数
void registerPatient(vector<Patient>& patients) {
Patient patient;
cout << "请输入病人姓名:";
cin >> patient.name;
cout << "请输入病人年龄:";
cin >> patient.age;
cout << "请输入病人性别:";
cin >> patient.gender;
checkup(patient); // 预检分科
patient.visitNumber = to_string(patients.size() + 1); // 生成就诊号
patients.push_back(patient); // 将病人信息添加到列表中
cout << "挂号成功,您的就诊号为:" << patient.visitNumber << endl;
}
// 等待队列函数
void showWaitingList(const vector<Patient>& patients) {
cout << "等待就诊的病人列表:" << endl;
for (auto patient : patients) {
if (patient.department.empty()) { // 如果还未分科,说明没有排到等待队列中
continue;
}
cout << "姓名:" << patient.name
<< ",年龄:" << patient.age
<< ",性别:" << patient.gender
<< ",就诊号:" << patient.visitNumber
<< ",科室:" << patient.department << endl;
}
}
// 就诊函数
void visit(Patient& patient, vector<Patient>& patients) {
// 将病人从等待队列中取出
for (auto& p : patients) {
if (p.visitNumber == patient.visitNumber) {
patient = p;
p = Patient(); // 将原来的病人信息清空,相当于从等待队列中删除
break;
}
}
cout << "请病人 " << patient.name << " 进入诊室就诊。" << endl;
}
int main() {
vector<Patient> patients; // 存储所有病人信息的列表
int choice;
do {
cout << "请选择操作:" << endl;
cout << "1. 挂号" << endl;
cout << "2. 等待队列" << endl;
cout << "3. 就诊" << endl;
cout << "4. 退出" << endl;
cin >> choice;
switch (choice) {
case 1:
registerPatient(patients); // 挂号
break;
case 2:
showWaitingList(patients); // 显示等待队列
break;
case 3:
cout << "请输入要就诊的病人就诊号:";
string visitNumber;
cin >> visitNumber;
for (auto& patient : patients) {
if (patient.visitNumber == visitNumber) {
visit(patient, patients); // 就诊
break;
}
}
break;
case 4:
cout << "退出程序。" << endl;
break;
default:
cout << "无效的操作,请重新选择。" << endl;
break;
}
} while (choice != 4);
return 0;
}
```
程序中使用了一个`Patient`结构体来存储病人的就诊信息,使用了一个`vector`来存储所有病人的信息。程序中实现了预检分科、挂号、等待队列和就诊功能,并且使用了菜单方式进行操作。
阅读全文