赞
踩
丁伊灵,王馨阳,李怡,崔力娅
选题与需求分析:丁伊灵
系统分析与系统设计:李怡
系统实现与系统调试:王馨阳(主要负责),丁伊灵,李怡,崔力娅
系统验收与答辩:崔力娅
我们打算设计一款学生成绩管理系统,它是一个集成化的信息管理平台,致力于简化学校教务管理,提升运营效能。系统采用vscode作为前端,java作为后端,数据库基础为MySQL,确保数据的高效存储和处理。系统功能丰富,包括成绩监控、用户资料管理、账户权限控制以及课程管理等模块,服务于学生、教师和行政人员,满足他们的不同需求。
设计用户友好的界面,支持批量成绩录入和数据校验,确保数据准确性。
提供多种查询和统计方式,如按学生、课程、班级等维度查询成绩,并支持图表展示,方便教师和学生进行成绩跟踪和分析。
支持不同格式的成绩导出,如Excel、PDF等,同时提供自定义导出选项,满足用户个性化需求。
管理员能在系统中创建学生、教师和管理员账号。
管理员能编辑用户账号信息,包括用户名、密码等。
管理员能在系统中删除用户账号,确保系统账户信息管理的及时性。
该学生成绩管理系统将分为以下6个部分进行功能设计:
(1)用户登录:用户可以使用学号(学生)、工号(教师)、管理员账号和密码进行登录。
在登陆界面,设置了用户身份验证模式,一旦用户输入与数据库中不符的信息,系统将给出提示信息,以保证该系统的安全性。
(2)主页:展示登录用户姓名、学校等相关基本信息。
(3)成绩管理:学生可以查看个人成绩;教师可以查看和录入学生成绩;管理员可以管理学生成绩信息。
(4)课程管理:学生可以查看可选课程以及个人课表;教师可以查看自己教授的课程和选课学生信息;管理员可以查看和录入课程信息。
(5)用户管理:学生可以查看个人信息,修改密码;教师可以查看个人信息,修改密码;管理员可以管理所有用户信息。
(6)账号管理:管理员可以创建和管理学生、教师的账号。
局部E-R图
全局E-R图
注:有下划线的为主码,划在字上的为外码
(1)管理员(登录用户名,密码,姓名,性别,学校,邮箱,联系电话);
CREATE TABLE Admin (
username VARCHAR(50) PRIMARY KEY,
password VARCHAR(50) NOT NULL,
name VARCHAR(50) NOT NULL,
gender CHAR(1),
school VARCHAR(100),
email VARCHAR(100),
phone VARCHAR(15)
);
(2)学生(学号,密码,姓名,学校,性别,邮箱,联系电话,班级,专业,入学年份);号
CREATE TABLE Student (
student_id VARCHAR(20) PRIMARY KEY,
password VARCHAR(50) NOT NULL,
name VARCHAR(50) NOT NULL,
school VARCHAR(100),
gender CHAR(1),
email VARCHAR(100),
phone VARCHAR(15),
class VARCHAR(50),
major_id VARCHAR(20),
enrollment_year YEAR
FOREIGN KEY (major_id)REFERENCES Major(major_id);
);
(3)教师(工号,密码,姓名,学校,性别,邮箱,联系电话,,级别);专业名
CREATE TABLE Teacher (
teacher_id VARCHAR(20) PRIMARY KEY,
password VARCHAR(50) NOT NULL,
name VARCHAR(50) NOT NULL,
school VARCHAR(100),
gender CHAR(1),
email VARCHAR(100),
phone VARCHAR(15),
major_name VARCHAR(50),
level VARCHAR(20),
FOREIGN KEY (major_name)REFERENCES Major(major_name)
);
(4)课程(课程号,专业,学分,课时,学期,类型,课程名,分数);号
CREATE TABLE Course (
course_id VARCHAR(20) PRIMARY KEY,
major_id VARCHAR(20),
credits INT,
hours INT,
semester VARCHAR(20),
type VARCHAR(20),
course_name VARCHAR(100),
score DECIMAL(5, 2),
FOREIGN KEY (major_id)REFERENCES Major(major_id)
);
(5)学生课表(学号,课程号,,学分,课程类型,课程名,学期,日期);专业号
CREATE TABLE StudentSchedule (
student_id VARCHAR(20),
course_id VARCHAR(20),
major_id VARCHAR(20),
credits INT,
course_type VARCHAR(20),
course_name VARCHAR(100),
semester VARCHAR(20),
date DATE,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (studentr_id)REFERENCES Student(student_id),
FOREIGN KEY (course_id)REFERENCES Major(course_id),
FOREIGN KEY (major_id)REFERENCES Major(major_id)
);
(6)专业表(专业号,专业课程,学生人数,要求总学分数);,专业名
CREATE TABLE Major (
major_id VARCHAR(20) PRIMARY KEY,
major_name VARCHAR(100),
major_courses TEXT,
student_count INT,
total_required_credits INT
);
(7)成绩表(学号,课程号,课程名,分数)
CREATE TABLE Grade (
student_id VARCHAR(20),
course_id VARCHAR(20),
course_name VARCHAR(100),
score DECIMAL(5, 2),
PRIMARY KEY (student_id, course_id)FOREIGN KEY (studentr_id),
FOREIGN KEY (course_id)REFERENCES Major(course_id),
);
有助于唯一性检查和完整性检查,而且可以加快连接查询的速度。
(1)学生表索引:
CREATE INDEX idx_student_major_id ON Student(major_id);
CREATE INDEX idx_student_enrollment_year ON Student(enrollment_year);
(2)教师表索引
CREATE INDEX idx_teacher_major_name ON Teacher(major_name);
(3)课程表索引
CREATE INDEX idx_course_major_id ON Course(major_id);
(4)学生课表索引
CREATE INDEX idx_schedule_student_id ON StudentSchedule(student_id);
CREATE INDEX idx_schedule_course_id ON StudentSchedule(course_id);
(5)成绩表索引
CREATE INDEX idx_grade_student_id ON Grade(student_id);
CREATE INDEX idx_grade_course_id ON Grade(course_id);
(1)学生表中加入触发器
CREATE TRIGGER trg_after_student_insert
AFTER INSERT ON Student
FOR EACH ROW
BEGIN
UPDATE Major SET student_count = student_count + 1 WHERE major_id = NEW.major_id;
END;
(2)学生表中删除触发器
CREATE TRIGGER trg_after_student_delete
AFTER DELETE ON Student
FOR EACH ROW
BEGIN
UPDATE Major SET student_count = student_count - 1 WHERE major_id = OLD.major_id;
END;
(3)成绩表插入触发器
CREATE TRIGGER trg_after_grade_insert
AFTER INSERT ON Grade
FOR EACH ROW
BEGIN
UPDATE Course SET score = (SELECT AVG(score) FROM Grade WHERE course_id = NEW.course_id) WHERE course_id = NEW.course_id;
END;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。