学生管理系统设计和开发终搞.docx

上传人:b****6 文档编号:8181339 上传时间:2023-01-29 格式:DOCX 页数:19 大小:645.92KB
下载 相关 举报
学生管理系统设计和开发终搞.docx_第1页
第1页 / 共19页
学生管理系统设计和开发终搞.docx_第2页
第2页 / 共19页
学生管理系统设计和开发终搞.docx_第3页
第3页 / 共19页
学生管理系统设计和开发终搞.docx_第4页
第4页 / 共19页
学生管理系统设计和开发终搞.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

学生管理系统设计和开发终搞.docx

《学生管理系统设计和开发终搞.docx》由会员分享,可在线阅读,更多相关《学生管理系统设计和开发终搞.docx(19页珍藏版)》请在冰豆网上搜索。

学生管理系统设计和开发终搞.docx

学生管理系统设计和开发终搞

 

浙江大学远程教育学院

本科生毕业(设计)论文

 

题目学生管理系统的设计与开发

专业计算机科学

学习中心湖州

姓名郑天祥学号D20701101002

指导教师张彤

年月日

摘要

随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。

面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。

通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。

 

本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改 、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统本系统主要用于学校学生信息管理。

本系统主要功能有:

 

(1)有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。

(2)学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。

 

(3)学生信息的修改。

 

(4)班级管理信息的查询

(5)班级管理信息的修改。

 

关键词:

学生管理系统规范管理功能

 

 

目录

1.开发背景4

2.开发与运行环境5

2.1系统开发环境5

2.2系统运行环境5

3数据库设计.6

SQLSERVER简介6

3.1E-R(实体-关系)图6

3.2设计表的结构7

3.3数据库的连接--JDBC9

JDBC应用程序的结构9

本作品与数据库连接的代码10

4应用程序的设计11

4.1需求分析11

4.2软件设计11

4.3模块的实现12

用户登录12

班级管理模块15

课程管理模块17

系统用户管理模块18

结束语21

致谢22

参考文献23

 

1.开发背景

随着科学技术的不断提高,计算机技术也日渐成熟,其强大的功能已为人们所熟知,它已经进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点,例如:

查询方便、存储量大、保密性好、成本低、可靠性高等,这些优点能够给各个学校的学生信息管理工作带来极大的方便。

在每所学校中,许多管理工作(如:

成绩录入、学生资料管理、学生期末综合测评、毕业班学生成绩审核打印...)都是由老师手工操作完成的,由于各种原因,导致在操作过程中出错的事常有发生,而且操作的过程非常复杂,操作的效率也很低,往往需要教师花很长的时间来完成各项管理工作,占用了老师较多的时间。

学生管理系统是一项非常重要的工作,他负责整个学校的档案管理,交费管理,教务管理,教务工作者希望用计算机提高工作效率。

在各个大中小学校用计算机管理学校的信息已经越来越普遍了。

采用学生管理系统不仅可以接生人力物力,而且增强了学校资料的安全性,提高学校的管理能力。

 

2.开发与运行环境

2.1系统开发环境

⏹开发工具:

MyEclispeJbuilder

⏹开发语言:

java

⏹数据库管理系统软件:

MicrosoftSQLServer2005中文企业版

⏹操作系统:

WindowsServer2003

2.2系统运行环境

⏹操作系统:

WindowsXP/Windows2000/WindowsServer2003

⏹基础支撑:

JavaMyEclispe

⏹数据库管理系统软件:

MicrosoftSQLServer2005中文企业版

⏹显示器分辨率:

最佳效果1024×768

 

3.数据库设计

SQLSERVER简介

SQLServer是微软公司开发的一个关系数据库管理系统,以Transact_SQL作为它的数据库查询和编程语言,它支持两种身份验证模式:

WindowsNT身份验证和SQLServer身份验证。

SQLServer可以在不同的操作平台上运行,支持多种不同类型的网络协议如TCP/IP、IPX/SPX、AppleTalk等。

SQLServer在服务器端的软件运行平台是WindowsNT、Windows9x,在客户端可以是Windows3.x、WindowsNT、Windows9x,也可以采用其它厂商开发的系统如Unix、AppleMacintosh等。

微软的SQLServer是一项完美的客户/服务器系统。

SQLServer需要安装在WindowsNT的平台上,而WindowsNT可以支持Intel386,PowerPC,MIPS,AlphaPC和RISC等平台,它使SQLServer具备足够的威力和功能。

 

3.1E-R(实体-关系)图

E-R图以图形的方式将数据库的整个逻辑结构表示出来。

E-R图的组成包括:

(1)实体(用举行表示):

指现实世界中具有区分其他食物的特征或属性并与其他实体有联系的对象。

(2)属性(用椭圆形表示):

可理解为实体的特征。

(3)关系(用菱形表示):

是两个或多个实体之间的联系。

(4)用直线来连接属性和实体集,也用来连接实体集和关系集。

本设计的E-R图如下:

4.1本设计的E-R图

3.2设计表的结构

不同的记录组织在一起,就形成了数据库的“表”(Table),也可以说,表是实体的集合,是用来存储具体的数据的。

在制作本作品的数据库表的时候,我根据需要分别做了,学员信息管理表(Student)、课程管理表(Course)、成绩管理表(Scores)、班级管理表(Class)、系统用户管理表(Users)。

下面举例说明作品中的几张表:

(1)学员信息管理表(Student)这张表中记录的是学员的基本信息,通过对这张表可以对学员的姓名、性别、生日、爱好、家庭地址等进行查询和录入。

表4.2学员管理系统表(Student)

字段

约束

数据类型

字符长度

StuID

主键

varchar

20

StuName

nvarchar

20

Sex

nvarchar

2

Birthday

varchar

15

Favor

nvarchar

50

Address

nvarchar

50

Telephone

varchar

20

ClassID

外键

varchar

10

(2)成绩管理表(Scores)这张表中记录的是学员编号、课程编号、成绩、录入日期。

通过这张表老师可以清楚的了解每个学生的每门课程的成绩。

表4.3成绩管理表(Scores)

字段

约束

数据类型

字符长度

StuID

主键

varchar

20

CourseId

主键

varchar

20

Score

float

Sdate

datetime

(3)课程管理表(Course)中录入的是课程编号、课程名称、学期、老师。

通过这个表我们可以清晰的知道某学生所学的课程的基本内容。

表4.4课程管理表(Course)

字段

约束

数据类型

字符长度

CourseID

主键

varchar

20

CourseName

narchar

50

Term

varchar

50

Teacher

narchar

50

(4)班级管理表(Class)中记录的是班级编号、班级名称、老师、班级目标等信息,通过这张表我们可以清楚的了解到一个班级的基本情况。

表4.5班级管理表(Class)

字段

约束

数据类型

字符长度

ClassID

主键

varchar

10

ClassName

varchar

50

Teacher

narchar

50

Traget

narchar

50

Catchword

narchar

50

Remark

narchar

50

(5)系统用户管理表(Users)中录入的是用户名、密码以及用户类型。

通过这个表可以对用户进行有效的管理。

表4.6系统用户管理表(Users)

字段

数据类型

字符长度

UserName

narchar

20

Userwords

varchar

10

Usertype

Varchar

10

3.3数据库的连接--JDBC

Java数据库互连(JDBC,JavaDatabaseConnectivity)API是SunMicrosystems提供的JavaAPI的一部分,它定义了一组API对象以及与数据库进行交互的方法。

为了快速高效地访问数据库中的数据,Java应用程序使用了JDBC。

虽然Java在其Java.io包中提供了丰富的类和接口,但主要的缺陷是,通过这些类和接口访问的数据是以流的形式表示的。

因此,对于访问存储在外部数据提供的程序(如SQLServer、Oracle或Access)中的数据的所有Java应用程序而言,JDBC是必要的。

JDBC应用程序的结构

开发一个JDBC应用程序,基本需要一下步骤(以JDBC_ODBC驱动为例):

(1)为数据库创建一个数据源。

(2)加载将连接该数据源的驱动程序。

(3)DriverManager类试图找到一个能够连接至URL中指定的数据库的驱动程序。

(4)一旦连接建立,就使用连接将SQL语句传送给他所连接的数据库。

(5)使用Statement对象可构建并执行SQL语句以执行对数据库的操作。

本作品与数据库连接的代码

publicclassDBAccess{

//自定义公有的静态方法,jdbc连接sql

publicstaticConnectiongetjdbcconn()

{

Connectionconn=null;

try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

//创建连接

conn=DriverManager.getConnection(

"jdbc:

sqlserver:

//localhost:

0;databaseName=StuMsgMg","sa","123456");

System.out.println("数据库连接成功!

");

}

catch(ClassNotFoundExceptionex)

{

System.out.println("数据库连接失败"+ex.getMessage());

}

catch(SQLExceptionex1)

{

System.out.println("数据库连接失败"+ex1.getMessage());

}

returnconn;

}

4应用程序的设计

4.1需求分析

需求分析是软件设计中非常重要的一个环节,没有经过详细的需求分析就匆匆忙忙进行软件开发是注定要失败的。

所以一定要花时间与用户进行沟通交流,详细了解客户到底需要软件做到什么。

在沟通交流过程中也可以大致告诉用户软件可以做到些什么、是怎样做的。

对用户提出的一些不切实际的需求一定要以合理的方式明确地拒绝。

经双方讨论并明确的需求要以书面的形式签字确认。

本设计选定的客户为温州第十一中学,所以要对该学校的相关信息进行深入细致的调查研究,收集整理相关数据资料,然后在进行必要的需求分析后确定设计方案,最后选择一种熟悉的开发工具设计学生管理系统。

整个设计过程应遵循软件工程的要求进行,软件系统要求功能实用,界面简单友好。

设计应具有如下基本功能:

学生信息管理――提供了学生信息的增删改查操作。

课程管理――提供课程信息的管理功能。

成绩管理――提供成绩程信息的管理功能

班级管理――提供班级的管理功能

4.2软件设计

根据之前所收集到的资料以及对系统的需求分析所得,本设计将为六个模块进行实施,分别为:

(1)主界面

负责应用程序的主界面,由它调用其他模块。

因此应该具有操作性能好、界面清晰的特点,是用户能够很方便的找到所需功能。

根据功能需求和总体设计的结果,主模块应该包括信息管理,成绩管理,查询和统计。

可以通过点击菜单想进入相应的功能模块。

其中系统管理和帮助为保留项,为以后系统的升级打下基础。

(2)信息管理模块

此模块要完成的功能是人员信息管理,包括人员基本信息的添加、修改与删除,从数据库中查询,查看当前人员的成绩,以及切换到成绩管理。

(3)成绩管理模块

在成绩综合管理模块中,可以完成对信息的个种操作,包括添加、删除和修改,并可可通过成绩查询模块方便的、地查找出要编辑的信息,此处还可以查看当前人员的基本信息,并且切换到信息综合管理模块的界面。

还可以按要求做出排序。

(4)课程管理模块

此模块主要用于添加、删除和修改学生所学的课程,因为学生每学期所学的课程有所区别。

(5)查询模块

人员查询用于从数据库中查找待操作的人员,可按三种方式查询,即人员姓名、学号和所在班级。

成绩查询则可按照学号、各科成绩等关键字进行查询,同时也可以按照分数段进行查询。

(6)统计模块

人员统计模块主要完成的功能是按照人员的各种特征进行统计,并将结果输出到列表中。

4.3模块的实现

用户登录

想要进入这个学生信息管理系统必须要先登录,且登录的用户名及密码必须属实否则将系统将会自动跳出一个提示界面,若还没有注册的用户则可进行注册,之后方可登录。

5.1用户登录界面

5.2用户登录的错误提示

以下一段代码为系统对用户在注册时出现的问题所做出的反映:

//对注册时的问题有效处理

if(name!

=null&&pwd!

=null&&pwd1!

=null&&pwd1.length()!

=0){

if(pwd.length()<6){

JOptionPane.showMessageDialog(null,"密码至少为六位数以上");

Pwd.requestFocus();

Pwd1.setText("");

return;

}

if(pwd.length()>16){

JOptionPane.showMessageDialog(null,"密码必须小于16位!

");

Pwd.requestFocus();

Pwd1.setText("");

return;

}

if(!

(pwd.equals(pwd1))){

JOptionPane.showMessageDialog(null,"密码与上一次输入的不一致,请确认!

","系统提示",

JOptionPane.QUESTION_MESSAGE,a);

return;

}

if(DBAccess.isExist(userName)){

JOptionPane.showMessageDialog(null,"抱歉!

用户名已存在!

请使用其他的用户名。

",

"系统提示",

JOptionPane.

INFORMATION_MESSAGE,

a);

txtName.requestFocus();

Pwd.setText("");

Pwd1.setText("");

return;

}

VectorsysCount=newVector();

sysCount=DBAccess.getvector("select*fromSystemCount");……

班级管理模块

在此模块中实现对班级信息的录入、修改、查询等。

同时我们还可以通过首条、下一条、上一条、尾条、导出这几个控件更加快捷的对信息进行查询或者删除。

5.3课程管理模块

以下列出了课程管理模块中删除和添加两个控件的代码。

//删除方法

privatevoidClassMgDelete(){

intr=txtTable.getSelectedRow();

if(r<0){

JOptionPane.showMessageDialog(null,"请选中要删除的行");

}else{

intc=txtTable.getSelectedRow();

Strings=txtClassId.getText();

JOptionPane.showMessageDialog(null,"你确认要删除"+s+"的信息吗?

");

Stringst=txtTable.getValueAt(c,0).toString();

//产生删除的sql语句

Stringsql="deletefromClasswhereClassID='"+st+

"'";

/*Stringsql1="deletefromstudentwhereClassID='"+st+

"'";

intcount1=DBAccess.SQL(sql1);*/

intcount=DBAccess.SQL(sql);

if(count>0){

JOptionPane.showMessageDialog(null,"数据删除成功!

^_^");

cleanTxt();

}

dtm.removeRow(c);

}

}

//添加方法

privatevoidClassMgInsert(){

/*if()

for(inti=0;i

txtClassId.getText().indexOf("",i);

}*/

Vectorv=newVector();

v.add(txtClassId.getText());

v.add(txtClassname.getText());

v.add(txtTeacher.getText());

v.add(txtTarget.getText());

v.add(txtCatchword.getText());

v.add(txtRemark.getText());

if(v.get(0).toString().length()==0){

JOptionPane.showMessageDialog(null,"班级编号不能为空");

return;

}elseif(v.get

(1).toString().length()==0){

JOptionPane.showMessageDialog(null,"班级名称不能为空");

return;

}//elseif(v.get(0).toString().indexOf(st))

Stringsql="insertClassvalues(?

?

?

?

?

?

)";

intcou=DBAccess.SQL(sql,v);

if(cou>0){

JOptionPane.showMessageDialog(null,"添加成功");

lockedTxr();

dtm.insertRow(0,v);

}

ClassMgInsert.setIcon(g);

课程管理模块

课程管理系统,在这个系统里我们可以对课程的信息进行录入和修改,当然也可以通过输入课程编号或者课程名称等信息直接对课程进行查询。

5.4课程管理模块

以下一段代码为当我们搜索了数据之后,系统所给出的显示:

//运用showDataTable()方法

showDataTable();

}catch(Exceptionexception){

exception.printStackTrace();

}

}

privatevoidshowDataText(intr){//输入行索引,显示指定行到文本框

Vectorline=(Vector)data.get(r);//获取指定行数据

//构造一个Student对象

CourseMgstu=newCourseMg(line);

txtCourseID.setText(stu.courseid);

txtCourseName.setText(stu.coursename);

cboTerm.setSelectedItem(stu.term);

txtTeacher.setText(stu.teacher);

}

privatevoidshowDataTable(){//将数据显示到表格

//准备表格的标题

title.add("课程编号");

title.add("课程名称");

title.add("学期");

title.add("任课老师");

//准备数据

data=DBAccess.getvector("select*fromCourse");

//填充数据到表格

dtm.setDataVector(data,title);

table.getTableHeader().setFont(newjava.awt.Font("Dialog",Font.PLAIN,

14));

table.getTableHeader().setBackground(UIManager.getColor(

"InternalFrame.inactiveTitleForeground"));

}

系统用户管理模块

系统用户管理模块,在这个模块里我们实现对系统的管理,管理人员分为系统管理员、超级管理员、普通管理员三类,超级管理员可以决定用户的登陆身份,也可以修改系统中的一切信息,而普通用户和系统管理员则没有这样的权利。

5.5系统用户管理模块

以下为本模块中权限设置的代码:

//设置权限

privatevoidEd(){

if(userType.equals("普通用户")){

btnUpdate.setEnabled(false);

btnDelete.setEnabled(false);

}

if(userType.equals("系统管理员")){

btnUpdate.setEnabled(true);

btnDelete.setEnabled(true);

}

}

privatevoidshowTable(){

title.add("用户名");

title.add("用户类型");

//生成sql语句

Stringsql="selectUserName,UserTypefromUsers";

data=DBAccess.getvector(sql);

dtm.setDataVector(data,title);

}

结束语

现在的各大学校学生人数不断增加,最终对学生各类信息工作的管理过程变得相当复杂,本系统力求最大限度地减轻工作人员的负

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

当前位置:首页 > 小学教育 > 语文

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

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