该项目旨在为医院或其他医疗机构提供一个简易的病人信息管理工具。用户可以通过命令行界面进行病人信息的增、删、查和改操作,并将数据持久化存储在txt文件中。
一,开发环境需求
-
操作系统 :Windows, Linux
-
开发环境工具 :Qt, VSCode, Visual Studio
-
技术要求:
- C语言编程
- 数据持久化(txt文件操作)
- 结构体和文件分离的代码组织结构
- 命令行交互界面设计
二,功能说明
-
添加病人:允许用户输入新的病人信息,包括姓名、年龄、性别、疾病和住院日期。
-
删除病人:通过输入病人姓名,删除对应的病人信息。
-
查询病人:通过输入病人姓名,查看对应的病人信息。
-
修改病人:通过输入病人姓名,修改该病人的信息。
-
显示所有病人信息:列出系统中存储的所有病人的详细信息。
三,功能实现
- 添加病人:
void addPatient() {
Patient p;
printf("请输入病人姓名:");
scanf("%s", p.name);
printf("请输入病人年龄:");
scanf("%d", &p.age);
printf("请输入病人性别:");
scanf("%s", p.gender);
printf("请输入病人疾病:");
scanf("%s", p.disease);
printf("请输入病人住院日期(格式:yyyy-mm-dd):");
scanf("%s", p.admissionDate);
writePatientToFile(p);
printf("病人信息已添加。\n");
}
- 删除病人:
void deletePatient() {
char name[50];
printf("请输入要删除的病人姓名:");
scanf("%s", name);
deletePatientFromFile(name);
printf("病人信息已删除。\n");
}
- 查询病人:
void findPatient() {
char name[50];
printf("请输入要查询的病人姓名:");
scanf("%s", name);
Patient patients[100];
int count, i, found = 0;
readAllPatientsFromFile(patients, &count);
for (i = 0; i < count; i++) {
if (strcmp(patients[i].name, name) == 0) {
printf("姓名:%s, 年龄:%d, 性别:%s, 疾病:%s, 住院日期:%s\n", patients[i].name, patients[i].age,
patients[i].gender, patients[i].disease, patients[i].admissionDate);
found = 1;
break;
}
}
if (!found) {
printf("未找到该病人的信息。\n");
}
}
- 修改病人:
void modifyPatient() {
char name[50];
Patient newInfo;
printf("请输入要修改的病人姓名:");
scanf("%s", name);
printf("请输入新的姓名:");
scanf("%s", newInfo.name);
printf("请输入新的年龄:");
scanf("%d", &newInfo.age);
printf("请输入新的性别:");
scanf("%s", newInfo.gender);
printf("请输入新的疾病:");
scanf("%s", newInfo.disease);
printf("请输入新的住院日期(格式:yyyy-mm-dd):");
scanf("%s", newInfo.admissionDate);
modifyPatientInFile(name, newInfo);
printf("病人信息已修改。\n");
}
- 显示所有病人信息:
void displayAllPatients() {
Patient patients[100];
int count, i;
readAllPatientsFromFile(patients, &count);
printf("\n********** 全部病人信息 **********\n\n");
for (i = 0; i < count; i++) {
printf("姓名:%s, 年龄:%d, 性别:%s, 疾病:%s, 住院日期:%s\n", patients[i].name, patients[i].age,
patients[i].gender, patients[i].disease, patients[i].admissionDate);
}
printf("\n**********************************\n\n");
}
四,效果图
五,源码
代码已开源,可访问gitee下载。
六,总结
该病人管理系统为医疗机构提供了一个简易但实用的管理工具,旨在提高工作效率,确保数据准确无误。通过该系统,医疗工作人员可以轻松管理病人信息,为提供更好的医疗服务奠定基础。未来,我们期望加入更多高级功能,如数据备份、多用户支持等,使之更加完善。