《Java实训报告》PPT课件.doc
- 格式:doc
- 大小:36.50 KB
- 文档页数:11
《Java实训报告》PPT课件《Java实训》设计报告,学生管理系统,一、项目需求通过与科信学院教务人员的详细交流,目标系统具备以下功能。
1.教师客户端功能*可以更改密码;*可以添加学生,并要求填写学生基本信息;*可以根据学号查询学生基本信息及其成绩;*有权限控制,每个管理员只能管理其所在学院的信息;*可以添加新课程、新班级;*可以控制选课的课程范围,并可以控制选课的时间,即:可以控制选课开始和结束时间;*可以录入成绩,缓存成绩,检查无误后公布成绩。
2.学生客户端功能*学生可以查看自己的基本信息;*学生可以查看自己的成绩,已修学分和不及格成绩信息;*学生端可以进行远程选课,并且可以查看课表。
根据以上相关功能,现规划数据流图和数据字典如下:二、项目设计在设计学生管理系统时,编写月、学号、籍贯、入学年份、专业等等。
这样就可以添加新学生。
(8)StuClient.java类该类是基于Login类的,这是学生客户端的界面类,该类控制了学生客户端要显示什么内容,由什么功能等等。
包括:修改密码、查看自己基本信息和成绩、选课等功能界面的显示。
(9)TeacherClient.java类该类是教师客户端界面的类,该类和StuClient类的功能基本相似,主要包括修改密码、添加新学生、查看学生基本信息和成绩信息、进行课程安排、添加新课程和班级等功能的显示。
(10)StuInfo.java类StuInfo.java类是学生查询学生自己的基本信息。
(11)TeachSearchInfo.java类,TeachSearchInfo.java类是教师根据学生提供的基本信息建立学生基本信息电子档案。
即新生报到功能的实现。
(12)Welcome.java类该类最为简单,仅仅通过一张xs.jpg 图片显示在学生和教师客户端中。
(13)CourseManage.java类该类是教师管理课程,教师可以对课程安排,包括:周次、任课教师、学分等信息,为学生选课做准备。
(14)GetScore.java类该类是提供学生的成绩各科成绩,包括及格成绩和不及格成绩,以及学分。
(15)GetStuInfo.java类根据学号获得学生相应基本信息的方法。
教师在输入学生学号后点击“查询”按钮查看相应学生的基本信息。
(16)GradeInDB.java类该类的功能是公布学生某一科的成绩,教师通过点击“公布该科成绩单”就会公布该科的成绩,学生就会在学生自己客户端查看自己的成绩信息。
(17)NewCourse.java类该类主要是有教师操作,教师通过输入正确的课程号、课程名、学分信息后就可以添加新的课程,这个类与NewClass.Java的功能相似。
(18)StuFailGrade.java类该类功能是显示学生的不及格成绩。
学生在查看成绩时候,点击“不及格成绩”时显示的界面。
(19)StuGrade.java类该类功能是显示学生的已修课程成绩。
学生在查看成绩时候,点击“已修课程成绩”时显示的界面。
(20)StuScore.java类该类是教师通过输入学生的“学号”进行查询学生的成绩信息。
1、Login类(主类)(1)数据和方法Login类是javax.swing 包中JFrame的一个字类,并实现了ActionListener接口。
类中有关数据和方法的详细说明。
1)成员变量,该类中的变量大部分都是私有的,这样有利于信息的封装。
其中包括:privateConnectionconn;//连接数据库用到privateStatementstmt;//执行数据库语句privateResultSetrs;//结果集privateJPaneljp=newJPanel();//创建用来存放空间的容器privateJLabeljl1=newJLabel(“用户名“);privateJLabeljl2=newJLabel(“密码“);//创建用户名和密码输入框privateJTextFieldjtf=newJTextField();privateJPasswordFieldjpwf=newJPasswordField();privateJRadioButton[]jrbArray={newJRadioButt on(“普通学生“,true),newJRadioButton(“管理人员“)};//创建单选按钮数组privateButtonGroupbg=newButtonGroup();//创建组//创建操作按钮privateJButtonjb1=newJButton(“登陆“);privateJButtonjb2=newJButton(“重置“);2)方法main(Stringargs[]);方法是学生管理系统程序运行的入口方法。
Login();是构造方法,负责完成窗口的初始化。
addListener();添加事件监听器方法。
initialFrame();初始化窗体actionPered(ActionEvente);实现接口方法initialConnection();自定义的初始化数据库连接的方法closeConn();关闭数据库2、代码importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;impor tjavax.swing.event.*;importjava.util.*;import.*;importjava.io.*;impo rtjava.sql.*;importjavax.sql.*;,publicclassLoginextendsJFrameimple mentsActionListener{privateStringhost;//声明Connection引用、Statement对象引用与结果集引用privateConnectionconn;privateStatementstmt;privateResultSetrs;priv ateJPaneljp=newJPanel();//创建用来存放空间的容器privateJLabeljl1=newJLabel(“用户名“);privateJLabeljl2=newJLabel(“密码“);privateJLabeljl3=newJLabel(““);//正在登陆提示标签//创建用户名和密码输入框privateJTextFieldjtf=newJTextField();privateJPasswordFieldjpwf=ne wJPasswordField();privateJRadioButton[]jrbArray={newJRadioButt on(“普通学生“,true),newJRadioButton(“管理人员“)};//创建单选按钮数组privateButtonGroupbg=newButtonGroup();//创建组//创建操作按钮privateJButtonjb1=newJButton(“登陆“);privateJButtonjb2=newJButton(“重置“);publicLog in(){this.addListener();initialFrame();//初始化界面}publicvoidaddListener(){this.jb1.addActionListener(this);//为登陆按钮注册监听器this.jb2.addActionListener(this);//为重置按钮注册监听器this.jtf.addActionListener(this);//为用户名文本框注册监听器this.jpwf.addActionListener(this);//为用户名密码框注册监听器}publicvoidinitialFrame(){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);jpwf.setBou nds(120,140,130,25);jp.add(jpwf);jpwf.setEchoChar(*);bg.add(jrbAr ray[0]);bg.add(jrbArray[1]);jrbArray[0].setBounds(40,180,100,25);j p.add(jrbArray[0]);jrbArray[1].setBounds(145,180,100,25);jp.add(jr bArray[1]);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(jl 3);this.add(jp);//设置窗口的标题、大小、位置以及可见性this.setTitle(“登陆“);this.setResizable(false);,DimensionscreenSize=Toolkit.getDefault Toolkit().getScreenSize();intcenterX=screenSize.width/2;intcenterY =screenSize.height/2;intw=300;//本窗体宽度inth=320;//本窗体高度this.setBounds(centerX-w/2,centerY-h/2-100,w,h);//设置窗体出现在屏幕中this.setVisible(true);}publicvoidactionPered(ActionEvente){if(e.getS ource()==jb1){//按下登陆按钮Stringnam e=this.jtf.getText().trim();if(name.equals(““)){JOptionPan e.showMessageDialog(this,“请输入用户名“,“错误“,JOptionPane.ERROR_MESSAGE);jl3.setText(““);return;}Stringp wd=newString(jpwf.getPassword()).trim();if(pwd.equals(““)){JOpti onPane.showMessageDialog(this,“请输入密码“,“错误“,JOptionPane.ERROR_MESSAGE);jl3.setText(““);return;}inttype= this.jrbArray[0].isSelected()?0:1;//获取登陆类型try{//初始化连接this.initialConnection();if(type==0){//普通学生登陆Stringsql=“select*fromuser_stuwherestu_id=“+name+“andpwd=“+p wd+““;rs=stmt.cuteQuery(sql);if(r s.next()){newStuClient(name);//创建学生客户短窗口this.dispose();//关闭登陆窗口并释放资源}else{//弹出错误提示窗口JOptionPane.showMessageDialog(this,“用户名或密码错误“,“错误“,JOptionPane.ERROR_MESSAGE);jl3.setText(““);}this.closeConn ();//关闭连接,语句及结果集},else{//教师登陆Stringsql=“selectcoll_idfromuser_teacherwhereuid=“+name+“andp wd=“+pwd+““;rs=stmt.cuteQuery(sql);if(rs.next()){Stringcoll_id=rs. getString(1);newTeacherClient(coll_id);//创建教师客户端窗口this.dispose();//关闭登陆窗口并释放资源}else{//弹出错误提示窗口JOptionPane.showMessageDialog(this,“用户名或密码错误“,“错误“,JOptionPane.ERROR_MESSAGE);jl3.setText(““);}this.closeConn ();//关闭连接,语句及结果集}}catch(SQLExceptionea){ea.printStackTrace();}}elseif(e.getSou rce()==this.jb2)//按下重置按钮,清空输入信息{this.jtf.setText(““);this.jpwf.setText(““);}elseif(e.getSource()==jtf)/ /当输入用户名并回车时{this.jpwf.requestFocus(true);}elseif(e.getSource()==jpwf)//当输入密码并回车时{this.jb1.requestFocus(true);}}//自定义的初始化数据库连接的方法publicvoidinitialConnection(){try{//加载驱动,创建Connection及StatementClass.forName(“org.gjt.mm.mysql.Driver“);conn=Driver Manager.getConnection(“jdbc:mysql://localhost:3306/test“,“root“,“r oot“);stmt=conn.createStatement();}catch(SQLExceptione){JOption Pane.showMessageDialog(this,“连接失败,请检查主机地址是否正确“,“错误“,JOptionPane.ERROR_MESSAGE);e.printStackTrace();}catch(ClassNotFoundExceptione),{e.printStackTrace();}}//初始化的关闭数据库连接的方法publicvoidcloseConn(){try{if(rs!=null){rs.close();}if(stmt!=null){st mt.close();}if(conn!=null){conn.close();}}catch(SQLExceptione){e. printStackTrace();}}publicstaticvoidmain(Stringargs[]){Loginlogin= newLogin();//创建登陆窗体对象}},3、效果图Login创建的窗口效果如图1所示。