【C语言完整代码】就诊信息管理系统
完整源码、项目素材、配套资源、exe 一键可执行软件,统一前往知选星球官网获取:https://zhixuanxingqiu.com

一、项目前言与背景
很多初学者觉得 C 语言「只会黑窗口」。其实同样是结构体、数组、文件读写,加上 EasyX 画菜单和表格,就能变成看得见的管理系统。
本项目是像素风 就诊信息管理系统 :医院大厅背景、木板按钮、本地 visits.txt 存档,支持查看 / 添加 / 删除 / 修改 / 查找。配套 HTML 功能介绍页,方便在博客里展示软件能力(不含任何价格信息)。

二、项目整体架构概述
| 文件 | 职责 |
|---|---|
商品详情.html |
功能介绍:能做什么、字段是什么、适合谁学 |
C语言就诊信息管理系统.cpp |
场景状态机、表格绘制、CRUD、文件读写 |
visits.txt |
数据文件:`就诊号 |
就诊信息管理系统.png + 像素图标 |
界面视觉 |
运行流程:
- 启动加载背景与图标 →
loadVisits读入数据(无则演示数据); - 主菜单六项场景切换(也可按键 1~6);
- 添加/修改校验后
saveVisits落盘; - 查找用关键词匹配就诊号或姓名。

三、HTML 功能介绍页核心代码解析
青绿像素顶栏,强调「本地文件、零数据库」:
html
<div style="background:#2a4a48;border:4px solid #14302e;box-shadow:4px 4px 0 #14302e;padding:12px;">
<div style="color:#7dffb0;font-size:12px;">PIXEL CLINIC SYSTEM</div>
<div style="color:#fff;font-size:20px;font-weight:800;">就诊信息管理系统</div>
<div style="color:#b8ffe0;font-size:13px;margin-top:6px;">C语言 EasyX · 像素医院大厅 · 本地文件存数据</div>
</div>
功能列表与程序菜单一一对应,方便读者对照源码:
html
<ul style="margin:0;padding:0 0 0 18px;font-size:13px;line-height:1.85;">
<li><b>就诊记录表</b>:就诊号、姓名、性别、年龄、科室、诊费</li>
<li><b>增删改查</b>:鼠标点菜单,也可按键盘 1~6</li>
<li><b>本地持久化</b>:数据写入 visits.txt</li>
</ul>
四、C++ 核心源码逻辑解析
1. 数据结构
cpp
typedef struct {
char id[32]; /* 就诊号 */
char name[32]; /* 姓名 */
char gender[8]; /* 性别 */
int age; /* 年龄 */
char dept[32]; /* 科室 */
float fee; /* 诊费 */
} Visit;
六个字段对应六个输入框,教学上非常直观。
2. 读取 / 保存文本库
cpp
int saveVisits(void) {
FILE* fp = fopen(DATA_FILE, "wb");
int i;
if (!fp) return 0;
for (i = 0; i < g_count; i++) {
fprintf(fp, "%s|%s|%s|%d|%s|%.1f\r\n",
g_visits[i].id, g_visits[i].name, g_visits[i].gender,
g_visits[i].age, g_visits[i].dept, g_visits[i].fee);
}
fclose(fp);
return 1;
}
loadVisits 按 | 拆字段,并兼容 UTF-8 BOM;文件不存在时 seedDemoVisits 写入演示病人,保证一打开就有表可看。
3. 添加:校验 + 去重
cpp
void doAdd(void) {
if (g_fields[0][0] == '\0' || g_fields[1][0] == '\0') {
showMsg("就诊号和姓名不能为空!");
return;
}
if (findById(g_fields[0]) >= 0) {
showMsg("该就诊号已存在!");
return;
}
/* 填充 Visit → g_visits[g_count++] → saveVisits() */
}
4. 查找:就诊号或姓名子串
cpp
void doSearch(void) {
g_searchCount = 0;
for (int i = 0; i < g_count; i++) {
if (strstr(g_visits[i].id, g_fields[0]) ||
strstr(g_visits[i].name, g_fields[0])) {
g_searchResult[g_searchCount++] = g_visits[i];
}
}
}
5. 主菜单绘制
cpp
void drawMenu(void) {
const char* labels[6] = {
"1. 查看记录", "2. 添加记录", "3. 删除记录",
"4. 修改记录", "5. 查找记录", "6. 退出系统"
};
/* 木板按钮 + 像素图标 + 描边标题「就诊信息管理系统」 */
}
五、核心联动逻辑讲解
介绍页「查看/添加/删除/修改/查找」 ↔ Scene 枚举六场景
介绍页「visits.txt 本地存」 ↔ loadVisits / saveVisits
介绍页「就诊号...诊费」字段 ↔ Visit 结构体与输入框
介绍页像素医院视觉 ↔ 背景图 + 木板按钮 + 图标
界面操作改变内存中的 g_visits[],成功后立刻写回文本文件------这就是「管理系统」最朴素的数据流。
六、开发踩坑与优化方案
- 中文乱码: 文本建议 GBK;读取时识别 UTF-8 BOM 并转换。
- 图标缺失: 像素 png 需与 exe 同目录。
- 输入法: EasyX 环境对中文输入不稳定,可做快捷填姓名按钮降低挫败感。
- 删除/修改: 先按就诊号定位,再数组搬移或覆盖字段。
七、项目总结
适合 C 语言图形化入门与课设:把文件读写做成医院场景里的真实操作。同一套脚手架还能换皮成学生系统、图书系统(改字段与背景即可)。
八、资源获取
本文仅展示核心演示片段。完整 HTML、C++ 源码、背景与 exe,可前往知选星球官网获取。