0%

程序设计大作业之实验室管理系统

功能介绍

该系统有三种类型的用户:

  • 管理员
  • 实验员
  • 学生

不同用户拥有不同的功能:

  • 管理员的功能主要有:实验课程管理(增删课程),实验课程安排(给某个的班级安排某个课程)
  • 实验员的功能:给自己负责的学生登入实验成绩
  • 学生的功能:课程查询(查看自己被安排了什么课),成绩查询(查询课程的成绩,如果未录入就查不到)

页面设计

主要设计了8个页面,展示一部分:

  1. /index:主页面
  2. /sign_in:登录页面
  3. /profile:个人信息及功能页面(不同类型的用户有不同的展示)
  4. /score_query:学生的成绩查询页面
  5. /course_query:学生的课程查询页面
  6. /record_score:实验员的录入成绩页面
  7. /lab_management:管理员的实验课程管理页面
  8. /lab_arrangement:管理员的实验课程安排页面

数据库设计

数据库使用MySQL,一共设计了六张表:

  1. administrator

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    create table administrator
    (
    name varchar(100) not null,
    email varchar(100) not null,
    password varchar(100) not null,
    constraint administrator_email_uindex
    unique (email)
    );

    alter table administrator
    add primary key (email);
  2. experimenter

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    create table experimenter
    (
    name varchar(100) not null,
    email varchar(100) not null,
    password varchar(100) not null,
    constraint experimenter_email_uindex
    unique (email)
    );

    alter table experimenter
    add primary key (email);
  3. student

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    create table student
    (
    id varchar(100) not null,
    name varchar(100) not null,
    email varchar(100) not null,
    _class varchar(100) not null,
    password varchar(100) default '123456' not null,
    constraint student_email_uindex
    unique (email),
    constraint student_id_uindex
    unique (id)
    );

    alter table student
    add primary key (id);
  4. courses

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    create table courses
    (
    id int auto_increment,
    name varchar(100) not null,
    time varchar(100) not null,
    week varchar(100) not null,
    level varchar(100) not null,
    experimenter varchar(100) not null,
    constraint courses_id_uindex
    unique (id),
    constraint courses_name_uindex
    unique (name)
    );

    alter table courses
    add primary key (id);
  5. student_score

    1
    2
    3
    4
    5
    6
    7
    8
    create table student_score
    (
    id int auto_increment
    primary key,
    student_id varchar(100) not null,
    course_id int not null,
    score int default 0 null
    );
  6. class_course

    1
    2
    3
    4
    5
    6
    7
    create table class_course
    (
    id int auto_increment
    primary key,
    _class varchar(100) not null,
    course_id int null
    );

文件结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
├─lab-management-system
│ ├─.idea
│ │ ├─codeStyles
│ │ ├─dataSources
│ │ │ └─0921148a-a36a-438f-93b9-aa568804f41d
│ │ │ └─storage_v2
│ │ │ └─_src_
│ │ │ └─schema
│ │ └─libraries
│ ├─.mvn
│ │ └─wrapper
│ ├─src
│ │ ├─main
│ │ │ ├─java
│ │ │ │ └─eternal
│ │ │ │ └─fire
│ │ │ │ ├─controller
│ │ │ │ ├─entity
│ │ │ │ └─service
│ │ │ └─resources
│ │ │ ├─static
│ │ │ └─templates
│ │ └─test
│ │ └─java
│ │ └─eternal
│ │ └─fire
│ └─target
│ ├─classes
│ │ ├─eternal
│ │ │ └─fire
│ │ │ ├─controller
│ │ │ ├─entity
│ │ │ └─service
│ │ ├─static
│ │ └─templates
│ ├─generated-sources
│ │ └─annotations
│ ├─generated-test-sources
│ │ └─test-annotations
│ └─test-classes
│ └─eternal
│ └─fire

用到的技术

  • Spring Boot + Thyme Leaf + JDBC +MySQL
  • HTML + CSS + JS + Bootstrap + Vue.js + Font Awesome