学校项目

基于链表的汽车租赁管理系统

一个不依赖任何标准库容器的 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 拼接子模块,便于课程评审时逐行阅读。

ASCII 可视化

不依赖图形库,用字符直接绘制柱状图,在纯命令行环境中也能呈现统计结果。

操作日志

关键操作留有记录,便于回溯数据变更。

返回项目列表