学生档案管理系统-面向对象课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
苏州科技学院电子信息与信息实验中心面向对象课程设计报告
--学生档案管理系统
专业年级计算机科学与技术
班级
学号
姓名
成绩
指导教师陆卫忠
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.1 DBUtil.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)
2
1 课程设计任务概述
1.1 选择目的与意义
“面向对象技术”是计算机科学与技术专业的核心专业课,面向对象程序设计技术也是软件工程师的基本技能,“面向对象课程设计”的目的是理解和巩固面向对象程序设计的基本理论、原理和方法的重要的实践环节。
本课程设计综合应用学生所学知识,结合小型应用系统的设计,建立面向对象程序设计的概念,理解和巩固封装、类与对象、继承与多态、JAVA数据结构、多线程、IO、UI设计及UML等知识,为后续课程的学习打下良好的基础。
通过实现学生档案管理功能的实际编程了解基于Swing的图形用户界面开发和数据库操作原理,提高Swing和JDBC技术结合的综合运用能力。
1.2 设计任务与要求
要求用面向对象的方法实现,且每个任务都采用文件存储数据,不能使用数据库。
每个题目均须具有以下功能:
1、用户管理,合法用户许可访问;
2、信息录入,包括记录的追加和插入;
3、信息删除;
4、信息修改;
5、信息排序和查询;
6、信息的保存和装载;
7、简单的帮助。
1.3 开发环境以及工具
开发环境:
MyEclipse Enterprise Workbench Version: 2014
JDK 1.7
系统运行环境:WIN7 旗舰版 X64位
数据库平台:MySQL 5.0.22
-1-
2 系统需求分析
2.1 系统功能分析
本系统主要实现学生档案的管理,主要功能包括学生档案信息的添加、修改、查询和删除,及一些辅助项目的管理,如系统用户管理、院系管理和专业管理。
整个系统模块划分如图2-1所示:
图2-1 系统模块划分
2
2.2 用例图及用例说明
根据学生档案管理描述,画出学生档案管理系统整体用例图,
见图2-2:
图2-2 学生档案管理系统用例图
由于院系管理与专业管理的用例与学生管理类似,以下给出学生管理的用例描述。
2.2.1 增加学生档案用例
(1)增加学生档案用例描述
增加学生档案,是学生档案管理系统提供的一项基本服务。
在学生档案管理系统的建模过程中,将这一行为抽象为一个用例。
在不考虑软件的具体实现细节基础上,给出如下的用
-3-
4
(2)增加学生档案用例图(如图:2-2-1)
图2-2-1 增加学生档案用例图
2.2.2 查询学生档案用例
(1)查询学生档案用例描述
查询学生档案,是学生档案管理系统提供的一项基本服务。
在学生档案管理系统的建模过程中,将这一行为抽象为一个用例。
在不考虑软件的具体实现细节基础上,给出如下的用例描述:
-5-
(2)查询学生档案用例图(如图:2-2-2)
图2-2-2 查询学生档案用例图
2.2.3 更改学生档案用例
(1)更改学生档案用例描述
更改学生档案,是学生档案管理系统提供的一项基本服务。
在学生档案管理系统的建模过程中,将这一行为抽象为一个用例。
在不考虑软件的具体实现细节基础上,给出如下的用例描述:
6
(2)更改学生档案用例图(如图:2-2-3)
图2-2-3 更改学生档案用例图
-7-
2.2.4 删除学生档案用例
(1)删除学生档案用例描述
删除学生档案,是学生档案管理系统提供的一项基本服务。
在学生档案管理系统的建模过程中,将这一行为抽象为一个用例。
在不考虑软件的具体实现细节基础上,给出如下的用例描述:
(2)删除学生档案用例图(如图:2-2-3)
图2-2-3 删除学生档案用例图
8
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.1 DBUtil.java关键代码
public class DbUtil {
private String dbUserName = "root";
private String dbPassword = "";
private String driverName = "com.mysql.jdbc.Driver";
private String dbUrl = "jdbc:mysql://localhost:3306/stuinfo";
public Connection getConn() throws Exception{
Class.forName(driverName);
Connection conn =
DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
return conn;
}
public void closeConn(Connection conn , PreparedStatement pstmt) throws SQLException{
if(pstmt!=null){
pstmt.close();
if(conn!=null){
conn.close();
}
}
}
}
4.2 学生档案管理模块
4.2.1 增加学生档案
public int addStu(Connection conn, Student student) throws SQLException, ParseException {
// TODO Auto-generated method stub
String sql = "insert into stu values(?,?,?,?,?,?)";
PreparedStatement pstmt = 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());
return pstmt.executeUpdate();
}
4.2.2 查找学生档案
public ResultSet findStu(Connection conn, Student stu) throws SQLException {
// TODO Auto-generated method stub
StringBuffer sb =new StringBuffer( "select * from stu st where
st.major="+"'"+stu.getMajor()+"'");
if(stu.getId()!=0){
sb.append(" and st.id ="+stu.getId());}
if(stringUtil.isNotEmpty(stu.getName())){
sb.append(" and like '%"+stu.getName()+"%'");} if(stringUtil.isNotEmpty(stu.getSex())){
sb.append(" and st.sex like '%"+stu.getSex()+"%'");} if(stu.getYear()!=0){
sb.append(" and st.year ="+stu.getYear());}
if(stringUtil.isNotEmpty(stu.getGrade())){
sb.append(" and st.grade like '%"+stu.getGrade()+"%'");} PreparedStatement pstmt = conn.prepareStatement(sb.toString());
return pstmt.executeQuery();
}
4.2.3 更新学生档案
public int updateStu(Connection conn, Student student) throws Exception { // TODO Auto-generated method stub
String sql = "UPDATE stu SET name =?,sex = ?,year=?,major=?,grade=? WHERE id = ?";
PreparedStatement pstmt = 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());
return pstmt.executeUpdate();
}
4.2.4 删除学生档案
public int deleteStu(Connection conn, int stuId) throws SQLException { // TODO Auto-generated method stub
String sql = "delete from stu where id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, stuId);
return pstmt.executeUpdate();
}
5 系统测试
5.1 登陆测试
5.2 学生档案增加测试
5.3 学生档案查询测试
5.4 学生档案更改测试
5.5 学生档案删除测试
6 课程设计总结
通过对面向对象课程的学习,我们初步掌握了通过编程实现学生档案管理系统的主要核心,实现了一个简单的学生档案管理系统。
本系统在目前的调试中,基本达到了当初的设计要求,设计上基本合理,功能基本完善,能够做到对学生档案信息的查询,删除,添加,修改等基本功能。
由于各种原因,我们设计的学生档案管理系统只完成了几个主要的功能实现,还存在着一些问题有待解决,系统设计的还不够精致同时也存在着很多的不足与缺陷,这还需要更我们进一步的完善。
这几周来我们投入巨大精力完成课程设计,收获颇多。
通过实现学生档案管理功能的实际编程了解了基于Swing的图形用户界面开发和数据库操作原理,提高了我们在Swing和JDBC技术结合方面的综合运用能力。
7 参考文献
[1]耿祥义,张跃平.Java面向对象程序设计[M].北京:清华大学出版社,2009
[2] 孙家广等. 软件工程——理论、方法与实践[M].北京:高等教育出版社,2005.
[3] 李春葆,曾平. 数据库原理与应用.第二版.北京:清华大学出版社,2007.
[4] Grant Palmer. Java程序员手册[M].第一版.北京:清华大学出版社,2002.
[5] 李敏波. Java 高级编程[M].北京:清华大学出版社,2006.。