它要解决什么
把课堂上的链表、文件操作和模块化设计放进一个真实可用的业务场景,验证数据结构基础是否真的能撑起一套完整系统。
一个不依赖任何标准库容器的 C++11 命令行管理系统:车辆、用户与租车记录全部用单向链表组织,数据以二进制文件持久化,并配有统计汇总、ASCII 柱状图与操作日志。
系统围绕车辆信息、租车用户、租车与退车业务、信息查询、统计汇总和系统设置七个模块展开。所有数据结构都由手写单向链表实现,不使用 vector 或 map;数据通过自定义的二进制格式落盘,重启后可完整恢复。
把课堂上的链表、文件操作和模块化设计放进一个真实可用的业务场景,验证数据结构基础是否真的能撑起一套完整系统。
程序以 car_rent.cpp 为核心,聚合全部常量、结构体、链表操作与业务逻辑,再由七个菜单模块分别实现各功能入口。通过 #include 拼接子模块,编译时只需处理 main.cpp 一个翻译单元。
C++11(使用 constexpr 与 nullptr),仅依赖 cstdio、cstdlib、cstring、ctime 等标准头文件;构建方式支持 Make 与 CMake;界面与注释均为中文,UTF-8 编码。
这是课程设计项目,界面为命令行形式,数据存储在本地文件而非数据库;并发访问与多用户场景不在设计范围内。
从数据维护到业务办理,再到统计与系统管理,模块之间通过共享的链表数据串联。
录入、修改、删除与查看车辆记录,维护可租车辆的基础数据。
维护租车人信息,为后续的租车与退车业务提供关联依据。
办理租车与退车业务,校验车辆状态并同步更新双方的记录。
支持分类查询与模糊搜索,按车辆、用户或记录条件快速定位。
按维度分组统计,并以 ASCII 柱状图输出,让数据分布一眼可见。
包含密码与登录、报表输出、操作日志与数据清空等管理功能。
项目在数据结构与持久化上做了刻意的取舍。
所有节点由 new 与 delete 手工管理,插入、删除与遍历全部自己实现,是链表与指针操作的完整练习。
数据以自定义二进制结构写入文件,读取时按同样布局还原,避免文本解析的开销与歧义。
对日期、编号与重复数据做检查,避免非法输入破坏链表结构或统计结果。
核心逻辑集中在一个 cpp 文件内,#include 拼接子模块,便于课程评审时逐行阅读。
不依赖图形库,用字符直接绘制柱状图,在纯命令行环境中也能呈现统计结果。
关键操作留有记录,便于回溯数据变更。