版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java实训报告,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.java、StuFailG
3、rade.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类是继承Jframe类,有一个Ac
4、tionListener接口,,Java实训报告,并且加载了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类,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)成员变量,Java实训报告,该类中的变量大部分都是私有的,这样有利于信息的封装。其中包括: private Connection conn;/连接数据库用到 private Statement stmt; /执行数据库语句 private ResultSet rs; /结果集 private JPanel jp=new JPanel();/创建用来存放空间的容器 private JLabel jl
10、1=new JLabel(用户名); 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();/创建组 /创建操
11、作按钮 private JButton jb1=new JButton(登陆); private JButton jb2=new JButton(重置); 2)方法 main(String args);方法是学生管理系统程序运行的入口方法。 Login();是构造方法,负责完成窗口的初始化。 addListener();添加事件监听器方法。 initialFrame();初始化窗体 actionPerformed(ActionEvent e);实现接口方法 initialConnection();自定义的初始化数据库连接的方法 closeConn();关闭数据库 2、代码 import jav
12、a.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.util.*; import .*; import java.io.*; import java.sql.*; import javax.sql.*;,Java实训报告,public class Login extends JFrame implements ActionListener private String host; /声明Connection引用、Statement对象引用与结果集引用 pr
13、ivate Connection 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 JPasswordFie
14、ld jpwf=new 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();/
15、初始化界面 public 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(3
16、0,100,110,25);jp.add(jl1); jtf.setBounds(120,100,130,25);jp.add(jtf); jl2.setBounds(30,140,110,25);jp.add(jl2); jpwf.setBounds(120,140,130,25);jp.add(jpwf); jpwf.setEchoChar(*); bg.add(jrbArray0); bg.add(jrbArray1); jrbArray0.setBounds(40,180,100,25);jp.add(jrbArray0); jrbArray1.setBounds(145,180,10
17、0,25);jp.add(jrbArray1); jb1.setBounds(35,210,100,30);jp.add(jb1); jb2.setBounds(150,210,100,30);jp.add(jb2); jl3.setBounds(40,250,150,25);jp.add(jl3); this.add(jp); /设置窗口的标题、大小、位置以及可见性 this.setTitle(登陆); this.setResizable(false);,Java实训报告,Dimension screenSize = Toolkit.getDefaultToolkit().getScreen
18、Size(); int centerX=screenSize.width/2; int centerY=screenSize.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()
19、; if(name.equals() JOptionPane.showMessageDialog(this,请输入用户名,错误,JOptionPane.ERROR_MESSAGE); jl3.setText(); return; String pwd=new String(jpwf.getPassword().trim(); if(pwd.equals() JOptionPane.showMessageDialog(this,请输入密码,错误,JOptionPane.ERROR_MESSAGE); jl3.setText(); return; int type=this.jrbArray0.i
20、sSelected()?0:1;/获取登陆类型 try /初始化连接 this.initialConnection(); if(type=0) /普通学生登陆 String sql=select * from user_stu where stu_id=+name+ and pwd=+pwd+; rs=stmt.executeQuery(sql); if(rs.next() new StuClient(name);/创建学生客户短窗口 this.dispose();/关闭登陆窗口并释放资源 else /弹出错误提示窗口 JOptionPane.showMessageDialog(this,用户
21、名或密码错误,错误,JOptionPane.ERROR_MESSAGE); jl3.setText(); this.closeConn();/关闭连接,语句及结果集 ,Java实训报告,else/教师登陆 String sql=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.dispos
22、e();/关闭登陆窗口并释放资源 else /弹出错误提示窗口 JOptionPane.showMessageDialog(this,用户名或密码错误,错误,JOptionPane.ERROR_MESSAGE); jl3.setText(); this.closeConn();/关闭连接,语句及结果集 catch(SQLException ea) ea.printStackTrace(); else if(e.getSource()=this.jb2)/按下重置按钮,清空输入信息 this.jtf.setText(); this.jpwf.setText(); else if(e.getSou
23、rce()=jtf)/当输入用户名并回车时 this.jpwf.requestFocus(true); else if(e.getSource()=jpwf)/当输入密码并回车时 this.jb1.requestFocus(true); /自定义的初始化数据库连接的方法 public void initialConnection() try /加载驱动,创建Connection及Statement Class.forName(org.gjt.mm.mysql.Driver); conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306
24、/test,root,root); stmt=conn.createStatement(); catch(SQLException e) JOptionPane.showMessageDialog(this,连接失败,请检查主机地址是否正确,错误,JOptionPane.ERROR_MESSAGE); e.printStackTrace(); catch(ClassNotFoundException e),Java实训报告, e.printStackTrace(); /初始化的关闭数据库连接的方法 public void closeConn() try if(rs!=null)rs.close
25、(); if(stmt!=null)stmt.close(); if(conn!=null)conn.close(); catch(SQLException e) e.printStackTrace(); public static void main(String args) Login login=new Login();/创建登陆窗体对象 ,Java实训报告,3、效果图 Login创建的窗口效果如图1所示。图1 登录窗体 学生管理系统共有三个窗体:登录窗体、教师客户端窗体、学生客户端窗体。主要操作如下: (1)如果用户名或密码错误,则会弹窗错误提示对话框,如图2所示。图2 错误提示框 (
26、2)当用户为教师时,登录成功后的窗体会自动全屏显示,展开左边的树状列表,如图3所示,然后通过单击不同节点进行相应的业务操作。图3教师客户端主窗体 (3)通过单击“退出”节点时,系统会弹出对话框确认,如图4所示,根据用户选择进行相应操作。图4退出确认效果图 图5 添加学生窗体 (4)当有新生报到时,用户可以单击“新生报到”节点,进入如图5所示的添加学生窗体界面。 (5)当教师需要查询某个学生的基本信息时,可以单击“基本信息查询”节点输入学号进行查询,界面如图6所示。图6 学生基本信息查询窗体 (6)每学期开始,各学院都应该为学生安排可选课程,这时可以通过“开课选项设置”进入选课设置界面进行操作,如图7所示。教师进行课程设置后效果如图8所示图7 开课选项设置窗体 图8 开课选项设置效果图 图9 成绩录入窗体 (7)在每
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 直线与圆课件-2026届高三数学二轮专题复习
- 早教课件考试试题及答案
- 2026九年级上语文我看写作手法分析
- 烟草工艺学试题及答案
- 2026二年级数学下册 万以内数能力测试
- 企民双入户制度
- 企业心理咨询制度
- 乌鲁木齐铁路局奖惩制度
- 广东金融学院奖惩制度
- 高中生学习组奖惩制度
- 初中数学作业设计与管理
- 2025版校园食堂日管控、周排查、月调度记录表
- 2024年贵州省普通高中学业水平选择性考试地理试题(原卷版+解析版)
- 2025年河南机电职业学院单招职业技能测试题库及参考答案
- 材料研究方法课后习题与答案
- 城市道路与交通知到智慧树章节测试课后答案2024年秋湖南文理学院
- 智能 检测与监测 技术-智能建造技术专01课件讲解
- GB/T 44726-2024科技评估人员能力评价规范
- 《供应链管理》课件 第6章 供应链库存管理
- 《爱鸟惜花守家园·考察身边的生物资源》课件 2023-2024学年辽海版《综合实践活动》七年级下册
- 人教版七年级英语上册教学课件Unit 5 Fun Clubs
评论
0/150
提交评论