学生管理系统.docx

上传人:b****2 文档编号:11755124 上传时间:2023-06-02 格式:DOCX 页数:17 大小:762.23KB
下载 相关 举报
学生管理系统.docx_第1页
第1页 / 共17页
学生管理系统.docx_第2页
第2页 / 共17页
学生管理系统.docx_第3页
第3页 / 共17页
学生管理系统.docx_第4页
第4页 / 共17页
学生管理系统.docx_第5页
第5页 / 共17页
学生管理系统.docx_第6页
第6页 / 共17页
学生管理系统.docx_第7页
第7页 / 共17页
学生管理系统.docx_第8页
第8页 / 共17页
学生管理系统.docx_第9页
第9页 / 共17页
学生管理系统.docx_第10页
第10页 / 共17页
学生管理系统.docx_第11页
第11页 / 共17页
学生管理系统.docx_第12页
第12页 / 共17页
学生管理系统.docx_第13页
第13页 / 共17页
学生管理系统.docx_第14页
第14页 / 共17页
学生管理系统.docx_第15页
第15页 / 共17页
学生管理系统.docx_第16页
第16页 / 共17页
学生管理系统.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生管理系统.docx

《学生管理系统.docx》由会员分享,可在线阅读,更多相关《学生管理系统.docx(17页珍藏版)》请在冰点文库上搜索。

学生管理系统.docx

学生管理系统

学生管理系统

一需求分析陈述

1.1系统功能与应用背景

目前,院校的学生信息管理工作已经不再局限于对学生基本信息数据库的维护,而是越来越多地参与到其他相关部门提供一些必要的协调和服务。

学生学籍管理的现状主要为:

由于缺乏统一的管理方式,学生的数据较为分散,并且经常需要对数据进行变更,对于变动的数据不能做到及时统一与修正。

相关部门之间很难简历一套机制来确保数据的完整性,因而需要浪费大量的人力资源来弥补这一空缺。

由于院校的工作性质,教学部门每一个阶段都要对学生的成绩进行汇总及统计来对教学工作及学生的状况进行评估,如果每一偶一个统一的数据采集平才,那么就会造成数据的上报和汇总不及时,数据不准确等客观问题的发生。

笨系统提供了一套学生综合信息管理的平台,能够使得系统管理人员对院校的专业进行分类,进而确定各个专业中所包含的班级信息,在已有班级信息的基础上能够对所有的学生信息进行分类管理。

同时,在班级信息中能够反映出学生的入校时间及年制,从而确定了学生在校期间所经历的每个学期的时间段。

管理人员可以对学生每学期及每门课程的成绩进行录入与修改。

当成绩录入结束后,可以通过系统的功能单独对学生的成绩按照学期进行统计,也可以对整个班级不同课程的成绩进行统计。

本程序的功能主要功能包括一下方面:

专业信息管理

班级信息管理

学生基本信息管理

班级课程信息管理

成绩信息管理

系统维护

1.2系统设计思想

本系统选用了netBeans+SQLSever的c/s模式,采用了netBeans中的图像界面功能,故用户界面方便会比较漂亮一些,还加入了一些图片,是程序的界面看起来更具动感。

数据库方面使用了SqlSever的connection,statement等,来对数据库的信息进行添加,修改,删除等操作。

本系统的运行环境为windowsxp,用的工具上面已经提到。

 

二.分析建模

2.1用例图

此图为管理员用户可以进行操作的各种功能的用例图。

从途中可以看出,管理员可以尽心系统管理,成绩信息管理,班级信息管理,学生信息管理,专业设置,登陆,帮助,成绩信息管理等操作。

此图为普通用户进行各种操作的用例图。

普通用户由于权限的限制,故只可以进行班级信息查询,学生信息查询,专业信息查询,课程信息查询,成绩信息查询等操作,无法对数据库的内容进行修改。

 

2.2对象图(简略)

此图表明,对一个学生来说,从属于三年二班,要有软件工程的专业,主修软件工程的课程,其老师是李斯

2.3数据流图

此数据图表示,管理员可以通过数据库中的登录名和密码登陆系统,然后对学生信息进行管理,修改后的学生的信息将会被存入学生信息的数据库。

在此过程中,管理员的登录名和密码将会贯穿整个过程

2.4顺序图

此图表明,用户将会通过自己的用户名和密码,登录到系统的主界面,然后可进行学生信息管理和系统管理等操作

 

三.设计建模

1.1数据库逻辑结构图

1.ClassInfo表

createtableClassInfo(

ClassIDnvarchar(50)primarykey,

ClassNamenvarchar(50),

ClassNumbernvarchar(50),

SpecialtyNamenvarchar(50),

Lengthnumeric(18),

Teachernvarchar(50),

EnrollmentTimenvarchar(100),

Remarknvarchar(200)

);

字段

类型

描述

ClassID

自动编号

班级编号(主键)

ClassName

文本

班级名称

ClassNumber

文本

教室编号

SpecialtyName

文本

专业名称

Length

数字

学制

Teacher

文本

班主任

EnrollmentTime

文本

入校时间

Remark

文本

备注

2.CourseInfo表

createtableCourseInfo(

CourseIDnvarchar(50)primarykey,

ClassIDnvarchar(50),

Coursenvarchar(50),

Semesternvarchar(50),

foreignkey(ClassID)referencesClassInfo(ClassID)

);

字段

类型

描述

CourseID

自动编号

课程编号(主键)

ClassID

文本

班级编号

CourseID

文本

课程编号

Semester

文本

学期

3.SpecialtyInfo表

createtableSpecialtyInfo(

SpecialtyIDnvarchar(50)primarykey,

SpecialtyNamenvarchar(50),

Remarknvarchar(200)

);

字段

类型

描述

SpecialtyID

自动编号

专业编号(主键)

SpecialtyName

文本

专业名称

Remark

文本

备注

4StudentInfo表

createtableStudentInfo(

StudentIDnvarchar(50)primarykey,

StudentNumbernvarchar(50),

Namenvarchar(50),

Sexnvarchar(10),

Racenvarchar(50),

Addressnvarchar(100),

Telephonenvarchar(20),

Rolenvarchar(20),

Postalcodenvarchar(20),

ClassIDnvarchar(50),

Remarknvarchar(200),

foreignkey(ClassID)referencesClassInfo(ClassID)

);

字段

类型

描述

StudentID

文本

自动编号(主键)

StudentNumber

文本

学号

Name

文本

姓名

Sex

文本

性别

Race

文本

民族

Address

文本

家庭住址

Telephone

文本

联系电话

Role

文本

政治面貌

Postalcode

文本

邮政编码

ClassID

文本

班级编号

文本

备注

5.ScoreInfo表

createtableScoreInfo(

ScoreIDnvarchar(50)primarykey,

semesternvarchar(50),

StudentIDnvarchar(50),

CourseIDnvarchar(50),

Scorenumeric(18),

foreignkey(CourseID)referencesCourseInfo(CourseID),

foreignkey(StudentID)referencesStudentInfo(StudentID)

字段

类型

描述

ScoreID

自动编号

成绩编号(主键)

Semester

文本

学期

StudentID

文本

学生姓名

CourseID

文本

课程编号

Score

数字

分数

3.2功能模块图

1系统管理模块图

2专业信息管理模块图

3班级信息管理模块图

4学生信息管理

5课程信息管理

6成绩信息管理

2类图(简图)

类:

学生,班级,教师,课程,专业

四.编码(登录时的代码,自动生成的代码已略去)

importjava.sql.*;

publicclassLoginextendsjavax.swing.JFrame{

/**CreatesnewformLogin*/

publicLogin(){

initComponents();

jDialog1.setSize(350,220);

this.setTitle("欢迎使用!

");

}

privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){

jLabel5.setText("用户名:

sunrain密码:

123456");

}

privatevoidjButton5ActionPerformed(java.awt.event.ActionEventevt){

jDialog1.setVisible(false);//TODO将在此处添加您的处理代码:

}

privatevoidjButton4ActionPerformed(java.awt.event.ActionEventevt){

jDialog1.setVisible(false);//TODO将在此处添加您的处理代码:

}

privatevoidjButton3ActionPerformed(java.awt.event.ActionEventevt){

Connectionconnection=null;

Statementstatement=null;

ResultSetresultSet=null;

StringstrUser="scott";

StringstrPassword="tiger";

try{

DriverManager.registerDriver(neworacle.jdbc.OracleDriver());

connection=DriverManager.getConnection("jdbc:

oracle:

thin:

@localhost:

1521:

XE",strUser,strPassword);//试图建立到给定数据库URL的连接

StringstrSQL="select*fromlogin";

statement=connection.createStatement();

resultSet=statement.executeQuery(strSQL);

booleanjudge=true;

while(resultSet.next()){

if(((resultSet.getString

(1)).equals(jTextField1.getText()))&&(((resultSet.getString

(2)).equals(jPasswordField1.getText())))){

judge=false;

Welcome.userName=jTextField1.getText();

this.setVisible(false);

UserChoiceuserChoice=newUserChoice();

userChoice.setVisible(true);

break;

}

}

if(judge==true){

jDialog1.setVisible(true);

}

resultSet=null;

statement=null;

connection=null;

}

catch(SQLExceptione){

System.out.println("Errorcode="+e.getErrorCode());

System.out.println("Errormessage="+e.getMessage());

System.out.println("Errorstate="+e.getSQLState());

}

finally{

try{

if(statement!

=null){

statement.close();//立即释放此Statement对象的数据库和JDBC资源,而不是等待该对象自动关闭时发生此操作

}

if(connection!

=null){

connection.close();//立即释放此Connection对象的数据库和JDBC资源,而不是等待它们被自动释放

}

}

catch(SQLExceptione){

e.printStackTrace();

}

}

}

privatevoidjButton2ActionPerformed(java.awt.event.ActionEventevt){

System.exit(0);//TODO将在此处添加您的处理代码:

}

/**

*@paramargsthecommandlinearguments

*/

publicstaticvoidmain(Stringargs[]){

java.awt.EventQueue.invokeLater(newRunnable(){

publicvoidrun(){

newLogin().setVisible(true);

}

});

}

//变量声明-不进行修改

privatejavax.swing.JButtonjButton1;

privatejavax.swing.JButtonjButton2;

privatejavax.swing.JButtonjButton3;

privatejavax.swing.JButtonjButton4;

privatejavax.swing.JButtonjButton5;

privatejavax.swing.JDialogjDialog1;

privatejavax.swing.JLabeljLabel1;

privatejavax.swing.JLabeljLabel2;

privatejavax.swing.JLabeljLabel3;

privatejavax.swing.JLabeljLabel4;

privatejavax.swing.JLabeljLabel5;

privatejavax.swing.JLabeljLabel6;

privatejavax.swing.JPasswordFieldjPasswordField1;

privatejavax.swing.JTextFieldjTextField1;

//变量声明结束

}

4.2界面

上图为用户登陆系统后的应用程序主界面,通过窗口中提供的主菜单,用户可以实现对专业信息,班级信息,学生信息课程信息,成绩信息等功能的管理,并且能够在整个系统中添加用户及不同类别的角色。

例如:

点击“系统管理”的时候,我们可以实现对信息一些信息的管理,如,如果是超级管理员帐户,则可以进行添加用户,修改用户角色,修改用户密码等操作。

点击“专业设置”按钮时,则可以进入专业设置的主界面,进行专业的设置。

点击用户操作,可以进行本用户的密码设置等操作。

点击帮助,则用户可以看到一个关于本程序的帮助文档,文档中会比较详细的给用户讲解如何对本系统进行操作等。

上面的界面为进行学生信息管理时所用到的界面。

可以根据学生姓名和学生编号进行某一学生的查找,也可以通过选择专业类别及班级的入学年份等信息来筛选出学生的范围,从而缩小要查找学生信息的范围。

在班级和专业,性别等下拉表框中,选定了满足条件的班级名称,该班级或是专业的学生的详细信息就会显示在窗口中。

该窗口还提供过了对学生的信息进行修改及删除的功能。

在进行此两种操作时,则需要在学生姓名,学生编号里输入所要修改的学生的信息,然后会弹出一个专门的对话框来对学生的信息加以修改。

在输入对话框中,如学生姓名框中,用户需要完整输入学生的姓名,否则会弹出警告窗口。

学生学号,入学年份等框皆是。

在班级,专业,性别框中,用户只需要对其进行选择即可。

五.测试用例

5.1Student类的状态测试:

(1)类的测试状态:

UnreservedReservedDeletedChanged

(2)测试状态的事件和转换

状态A

事件和转换

状态B

Unreserved

Reserve();

Reserved

Reserved

unreserved()

Unreserved

Unreserved

deleteStudent()

Deleted

六.总结:

通过这个学生管理系统的完成,复习了软件工程的基本知识,加深了对面向对象开发过程的理解,除此而外还有其他一些体会:

1.需求分析。

在学习课程的时候,对需求分析的作用及写法不甚了解,故最开始做此作业的时候,对如何写需求分析无从下手,故上网查了一些资料,并且看了一些参考书,则才写完了需求分析,并对需求分析有了一定的了解。

2.对用例图,数据流图和时序图等图的画法更加深入的了解。

3.在设计建模的数据库建模中,由于做过数据库课程的大作业,故对此部分比较的了解,对数据库的建表等操作有了更加深入的了解。

4.在设计建模的类图等建模中,感觉到面向对象的难处。

以前的一些大作业,几乎用的都是面向过程的方式,此次,虽然没有做出整个程序,但也对面向对象的一些做法有了一些了解。

5.在测试用例阶段,确实感觉到测试的难度。

很长时间以来,都无法确定测试用例如何编码,然后参照了一些参考书,才对测试用例的编写有了一定的了解。

6.在整个大作业的过程中,体验到系统分析阶段的重要性,好的开始是成功的一半,只有在系统的需求分析阶段做好一切,才能在后期的工作过程中保持一致,否则来回的修改,工作量便会无形的增加。

一些数据表的绘画也是很重要的过程,正确,美观等的重要性。

对一个表来说,正确性是必须的,但美观同时也是重要的。

7.通过这次软件工程大作业,也加深了对netBeans和sqlServer等工具的了解,同时,也对java和数据库操作语句有了更加深刻的了解。

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2