系统简介

我所设计的教务管理系统包括6大部分,学生信息、教师信息、课程信息、班级信息、选课信息、教授信息。该系统可以通过不同的群体进行操作:学生群体可以对个人信息、班级、教师信息进行查询操作,对于课程则可以进行选课操作;教师群体可以个人信息、班级信息、学生信息进行查询操作,对于课程则可以进行选课操作,管理员群体可以对教务管理系统的信息进行查询和修改操作。

系统功能需求

  1. 主菜单:
  1. 选择进入学生教务管理系统;
  2. 选择进入教师教务管理系统;
  3. 选择进入管理员教务管理系统;
  1. 学生教务管理系统:
  1. 查询学生表;
  2. 查询个人信息;
  3. 查询班级信息;
  4. 选修课程;
  5. 退出学生系统;
  1. 教师教务管理系统:
  1. 查询教师表;
  2. 查询个人信息;
  3. 查询班级信息;
  4. 选授课程;
  5. 退出教师系统;
  1. 管理员教务管理系统:
  1. 查询学生表;
  2. 查询教师表;
  3. 查询班级表;
  4. 添加学生信息;
  5. 修改学生信息;
  6. 删除学生信息;
  7. 添加教师信息;
  8. 修改教师信息;
  9. 删除教师信息;
  10. 修改成绩表;
  11. 修改课程表;
  12. 退出系统;

数据流图

教务管理系统的数据流图

数据字典

表一:学生关系模式

字段名称

字段类型

主键

备注

学号

Sno

int(14)

yse

姓名

Sname

char(20)

no

年龄

Sage

Int(2)

no

专业

Smajort

Char(20)

no

表二:课程关系模式

字段名称

字段类型

主键

备注

课程号

Cno

int(14)

yes

课程名

Cname

char(20)

no

学分

Grade

float

no

表三:老师关系模式

字段名称

字段类型

主键

备注

教师号

Tno

int(14)

yes

教师名

Tname

char(20)

no

职称

Ttitle

char(20)

no

表四:班级关系模式

字段名称

字段类型

主键

备注

班级号

Rno

int(14)

yes

班级名

Rname

char(20)

no

人数

Rnum

int(2)

no

辅导员

Rteacher

char(20)

no

表五:教授关系模式

字段名称

字段类型

主键

备注

教师号

Tno

int(14)

yes

课程号

Cno

int(20)

yes

学年

Tyear

char(20)

no

学期

Tterm

char(20)

no

表六:选课关系模式

字段名称

字段类型

主键

备注

课程号

Cno

int(14)

yes

学号

Sno

int(20)

yes

成绩

Grade

float

no

设计思路

1.创建主体运行框架;

2.通过需求的分析,明白各个用户功能;

3.建立Java与数据库之间的链接,把各个功能分别绑定到各个表中;

4.实现不同操作对象对教务管理系统信息的增加、删除、修改、查看等功能。

系统整体E-R图

关系模式

学生(学号,姓名,年龄,专业)

班级(班级号,班级名,人数,辅导员)

教师(教师号,姓名,职称)

课程(课程号,课程名,学分)

教授表(课程号教师号,学期,学年)

选课表(课程号,学号,成绩)

创建数据库

SQL语句:

创建教务管理系统数据库

create database jiaowu;

创建基本表

1、创建学生表(Student)表的SQL语句:

use jiaowu;

create table Student(

Sno int(14)primary key ,

Sname char(20),

Sage int(2),

Smajor char(20));

  1. 创建班级表(Class)的SQL语句:

use jiaowu;

create table Class(

Rno int(14) primary key ,

Rname char(20),

Rnum int(2),

Rteacher char(20));

  1. 创建课程表(Course)的SQL语句:

use jiaowu;

create table ourse(

Cno int(14) primary key ,

Came char(20),

Ccredit float);

  1. 创建教师表(Teacher)的SQL语句:

use jiaowu;

create table Teacher(

Tno int(14) primary key ,

Tame char(20),

Ttitle char(20));

  1. 创建教授表(Tc)的SQL语句:

use jiaowu;

create table Tc(

Tno int(14) ,

Cno int(14) ,

Tyear char(20),

Tterm char(20),

primary key (Tno,Cno));

  1. 创建选课表(Sc)的SQL语句:

use jiaowu;

create table Sc(

Sno int(14) ,

Cno int(14) ,

Grade float,

primary key (Sno,Cno));

5.总结

经过本次的数据库课程设计——教务管理系统,我学到了很多知识,并将所学到的知识进行一次大规模的梳理,加深了我对数据库的建立、插入、删除、修改以及视图、存储过程、备份等相关知识的深入学习和理解,并去主动分析和思考其中出现的很多问题。通过这次教务管理系统的数据库课程设计,我从中学习了很多的知识,并加深了自己对数据库程序设计的理解以及熟练度。在程序设计中,我遇到的最大的问题就是JDBC的运用,应为一开始在学习JDBC的时候我就感觉到很吃力,因为自己对于这个东西实在难以理解,所以在用JDBC写数据库操作程序时,我上网查找了很多资料,有不懂的也去百度,或者在同学之间讨论,至今还有一些不能熟练运用,但和之前相比已经有了很大的进步,我会在今后的学习中进一步巩固。之,由于粗心大意犯的错误,自己是可以找出来,实在太隐蔽的,我也就只能求助同学或者老师了。

本次程序编写教务管理系统我从简单入手,再进行复杂的编写过程。首先我搜集资料,掌握教务管理系统方面的种种相关知识,其次我对这个系统应该如何编译作了一个简单的思考和讨论,确定要运用到的知识和相关难点,并对这些难点进行解决,最终到复杂的程序上。在解决问题时的思考是及其重要,遇到问题不去懊恼也是我们应有的态度。想学,只要你行动,没有什么会难倒我们。在面对众多不会的知识点时,我通过浏览器查询,利用书本上的知识,了解到我想要创建的是什么样的教务管理系统,了解我想要的是怎样的Java编码。创建数据库是较为简单的,但同时我也通过此次数据库的课程设计明白了在存储过程定义和数据备份方面我有所欠缺。总得来说我的收获很多,我在此次课程设计中学会了创建更为完善的数据库,以及各种表和插入各种相关的数据,并更加熟练的掌握了jdbc的相关知识。

通过这次课程设计我了解到了自己的不足,并且学到了很多的东西。无论是枯燥的搜集资料,还是一遍遍地调试程序给我带来的疲惫感,都在最终看到程序正常运行的那刻消失殆尽,感受到了努力付出,然后收获硕果的成就感。总结我课程设计的过程,我学到了很多的知识。不论是理论知识的掌握亦或是实践经验的积累,我都有了进一步的提升。面对设计过程中所遇到的难题,我不能退缩,要严谨,认真,无所畏惧地面对它。在设计的过程中我遇到了各种各样的问题,也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识,也能够了解到自己相对薄弱的环节。总而言之,本次的课程设计真的使我受益匪浅。

1)插入初始数据

(1)学生表插入数据的MySQL语句:

use jiaowu;

insert into Student(Sno,Sname,Sage,Smajor)

values(202115061,’小乐’,20,’计算机’),

(202115062,’小黄’,20,’会计’),

(202115063,’小红’,19,’大数据’),

(202115064,’小西’,20,’计算机’),

(202115065,’小花’,20,’会计’),

(202115066,’小白’,20,’计算机’),

(202115067,’小黑’,20,’会计’);

(2)班级表插入数据的MySQL语句:

use jiaowu;

insert into Class(Rno,Rname,Rnum,Rteacher)

values(202116061,’计科1′,45,’老孙’),

(202116062,’计科2′,46,’小李’),

(202116063,’大数据1′,44,’小王’),

(202116064,’会计2′,44,’小赵’);

(3)课程表插入数据的MySQL语句:

use jiaowu;

insert into Course(Cno,Came,Ttitle)

values(202118061,’C语言’,2.5),

(202118062,’数据库’,3),

(202118063,’经济学’,3);

(4)教师表插入数据的MySQL语句:

use jiaowu;

insert into Teacher(Tno,Tame,Ccredit)

values(202117061,’老孙’,’C语言’),

(202117062,’小李’,’数据库’),

(202117063,’小赵’,’经济学’);

(5)授课表插入数据的MySQL语句:

use jiaowu;

insert into Tc(Tno,Cno,Tyear,Tterm)

values(202117061,202118061,2022,2),

(202117062,202118062,2022,2),

(202117063,202118063,2022,2);

(6)选课表插入数据的MySQL语句:

use jiaowu;

insert into Sc(Sno,Cno,Grade)

values(202115061,202118061,79),

(202115062,202118061,88),

(202115063,202118061,93),

(202115064,202118062,85),

(202115062,202118063,63),

(202115062,202118062,99);