驾校学员驾考成绩管理系统

前言

考研期间还得抽空做实验,而且这个好像网上很难找,周围同学都焦头烂额的,哈哈…
为造福后人,特此开源!

忙于考研,代码可能等考研才放上来,目前先放出 题目数据库设计项目演示文档

驾校学员驾考成绩管理系统

课题描述

设计一个驾校学员的驾考成绩管理系统,成绩管理信息包括:考试人员编号(001,002…),姓名,理论考试成绩,倒桩移库成绩,小三项成绩,路考成绩,并能够自动生成考试结果(是否取得驾照)。注:上述4项考试必须均在90分以上才可获取驾照。

基本要求

1、 实现三种不同权限的用户登录和管理功能——
(1)管理员登陆:具有查看、编辑修改和添加删除任意一条学员考试记录的功能,并能够查看本次考试的所有学员的考试结果统计信息(包括:总体通过率和各项通过率);
(2)教练员登陆:具有查看和编辑修改功能但是没有添加和删除的功能;
(3)学员登陆:只有查看功能,且只能查看本人的考试结果。

2、 在管理员模式下,实现对学员信息的录入,生成考试结果(显示出每项成绩和是否获得驾照),并可将此次考试结果保存为文件。

3、 在管理员模式下,实现对已保存文件的读取,以便获得过往考试结果的历史信息。

4、 三类用户在查看学员考试结果时,均可按照学员姓名或编号,对某个学员的考试记录进行单独查询

5、 管理员和教练员在查看本次考试的全体学员的考试结果时,均可按照学员姓名首字母(学员姓名录入时,只需录入其拼音字母即可)或考试编号进行正序或逆序排序。

6、 管理员和教练员均可进行统计查询,即仅查询获取驾照或未能获取驾照的人员名单、仅查询某单项考试的通过和未通过学员的名单、仅查询某单项考试的通过率。

提高要求

1、设计友好的用户界面

2、实现数据库查询、插入、删除等功能

3、管理员具备新建教练员或学员账号的功能,三类用户均具备更改登录密码的功能

数据库设计

学员人员表(t_user)

  • 学员编号(id):001,002…
  • 姓名(name):luzhenyu
  • 用户名(username):yusael
  • 用户密码(password):1234
CREATE TABLE `t_student` (
	`id` varchar(50) NOT NULL,
	`name` varchar(50) DEFAULT NULL,
	`username` varchar(50) DEFAULT NULL,
	`password` varchar(50) DEFAULT NULL,
	PRIMARY KEY (`id`), KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

教练员(t_coach)

  • 教练员编号(id):C001、C002…
  • 姓名(name):大河马
  • 用户名(username):zhenyu
  • 用户密码(password):99999
CREATE TABLE `t_coach` ( `id` varchar(20) NOT NULL,
	`name` varchar(50) DEFAULT NULL,
	`username` varchar(50) DEFAULT NULL,
	`password` varchar(50) DEFAULT NULL,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

管理员(t_admin)

  • 管理员编号(id):A001、A002…
  • 用户名(username):admin
  • 用户密码(password):123456
CREATE TABLE `t_admin` (
	`id` varchar(50) NOT NULL,
	`username` varchar(50) DEFAULT NULL,
	`password` varchar(50) DEFAULT NULL,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

学员考试成绩表(t_exam)

  • 科目一理论考试(exam1):95
  • 科目二小路考(exam2):95
  • 科目三大路考(exam3):95
  • 科目四理论考试(exam4):95
  • 是否取得驾照(getLicence):yes
  • 学员编号(studentid):001
  • (学员姓名(name):luzhenyu)这个字段没有放到表里…
CREATE TABLE `t_exam` (
	`id` varchar(50) NOT NULL,
	`exam1` int(5) DEFAULT NULL,
	`exam2` int(5) DEFAULT NULL,
	`exam3` int(5) DEFAULT NULL,
	`exam4` int(5) DEFAULT NULL,
	`getLicence` varchar(5) DEFAULT NULL,
	`studentid` varchar(20) NOT NULL,
	PRIMARY KEY (`studentid`),
	CONSTRAINT `t_exam_ibfk_1` FOREIGN KEY (`studentid`) REFERENCES `t_student` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

项目演示

功能较多,这里演示一些主要功能。

登陆界面:若未登录,没有头像且不可点击导航栏(只有驾考主页可以访问)
在这里插入图片描述
三种权限登录后的导航栏,分别是:学员,教练,管理员
学员登录的权限
教练登录的权限
管理员登录的权限
然后我们以功能最多的管理员登录,进入驾考主页:上方是轮播图;
驾考主页
下方是一些信息咨询,并且可以展开如下:
在这里插入图片描述
进入学员管理页面,管理员是功能全开的,其他权限登录的话,有些按钮是不能点的:
比如学员登录后,只可查看自己的信息,并且不能点击其他任何按钮。
在这里插入图片描述
管理员登录后,可以查看所有人信息,并且所有按钮都是有效的:
在这里插入图片描述
点击删除:
在这里插入图片描述
编辑学员考试信息,学员号是不可改变的:
在这里插入图片描述
可以查看总体通过率和单科通过率:
在这里插入图片描述
在这里插入图片描述
学员账号管理可以管理学院账号,教练账号同理:
在这里插入图片描述
点击历史记录,进入后,上传历史文件即可查看历史记录:一开始没有文件:
在这里插入图片描述
上传历史文件后,可以查看到历史记录:
在这里插入图片描述

实验报告

概要设计

项目架构:前后端分离的 WEB 项目(SPA)

  • 前端技术栈:ElementUi + Vue.js + Axios
  • 后端技术栈:SpringBoot —— (Spring + SpringMVC + MyBatis)

技术栈简述:
本项目中采用的前端技术中,ElementUI 是饿了么团队开发的前端组件库,也就是前端精美漂亮的页面效果是由这个库完成的。 Vue.js 是国人尤雨溪开发的 javascript 库,拥有独特的 MVVM(双向绑定) 机制,十分适合前后端分离的架构。

后端采用 Java 框架 —— SpringBoot,SpringBoot 实际上就是简化配置版的 Spring + SpringMVC + MyBatis,其中 Spring 使用工厂设计模式来管理类,最大的特点是解耦合(大项目可以更好的体现);SpringMVC 扮演的是视图层,主要完成页面的跳转以及过滤器等功能;MyBatis 是 数据库层,用于完成数据库相关操作。

前后端的联系通过 Axios 建立,Axios 是一个基于 promise 的 HTTP 库。前端利用 Axios 向后台发送请求(通过 JSON 来传递数据),后端接收到前端传来的 JSON 数据后,将之转化为 Java 对象,然后可以进行相应的业务处理。

开发工具环境:
• 开发系统:Windows 10
• 前端工具 —— Visual Studio Code
• 后端工具 —— Intellij Idea
• 数据库工具:MySQL 5.7

页面构成:
本项目是 SPA (单页面富应用程序)项目,因此项目其实整体就一张界面,而 Vue.js 的开发模式是 组件式开发,因此项目的点击导航栏的页面跳转实际上是通过 router(路由)控制的组件的跳转。

本项目主要有以下几个组件:登录界面、驾考主页、学员管理、学员账号管理、教练账号管理、历史记录。

页面的导航栏:
在这里插入图片描述

项目总体结构图
在这里插入图片描述

UML图:
在这里插入图片描述
ET图:
(1)学员与驾考成绩的ER图
在这里插入图片描述
(2)管理员ER图、教练ER图
在这里插入图片描述

详细设计

在这里插入图片描述
在这里插入图片描述

。。。后面的有空再继续放上来,继续复习考研!

  • 10
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
对于驾校管理系统的数据库设计,可以考虑以下几个实体: 1. 学员信息表(Student):包括学员ID、姓名、性别、身份证号、联系方式等字段。 2. 教练信息表(Coach):包括教练ID、姓名、性别、身份证号、联系方式等字段。 3. 教练车信息表(Car):包括车辆ID、车牌号、车型、颜色等字段。 4. 驾照类型表(License_Type):包括驾照类型ID、驾照类型名称等字段。 5. 培训科目表(Training_Subject):包括科目ID、科目名称、考试方式等字段。 6. 学员培训记录表(Student_Training_Record):包括记录ID、学员ID、科目ID、教练ID、车辆ID、培训时间、培训地点、培训费用等字段。 7. 教练授课记录表(Coach_Teaching_Record):包括记录ID、教练ID、学员ID、科目ID、车辆ID、授课时间、授课地点等字段。 8. 考试记录表(Exam_Record):包括记录ID、学员ID、科目ID、考试时间、考试地点、成绩等字段。 其中,学员信息表、教练信息表、教练车信息表、驾照类型表可以直接存储相关信息;培训科目表、学员培训记录表、教练授课记录表、考试记录表需要根据实际业务需求确定具体字段。 以下是示例的SQL语句: 创建学员信息表: ``` CREATE TABLE Student ( ID INT(11) PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(50) NOT NULL, Gender VARCHAR(10) NOT NULL, ID_Card VARCHAR(18) NOT NULL, Phone VARCHAR(20) NOT NULL ); ``` 创建教练信息表: ``` CREATE TABLE Coach ( ID INT(11) PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(50) NOT NULL, Gender VARCHAR(10) NOT NULL, ID_Card VARCHAR(18) NOT NULL, Phone VARCHAR(20) NOT NULL ); ``` 创建教练车信息表: ``` CREATE TABLE Car ( ID INT(11) PRIMARY KEY AUTO_INCREMENT, Plate_Number VARCHAR(20) NOT NULL, Model VARCHAR(50) NOT NULL, Color VARCHAR(20) NOT NULL ); ``` 创建驾照类型表: ``` CREATE TABLE License_Type ( ID INT(11) PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(50) NOT NULL ); ``` 创建培训科目表: ``` CREATE TABLE Training_Subject ( ID INT(11) PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(50) NOT NULL, Exam_Method VARCHAR(20) NOT NULL ); ``` 创建学员培训记录表: ``` CREATE TABLE Student_Training_Record ( ID INT(11) PRIMARY KEY AUTO_INCREMENT, Student_ID INT(11) NOT NULL, Subject_ID INT(11) NOT NULL, Coach_ID INT(11) NOT NULL, Car_ID INT(11) NOT NULL, Training_Time DATETIME NOT NULL, Training_Place VARCHAR(100) NOT NULL, Training_Cost DECIMAL(10,2) NOT NULL, FOREIGN KEY (Student_ID) REFERENCES Student(ID), FOREIGN KEY (Subject_ID) REFERENCES Training_Subject(ID), FOREIGN KEY (Coach_ID) REFERENCES Coach(ID), FOREIGN KEY (Car_ID) REFERENCES Car(ID) ); ``` 创建教练授课记录表: ``` CREATE TABLE Coach_Teaching_Record ( ID INT(11) PRIMARY KEY AUTO_INCREMENT, Coach_ID INT(11) NOT NULL, Student_ID INT(11) NOT NULL, Subject_ID INT(11) NOT NULL, Car_ID INT(11) NOT NULL, Teaching_Time DATETIME NOT NULL, Teaching_Place VARCHAR(100) NOT NULL, FOREIGN KEY (Coach_ID) REFERENCES Coach(ID), FOREIGN KEY (Student_ID) REFERENCES Student(ID), FOREIGN KEY (Subject_ID) REFERENCES Training_Subject(ID), FOREIGN KEY (Car_ID) REFERENCES Car(ID) ); ``` 创建考试记录表: ``` CREATE TABLE Exam_Record ( ID INT(11) PRIMARY KEY AUTO_INCREMENT, Student_ID INT(11) NOT NULL, Subject_ID INT(11) NOT NULL, Exam_Time DATETIME NOT NULL, Exam_Place VARCHAR(100) NOT NULL, Score DECIMAL(5,2) NOT NULL, FOREIGN KEY (Student_ID) REFERENCES Student(ID), FOREIGN KEY (Subject_ID) REFERENCES Training_Subject(ID) ); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌宅鹿同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值