Skip to content

Lofi-Concrete/Homework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

基沃托斯大酒店管理系统

C语言课程设计 —— 酒店客房管理系统 vibecoding 的C语言大作业

一、系统功能模块

1. 客房信息管理

  • 包含字段:房间号、房间类型(单人间/标准间/豪华间/套房)、楼层、床位数量、房间价格、房间状态(空闲/已预订/已入住/维修中)
  • 以文本文件存储,初始录入 30 间客房

2. 客户信息管理

  • 包含字段:身份证号、姓名、联系电话、性别、入住次数(自动累加)
  • 以文本文件存储,初始录入 20 位客户(碧蓝档案角色)

3. 预订与入住管理

  • 包含字段:订单编号、客户身份证号、房间号、预订日期、入住日期、离店日期、订单状态(已预订/已入住/已退房/已取消)
  • 支持房间预订、入住登记、退房、取消订单操作

4. 查询功能

  • 按房间号 / 房间类型 / 楼层 / 价格 / 状态查询客房
  • 按身份证号 / 姓名 / 手机号查询客户
  • 按订单号 / 客户信息 / 客房信息 / 订单状态查询订单
  • 所有查询结果支持方向键滚动浏览

5. 数据管理功能

  • 添加 / 删除 / 修改客房信息
  • 添加 / 修改客户信息
  • 创建 / 查询 / 取消订单
  • 程序退出时自动保存到文本文件

6. 数据持久化

  • 启动时从 test_data/ 自动加载数据
  • 退出时自动保存所有修改
  • 文件格式带 # 行注释,易读易编辑
  • 支持手动备份恢复

二、技术实现

数据结构

typedef struct RoomNode  { Room data; struct RoomNode *next; }  // 客房链表
typedef struct CustNode  { Customer data; struct CustNode *next; } // 客户链表
typedef struct OrderNode { Order data; struct OrderNode *next; } // 订单链表
  • 带哨兵节点的单向链表,支持动态增删
  • 自定义结构体包含所有业务字段
  • 枚举类型定义房间状态 / 订单状态

文件结构(模块化设计)

src/
  main.c              — 入口 + 全局变量
  modules/types.h     — 数据结构定义
  operations/manager  — 链表 CRUD 操作
  storage/store       — 文件读写 + 内存释放
  views/
    tui               — ncurses 底层绘制
    common            — 共享组件(滚动状态、安全输入)
    menu              — 菜单导航循环
    room_view         — 客房全部视图
    customer_view     — 客户全部视图
    order_view        — 订单全部视图

编译运行

# 编译
cmake -B build -S . && cmake --build build

# 运行
./build/HotelManager

# 依赖:ncursesw (wide-char 支持中文)

操作说明

按键 功能
↑↓ / j k 上下导航
Ctrl+B / Ctrl+F 翻页
g / G 跳到首行 / 末行
Enter 确认 / 选择
ESC 返回 / 取消
F2 保存录入
n 查询结果中新增记录

三、测试数据

  • test_data/rooms.txt — 30间客房(楼层1-4,含不同房型和状态)
  • test_data/customers.txt — 20位碧蓝档案角色
  • test_data/orders.txt — 15条订单(客房-客户-订单数据关联一致)

四、代码规范

  • GNU 代码风格,2空格缩进
  • C11 标准,-Wall -Wextra -O2
  • 关键函数和复杂逻辑均有注释
  • 模块化设计,按功能分离源文件
  • 统一的命名规范

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors