【C语言完整代码】就诊信息管理系统

【C语言完整代码】就诊信息管理系统

完整源码、项目素材、配套资源、exe 一键可执行软件,统一前往知选星球官网获取:https://zhixuanxingqiu.com

一、项目前言与背景

很多初学者觉得 C 语言「只会黑窗口」。其实同样是结构体、数组、文件读写,加上 EasyX 画菜单和表格,就能变成看得见的管理系统

本项目是像素风 就诊信息管理系统 :医院大厅背景、木板按钮、本地 visits.txt 存档,支持查看 / 添加 / 删除 / 修改 / 查找。配套 HTML 功能介绍页,方便在博客里展示软件能力(不含任何价格信息)。

二、项目整体架构概述

文件 职责
商品详情.html 功能介绍:能做什么、字段是什么、适合谁学
C语言就诊信息管理系统.cpp 场景状态机、表格绘制、CRUD、文件读写
visits.txt 数据文件:`就诊号
就诊信息管理系统.png + 像素图标 界面视觉

运行流程:

  1. 启动加载背景与图标 → loadVisits 读入数据(无则演示数据);
  2. 主菜单六项场景切换(也可按键 1~6);
  3. 添加/修改校验后 saveVisits 落盘;
  4. 查找用关键词匹配就诊号或姓名。

三、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[],成功后立刻写回文本文件------这就是「管理系统」最朴素的数据流。

六、开发踩坑与优化方案

  1. 中文乱码: 文本建议 GBK;读取时识别 UTF-8 BOM 并转换。
  2. 图标缺失: 像素 png 需与 exe 同目录。
  3. 输入法: EasyX 环境对中文输入不稳定,可做快捷填姓名按钮降低挫败感。
  4. 删除/修改: 先按就诊号定位,再数组搬移或覆盖字段。

七、项目总结

适合 C 语言图形化入门与课设:把文件读写做成医院场景里的真实操作。同一套脚手架还能换皮成学生系统、图书系统(改字段与背景即可)。

八、资源获取

本文仅展示核心演示片段。完整 HTML、C++ 源码、背景与 exe,可前往知选星球官网获取。

官网地址:https://zhixuanxingqiu.com

相关推荐
Hhy_1107几秒前
《C++深度解构04》类和对象(下)——类型转换、static、友元与编译器优化
c语言·c++·学习·类和对象·visual studio
Wang's Blog7 分钟前
Java 项目实战: 外卖平台-后台退出功能与首页iframe架构
java·服务器·redis
Wang's Blog9 分钟前
Java 项目实战: 外卖平台-软件开发流程与项目整体介绍
java·服务器·redis
她说..9 分钟前
常见设计模式-模板方法模式
java·spring·设计模式·springboot
步行cgn10 分钟前
BeanFactory 与 FactoryBean 的区别:面试深度解析
java·后端·spring
IT 行者17 分钟前
JDK 27 正式发布:内存、安全、并发三路齐发
java
伍一513 小时前
hiprint-spring-boot打印组件介绍
java·hiprint
神仙别闹8 小时前
基于 C++ 实现(控制台)学生成绩管理系统
开发语言·c++
Wang's Blog8 小时前
Java 接入Redis: 服务启动停止与后台运行配置
java·服务器·redis
此时不提桶,更待何时9 小时前
01-04-B-垃圾回收面试与生产事故实战
java·jvm·面试