学生档案管理系统.docx
《学生档案管理系统.docx》由会员分享,可在线阅读,更多相关《学生档案管理系统.docx(22页珍藏版)》请在冰豆网上搜索。
学生档案管理系统
苏州科技学院电子信息与信息实验中心
面向对象课程设计 报告
--学生档案管理系统
专业年级
班 级
学 号
姓 名
成 绩
指导教师
2015年4月10日
目录
1课程设计任务概述1
1.1选择目的与意义1
1.2设计任务与要求1
1.3开发环境以及工具1
2系统需求分析2
2.1系统功能分析2
2.2用例图及用例说明3
2.2.1增加学生档案用例3
2.2.2查询学生档案用例4
2.2.3更改学生档案用例5
2.2.4删除学生档案用例7
3系统设计8
3.1系统类图8
3.2系统活动图9
3.3系统时序图9
3.3.1管理员登录时序图9
3.3.2增加学生档案时序图10
3.3.3查询学生档案时序图10
3.3.4更改学生档案时序图10
3.3.5删除学生档案时序图11
4系统实现11
4.1数据库连接模块11
4.1.1DBUtil.java关键代码11
4.2学生档案管理模块12
4.2.1增加学生档案12
4.2.2查找学生档案12
4.2.3更新学生档案13
4.2.4删除学生档案13
5系统测试14
5.1登陆测试14
5.2学生档案增加测试14
5.3学生档案查询测试15
5.4学生档案更改测试15
5.5学生档案删除测试15
6课程设计总结16
7参考文献17
1课程设计任务概述
1.1选择目的与意义
“面向对象技术”是计算机科学与技术专业的核心专业课,面向对象程序设计技术也是软件工程师的基本技能,“面向对象课程设计”的目的是理解和巩固面向对象程序设计的基本理论、原理和方法的重要的实践环节。
本课程设计综合应用学生所学知识,结合小型应用系统的设计,建立面向对象程序设计的概念,理解和巩固封装、类与对象、继承与多态、JAVA数据结构、多线程、IO、UI设计及UML等知识,为后续课程的学习打下良好的基础。
通过实现学生档案管理功能的实际编程了解基于Swing的图形用户界面开发和数据库操作原理,提高Swing和JDBC技术结合的综合运用能力。
1.2设计任务与要求
要求用面向对象的方法实现,且每个任务都采用文件存储数据,不能使用数据库。
每个题目均须具有以下功能:
1、用户管理,合法用户许可访问;
2、信息录入,包括记录的追加和插入;
3、信息删除;
4、信息修改;
5、信息排序和查询;
6、信息的保存和装载;
7、简单的帮助。
1.3开发环境以及工具
开发环境:
MyEclipseEnterpriseWorkbenchVersion:
2014
JDK1.7
系统运行环境:
WIN7旗舰版X64位
数据库平台:
MySQL5.0.22
2系统需求分析
2.1系统功能分析
本系统主要实现学生档案的管理,主要功能包括学生档案信息的添加、修改、查询和删除,及一些辅助项目的管理,如系统用户管理、院系管理和专业管理。
整个系统模块划分如图2-1所示:
图2-1系统模块划分
2.2用例图及用例说明
根据学生档案管理描述,画出学生档案管理系统整体用例图,
见图2-2:
图2-2学生档案管理系统用例图
由于院系管理与专业管理的用例与学生管理类似,以下给出学生管理的用例描述。
2.2.1增加学生档案用例
(1)增加学生档案用例描述
增加学生档案,是学生档案管理系统提供的一项基本服务。
在学生档案管理系统的建模过程中,将这一行为抽象为一个用例。
在不考虑软件的具体实现细节基础上,给出如下的用例描述:
UseCase名称
增加学生档案
执行者
管理员
前置条件
管理员通过系统验证后,成功登陆学生档案管理系统
事件流
1、输入学生学号;
2、输入学生姓名;
3、选择学生性别;
4、输入学生年龄;
5、选择学生所属院系;
6、选择学生所属专业;
7、点击“增加”提交。
后置条件
学生档案添加成功,提示“增加成功”,并清空增加界面。
(2)增加学生档案用例图(如图:
2-2-1)
图2-2-1增加学生档案用例图
2.2.2查询学生档案用例
(1)查询学生档案用例描述
查询学生档案,是学生档案管理系统提供的一项基本服务。
在学生档案管理系统的建模过程中,将这一行为抽象为一个用例。
在不考虑软件的具体实现细节基础上,给出如下的用例描述:
UseCase名称
查询学生档案
执行者
管理员
前置条件
管理员通过系统验证后,成功登陆学生档案管理系统
事件流
1、根据输入学生学号;
2、点击“查询”按钮;
后置条件
查询成功后,若查到符合条件学生信息,则返回在界面表格中,若查不到信息则不返回,清空查询各条件框中信息。
(2)查询学生档案用例图(如图:
2-2-2)
图2-2-2查询学生档案用例图
2.2.3更改学生档案用例
(1)更改学生档案用例描述
更改学生档案,是学生档案管理系统提供的一项基本服务。
在学生档案管理系统的建模过程中,将这一行为抽象为一个用例。
在不考虑软件的具体实现细节基础上,给出如下的用例描述:
UseCase名称
修改学生档案
执行者
管理员
前置条件
管理员通过系统验证后,成功登陆学生档案管理系统,并查询出要更改档案的学生信息
事件流
1、选中要更改学生的档案信息;
2、在更改信息框中更改需要更改的信息;
3、点击“修改”按钮。
后置条件
修改成功后,在数据库中更新修改学生的档案,并清空修改信息框中的信息。
(2)更改学生档案用例图(如图:
2-2-3)
图2-2-3更改学生档案用例图
2.2.4删除学生档案用例
(1)删除学生档案用例描述
删除学生档案,是学生档案管理系统提供的一项基本服务。
在学生档案管理系统的建模过程中,将这一行为抽象为一个用例。
在不考虑软件的具体实现细节基础上,给出如下的用例描述:
UseCase名称
删除学生档案
执行者
管理员
前置条件
管理员通过系统验证后,成功登陆学生档案管理系统,并查询出要更改档案的学生信息
事件流
1、选中要删除学生的信息;
2、点击“删除选中档案”按钮。
后置条件
学生档案删除成功,数据库中删除对应学生档案。
(2)删除学生档案用例图(如图:
2-2-3)
图2-2-3删除学生档案用例图
3系统设计
3.1系统类图
学生档案管理系统总类图,如图3-1所示:
图3-1学生档案管理系统类图
3.2系统活动图
学生档案管理系统活动图,如图3-2所示:
图3-2学生档案管理系统活动图
3.3系统时序图
3.3.1管理员登录时序图
管理员登录时序图,如图3-3-1所示:
图3-3-1系统登录时序图
3.3.2增加学生档案时序图
增加学生档案时序图,如图3-3-2所示:
图3-3-2增加学生档案时序图
3.3.3查询学生档案时序图
查询学生档案时序图,如图3-3-3所示:
图3-3-3查询学生档案时序图
3.3.4更改学生档案时序图
更改学生档案时序图,如图3-3-4所示:
图3-3-4更改学生档案时序图
3.3.5删除学生档案时序图
删除学生档案时序图,如图3-3-5所示:
图3-3-5删除学生档案时序图
4系统实现
4.1数据库连接模块
4.1.1DBUtil.java关键代码
publicclassDbUtil{
privateStringdbUserName="root";
privateStringdbPassword="";
privateStringdriverName="com.mysql.jdbc.Driver";
privateStringdbUrl="jdbc:
mysql:
//localhost:
3306/stuinfo";
publicConnectiongetConn()throwsException{
Class.forName(driverName);
Connectionconn=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
returnconn;
}
publicvoidcloseConn(Connectionconn,PreparedStatementpstmt)throwsSQLException{
if(pstmt!
=null){
pstmt.close();
if(conn!
=null){
conn.close();
}
}
}
}
4.2学生档案管理模块
4.2.1增加学生档案
publicintaddStu(Connectionconn,Studentstudent)throwsSQLException,
ParseException{
//TODOAuto-generatedmethodstub
Stringsql="insertintostuvalues(?
?
?
?
?
?
)";
PreparedStatementpstmt=conn.prepareStatement(sql);
pstmt.setInt(1,student.getId());
pstmt.setString(2,student.getName());
pstmt.setString(3,student.getSex());
pstmt.setInt(4,student.getYear());
pstmt.setString(5,student.getMajor());
pstmt.setString(6,student.getGrade());
returnpstmt.executeUpdate();
}
4.2.2查找学生档案
publicResultSetfindStu(Connectionconn,Studentstu)throwsSQLException{
//TODOAuto-generatedmethodstub
StringBuffersb=newStringBuffer("select*fromstustwherest.major="+"'"+stu.getMajor()+"'");
if(stu.getId()!
=0){
sb.append("andst.id="+stu.getId());}
if(stringUtil.isNotEmpty(stu.getName())){
sb.append("andst.namelike'%"+stu.getName()+"%'");}
if(stringUtil.isNotEmpty(stu.getSex())){
sb.append("andst.sexlike'%"+stu.getSex()+"%'");}
if(stu.getYear()!
=0){
sb.append("andst.year="+stu.getYear());}
if(stringUtil.isNotEmpty(stu.getGrade())){
sb.append("andst.gradelike'%"+stu.getGrade()+"%'");}
PreparedStatementpstmt=conn.prepareStatement(sb.toString());
returnpstmt.executeQuery();
}
4.2.3更新学生档案
publicintupdateStu(Connectionconn,Studentstudent)throwsException{
//TODOAuto-generatedmethodstub
Stringsql="UPDATEstuSETname=?
sex=?
year=?
major=?
grade=?
WHEREid=?
";
PreparedStatementpstmt=conn.prepareStatement(sql);
pstmt.setString(1,student.getName());
pstmt.setString(2,student.getSex());
pstmt.setInt(3,student.getYear());
pstmt.setString(4,student.getMajor());
pstmt.setString(5,student.getGrade());
pstmt.setInt(6,student.getId());
returnpstmt.executeUpdate();
}
4.2.4删除学生档案
publicintdeleteStu(Connectionconn,intstuId)throwsSQLException{
//TODOAuto-generatedmethodstub
Stringsql="deletefromstuwhereid=?
";
PreparedStatementpstmt=conn.prepareStatement(sql);
pstmt.setInt(1,stuId);
returnpstmt.executeUpdate();
}
5系统测试
5.1登陆测试
登录测试用例:
用例编号
输入内容
预期结果
实际结果
说明
账号
密码
1
admin
admin
登录主界面
成功登录主界面
管理员账号能正确登录
2
admin
123456
提示“用户名或密码错误”
提示“用户名或密码错误”
错误的密码无法登录系统
3
Dhx
admin
提示“用户名或密码错误”
提示“用户名或密码错误”
错误的账户无法登录系统
4
admin
(空)
提示“请输入密码”
提示“请输入密码”
密码为空不能登录
5
(空)
admin
提示“用户名不能为空”
提示“用户名不能为空”
用户名为空时不能登录
5.2学生档案增加测试
学生档案增加测试用例:
用例编号
操作步骤
预期结果
实际结果
说明
1
a)输入学号:
112001
b)输入姓名:
王二
c)选择性别:
男
d)输入年龄:
18
e)选择院系:
电子信息工程
f)选择专业:
电子Z1211
g)点击“增加”按钮
提“添加成功”
提示“添加成功”
正常输入学生档案信息
2
a)输入姓名:
王二
b)选择性别:
男
c)输入年龄:
18
d)选择院系:
电子信息工程
e)选择专业:
电子Z1211
f)点击“增加”按钮
提示“请输入学号”
提示“请输入学号”
不输入学号添加档案信息
3
a)输入学号:
112001
b)点击“增加”按钮
提示“请输入姓名”
提示请输入年龄
只输入学号添加学生档案信息
4
a)输入学号:
112001
d)输入年龄:
18
g)点击“增加”按钮
提示“请输入姓名”
提示“请输入姓名”
只输入学号和年龄添加档案信息
5
a)点击“增加”按钮
提示“请输入学号”
提示“请输入学号”
不输入学生任何信息
5.3学生档案查询测试
学生档案查询测试用例:
用例编号
操作步骤
预期结果
实际结果
说明
1
a)输入学号:
112004
b)点击“查询”按钮
正确显示查询信息
正确显示查询信息
按学号查询
2
a)点击“查询”按钮
正确显示查询信息
正确显示查询信息
列出所有学生
5.4学生档案更改测试
学生档案更改测试用例:
用例编号
操作步骤
预期结果
实际结果
说明
1
a)查询出要更改学生信息
b)选中该条信息
c)更改院系
d)更改专业
e)点击“修改”按钮
提示“更新成功”
提示“更新成功”
修改学生院系与专业
2
a)点击“修改”按钮
提示“请先选择”
提示“请先选择”
不选中学生档案更改信息
3
a)查询出要更改学生信息
b)选中该条信息
c)更改姓名
d)更改性别
e)点击“修改”按钮
提示“更新成功”
提示“更新成功”
修改学生姓名与性别
5.5学生档案删除测试
学生档案删除测试用例:
用例编号
操作步骤
预期结果
实际结果
说明
1
f)查询出要删除学生信息
g)选中该条信息
h)点击“删除选中档案”按钮
提示“删除成功”
提示“删除成功”
正常删除操作步骤
2
b)点击“删除选中档案”按钮
提示“请先选择”
提示“请先选择”
不选中档案直接删除
6课程设计总结
通过对面向对象课程的学习,我们初步掌握了通过编程实现学生档案管理系统的主要核心,实现了一个简单的学生档案管理系统。
本系统在目前的调试中,基本达到了当初的设计要求,设计上基本合理,功能基本完善,能够做到对学生档案信息的查询,删除,添加,修改等基本功能。
由于各种原因,我们设计的学生档案管理系统只完成了几个主要的功能实现,还存在着一些问题有待解决,系统设计的还不够精致同时也存在着很多的不足与缺陷,这还需要更我们进一步的完善。
这几周来我们投入巨大精力完成课程设计,收获颇多。
通过实现学生档案管理功能的实际编程了解了基于Swing的图形用户界面开发和数据库操作原理,提高了我们在Swing和JDBC技术结合方面的综合运用能力。
7参考文献
[1]耿祥义,张跃平.Java面向对象程序设计[M].北京:
清华大学出版社,2009
[2]孙家广等.软件工程——理论、方法与实践[M].北京:
高等教育出版社,2005.
[3]李春葆,曾平.数据库原理与应用.第二版.北京:
清华大学出版社,2007.
[4]GrantPalmer.Java程序员手册[M].第一版.北京:
清华大学出版社,2002.
[5]李敏波.Java高级编程[M].北京:
清华大学出版社,2006.