基于C++Qt实现大学生日常出行拼车系统[2025-06-08]
一、需求分析
1.项目背景
随着高校校园规模不断扩大,学生在校内外的日常出行频率不断增加。打车费用高昂,校内公共交通资源不足,使得拼车成为一种经济、便捷的解决方案。该系统旨在帮助大学生实现安全、规范、有评价机制的拼车出行。
2.系统目标
(1)构建一个服务于大学生的出行拼车系统。
(2)支持学生、司机在系统上发布拼车信息。
(3)可构建评价功能,建立信誉系统。
(4)支持学生和乘客的在线信息交流(可选项)。
3.角色任务
(1)普通学生用户:注册账号、查看拼车信息、预约拼车、取消预约、对司机评分
(2)司机用户:注册账号并提交驾照和车辆信息、发布拼车信息、管理发布记录、查看乘客预约、给评分乘客
(3)系统管理员(待定):审核发布内容、管理用户信息、处理投诉和纠纷、维护系统稳定性
4.功能需求
(1)用户信息管理(学生用户和司机用户):注册帐号、账号登陆、身份验证、用户信息修改。
(2)车辆信息管理(限制司机用户):注册车辆、修改车辆基本信息。
(3)拼车信息(学生用户和司机用户):发布拼车信息、浏览拼车信息、预约拼车、拼车订单信息记录。
(4)信誉系统(学生用户和司机用户):拼车订单完成后学生用户可以对司机用户打分并评价。
二、概念设计
1.系统的核心实体及关系
(1)学生students:student_id(PK), student_name, gender ,phone, created_at
(2)司机drivers: driver_id, driver_name, vehicle_id, license_number, verified
(3)车辆vehicles: vehicle_id(PK), driver_id(FK), plate_number, vehicle_type, seat_count, vehicle_color
(4)地点时间表route_schedule: schedule_id(PK), start_location, destination, departure_time, estimated_arrival
(5)拼车信息表rides: ride_id(PK), schedule_id(FK), driver_id(FK), vehicle_id(FK), available_seats, note, status, created_at
一个学生可以为多位司机评价,同样地,一位司机也可以收到来自多个学生的评价
一位司机可以注册多辆车辆,但一辆车只属于一位司机。
一个学生可以与多位司机信息交流,一位司机也可以与多个学生信息交流。
一个学生可以浏览多条拼车信息,一条拼车信息也可以被多个学生看到。
一位司机可以发布多条拼车信息,一条拼车信息只从属一位司机。
一条拼车信息只与一个地点时间表相对应。
2.系统ER图
功能描述
- 用户基本信息表(users)
作用:记录所有注册用户(包括司机和乘客)的基本信息。
字段说明:
user_id:用户的唯一标识,自增主键。
name:用户姓名。
gender:用户性别
phone number:用户手机号,用于联系。
student_id:学生证号码,用于验证身份。
is_driver:是否为司机(bool)。
created_at:账户注册时间。 - 拼车信誉信息表(reputation)
作用:用于记录用户在拼车过程中的信誉表现,由其他用户对其打分和评价。
字段说明:
reputation_id:信誉记录的唯一标识,自增主键。
user_id:被评价的用户 ID。
score:信誉评分,范围为 1 到 5 分。
comment:评价内容文字说明。
evaluator_id:评价者的用户 ID。
created_at:评价时间。
3… 地点时间表(route_schedule)
作用:记录每次拼车的路线信息,包括出发地、目的地和时间安排。
字段说明:
schedule_id:路线时间表的唯一标识。
start_location:拼车出发地点。
destination:拼车的目的地。
departure_time:预计出发时间。
estimated_arrival_time:预计到达时间(可选)。 - 车辆信息表(vehicles)
作用:记录司机的车辆基本信息,用于乘客了解所乘车辆的情况。
字段说明:
vehicle_id:车辆唯一标识。
driver_id:车辆所属司机的用户 ID。
plate_number:车牌号码。
vehicle_type:车辆类型,例如“小轿车”、“SUV”等。
seat_count:车辆座位总数。
vehicle_color:车辆颜色。 - 拼车信息表(rides)
作用:司机发布的拼车信息,连接车辆、路线和可用座位等数据。
字段说明:
ride_id:拼车信息的唯一标识。
driver_id:发布拼车信息的司机用户 ID。
schedule_id:对应的路线时间安排 ID。
vehicle_id:使用的车辆 ID。
available_seats:当前剩余可预约座位数量。
note:补充说明,比如“只能带一个大件行李”等。
status:拼车状态,可选值有进行中(active)、已完成(completed)、已取消(cancelled)。
created_at:拼车信息发布时间。 - 拼车成功记录表(ride_orders)
作用:记录乘客成功预约拼车的情况,相当于“拼车订单”。
字段说明:
order_id:订单唯一标识。
ride_id:对应的拼车信息 ID。
passenger_id:预约拼车的乘客用户 ID。
status:订单状态(booked:已预约,completed:已完成,cancelled:已取消)。
booked_at:预约时间。 - (待定)聊天或留言表(ride_messages)
作用:允许司机与乘客之间就拼车细节进行沟通。
字段说明:
message_id:消息唯一标识。
ride_id:关联的拼车信息 ID。
sender_id:发送消息的用户 ID。
message:消息内容。
sent_at:发送时间。
角色任务
1.普通学生用户:注册账号、查看拼车信息、预约拼车、取消预约、对司机评分
2.司机用户:注册账号并提交车辆信息、发布拼车信息、管理发布记录、查看乘客预约、给评分乘客
3.系统管理员(待定):审核发布内容、管理用户信息、处理投诉和纠纷、维护系统稳定性
系统流程
注册并登录->发布拼车信息->预约拼车->拼车完成并评价