学生选课信息管理系统课程设计报告.docx

上传人:b****5 文档编号:12094117 上传时间:2023-04-17 格式:DOCX 页数:29 大小:58.54KB
下载 相关 举报
学生选课信息管理系统课程设计报告.docx_第1页
第1页 / 共29页
学生选课信息管理系统课程设计报告.docx_第2页
第2页 / 共29页
学生选课信息管理系统课程设计报告.docx_第3页
第3页 / 共29页
学生选课信息管理系统课程设计报告.docx_第4页
第4页 / 共29页
学生选课信息管理系统课程设计报告.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

学生选课信息管理系统课程设计报告.docx

《学生选课信息管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《学生选课信息管理系统课程设计报告.docx(29页珍藏版)》请在冰豆网上搜索。

学生选课信息管理系统课程设计报告.docx

学生选课信息管理系统课程设计报告

 

数据库课程设计报告

 

-------学生信息管理系统

 

 

一、系统开发平台

1.1题目:

学生选课管理信息系统

(1)要求系统可以准确地记录和查询学生信息,包括学生的姓名、单位、年龄、性别以及身份证号码等。

(2)要求系统可以准确地记录学生地每一次奖惩情况。

⏹(3)系统可以对学校的院系情况进行管理,包括设置学院名称、修改某学院某专业方向的名称等。

⏹(4)系统应该可以对基础数据进行维护。

⏹(5)系统能够对开设的课程进行管理

⏹(6)学生选课管理、考试(登记分数)

⏹(7)系统还应该提供强大数据统计、查询、报表生成以及打印等功能。

⏹(8)用户权限管理

⏹(9)异常处理

1.2开发语言:

Java

用Java做设计流程清晰、结构合理,有良好的可扩充性和耦合性。

1.3开发工具:

Eclipse

1.4数据库:

MySQL

1.5操作系统:

MicrosoftWindows8.1

二、数据库规划

2.1任务陈述

(1)要求系统可以准确地记录和查询学生信息,包括学生的姓名、单位、年龄、性别以及身份证号码等。

(2)要求系统可以准确地记录学生地每一次奖惩情况。

⏹(3)系统可以对学校的院系情况进行管理,包括设置学院名称、修改某学院某专业方向的名称等。

⏹(4)系统应该可以对基础数据进行维护。

⏹(5)系统能够对开设的课程进行管理

⏹(6)学生选课管理、考试(登记分数)

⏹(7)系统还应该提供强大数据统计、查询、报表生成以及打印等功能。

⏹(8)用户权限管理

⏹(9)异常处理

2.2任务目标

本系统主要可以实现以下任务目标:

1、系统可以准确地记录和查询学生信息,包括学生的姓名、专业、生日、性别以及身份证号码等,可以准确地记录学生的每一次奖惩情况。

2、系统可以对学校的院系情况进行管理,包括添加查询修改删除学院信息、添加查询修改删除某学院某专业信息等。

3、系统可以准确地记录和查询教师信息,包括教师的姓名、专业、生日、性别以及身份证号码等。

4、系统可以对开设的课程进行管理,包括课程信息的查询、添加、修改和删除,选课阶段、已开课、统计成绩、公布成绩三种状态。

5、系统可以对基础数据进行维护。

6、学生选课管理,学生只可以注销在选课阶段的课程,处于已开课、统计成绩、公布成绩的课程不可以注销。

7、系统可以提供强大数据统计、查询、报表生成以及打印等功能。

8、用户权限管理:

本系统一共设置了三种用户身份,分别是管理员用户、教师用户和学生用户。

院系管理员可以管理增改删查所有学院情况、课程、老师、学生情况,修改密码

教师用户拥有修改、查看那自己所授课程和录入成绩的权限,修改密码

学生用户则拥有查询学籍信息、查询课程信息、选课、注销选课和查询成绩信息的权限。

9、异常处理。

三、系统定义

3.1系统边界

系统边界描述数据库系统和企业信息系统的其他部分的接口,是信息系统内部构成元素与外部有联系实体之间的信息关系的描述与分割。

它并不需要在它们之间划一条物理边界,而只需要弄清它们之间信息输入与输出的分割。

本数据库系统共包括学生信息、教师信息、课程信息、学院及专业信息、选课信息、授课信息及成绩信息八个模块。

该信息系统的其他部分包括学生专业选择、教师配置、学生选课、学院设置、课程要求、具体教学等。

数据库系统的内部构成元素与外部其他部分之间的信息关系如下图所示:

学院信息

管理员

方向信息

增改删查

书于

包含于

工作于

课程信息

选修

教授课程

老师信息信息

增改删查

增改删查

教师

学生

学生信息

3.2用户视图

3.2.1学生(Student)用户视图

(1)修改个人信息。

(2)按课程名、课程号、专业、学分等信息查询课程,选课和查询已选课程。

(3)注销选课(只能注销选课阶段的课程,已公布成绩的课程不可注销)。

(4)成绩查询(教师公布成绩后学生方可查看到自己的成绩)。

3.2.2教师(Teacher)用户视图

(1)修改个人信息。

(2)修改所授课程的信息(一名教师可教授多门课程)。

(3)录入、查看成绩(录入成绩的课程状态为“统计成绩”,成绩录入的权限只有教师用户有)。

(4)公布成绩(公布成绩后学生方可查看到自己的成绩)。

(5)备选功能:

自动计算所授课程的选课人数、有成绩人数、平均成绩,且按成绩由高到低排序。

查看所授课程选课情况。

教师可以自主选课(教师所在学院方向的课程)。

3.2.3学院管理员(Administrator)用户视图

(1)学生管理:

查询、添加、修改、删除学生信息,添加学生奖惩信息

(2)教师管理:

查询、添加、修改、删除教师信息。

(3)课程管理:

查询、添加、修改、删除课程信息。

(4)选课管理:

查询选课信息,添加选课信息(修改选课信息权限只有学生用户有),修改选课状态(选课阶段、已开课、统计成绩、公布成绩、结束)。

(5)授课管理:

查询、添加、修改、删除授课信息。

(6)专业管理:

查询、添加、修改、删除专业信息。

(7)学院管理:

查询、添加、修改、删除学院信息。

(8)管理员操作:

查询、添加、修改、删除学院管理员信息。

(9)修改个人信息。

3.2.4数据库系统多用户视图

 

四、需求分析

此学生管理信息系统的主要功能如下图所示:

学生用户:

修改个人信息、课程查询、选课、注销选课、成绩查询

教师用户:

修改个人信息、修改所授课程信息、查看学生选课信息、成绩录入

管理员用户:

学生管理、教师管理、课程管理、专业管理、学员管理、管理员操作

4.1用户需求说明

4.1.1数据需求

其中需求数据为:

1、学生基本信息记录:

用户名、姓名、身份证号、方向、性别、生日、密码、奖惩信息

2、教师基本信息记录:

用户名、姓名、身份证号、方向、性别、生日、密码

3、管理员基本信息记录:

用户名、密码、姓名、权限等级

5、课程基本信息记录:

课程号、课程名、所属方向、学分

6、学院及专业基本信息记录:

学院:

学院名称,学院号

方向:

方向名称、所属学院

7、选课信息管理:

选课:

学生用户选定课程的课程号、课程名、开课专业、学分、详细信息

注销选课:

学生用户注销选课的课程号、课程名、任课教师、学分、课程状态(只能注销状态为选课阶段的课程)

8、授课信息管理:

课程号、课程名、教师号、教师姓名、选课人数

9、成绩信息管理:

学生查看:

课程号、课程名、任课教师、学分、状态、成绩

教师录入:

所授课程、学号、成绩

教师查看:

名次、学号、姓名、学院、专业、班级、成绩

4.1.2事务需求

1、数据录入:

(1)录入学生的基本信息:

学号、姓名、所属专业、性别、生日、身份证号

(2)录入学生的选课信息

(3)录入教师的基本信息:

学工号、姓名、院系、性别、生日、身份证号、研究方向

(4)教师录入学生的成绩信息:

选择所授课程后,录入学号、成绩

(5)录入课程的基本信息:

课程号、课程名、开课专业、学分

(6)录入授课信息:

课程号、教师号

(7)录入专业信息:

专业名、所属学院

(8)录入学院信息:

学院名、地址

(9)录入学院管理员的基本信息:

管理员号、管理员姓名

(10)录入超级管理员的基本信息

管理员号、管理员姓名

2、数据更新/删除:

(1)学生个人信息的更新

(2)学生注销选课信息

(3)教师个人信息的更新

(4)教师所授课程信息的更新

(5)教师录入成绩的更新/删除

(6)学生基本信息的更新/删除(管理员操作)

(7)教师基本信息的更新/删除(管理员操作)

(8)课程基本信息的更新/删除(管理员操作)

(9)选课状态的更新:

分为选课阶段、已开课、统计成绩、公布成绩、结束(管理员操作)

(11)授课信息的更新(管理员操作)

(12)专业基本信息的更新/删除(管理员操作)

(13)学院基本信息的更新/删除(管理员操作)

(14)管理员个人信息的更新(管理员操作)

数据查看:

学生用户视图下:

(1)列出学生基本信息

(2)按照课程号列出课程的课程号、课程名、开课专业、学分

教师用户视图下:

(1)列出教师基本信息

(2)列出所授课程的基本信息

(3)列出所授课程的学生选课信息:

学号、姓名、所属专业、性别、生日、身份证号

管理员用户视图下:

(1)按照学号列出学生的学号、姓名、所属专业、性别、生日、身份证号

(2)按照学工号列出教师的学工号、姓名、院系、性别、生日、身份证号、研究方向

(3)按照课程号列出课程的课程号、课程名、开课专业、学分

(4)按照课程号列出选课信息:

课程号、课程名、学号、学生姓名、教师号、教师姓名、状态、成绩

(5)按照学生学号列出选课信息:

课程号、课程名、学号、学生姓名、教师号、教师姓名、状态、成绩

(6)按照教师学工号列出选课信息:

课程号、课程名、学号、学生姓名、教师号、教师姓名、状态、成绩

(7)按照课程号列出授课信息:

课程号、课程名、教师号、教师姓名、选课人数

(8)按照课程名列出授课信息:

课程号、课程名、教师号、教师姓名、选课人数

(9)按照教师学工号列出授课信息:

课程号、课程名、教师号、教师姓名、选课人数

(10)按照学院管理员号列出学院管理员的管理员号、姓名

(11)按照超级管理员号列出超级管理员的管理员号、姓名

4.2系统需求说明

该学生选课管理信息系统需要较强的数据处理功能,理论上应该能够容纳上万人的数据资料,并且在搜索方面理应具有较快的响应速度,能够处理多方面的数据请求。

权限设置清晰明了,能够有效的防止越权操作。

系统能够有效的处理各种异常,具有较好的健壮性。

4.2.1初始数据库大小

(1)大约有10门课程,分属于约4个学院中,每个学院有10个以下的专业。

(2)大约有20名学生分布在各个学院,每个学院平均有2名学生。

(3)大约有20名教师分布在各个学院,每个学院平均有2名教师。

(4)大约有10名管理员分布在各个学院,每个学院平均有1名学院管理员。

(5)每名学生一学期平均选择2门课程。

(6)每名教师平均所授课程为2门。

4.2.2网络和共享需求

(1)所有学院必须安全的和总部中央数据库网络互连

(2)必须能够支持每个学院至少300名用户同时访问,需要考虑这么大数量并发访问的许可需求。

性能:

4.2.3性能

高峰期:

每年的1月、3月、6月、9月

(1)单个记录查询时间少于1秒,高峰期少于5秒

(2)多个记录查询时间少于5秒,高峰期少于10秒

(3)更新/保存记录时间少于1秒,高峰期少于5秒

4.2.4安全性

(1)数据库必须有口令保护

(2)每个用户分配特定的用户视图所应有的访问权限

(3)用户只能在适合他们完成工作需要的窗口中看到需要的数据

4.2.5备份和恢复

每天24点备份

4.2.6用户界面

菜单驱动,联机帮助

4.2.7法律问题

对用户信息管理,遵守法律

五、数据库逻辑设计

5.1ER图【3】:

本系统的ER图如下:

 

实体:

联系:

属性:

mm

nn

mm

11

1m

该ER图包括课程、教师、学生、学院、专业五个实体和授课、选课、工作于、属于、包含五个联系。

5.2数据字典

5.2.1从数据字典中抽取出来的系统实体描述:

实体

属性

描述

数据类型

和长度

主键

是否允许

空值

学院管理员

Admin_id

管理员用户名

Varchar

32

Admin_id

Password

密码

Varchar

32

Name

姓名

Varchar

32

Dept

所属学院

Varchar

32

Regist_date

注册日期

Varchar

32

学生

Sid

学生用户名

Varchar

32

Sid

Password

密码

Varchar

32

Name

姓名

Varchar

32

Dept

学院

Varchar

32

Major

专业

Varchar

32

Sex

性别

Varchar

32

Birth

生日

Varchar

32

Identity

身份证号

Varchar

32

教师

Tid

教师用户名

Varchar

32

Tid

Password

密码

Varchar

32

Name

姓名

Varchar

32

Dept

学院

Varchar

32

Direction

研究方向

Varchar

32

Sex

性别

Varchar

32

Birth

生日

Varchar

32

Identitiy

身份证号

Varchar

32

课程

Cid

课程号

Varchar

32

Cid

Name

课程名

Varchar

32

Parent_major

所属专业

Varchar

32

Credit

学分

Float

8

学院

Name

学院名称

Varchar

32

Deptid

Deptid

学院号

Varchar

32

课程状态

ID

状态号

Varchar

32

ID

State

状态

Varchar

32

专业

Name

专业名称

Varchar

32

Did

Did

专业号

Varchar

32

Parent_college

所属学院

Varchar

32

荣誉

R_id

荣誉号

Varchar

32

Did

Reward

荣誉

Varchar

32

5.2.2从数据字典中抽取出来的联系的描述:

实体

多样性

联系

多样性

实体

教师

m

授课

n

课程

学生

m

选课

n

课程

教师

m

工作于

1

学院

学生

m

属于

1

专业

学院

1

包含

m

专业

 

5.3关系表

该数据库关系图如下:

其中包含的联系有:

实体

联系

实体

教师

授课

课程

学生

选课

课程

教师

工作于

学院

学生

属于

专业

学院

包含

专业

学生

拥有

荣誉

课程

拥有

状态

六、数据库物理设计

6.1安全机制

6.1.1系统安全

1、提供了充足的异常处理机制,能够捕获由各种错误引发的异常(如:

越权操作、输入数据类型与数据库要求类型不一致、查询过程中出现的错误等等)。

2、系统登录时要凭用户名和口令进入,输入正确时才可以进入系统。

用户需要选择自己的身份(学生、教师、管理员),若用户名和密码输入正确,系统可以打开符合该用户身份的操作界面。

其他界面该用户没有权限访问。

6.1.2数据安全

1、根据用户身份,用户进入不同的用户界面,即享有不同的权限,只有管理员才可以实现修改一些重要信息,以确保数据库不被随意更改,保证数据安全。

2、该学生系统共有三种身份:

学生、教师、管理员。

他们相应的权限如下:

(1)学生:

查看修改个人信息、查看课程信息、选课/注销选课(只有在选课阶段的课程才可以注销)、查看自己所选课程成绩(教师公布成绩后学生方可查看到自己的成绩)。

(2)教师:

查看修改个人信息、查看修改所授课程信息(一名教师可教授多门课程)、查看所授课程的学生选课情况、成绩录入(录入成绩的课程状态为“统计成绩”,成绩录入的权限只有教师用户有)、公布成绩(公布成绩后学生方可查看到自己的成绩)。

(3)管理员:

添加删除修改查看学生信息、添加删除修改查看教师信息、添加删除修改查看课程信息、添加删除修改查看学院信息、添加删除修改查看专业信息、添加查看选课信息(修改选课信息权限只有学生用户有)、修改课程状态、添加修改查看授课信息、添加删除修改查看其他管理员信息、查看修改个人信息。

6.2其他

规范化产生一个结构上一致且最小冗余的逻辑数据库设计,但是,规范化的数据库设计有时不能提供最大的处理效率。

所以我们愿意接收规范化设计方面的一些损失而实现更好的性能。

在该系统中,表“学生”中复制了表“专业”的“所属学院”一列,加快了检索速度,方便通过列“学院”来查询特定学院的学生,也方便形成某学院的视图。

七、应用程序设计

7.1功能模块

该学生管理信息系统共有三个角色:

学生、教师、管理员

7.2界面设计

登录界面

7.3代码设计

连接数据库:

Stringurl="jdbc:

mysql:

//localhost:

3306/dbsml?

"

+"user=dbsml&password=28129";

Connectioncon;

Stringsql;

Statementstmt;

try{

Class.forName("com.mysql.jdbc.Driver");

System.out.println(4);

conn=DriverManager.getConnection(url,"dbsml","28129");

stmt=conn.createStatement();

}catch(SQLExceptione){

System.out.println("MySQL操作错误");

e.printStackTrace();

增加:

System.out.println("actionPerformed4");

b4.setPreferredSize(newDimension(120,40));

b4.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

////TODOAuto-generatedmethodstub

try{

jt.print();

}catch(PrinterExceptione1){

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}

}

});

删除:

try{

con=DriverManager.getConnection(url,"dbsml","28129");

stmt=con.createStatement();

sql="select*fromcoursewhereC_id='"+t1.getText()+"'";

ResultSetrs=stmt.executeQuery(sql);

if(rs.next()){

sql="DELETEFROMcourseWHERE(C_id='"+t1.getText()+"')";

stmt.executeUpdate(sql);

sql="DELETEFROMtcWHERE(C_id='"+t1.getText()+"')";

stmt.executeUpdate(sql);

sql="DELETEFROMscWHERE(C_id='"+t1.getText()+"')";

stmt.executeUpdate(sql);

JOptionPane.showMessageDialog(this,"删除课程成功!

","提示",JOptionPane.INFORMATION_MESSAGE);

}

else

JOptionPane.showMessageDialog(this,"此课程不存在!

","提示",JOptionPane.INFORMATION_MESSAGE);

stmt.close();

con.close();

}catch(SQLExceptione2){

e2.printStackTrace();

}

t1.setText("");

}

查询:

try{

sql="SELECT*FROM"+getTable()+"WHERE"+chooseState()+"='"+t1.getText()+"'"+

"and"+getPassword()+"='"+t2.getText()+"'";

System.out.println(sql);

ResultSetrs=stmt.executeQuery(sql);

if(rs.next()){

result=true;

}

System.out.println(result);

stmt.close();

conn.close();

}catch(SQLExceptione){

System.out.println("MySQL操作错误");

e.printStackTrace();

}catch(Exceptione){

e.printStackTrace();

}

获取Choice状态:

publicintgetState(){

System.out.println(7);

intstate=1;

if(c.getSelectedItem().equals("管理员")){

state=1;

System.out.println(8);

}elseif(c.getSelectedItem().equals("教师")){

state=2;

System.out.println(9);

}

elseif(c.getSelectedItem().equals("学生")){

state=3;

System.out.println(10);

}

returnstate;

}

给Choice增加查询到的item

publicvoidaddChoice()throwsSQLException{

//TODOAuto-generatedmethodstub

System.out.println("addChoice");

conn=getConnection();

stmt=conn.createStatement();

sql="selectC_namefromteachern

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1