代码声明:
题目来源于学生题目求助,个人原创,禁止搬运,仅供参考,欢迎各位前来批评指正~共同学习,共同进步
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
// 医生类
class Doctor {
private:
std::string name;
std::string gender;
std::string department;
public:
// 构造函数初始化医生信息
Doctor(const std::string& name, const std::string& gender, const std::string& department)
: name(name), gender(gender), department(department) {}
// 获取医生信息的函数
const std::string& getName() const {
return name;
}
const std::string& getGender() const {
return gender;
}
const std::string& getDepartment() const {
return department;
}
// 更新医生信息的函数
void updateInfo(const std::string& newName, const std::string& newGender, const std::string& newDepartment) {
name = newName;
gender = newGender;
department = newDepartment;
}
// 如果需要,可以添加更多用于信息操作的函数
};
// 病患类
class Patient {
private:
std::string name;
std::string gender;
std::string symptoms;
std::string appointmentTime;
public:
// 构造函数初始化病患信息
Patient(const std::string& name, const std::string& gender, const std::string& symptoms,
const std::string& appointmentTime)
: name(name), gender(gender), symptoms(symptoms), appointmentTime(appointmentTime) {}
// 获取病患信息的函数
const std::string& getName() const {
return name;
}
const std::string& getGender() const {
return gender;
}
const std::string& getSymptoms() const {
return symptoms;
}
const std::string& getAppointmentTime() const {
return appointmentTime;
}
// 更新病患信息的函数
void updateInfo(const std::string& newName, const std::string& newGender, const std::string& newSymptoms,
const std::string& newAppointmentTime) {
name = newName;
gender = newGender;
symptoms = newSymptoms;
appointmentTime = newAppointmentTime;
}
// 如果需要,可以添加更多用于信息操作的函数
};
// 医生管理类
class DoctorManagement {
private:
std::vector<Doctor> doctors;
public:
// 添加新医生的函数
void addDoctor(const std::string& name, const std::string& gender, const std::string& department) {
doctors.emplace_back(name, gender, department);
}
// 显示医生列表的函数
void displayDoctors() const {
std::cout << "医生列表:\n";
for (const auto& doctor : doctors) {
std::cout << "姓名: " << doctor.getName() << ", 性别: " << doctor.getGender()
<< ", 科室: " << doctor.getDepartment() << "\n";
}
}
// 更新医生信息的函数
void updateDoctorInfo(const std::string& doctorName, const std::string& newDoctorName,
const std::string& newGender, const std::string& newDepartment) {
auto it = std::find_if(doctors.begin(), doctors.end(),
[&doctorName](const Doctor& d) { return d.getName() == doctorName; });
if (it != doctors.end()) {
it->updateInfo(newDoctorName, newGender, newDepartment);
std::cout << "医生信息修改成功。\n";
} else {
std::cout << "找不到该医生。\n";
}
}
// 删除医生的函数
void deleteDoctor(const std::string& doctorName) {
auto it = std::find_if(doctors.begin(), doctors.end(),
[&doctorName](const Doctor& d) { return d.getName() == doctorName; });
if (it != doctors.end()) {
doctors.erase(it);
std::cout << "医生信息删除成功。\n";
} else {
std::cout << "找不到该医生。\n";
}
}
};
// 病患管理类
class PatientManagement {
private:
std::vector<Patient> patients;
public:
// 添加新病患的函数
void addPatient(const std::string& name, const std::string& gender, const std::string& symptoms,
const std::string& appointmentTime) {
patients.emplace_back(name, gender, symptoms, appointmentTime);
}
// 显示病患列表的函数
void displayPatients() const {
std::cout << "病患列表:\n";
for (const auto& patient : patients) {
std::cout << "姓名: " << patient.getName() << ", 性别: " << patient.getGender()
<< ", 病症: " << patient.getSymptoms() << ", 就诊时间: " << patient.getAppointmentTime() << "\n";
}
}
// 更新病患信息的函数
void updatePatientInfo(const std::string& patientName, const std::string& newPatientName,
const std::string& newGender, const std::string& newSymptoms,
const std::string& newAppointmentTime) {
auto it = std::find_if(patients.begin(), patients.end(),
[&patientName](const Patient& p) { return p.getName() == patientName; });
if (it != patients.end()) {
it->updateInfo(newPatientName, newGender, newSymptoms, newAppointmentTime);
std::cout << "病患信息修改成功。\n";
} else {
std::cout << "找不到该病患。\n";
}
}
// 删除病患的函数
void deletePatient(const std::string& patientName) {
auto it = std::find_if(patients.begin(), patients.end(),
[&patientName](const Patient& p) { return p.getName() == patientName; });
if (it != patients.end()) {
patients.erase(it);
std::cout << "病患信息删除成功。\n";
} else {
std::cout << "找不到该病患。\n";
}
}
};
// 诊所系统类
class ClinicSystem {
private:
DoctorManagement doctorManagement;
PatientManagement patientManagement;
bool loggedIn;
public:
// 构造函数,初始化登录状态为未登录
ClinicSystem() : loggedIn(false) {}
// 登录函数
bool login() {
std::string username, password;
std::cout << "请输入用户名: ";
std::cin >> username;
std::cout << "请输入密码: ";
std::cin >> password;
// 这里用于验证逻辑
loggedIn = (username == "admin" && password == "123456");
return loggedIn;
}
// 显示主菜单的函数
void displayMenu() const {
std::cout << "\n1. 医生管理\n"
<< "2. 病患管理\n"
<< "0. 退出\n";
}
// 启动系统的函数
void start() {
if (!login()) {
std::cout << "登录失败,程序退出。\n";
return;
}
int choice;
do {
displayMenu();
std::cout << "请输入您的选择: ";
std::cin >> choice;
switch (choice) {
case 1:
doctorManagementMenu();
break;
case 2:
patientManagementMenu();
break;
case 0:
std::cout << "退出程序。\n";
break;
default:
std::cout << "无效选择,请重试。\n";
}
} while (choice != 0);
}
// 医生管理子菜单的函数
void doctorManagementMenu() {
int choice;
do {
std::cout << "\n1. 添加医生\n"
<< "2. 显示医生列表\n"
<< "3. 修改医生信息\n"
<< "4. 删除医生信息\n"
<< "0. 返回上级菜单\n";
std::cout << "请输入您的选择: ";
std::cin >> choice;
switch (choice) {
case 1: {
std::string doctorName, doctorGender, doctorDepartment;
std::cout << "请输入医生姓名: ";
std::cin >> doctorName;
std::cout << "请输入医生性别: ";
std::cin >> doctorGender;
std::cout << "请输入医生所属科室: ";
std::cin >> doctorDepartment;
doctorManagement.addDoctor(doctorName, doctorGender, doctorDepartment);
std::cout << "医生添加成功。\n";
break;
}
case 2:
doctorManagement.displayDoctors();
break;
case 3: {
std::string doctorName, newDoctorName, newDoctorGender, newDoctorDepartment;
std::cout << "请输入要修改的医生姓名: ";
std::cin >> doctorName;
std::cout << "请输入新的医生姓名: ";
std::cin >> newDoctorName;
std::cout << "请输入新的医生性别: ";
std::cin >> newDoctorGender;
std::cout << "请输入新的医生所属科室: ";
std::cin >> newDoctorDepartment;
doctorManagement.updateDoctorInfo(doctorName, newDoctorName, newDoctorGender, newDoctorDepartment);
break;
}
case 4: {
std::string doctorName;
std::cout << "请输入要删除的医生姓名: ";
std::cin >> doctorName;
doctorManagement.deleteDoctor(doctorName);
break;
}
case 0:
std::cout << "返回上级菜单。\n";
break;
default:
std::cout << "无效选择,请重试。\n";
}
} while (choice != 0);
}
// 病患管理子菜单的函数
void patientManagementMenu() {
int choice;
do {
std::cout << "\n1. 添加病患\n"
<< "2. 显示病患列表\n"
<< "3. 修改病患信息\n"
<< "4. 删除病患信息\n"
<< "0. 返回上级菜单\n";
std::cout << "请输入您的选择: ";
std::cin >> choice;
switch (choice) {
case 1: {
std::string patientName, patientGender, patientSymptoms, patientAppointmentTime;
std::cout << "请输入病患姓名: ";
std::cin >> patientName;
std::cout << "请输入病患性别: ";
std::cin >> patientGender;
std::cout << "请输入病症: ";
std::cin >> patientSymptoms;
std::cout << "请输入就诊时间: ";
std::cin >> patientAppointmentTime;
patientManagement.addPatient(patientName, patientGender, patientSymptoms, patientAppointmentTime);
std::cout << "病患添加成功。\n";
break;
}
case 2:
patientManagement.displayPatients();
break;
case 3: {
std::string patientName, newPatientName, newPatientGender, newPatientSymptoms, newPatientAppointmentTime;
std::cout << "请输入要修改的病患姓名: ";
std::cin >> patientName;
std::cout << "请输入新的病患姓名: ";
std::cin >> newPatientName;
std::cout << "请输入新的病患性别: ";
std::cin >> newPatientGender;
std::cout << "请输入新的病症: ";
std::cin >> newPatientSymptoms;
std::cout << "请输入新的就诊时间: ";
std::cin >> newPatientAppointmentTime;
patientManagement.updatePatientInfo(patientName, newPatientName, newPatientGender,
newPatientSymptoms, newPatientAppointmentTime);
break;
}
case 4: {
std::string patientName;
std::cout << "请输入要删除的病患姓名: ";
std::cin >> patientName;
patientManagement.deletePatient(patientName);
break;
}
###(这里王一的患者信息改成了赵二,所以找不到王一这个患者)
case 0:
std::cout << "返回上级菜单。\n";
break;
default:
std::cout << "无效选择,请重试。\n";
}
} while (choice != 0);
}
};
// 主函数
int main() {
// 创建诊所系统对象并启动
ClinicSystem clinicSystem;
clinicSystem.start();
return 0;
}