# TODO List — 组员A **负责模块**: 车次信息管理(顺序表) **核心数据结构**: 顺序表 `TrainList` **文件**: `src/train.h`、`src/train.cpp` **分支**: `feature/train` --- ## 一、顺序表基础操作 - [ ] `ListInsert` — 在位置 i 插入车次(检查越界/满/重复) - [ ] `ListDelete` — 删除位置 i 的车次(元素前移) - [ ] `ListUpdate` — 更新位置 i 的车次信息 ## 二、查找算法(两种) - [ ] `SeqSearch` — 顺序查找(按车次号逐个比较) - [ ] `BinSearch` — 二分查找(需先按 trainNo 排序) - [ ] `SearchByStation` — 按始发站/终点站模糊查找 - [ ] `AdvancedSearch` — 多条件组合查询(站名 + 票价区间) ## 三、排序算法(三种) - [ ] `InsertSort` — 直接插入排序(按车次号升序) - [ ] `QuickSort` — 快速排序(按票价排序) - [ ] `HeapSort` — 堆排序(按余票数排序) ## 四、文件读写 - [ ] `loadTrainsFromFile` — 从 `data/trains.csv` 读取车次数据 - [ ] `saveTrainsToFile` — 将车次数据写回 `data/trains.csv` ## 五、管理员交互接口 - [ ] `adminAddTrain` — 交互式新增车次(录入各字段,校验合法性) - [ ] `adminDeleteTrain` — 按车次号查找并删除 - [ ] `adminModifyTrain` — 查找后选择字段修改 - [ ] `adminListTrains` — 遍历输出所有车次(格式化表格) - [ ] `adminSearchTrain` — 菜单选择查找方式(顺序/二分/模糊) - [ ] `adminSortTrains` — 菜单选择排序方式(票价快排 / 余票堆排) - [ ] `adminShowStatistics` — 调用 hash 模块统计函数展示 ## 六、乘客交互接口 - [ ] `passengerSearchTrain` — 乘客查车次(按站名/时间/票价筛选) --- > **依赖关系**: 先完成基础操作(增删改)和文件读写 → 再做查找 → 再做排序 → 最后做交互接口 > **验收标准**: 管理员能完成车次增删改查全流程,排序结果正确,数据重启后不丢失