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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、学生管理系统实训报告java语言学生管理系统实训报告(java语言) Java实训设计报告 学生管理系统 一、项目需求 通过与科信学院教务人员的详细交流,目标系统具备以下功能。 1. 教师客户端功能 * 可以更改密码; * 可以添加学生,并要求填写学生基本信息; * 可以根据学号查询学生基本信息及其成绩; * 有权限控制,每个管理员只能管理其所在学院的信息; * 可以添加新课程、新班级; * 可以控制选课的课程范围,并可以控制选课的时间,即:可以控制选课开始和结束时间; * 可以录入成绩,缓存成绩,检查无误后公布成绩。 2. 学生客户端功能 * 学生可以查看自己的基本信息; * 学生可以查看自

2、己的成绩,已修学分和不及格成绩信息; * 学生端可以进行远程选课,并且可以查看课表。 根据以上相关功能,现规划数据流图和数据字典如下: 二、项目设计 在设计学生管理系统时,编写20个Java源文件:ChangePwd.java、ChangePwdTeacher.java 、 ChoseCourse.java 、 CourseTable.java 、 CourseManage.java、GetScore.java、GetStuInfo.java、GradeInDB.java、Login.java、NewClass.java、NewCourse.java、NewStu.java、StuClient

3、.java、StuFailGrade.java、StuGrade.java 、StuInfo.java、StuScore.java、TeacherClient.java、TeachSearchInfo.java、Welcome.java学生管理系统除了上述20个Java源文件所给出的类外,还需要Java系统提供的一些重要类,如JButton,JTextField,JTextArea,LinkedList等。 下面是20个Java源文件的功能: (1)Login.java(主类) Login类负责创建学生管理系统登陆界面的主窗口,该类含有main方法,学生管理系统从该类开始执行。Login类是继

4、承Jframe类,有一个ActionListener接口,并且加载了Mysql数据库连接。该类中有两种身份类型:学生、管理员,在登录窗口中选择相应的身份类型,输入信息正确后就会进入相应的客户端。 (2)ChangePwd.java类 该类是学生客户端修改密码的类,在该类中,用户提供原始密码(登陆成功的密码)后并且输入新密码和确认新密码后点击“确认”按钮就可以修改密码。 (3)ChangePwdTeacher.java类 该类是教师客户端修改密码的类,在该类中,用户提供原始密码(登陆成功的密码)后并且输入新密码和确认新密码后点击“确认”按钮就可以修改密码。 (4)ChoseCourse.java

5、类 该类主要是控制学生选课,学生根据教师安排的课程信息,由学生输入已经安排好的“课程号”就可以选课。 (5)CourseTable.java类 该类主要控制学生的课程安排,就是以课表显示学生的选课信息。 (6)NewClass.java类 该类主要是有教师操作,教师通过输入正确的班级号、班级名、专业信息后就可以添加新的班级。 (7)NewStu.java类 该类作为教师客户端的一个主要模块,该模块是教师添加新学生。教师通过输入学生的基本信息,包括:姓名、出生年月、学号、籍贯、入学年份、专业等等。这样就可以添加新学生。 (8)StuClient.java类 该类是基于Login类的,这是学生客户

6、端的界面类,该类控制了学生客户端要显示什么内容,由什么功能等等。包括:修改密码、查看自己基本信息和成绩、选课等功能界面的显示。 (9)TeacherClient.java类 该类是教师客户端界面的类,该类和StuClient类的功能基本相似,主要包括修改密码、添加新学生、查看学生基本信息和成绩信息、进行课程安排、添加新课程和班级等功能的显示。 (10)StuInfo.java类 StuInfo.java类是学生查询学生自己的基本信息。 (11)TeachSearchInfo.java类 TeachSearchInfo.java类是教师根据学生提供的基本信息建立学生基本信息电子档案。即新生报到功

7、能的实现。 (12)Welcome.java类 该类最为简单,仅仅通过一张xs.jpg图片显示在学生和教师客户端中。 (13)CourseManage.java类 该类是教师管理课程,教师可以对课程安排,包括:周次、任课教师、学分等信息,为学生选课做准备。 (14)GetScore.java类 该类是提供学生的成绩各科成绩,包括及格成绩和不及格成绩,以及学分。 (15)GetStuInfo.java类 根据学号获得学生相应基本信息的方法。教师在输入学生学号后点击“查询”按钮查看相应学生的基本信息。 (16)GradeInDB.java类 该类的功能是公布学生某一科的成绩,教师通过点击“公布该科

8、成绩单”就会公布该科的成绩,学生就会在学生自己客户端查看自己的成绩信息。 (17)NewCourse.java类 该类主要是有教师操作,教师通过输入正确的课程号、课程名、学分信息后就可以添加新的课程,这个类与NewClass.Java的功能相似。 (18)StuFailGrade.java类 该类功能是显示学生的不及格成绩。学生在查看成绩时候,点击“不及格成绩”时显示的界面。 (19)StuGrade.java类 该类功能是显示学生的已修课程成绩。学生在查看成绩时候,点击“已修课程成绩”时显示的界面。 (20)StuScore.java类 该类是教师通过输入学生的“学号”进行查询学生的成绩信息

9、。 1、Login类(主类) (1)数据和方法 Login类是javax.swing包中JFrame的一个字类,并实现了ActionListener接 口。类中有关数据和方法的详细说明。 1)成员变量 该类中的变量大部分都是私有的,这样有利于信息的封装。其中包括: private Connection conn;/连接数据库用到 private Statement stmt; /执行数据库语句 private ResultSet rs; /结果集 private JPanel jp=new JPanel();/创建用来存放空间的容器 private JLabel jl1=new JLabel(

10、用户名); private JLabel jl2=new JLabel(密码); /创建用户名和密码输入框 private JTextField jtf=new JTextField(); private JPasswordField jpwf=new JPasswordField(); private JRadioButton jrbArray=new JRadioButton(普通学生,true), new JRadioButton(管理人员);/创建单选按钮数组 private ButtonGroup bg=new ButtonGroup(); /创建组 /创建操作按钮 private

11、JButton jb1=new JButton(登陆); private JButton jb2=new JButton(重置); 2)方法 main(String args);方法是学生管理系统程序运行的入口方法。 Login();是构造方法,负责完成窗口的初始化。 addListener();添加事件监听器方法。 initialFrame();初始化窗体 actionPerformed(ActionEvent e);实现接口方法 initialConnection();自定义的初始化数据库连接的方法 closeConn();关闭数据库 2、代码 import java.awt.*; imp

12、ort java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.util.*; import http:/.cn.*; import java.io.*; import java.sql.*; import javax.sql.*; public class Login extends JFrame implements ActionListener private String host; /声明Connection引用、Statement对象引用与结果集引用 private Connec

13、tion conn; private Statement stmt; private ResultSet rs; private JPanel jp=new JPanel();/创建用来存放空间的容器 private JLabel jl1=new JLabel(用户名); private JLabel jl2=new JLabel(密码); private JLabel jl3=new JLabel();/正在登陆提示标签 /创建用户名和密码输入框 private JTextField jtf=new JTextField(); private JPasswordField jpwf=new

14、JPasswordField(); private JRadioButton jrbArray=new JRadioButton(普通学生,true),new JRadioButton(管理人员);/创建单选按钮数组 private ButtonGroup bg=new ButtonGroup();/创建组 /创建操作按钮 private JButton jb1=new JButton(登陆); private JButton jb2=new JButton(重置); public Login() this.addListener(); initialFrame();/初始化界面 public

15、 void addListener() this.jb1.addActionListener(this);/为登陆按钮注册监听器 this.jb2.addActionListener(this);/为重置按钮注册监听器 this.jtf.addActionListener(this);/为用户名文本框注册监听器 this.jpwf.addActionListener(this);/为用户名密码框注册监听器 public void initialFrame() jp.setLayout(null); /设为空布局 /将控件添加到容器相应位置 jl1.setBounds(30,100,110,25

16、); jtf.setBounds(120,100,130,25); jl2.setBounds(30,140,110,25); jpwf.setBounds(120,140,130,25); jpwf.setEchoChar(*); bg.add(jrbArray); bg.add(jrbArray); jrbArray.setBounds(40,180,100,25); jrbArray.setBounds(145,180,100,25); jb1.setBounds(35,210,100,30); jb2.setBounds(150,210,100,30); jl3.setBounds(4

17、0,250,150,25); this.add(jp); jp.add(jl1); jp.add(jtf); jp.add(jl2); jp.add(jpwf); jp.add(jrbArray); jp.add(jrbArray); jp.add(jb1); jp.add(jb2); jp.add(jl3); this.setResizable(false); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int centerX=screenSize.width/2; int centerY=scree

18、nSize.height/2; int w=300;/本窗体宽度 int h=320;/本窗体高度 this.setBounds(centerX-w/2,centerY-h/2-100,w,h);/设置窗体出现在屏幕中 this.setVisible(true); public void actionPerformed(ActionEvent e) if(e.getSource()=jb1) /按下登陆按钮 String name=this.jtf.getText().trim(); if(name.equals() JOptionPane.showMessageDialog(this,请输入

19、用户名,错 误,JOptionPane.ERROR_*); jl3.setText(); return; String pwd=new String(jpwf.getPassword().trim(); if(pwd.equals() JOptionPane.showMessageDialog(this,请输入密码,错 误,JOptionPane.ERROR_*); jl3.setText(); return; int type=this.jrbArray.isSelected()?0:1;/获取登陆类型 try /初始化连接 this.initialConnection(); if(type

20、=0) /普通学生登陆 String sql=select * from user_stu where stu_id=+name+ and rs=stmt.executeQuery(sql); if(rs.next() new StuClient(name);/创建学生客户短窗口 this.dispose();/关闭登陆窗口并释放资源 else /弹出错误提示窗口 JOptionPane.showMessageDialog(this,用户名或密码错误,错 pwd=+pwd+; 误,JOptionPane.ERROR_*); jl3.setText(); else/教师登陆 String sql

21、=select coll_id from user_teacher where uid=+name+ and pwd=+pwd+; rs=stmt.executeQuery(sql); if(rs.next() String coll_id=rs.getString(1); new TeacherClient(coll_id);/创建教师客户端窗口 this.dispose();/关闭登陆窗口并释放资源 else /弹出错误提示窗口 JOptionPane.showMessageDialog(this,用户名或密码错误,错 误,JOptionPane.ERROR_*); jl3.setText

22、(); this.closeConn(); /关闭连接,语句及结果集 catch(SQLException ea) ea.printStackTrace(); else if(e.getSource()=this.jb2)/按下重置按钮,清空输入信息 this.jtf.setText(); this.jpwf.setText(); else if(e.getSource()=jtf)/当输入用户名并回车时 this.jpwf.requestFocus(true); else if(e.getSource()=jpwf)/当输入密码并回车时 this.jb1.requestFocus(true)

23、; /自定义的初始化数据库连接的方法 public void initialConnection() try /加载驱动,创建Connection及Statement Class.forName(org.gjt.mm.mysql.Driver); conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/test,r oot,root); stmt=conn.createStatement(); catch(SQLException e) JOptionPane.showMessageDialog(this,连接失败,请检查主机地址

24、是否正确,错误,JOptionPane.ERROR_*); e.printStackTrace(); catch(ClassNotFoundException e) e.printStackTrace(); /初始化的关闭数据库连接的方法 public void closeConn() try if(rs!=null)rs.close(); if(stmt!=null)stmt.close(); if(conn!=null)conn.close(); catch(SQLException e) e.printStackTrace(); public static void main(Strin

25、g args) Login login=new Login();/创建登陆窗体对象 3、效果图 Login创建的窗口效果如图1所示。 图1 登录窗体 学生管理系统共有三个窗体:登录窗体、教师客户端窗体、学生客户端窗体。主要操作如下: (1)如果用户名或密码错误,则会弹窗错误提示对话框,如图2所示。 图2 错误提示框 (2)当用户为教师时,登录成功后的窗体会自动全屏显示,展开左边的树状列表,如图3所示,然后通过单击不同节点进行相应的业务操作。 (3)通过单击“退出”节点时,系统会弹出对话框确认,如图4所示,根据用户选择进行相应操作。 图3教师客户端主窗 图4退出确认效果 (4)当有新生报到时,用

26、户可以单击“新生报到”节点,进入如图5所示的添加学生窗体界面。 图5 添加学生窗体 (5)当教师需要查询某个学生的基本信息时,可以单击“基本信息查询”节点输入学号进行查询,界面如图6所示。 图6 学生基本信息查询窗 (6)每学期开始,各学院都应该为学生安排可选课程,这时可以通过“开课选项设置”进入选课设置界面进行操作,如图7所示。教师进行课程设置后效果如图8所示 图7 开课选项设置 图8 开课选项设置效果 (7)在每个学期期末,需要对学生的成绩进行录入,用户通过“课程成绩录入”模块进行录入操作,如图9所示。 图9 成绩录入窗体 (8)教师还可以通过点击“添加课程”、“添加班级”节点,进行添加课

27、程和班级操作,如图10和图11所示。 图10添加课程效果图 图11添加班级效果图 (9)教师可以点击“修改密码”来修改自己的登录密码,如图12所示。 (10)如果用户是学生,登录后的窗体也会自动全屏显示,展开树状列表后的界面如图13所示。 图12 修改密码效果 图13学生客户端窗体 (11)当学生需要选课时,可以通过单击“选课”节点进入如图14所示的选课界面进行选课。 (12)在学生选课过程中,随时可以点击“课表显示”节点查看课表,如图15所示。 (13)学生点击“已修课程成绩”节点时,便可进入已修课程查看界面,查看成 绩和学分,如图16所示。 图14 学生选课界面 图15 学生课表显示界面

28、图16 已修课程查看窗体 三、项目总结 学生管理系统的完成,对学校的管理带来了方便,也对教师是一个很好的帮助,方便管理,提高了工作的效率。在本系统开发过程中,由于本人是初次开发软件,在知识、经验方面存在不足。另外在整个开发过程中,时间也比较仓促,因此,该系统必然存在一些缺陷和不足。因为对学生的管理整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。另外,由于自身对网络的不熟悉,本应做到C/S客户端/服务器的软件,结果不能达到预期效果,实为遗憾。 虽然该系统存在诸多的不足,但其功能均已经实现,易于日后程序的更新、数据库管理容易、界面友好、操作方便、安全性好。相信本学生管理系统是一套学校在日常管理中必不可少的管理软件。 四、心得体会 通过开发这个软件,我掌握了项目的开发过程,了解了基本知识,巩固了我对Java编程语言和软件工程思想的学习,掌握了简单的数据库操作。尤其掌握了树状列表作为导航的重要性,并且能够运用。同时编写这个程序让我更好的理解了数组、类的运用及事件的监听和获取等功能。我相信我会再在java方面下苦工的,相信自己一定能更好的运用java编程语言的。

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

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