【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

相关推荐
命运之光1 小时前
【C语言完整代码】图书管理系统:图书馆场景下的增删改查实战
c语言·开发语言
猿长大人2 小时前
C# | Serilog 新手入门
开发语言·c#·.net·log
marvelyu2 小时前
每天10分钟学会OceanBase系列(Day 20):跨机房容灾实战——构建多数据中心高可用架构
java·大数据·数据库
在世修行3 小时前
从零打造 C# 工业视觉检测系统(七):串口通信 SerialPort 封装与开发
开发语言·c#·modbus rtu·rs232/rs485
AI人工智能+电脑小能手3 小时前
大白话说Java设计模式-04-工厂方法模式(业务实战篇)
java·设计模式·工厂方法模式·架构设计·代码解耦
沫璃染墨3 小时前
《从零入门Linux系统篇(十五):系统工具篇·六——GDB调试器详解:从程序执行控制到高级调试技巧》
linux·运维·服务器·c语言·c++
BUG指挥官3 小时前
Sa-Token和Spring Security对比
java·后端·spring
小当家.1053 小时前
深入理解 ReAct Agent:从原理到 Java 实战
java·react.js·agent·react·架构设计·agent设计
geminigoth3 小时前
Spring AI Alibaba 入门开发一(备份)
java·人工智能·spring