《Java实训报告》PPT课件.ppt

上传人:wuy****n92 文档编号:70272697 上传时间:2023-01-18 格式:PPT 页数:12 大小:332.97KB
返回 下载 相关 举报
《Java实训报告》PPT课件.ppt_第1页
第1页 / 共12页
《Java实训报告》PPT课件.ppt_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《《Java实训报告》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《Java实训报告》PPT课件.ppt(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Java实训设计报告学生管理系统项目简介项目名称学生管理系统开发人员程少飞项目简介随着教育规模的不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长。本设计根据系统需求实现了学生信息管理、院系班级管理、课程管理、成绩管理等模块。本文所做的工作旨在规范管理、科学统计和快速查询学生信息,来提高学生管理工作的效率。项目目的加深对软件工程思想的理解掌握编写Java程序的所用方法以及数据库的简单操作掌握Swing组件的应用主要技术Java编程语言、javaSwing技术 开发环境数据库环境MySQL Service 5.1编程环境jdk-6u24-windows-i586项目特点使用组件构建的C/S

2、应用程序各项功能的组织合理搭配应用项目界面清晰易懂,更方便操作技术重点构建基于C/S架构的应用程序Swing组件应用项目打包方法应用技术难点Swing组件的应用Jdbc技术事件监听器的使用异常处理一、项目需求一、项目需求通过与科信学院教务人员的详细交流,目标系统具备以下功能。1.教师客户端功能*可以更改密码;*可以添加学生,并要求填写学生基本信息;*可以根据学号查询学生基本信息及其成绩;*有权限控制,每个管理员只能管理其所在学院的信息;*可以添加新课程、新班级;*可以控制选课的课程范围,并可以控制选课的时间,即:可以控制选课开始和结束时间;*可以录入成绩,缓存成绩,检查无误后公布成绩。2.学生

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

4、a、NewStu.java、StuClient.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方法,学生管

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

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

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

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

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

10、方法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(用户名);private JLabel jl2=new JLab

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

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

13、.swing.event.*;import java.util.*;import .*;import java.io.*;import java.sql.*;import javax.sql.*;public class Login extends JFrame implements ActionListener private String host;/声明Connection引用、Statement对象引用与结果集引用private Connection conn;private Statement stmt;private ResultSet rs;private JPanel jp=n

14、ew 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 JPasswordField();private JRadioButton jrbArray=new JRadioButton(普通学生,true),new JRa

15、dioButton(管理人员);/创建单选按钮数组private ButtonGroup bg=new ButtonGroup();/创建组/创建操作按钮private JButton jb1=new JButton(登陆);private JButton jb2=new JButton(重置);public Login()this.addListener();initialFrame();/初始化界面 public void addListener()this.jb1.addActionListener(this);/为登陆按钮注册监听器this.jb2.addActionListener(

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

17、wf.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,100,25);jp.add(jrbArray1);jb1.setBounds(35,210,100,30);jp.add(jb1);jb2.setBounds(150,210,100,30);jp.add(jb2);jl3.setBound

18、s(40,250,150,25);jp.add(jl3);this.add(jp);/设置窗口的标题、大小、位置以及可见性this.setTitle(登陆);this.setResizable(false);Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();int centerX=screenSize.width/2;int centerY=screenSize.height/2;int w=300;/本窗体宽度int h=320;/本窗体高度this.setBounds(centerX-w/2,centerY-h

19、/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,请输入用户名,错误,JOptionPane.ERROR_MESSAGE);jl3.setText();return;String pwd=new String(jpwf.getPassword

20、().trim();if(pwd.equals()JOptionPane.showMessageDialog(this,请输入密码,错误,JOptionPane.ERROR_MESSAGE);jl3.setText();return;int type=this.jrbArray0.isSelected()?0:1;/获取登陆类型try/初始化连接 this.initialConnection();if(type=0)/普通学生登陆String sql=select*from user_stu where stu_id=+name+and pwd=+pwd+;rs=stmt.executeQue

21、ry(sql);if(rs.next()new StuClient(name);/创建学生客户短窗口this.dispose();/关闭登陆窗口并释放资源else/弹出错误提示窗口JOptionPane.showMessageDialog(this,用户名或密码错误,错误,JOptionPane.ERROR_MESSAGE);jl3.setText();this.closeConn();/关闭连接,语句及结果集else/教师登陆String sql=select coll_id from user_teacher where uid=+name+and pwd=+pwd+;rs=stmt.ex

22、ecuteQuery(sql);if(rs.next()String coll_id=rs.getString(1);new TeacherClient(coll_id);/创建教师客户端窗口this.dispose();/关闭登陆窗口并释放资源else/弹出错误提示窗口JOptionPane.showMessageDialog(this,用户名或密码错误,错误,JOptionPane.ERROR_MESSAGE);jl3.setText();this.closeConn();/关闭连接,语句及结果集catch(SQLException ea)ea.printStackTrace();else

23、 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);/自定义的初始化数据库连接的方法public void initialConnection()try/加载驱动,创建Connection及StatementClass.forN

24、ame(org.gjt.mm.mysql.Driver);conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/test,root,root);stmt=conn.createStatement();catch(SQLException e)JOptionPane.showMessageDialog(this,连接失败,请检查主机地址是否正确,错误,JOptionPane.ERROR_MESSAGE);e.printStackTrace();catch(ClassNotFoundException e)e.printStackT

25、race();/初始化的关闭数据库连接的方法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(String args)Login login=new Login();/创建登陆窗体对象3、效果图Login创建的窗口效果如图1所示。图1 登录窗体学生管理系统共有三个窗体:登录窗体、教师客户端窗体、学生客户端窗体。

26、主要操作如下:(1)如果用户名或密码错误,则会弹窗错误提示对话框,如图2所示。图2 错误提示框(2)当用户为教师时,登录成功后的窗体会自动全屏显示,展开左边的树状列表,如图3所示,然后通过单击不同节点进行相应的业务操作。图3教师客户端主窗体(3)通过单击“退出”节点时,系统会弹出对话框确认,如图4所示,根据用户选择进行相应操作。图4退出确认效果图图5 添加学生窗体(4)当有新生报到时,用户可以单击“新生报到”节点,进入如图5所示的添加学生窗体界面。(5)当教师需要查询某个学生的基本信息时,可以单击“基本信息查询”节点输入学号进行查询,界面如图6所示。图6 学生基本信息查询窗体(6)每学期开始,

27、各学院都应该为学生安排可选课程,这时可以通过“开课选项设置”进入选课设置界面进行操作,如图7所示。教师进行课程设置后效果如图8所示图7 开课选项设置窗体图8 开课选项设置效果图图9 成绩录入窗体(7)在每个学期期末,需要对学生的成绩进行录入,用户通过“课程成绩录入”模块进行录入操作,如图9所示。(8)教师还可以通过点击“添加课程”、“添加班级”节点,进行添加课程和班级操作,如图10和图11所示。图10添加课程效果图图11添加班级效果图(9)教师可以点击“修改密码”来修改自己的登录密码,如图12所示。(10)如果用户是学生,登录后的窗体也会自动全屏显示,展开树状列表后的界面如图13所示。图12修

28、改密码效果图图13学生客户端窗体(11)当学生需要选课时,可以通过单击“选课”节点进入如图14所示的选课界面进行选课。(12)在学生选课过程中,随时可以点击“课表显示”节点查看课表,如图15所示。(13)学生点击“已修课程成绩”节点时,便可进入已修课程查看界面,查看成绩和学分,如图16所示。图14 学生选课界面图15 学生课表显示界面图16 已修课程查看窗体三、项目总结三、项目总结学生管理系统的完成,对学校的管理带来了方便,也对教师是一个很好的帮助,方便管理,提高了工作的效率。在本系统开发过程中,由于本人是初次开发软件,在知识、经验方面存在不足。另外在整个开发过程中,时间也比较仓促,因此,该系

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁