ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:1.56MB ,
资源ID:23198862      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23198862.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生管理系统实训报告.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生管理系统实训报告.docx

1、学生管理系统实训报告学生管理系统实训报告 姓名:xxxx学号:xxxxxxxxxxx班级:软件外包时间:2011年6月26日 指导老师:xxx【目录】一 设计需求分析3二 概要设计4三 程序整体设计说明5四 程序部分代码与注释6五 测试结果9六 设计心得12【摘要】随着信息时代的发展,对于学生信息的管理已经不再局限于纸上的那些繁琐的记录,而是通过电脑软件程序对学生的信息进行管理,这样不但可以简化管理的复杂度,还可以提高管理过程中的准确性,因此有必要设计一款专门针对于学生信息管理的一个程序,于是设计了此学生信息管理系统。该应用程序能够对每个学生的相关信息进行注册、储存、修改和删除等操作。该系统要

2、求按身份登陆,即学生、教师、管理员等不同身份进行访问。该程序便于操作,面向广大群体,条理清晰,容易理解,容易修改。【关键字】学生管理系统 准确性 操作 访问一 设计需求分析随着学校规模的增大以及新增学生选课的影响,手工方式已经无法记录学生的实时信息,应用学生管理系统软件能够简化管理的复杂度,也能够对学生的信息进行及时的更新修改等操作,主要的功能包括对学生信息的管理、对教师信息的管理、对课程信息的管理及对选课信息的管理。设计需要满足以下的需求:1.学生的信息的资料,应该包括学生的学号、姓名、所属学院、所属专业、所属班级、家庭地址,并且系统还能够修改输入错误的学生个人信息记录。2.可以对学生的选课

3、进行管理,包括可选课程和个人已选课信息,并进行相应的选课操作。3. 可以对课程进行管理,课程管理包括增加课程和删除课程,该课程包括任课教师和所属专业。4. 根据学号、姓名、班级查询学生信息。根据课程、专业、学分查询课程的相关信息。5.系统使用权限管理方式。根据工作流程,系统有2种角色:管理员、学生和教师。管理员允许对课程信息、教师信息、学生信息的管理。学生可以进行选课和查看课程信息的操作。教师可以查看本人所售课程的学生信息。 二 概要设计该应用程序要求用户按照数据库中的相关信息登陆界面,如若用户名或密码与数据库不符合,则无法登陆该应用程序的主界面。当用户登录到主界面后可以对相关信息进行修改、删

4、除等操作,该应用程序的数据与数据库的StudentManager的数据相连,每一次的修改、删除等操作都会被保存在该数据库的相应位置上。该应用程序包含了管理员模块(包含学生管理子模块和课程管理子模块)、教师模块、学生模块和公共模块。管理员模块是系统的核心,学生管理子系统实现对学生信息的添加、修改、删除操作,以输入条件进行条件查询。课程管理子系统实现对课程的添加,添加时为其分配任课教师、上课时间、地点和课程详细信息,实现对课程的修改、删除,查看某个课程的详细信息等。教师模块实现查看自己所教授的课程、课程有哪些学生选修,以及利用本系统提交学生的成绩。学生模块实现学生的选课,查看、修改自己的选课信息。

5、公有模块实现用户的身份验证,密码修改,退出系统等功能。在学生管理子系统包括学生信息和选课信息,要求对学生信息和选课信息的添加、删除、修改和查询,该模块中当学生修改信息时,对相关的组件添加了事件,相应的JComboBox添加了ItemStateChange的相关事件,对其进行了三级联动设计,利用形式参数进行传递一个int型的值,当点击相应的JComboBox时启动下一个相关的组件应用。在课程查询时应用相应的JScorllPane组件显示所查询的相关信息。教师模块中包含了对教师信息的相关内容还包括对课程的查询。公共模块要求按照数据库相关信息的身份验证,包括学生、教师、管理员等不同的身份的登录,还包

6、括密码的修改,管理员的添加及管理。公共模块还包括退出系统。整个学生管理系统的数据都是在数据库有存储信息的,因此在应用程序中要应用相应的SQL server语句来对数据库添加、删除、修改相应信息。SQL server语句主要有update、insert、select语句。三 程序整体设计说明作为一个学生管理系统,本系统的设计主要包含:系统登录、学生信息管理、班级管理、课程管理和用户管理。学生管理系统框架主要结构如图所示:LoginFrame界面主要为JTextField,利用JTextField的getText属性获取文本框里输入的相应的内容,然后应用SQL server的select的语句来查

7、询并验证密码是否与数据库一致,如若不一致则弹出一个MessageBox的信息提示框提示输入正确的密码。在验证密码是应用了equals关键字,equals主要应用于字符的比较,而等号(=)主要应用于数据的比较。MainFrame界面主要JMenu和JMenuItem组件,完成了主界面的菜单栏,并分别对每个JMenuItem添加了一个事件监听器,使点击时显示每个相应的Item界面,以便于对信息的操作。学生信息管理主要包括学生信息和选课信息,完成了相应的信息注册、修改、查询和选课查询操作。学生信息注册包含姓名、学号、省份证号、所属学院及专业和班级、家庭住址等信息。数据库的Student表也添加了相应

8、的列。在学生信息注册和修改页面还应用了JComboBox的三级联动,使用参数传递,获取相应的JComboBox的getSelectedIndex来控制显示的内容。班级信息录入和班级信息管理对各个班级的信息进行管理的界面,主要有JComboBox的二级联动和JRadioButton组件的应用。班级信息管理界面中声明了displayButtonGroup用于控制三个JRadioButton组件。用不同的方式查询班级信息,当点击修改时弹出一个修改的JFrame界面。学生管理系统与数据库的连接:该应用程序中封装了一个类linkdb,linkdb里的代码完成了数据库SQL server与Eclipse的

9、连接,以提高代码的复用性,是程序代码减少一部分。在相应的Eclipse中的导入了sqljdbc完成应用程序的驱动。只有导入了sqljdbc,数据库与应用程序才能顺利使用.连接数据库的相应的代码为:Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);String url=jdbc:sqlserver:/localhost:1433;databaseName=StudentManager;四 学生管理系统部分应用程序的代码及注释(1) LoginFrame界面的部分代码/给界面添加一个背景图片String path = new F

10、ile(.).getAbsolutePath() + /image/20086140002110601921.jpg; image = new ImageIcon(path);/ 设置图片大小 image.setImage(image.getImage().getScaledInstance(800, 600, Image.SCALE_DEFAULT); contentPane = new JPanel() public void paintComponent(Graphics g) g.drawImage(image.getImage(), 0, 0, null); super.paintC

11、omponent(g); ; contentPane.setBorder(new EmptyBorder(5, 5, 5, 5); contentPane.setOpaque(false);/给nameJTextField添加一个鼠标点击事件,当点击nameJTextField时清空里面原有的用户名 nameJTextField = new JTextField(); nameJTextField.addMouseListener(new MouseAdapter() Override public void mouseClicked(MouseEvent e) nameJTextField.

12、setText();/利用Select语句对数据库进行查询 sta=linkdb.getStatement(); String sql= Select * from Student where 学生编号= + admin + ;(2) MainFrame界面的部分代码/利用setVisible属性将页面跳转到下一个页面中 private void student_1JMenuItemactionPerformed(ActionEvent e) StudentInfoAddFrame Frame = new StudentInfoAddFrame(); Frame.setVisible(true

13、); sta = link.getStatement(); (3) StudentInfoAddFrame界面的部分代码/声明实例变量sta和rs private Statement sta; private ResultSet rs;/ 获取各个JTextField中的信息,数据添加到数据库中并用提示框提醒添加成功 String clientname = clientJTextField.getText();/ 学生编号 String name = nameJTextField.getText();/学生姓名 String number = numberJTextField.getText(

14、);/ 学号 String id = textField.getText();/ 身份证号 String college = (String) collegeJComboBox.getSelectedItem();/学院 String subject = (String) subjectJComboBox.getSelectedItem();/专业 String banji = (String) classJComboBox.getSelectedItem();/班级 String adress = addressJTextField.getText();/家庭住址/利用update语句对数据

15、库进行数据修改 String sql = update Student set 学生姓名= + name + ,学院名称= + college + ,家庭住址= + adress + ,身份证号= + id + ,班级名称= + banji + ,专业名称= + subject+,学号=+number+ where 学生编号= + clientname + ;/将执行语句放到抛出异常中,一旦程序遇到错误无法运行时,就抛出异常 try int i = sta.executeUpdate(sql);/ 对数据库的行影响为1时,显示信息添加成功 if (i = 1) JOptionPane.show

16、MessageDialog(null, 信息添加成功!, 添加成功,JOptionPane.INFORMATION_MESSAGE); catch (SQLException exception) exception.printStackTrace();/ 打印出错误的原因/ 信息添加失败JOptionPane.showMessageDialog(null, 对不起,信息添加失败!, 添加失败,JOptionPane.ERROR_MESSAGE); 主页面的JcomboBox的三级联动主要体现:/ 学院的JComboBox的事件 private void collegeJComboBoxIte

17、mStateChanged(ItemEvent e) collegenumber = collegeJComboBox.getSelectedIndex(); subject(collegenumber); /相应的subject方法 public int subject(int t) int i; subjectJComboBox.removeAllItems(); subjectJComboBox.updateUI(); for (i = 0; i = 0) banji_shezhi(zhuanye_hao); else (4) StudentInfoQuery界面的部分代码import

18、javax.swing.table.DefaultTableModel; /用于向界面中插入表格import java.awt.event.MouseAdapter; /用于在界面中点击一行的监听器import java.awt.event.MouseEvent; /用于在界面中点击一行的事件private int columnCount;/ 表示获取的列数 String sql;/ 声明全局变量sql String huoqu;/ 声明全局变量huoqu String s;/ 声明一个数组s / 用于显示表 DefaultTableModel dtm = new DefaultTableMo

19、del(); JTable table = new JTable();/ 从表中获取一行,添加一个鼠标点击事件JScrollPane.setViewportView(table);/ 将表显示出来table.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent event) huoqu = table.getValueAt(table.getSelectedRow(), 0).toString(); );/ 获取数据库中表头 sta = linkdb.getStatement(); try rs = st

20、a.executeQuery(select 学生编号,学院名称,专业名称,班级名称,学生姓名,家庭住址 ,身份证号,学号 from Student); columnCount = rs.getMetaData().getColumnCount(); for (int i = 1; i = columnCount; i+) dtm.addColumn(rs.getMetaData().getColumnName(i); rs.close(); catch (SQLException exception) exception.printStackTrace(); / 从表里获取信息 s = new

21、 StringcolumnCount; try while (rs.next() for (int i = 1; i columnCount + 1; i+) si - 1 = rs.getString(i); dtm.addRow(s); catch (SQLException e1) / TODO Auto-generated catch block e1.printStackTrace(); 五 测试结果登录的主界面:主界面:学生信息查询界面及修改界面:选课信息界面及删除信息是弹出的文本框:删除用户界面及删除用户时弹出文本框:六 设计心得通过本次的实训作业的设计,我学会了许多东西,例如如

22、何向一个界面中添加一个背景图片,在设计过程中学会了JComboBox的联动,实现方法是在第一个JComboBox上加一个监听,即ItemListener,然后实现监听器itemstateChange(),这样当地一个JComboBox变化时,程序就会知道,然后获取第一个JComboBox的值,拿着这个值查询数据库里的信息,rs=sql.executeQuery(select * from xxx where xxx)然后遍历rs每读取一行就在第二个JComboBox中添加一个item,即第二个JComboBox.addItem(rs.getString(x))。还学会了如何向java界面中添加

23、一个表即是利用DefaultTableModel来实现的,在此还要学会如何从数据库中读取一行或一列,来实现查询、修改等操作。此外,其他相关组件也要进一步学习,能够对某一事件添加相应的程序代码来控制程序运行,能够对要求的结果进行简单的代码编写。在写代码时提高程序代码的复用性,会使程序更简洁明了。有关数据库学到的知识有:execute(String sql)执行给定的SQL语句,该语句可能返回多个语句。executeQuery(String sql)执行给定的SQL语句,给语句返回单个ResultSet对象;executeUpdate(String sql)执行给定的SQL语句,给语句可能为INS

24、ERT、UPDATE、DELETE语句,或者不返回任何内容的SQL语句(如SQL DDS语句);前两种一般在查询中使用,最后一个在插入、更新、删除时使用。在程序设计中最深的体会是一定要将程序的框架设计合理,如果框架设计的不合理接下来的工作很难进行。程序框架不可能在一次规划中就能够成功,多次试验得出一个较好的更适合程序运行的。在编程中的一个小细节就有可能使系统从头做起,所以编程中一定要细心,偶尔的一个字符错误都会导致程序运行报错,此外在编写代码时要把事件添加完整,否则会报出空指针之类的错误。编程一定要有自己的思路,根据自己及客户的需要来编写,而且思路要开阔,不能只局限于一个方法,学会思考,下次遇到类似的问题能够很快的建立自己的思想构图。通过本次的学生管理系统的设计,我对此管理系统有了更加深刻的了解,也加深了我对软件开发方面的了解,使得我对软件的开发更加充满兴趣,不但如此,我通过本次的实训设计,了解了自己在软件设计方面的优点和不足,能够对以后的软件开发提供更加丰富的经验,为以后的软件开发奠定了更好的基础。总之,通过本次的实训设计,我对这类的管理系统有了更深刻的了解,我会在以后的时间里努力的学习,争取获得更加好的突破。

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

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