Skip to content

Okakura-Tenshin/GradeSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

学生成绩管理系统实验报告

1. 程序源代码

  • 前端:demo-vue/ 目录,基于 Vue3 + TypeScript + Ant Design Vue
  • 后端:demo/ 目录,基于 Go + Gin + GORM
  • 数据库脚本:`demo/script/init.go(插入一系列的原始语句)

如何使用

前端:
yarn install
yarn serve
后端
go mod init mod_name
go mod tidy 
go run main.go

2. 实验报告

a) 所选开发环境、使用的工具、编程语言、数据库

  • 开发环境
    • 操作系统: Ubuntu 22.04
    • 编辑器:VSCode
  • 前端技术栈
    • 框架:Vue 3
    • 语言:TypeScript
    • UI库:Ant Design Vue
    • 包管理:npm/yarn
  • 后端技术栈
    • 语言:Go 1.21
    • 框架:Gin
    • ORM:GORM
  • 数据库
    • MySQL 8.1
  • 其他工具
    • GIT(队内组员分工)
    • APIFOX(测试)

b) 系统需求分析

主要功能需求

  • 用户分为三类:管理员、教师、学生
  • 学生端:查询成绩、学分统计、选课、个人信息管理
  • 教师端:课程管理、成绩录入、成绩查询与统计、个人信息管理
  • 管理员端:学生、教师、课程、成绩的增删改查,系统统计

c) 系统详细设计说明

1. 模块设计

graph TD
A[用户登录] --> B{用户类型}
B -- 学生 --> C[学生功能模块]
B -- 教师 --> D[教师功能模块]
B -- 管理员 --> E[管理员功能模块]
Loading

2. 前后端分离式MCV框架设计

graph LR
前端(Vue3) --API请求--> 后端(Gin)
后端(Gin) --GORM--> MySQL
Loading

3. 各模块设计图

学生端模块

graph TD
S1[成绩查询] --> S2[个人信息]
S1 --> S3[学分统计]
S1 --> S4[加入课程]
S1 --> S5[课程成绩]
Loading

教师端模块

graph TD
T1[课程管理] --> T5[学生成绩录入]
T1 --> T3[学生成绩查询]
T1 --> T4[学生成绩总评]
T1 --> T2[个人信息]
Loading

管理员端模块

graph TD
A1[管理员] --> A2[教师管理]
A1 --> A3[课程管理]
A1 --> A4[成绩管理]
A1 --> A5[学生管理]
A1 --> A[系统统计]
Loading

d) 系统数据库设计与SQL脚本

1. E-R 图

erDiagram
    STUDENT ||--o{ GRADE : "属于"
    STUDENT ||--o{ COURSE : "参与"
    TEACHER ||--o{ COURSE : "拥有"
    ADMIN   ||--o{ SYSTEM : "管理"
    MSG     ||--o{ STUDENT : "拥有"

    STUDENT {
        uint ID PK
        int64 CreatedAt
        int64 UpdatedAt
        string Sid "学号(唯一)"
        string Name "姓名"
        string Gender "性别"
        string Birthday "出生日期"
        string Email "邮箱"
        string Telephone "电话"
        string Class "班级"
        string Major "专业"
        string School "学院"
        string Password "密码"
    }
    
    TEACHER {
        uint ID PK
        int64 CreatedAt
        int64 UpdatedAt
        string Email "邮箱(唯一)"
        string Name "姓名"
        string Password "密码"
        string Gender "性别"
        string Telephone "电话"
        string Title "职称"
    }
    
    COURSE {
        uint ID PK
        int64 CreatedAt
        int64 UpdatedAt
        string Code "课程代码(唯一)"
        string Name "课程名称"
        float64 Credit "学分"
        uint TeacherID FK "授课教师ID"
        string Semester "学期"
        string Description "课程描述"
    }
    
    GRADE {
        uint ID PK
        int64 CreatedAt
        int64 UpdatedAt
        uint StudentID FK "学生ID"
        uint CourseID FK "课程ID"
        float64 Score "成绩"
        string Semester "学期"
        string Remark "备注"
    }
    
    ADMIN {
        uint ID PK
        int64 CreatedAt
        int64 UpdatedAt
        string Email "邮箱(唯一)"
        string Name "姓名"
        string Password "密码"
    }
    
    INFO {
        uint ID PK
        string Sid "学号(唯一)"
        uint ClassID FK "班级ID"
        string Name "姓名"
        string Gender "性别"
        string Email "邮箱"
        string Telephone "电话"
    }
    
    MSG {
        uint ID PK
        int64 CreatedAt
        int64 UpdatedAt
        string Sid "学号"
    }
Loading

2.SQL语句分析

gorm中自带建表语句,只需要

	db.AutoMigrate(&model.User{})
	db.AutoMigrate(&model.Admin{})
	db.AutoMigrate(&model.Teacher{})
	db.AutoMigrate(&model.Student{})
	db.AutoMigrate(&model.Course{})
	db.AutoMigrate(&model.Grade{})
	db.AutoMigrate(&model.Info{})
	db.AutoMigrate(&model.Msg{})
	db.AutoMigrate(&model.School{})
	db.AutoMigrate(&model.Class{})
	db.AutoMigrate(&model.Major{})

就可以针对我们在model层设计的表自动创建对应的table


e) 系统实现细节

1. 程序与数据库的连接说明

  • 后端:使用 GORM 连接 MySQL,直接使用viper库实现gorm操作,只需要config文件改变参数

  • 本机配置config.yaml):

    db:
      host: 127.0.0.1
      port: 3307
      user: root
      password: ***
      name: demo

About

基于golang与typescript得学生成绩管理系统

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages