学生管理系统实训报告.docx
- 文档编号:2312123
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:13
- 大小:1.54MB
学生管理系统实训报告.docx
《学生管理系统实训报告.docx》由会员分享,可在线阅读,更多相关《学生管理系统实训报告.docx(13页珍藏版)》请在冰豆网上搜索。
学生管理系统实训报告
学生管理系统
实训报告
姓名:
xxxx
学号:
xxxxxxxxxxx
班级:
软件外包
时间:
2011年6月26日
指导老师:
xxx
【目录】
一.设计需求分析……………………………………………3
二.概要设计…………………………………………………4
三.程序整体设计说明………………………………………5
四.程序部分代码与注释……………………………………6
五.测试结果…………………………………………………9
六.设计心得…………………………………………………12
【摘要】随着信息时代的发展,对于学生信息的管理已经不再局限于纸上的那些繁琐的记录,而是通过电脑软件程序对学生的信息进行管理,这样不但可以简化管理的复杂度,还可以提高管理过程中的准确性,因此有必要设计一款专门针对于学生信息管理的一个程序,于是设计了此学生信息管理系统。
该应用程序能够对每个学生的相关信息进行注册、储存、修改和删除等操作。
该系统要求按身份登陆,即学生、教师、管理员等不同身份进行访问。
该程序便于操作,面向广大群体,条理清晰,容易理解,容易修改。
【关键字】学生管理系统准确性操作访问
一.设计需求分析
随着学校规模的增大以及新增学生选课的影响,手工方式已经无法记录学生
的实时信息,应用学生管理系统软件能够简化管理的复杂度,也能够对学生的信息进行及时的更新修改等操作,主要的功能包括对学生信息的管理、对教师信息的管理、对课程信息的管理及对选课信息的管理。
设计需要满足以下的需求:
1.学生的信息的资料,应该包括学生的学号、姓名、所属学院、所属专业、所属班级、家庭地址,并且系统还能够修改输入错误的学生个人信息记录。
2.可以对学生的选课进行管理,包括可选课程和个人已选课信息,并进行相应的选课操作。
3.可以对课程进行管理,课程管理包括增加课程和删除课程,该课程包括任课教师和所属专业。
4.根据学号、姓名、班级查询学生信息。
根据课程、专业、学分查询课程的相关信息。
5.系统使用权限管理方式。
根据工作流程,系统有2种角色:
管理员、学生和教师。
管理员允许对课程信息、教师信息、学生信息的管理。
学生可以进行选课和查看课程信息的操作。
教师可以查看本人所售课程的学生信息。
二.概要设计
该应用程序要求用户按照数据库中的相关信息登陆界面,如若用户名或密码与数据库不符合,则无法登陆该应用程序的主界面。
当用户登录到主界面后可以对相关信息进行修改、删除等操作,该应用程序的数据与数据库的StudentManager的数据相连,每一次的修改、删除等操作都会被保存在该数据库的相应位置上。
该应用程序包含了管理员模块(包含学生管理子模块和课程管理子模块)、教师模块、学生模块和公共模块。
管理员模块是系统的核心,学生管理子系统实现对学生信息的添加、修改、删除操作,以输入条件进行条件查询。
课程管理子系统实现对课程的添加,添加时为其分配任课教师、上课时间、地点和课程详细信息,实现对课程的修改、删除,查看某个课程的详细信息等。
教师模块实现查看自己所教授的课程、课程有哪些学生选修,以及利用本系统提交学生的成绩。
学生模块实现学生的选课,查看、修改自己的选课信息。
公有模块实现用户的身份验证,密码修改,退出系统等功能。
在学生管理子系统包括学生信息和选课信息,要求对学生信息和选课信息的添加、删除、修改和查询,该模块中当学生修改信息时,对相关的组件添加了事件,相应的JComboBox添加了ItemStateChange的相关事件,对其进行了三级联动设计,利用形式参数进行传递一个int型的值,当点击相应的JComboBox时启动下一个相关的组件应用。
在课程查询时应用相应的JScorllPane组件显示所查询的相关信息。
教师模块中包含了对教师信息的相关内容还包括对课程的查询。
公共模块要求按照数据库相关信息的身份验证,包括学生、教师、管理员等不同的身份的登录,还包括密码的修改,管理员的添加及管理。
公共模块还包括退出系统。
整个学生管理系统的数据都是在数据库有存储信息的,因此在应用程序中要应用相应的SQLserver语句来对数据库添加、删除、修改相应信息。
SQLserver语句主要有update、insert、select语句。
三.程序整体设计说明
作为一个学生管理系统,本系统的设计主要包含:
系统登录、学生信息管理、班级管理、课程管理和用户管理。
学生管理系统框架主要结构如图所示:
LoginFrame界面主要为JTextField,利用JTextField的getText属性获取文本框里输入的相应的内容,然后应用SQLserver的select的语句来查询并验证密码是否与数据库一致,如若不一致则弹出一个MessageBox的信息提示框提示输入正确的密码。
在验证密码是应用了equals关键字,equals主要应用于字符的比较,而等号(=)主要应用于数据的比较。
MainFrame界面主要JMenu和JMenuItem组件,完成了主界面的菜单栏,并分别对每个JMenuItem添加了一个事件监听器,使点击时显示每个相应的Item界面,以便于对信息的操作。
学生信息管理主要包括学生信息和选课信息,完成了相应的信息注册、修改、查询和选课查询操作。
学生信息注册包含姓名、学号、省份证号、所属学院及专业和班级、家庭住址等信息。
数据库的Student表也添加了相应的列。
在学生信息注册和修改页面还应用了JComboBox的三级联动,使用参数传递,获取相应的JComboBox的getSelectedIndex来控制显示的内容。
班级信息录入和班级信息管理对各个班级的信息进行管理的界面,主要有JComboBox的二级联动和JRadioButton组件的应用。
班级信息管理界面中声明了displayButtonGroup用于控制三个JRadioButton组件。
用不同的方式查询班级信息,当点击修改时弹出一个修改的JFrame界面。
学生管理系统与数据库的连接:
该应用程序中封装了一个类linkdb,linkdb里的代码完成了数据库SQLserver与Eclipse的连接,以提高代码的复用性,是程序代码减少一部分。
在相应的Eclipse中的导入了sqljdbc完成应用程序的驱动。
只有导入了sqljdbc,数据库与应用程序才能顺利使用.连接数据库的相应的代码为:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Stringurl="jdbc:
sqlserver:
//localhost:
1433;
databaseName=StudentManager";
四.学生管理系统部分应用程序的代码及注释
(1)LoginFrame界面的部分代码
//给界面添加一个背景图片
Stringpath=newFile(".").getAbsolutePath()
+"/image/20086140002110601921.jpg";
image=newImageIcon(path);
//设置图片大小
image.setImage(image.getImage().getScaledInstance(800,600,
Image.SCALE_DEFAULT));
contentPane=newJPanel(){
publicvoidpaintComponent(Graphicsg){
g.drawImage(image.getImage(),0,0,null);
super.paintComponent(g);
}
};
contentPane.setBorder(newEmptyBorder(5,5,5,5));
contentPane.setOpaque(false);
//给nameJTextField添加一个鼠标点击事件,当点击nameJTextField时清空里面原有的用户名
nameJTextField=newJTextField();
nameJTextField.addMouseListener(newMouseAdapter(){
@Override
publicvoidmouseClicked(MouseEvente){
nameJTextField.setText("");
//利用Select语句对数据库进行查询
sta=linkdb.getStatement();
Stringsql="Select*fromStudentwhere学生编号='"+admin+"'";
(2)MainFrame界面的部分代码
//利用setVisible属性将页面跳转到下一个页面中
privatevoidstudent_1JMenuItemactionPerformed(ActionEvente){
StudentInfoAddFrameFrame=newStudentInfoAddFrame();
Frame.setVisible(true);
sta=link.getStatement();
}
(3)StudentInfoAddFrame界面的部分代码
//声明实例变量sta和rs
privateStatementsta;
privateResultSetrs;
//获取各个JTextField中的信息,数据添加到数据库中并用提示框提醒添加成功
Stringclientname=clientJTextField.getText();//学生编号
Stringname=nameJTextField.getText();//学生姓名
Stringnumber=numberJTextField.getText();//学号
Stringid=textField.getText();//身份证号
Stringcollege=(String)collegeJComboBox.getSelectedItem();//学院
Stringsubject=(String)subjectJComboBox.getSelectedItem();//专业
Stringbanji=(String)classJComboBox.getSelectedItem();//班级
Stringadress=addressJTextField.getText();//家庭住址
//利用update语句对数据库进行数据修改
Stringsql="updateStudentset学生姓名='"+name+"',学院名称='"
+college+"',家庭住址='"+adress+"',身份证号='"+id
+"',班级名称='"+banji+"',专业名称='"+subject+"',学号='"+number+"'where学生编号='"+clientname+"'";
//将执行语句放到抛出异常中,一旦程序遇到错误无法运行时,就抛出异常
try{
inti=sta.executeUpdate(sql);
//对数据库的行影响为1时,显示信息添加成功
if(i==1){
JOptionPane.showMessageDialog
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 管理 系统 报告