Java实训指导:学生成绩管理系统 联系客服

发布时间 : 星期二 文章Java实训指导:学生成绩管理系统更新完毕开始阅读4a659d056c85ec3a87c2c559

同美软件 实训指导

为基础,并且这两个Component可以有用户交互式调整大小。使用JSplitPane的HORIZONTAL_SPLIT或VERTICAL_SPLIT属性,分别可让分隔窗格中两个Component从左到右排列或从上倒下排列,然后调用setDividerLocation方法可以改变Component大小,其中location是新的x或y位置,具体取决于JSplitPane的方向。当用户调整Component大小时,Component的最小大小用于确定Component能够设置的最大或最小位置。

设计学生信息管理模块的界面,并在util公共包上导入相关类文件,并在JF_view_student类上定义三个String类型的数组变量schID mjrID、ClsID,且其初始值为null,用来存储学院、专业和班级编号,然后定义一个私有方法initialize()用来检索学院、班级、专业数据。接着,在学院和专业下拉框的公共方法itemStateChanged()上,定义一个String类型变量sqlStr,哟过来存储SQL查询语句,执行公共类RetrieveObject的方法getTableCollection(),其参数为sqlStr,将返回值放到集合变量collection中,然后将集合中的数据分别存放到学院和专业下拉框中。其次,通过班级下拉框的itemStateChanged()方法上定义来实现自动检索所有班级信息,当用户单击表格中某条数据后,系统会将学生信息读取面板控件上,以供用户进行操作。然后,在“添加”按的actionPerfomed()方法上实现添加学生信息操作;在“删除”按的actionPerfomed()方法上实现删除学生信息操作。

5.5、学生考试成绩信息管理模块

该模块主要是对学生课程成绩信息继续管理,包括添加、编辑、删除等。在教师端程序中,在左侧导航树中的课程成绩信息管理根节点下有成绩录入管理和成绩查询管理两大子模块,教师或管理员用户在成绩录入管理模块中成功添加学生课程成绩后,这些课程成绩数据会显示在成绩查询子模块中,教师或管理员用户可以输入相应的关键字信息,就可查询到想要的课程成绩信息;同时,在其中的课程信息列表中选择任意的课程成绩后,教师或管理员用户可以对该课程成绩数据进行修改或删除。

在学生端程序中,由于学生用户仅有对其课程成绩的查询的权限,左侧导航树中的课程成绩信息管理根节点下仅有成绩查询管理子模块,而其中的课程成绩信息列表仅会列出该学生所修的所有的课程成绩信息,学生用户不能对这些信息进行编辑或删除,但是,可通过输入相关的关键字信息,查询到相应的成绩数据。

在Java中,通常使用Swing来开发桌面应用程序,且Swing中的控件大都有其默认的设置。若要改变这些默认设置,则可能影响这些控件的正常显示。假如表格控件在被创建后,表格内容的行高是固定的,当修改表格文字的字体时,为了保证不影响正常显示,可以考虑使用表格控件所提供的setRowHight()方法重新设置行高,该方法的声明为public void setRowHight(int rowHight),其中,参数rowHight表示新的行高。

设计教师端和学生端的课程成绩信息管理子模块的窗体UI,并调用公共类JDBCAdapter,从课程成绩信息表中检索出课程基本信息,再导入util广告包下相应类文件,并在JF_view_score类中定义一个boolean实例变量insertflag,用来标志操作的数据库类型,然后定义一个私有方法buildTable(),用来检索课程数据。接着,在课程成绩查询子模块界面上的表格控件中的公共方法mouseClicked()上定义一个String类型的局部变量sqlStr,用来存储SQL查询语句,然后调用公共类RetrieveObject的公共方法getTableCollection(),其参数为sqlStr,返回值为集合Collection,然后将集合中的数据参数在表格控件中。其次,在教师端的课程成绩信息录入界面上,在其中“添加”按钮的公共方法actionPerformed()中定义一个表格模型DefaultTableModel变量tablemodel,用来生成数据表格,然后,定义一个String类型的局部变量sqlStr,用来存储SQL查询语句,然后调用公共类RetrieveObject的公共方法getObjectRow(),其参数为sqlStr,用返回值vector生成课程名称,然后为tablemodel

9

北京同美世纪科技有限公司 版权所有

同美软件 实训指导

填充数据。然后,在“添加”按钮的公共方法actionPerformed()中再定义一个score类型对象的数组变量object,通过循环语句为object变量中的对象赋值,然后调用公共类JDBCAdapater中的InsertOrUpdate_Obj_score()方法,其参数为object。

5.6、基本信息数据查询模块

该模块主要对系统基本信息进行管理,这些基本数据包括学院、专业、课程等。教师登录系统后,在主界面的左侧导航树上的基本信息数据管理根节点上包含了学院信息管理、专业(系)信息管理、课程信息管理等子系统模块。点击子节点“学院信息管理”,右侧界面会显示学院信息管理模块内容,教师用户在该模块主要对学院信息进行管理,包括添加、编辑、修改、查询等。点击子节点“专业(系)信息管理”,右侧界面会显示专业(系)信息管理模块内容,教师用户在该模块主要对专业(系)信息进行管理,包括添加、编辑、修改、查询等。点击子节点“课程信息管理”,右侧界面会显示学院信息管理模块内容,教师用户在该模块主要对课程信息进行管理,包括添加、编辑、修改、查询等。

本模块由于要对基础数据进行增加、修改和删除等操作,其所涉及到开发技术同班级信息管理模块、学生信息管理、课程成绩管理等模块的相似,这里不再重复啰嗦了。此外,本模块还会涉及到数据库模糊查询,他是使用like关键字来实现的。而模糊查询的关键在于%和_两个符号的使用,即%表示任意多个字符,_表示任意一个字符。

设计基本数据管理模块窗体界面,包括学院信息管理、专业信息管理和课程信息管理,然后,参考本手册相关内容,实现对学院、专业和课程等基本信息的添加、修改和删除等操作功能。接着,导入所需的类包,在各窗体类源程序中定义不同的String类型变量,即一个私有方法initsize()用来初始化列表框中的数据,以供用户选择条件参数,并在各关键字下拉框控件的itemStateChanged()方法中实现为这些查询字段下拉框进行字段赋值。最后,在“立即查询”按钮的各个方法actionPerformed()中,定义两个String类型局部变量sqlSelect和whereSql,用来生成查询条件语句,并通过公共类RetrieveObject的getTableModel()方法进行查询操作。

5.7、选课管理模块

该模块主要用于对课程选择进行管理,包括教师端的开课选课设置子模块和学生端的在线选课子模块。在教师端的开课选课设置模块中,教师可以为课程库中设置选课信息,并设置选课的开启和结束时间,也便对学生选课进行有效的控制。在学生端进行选课时,在线选课模块会列出所设置的选课表,学生用户可以根据自己的情况,可以选取多个课程。

在Java中,可以使用Date类和Calendar类来获取时间,这些类库包含在util包中,一般推荐Calendar类来进行对时间的操作。由于Java的Swing类库中没有时间选择框控件,这需要自定义时间选择框控件,这个控件包括两个面板,一个面板包括一个文本框,当将鼠标光标点击在该文本框中,会弹出另一个面板,其中包括3个列表控件、一个日期控件和两个按钮控件,这些列表会列出年、月、日,当选择相应的年、月和日,日期控件会显示相应的日期,当点击其中“确定”按钮,则该日期就会在文本框中被输出。在创建自定义控件时候,需要考虑设计该控件的数据结构、外观属性、事件响应,当在项目要引用该控件时,需要使用paint()方法重写。

由于Java类库未定义时间选择框控件类,因此,需要自定义时间选择框控件,首先,创建自定义控件时间选择框JCalendarChoice类,该类继承自Compoent类,并在该类的方法

10

北京同美世纪科技有限公司 版权所有

同美软件 实训指导

paintControl()中定义一个监听事件PaintListener,以绘制该控件的外观,然后,在该控件的mouseClicked()方法中实现所选择的时间输出在上面的功能。其次,使用paint()方法重写该自定义控件,并设置本模块的窗体界面,包括教师端的开课选课设置模块和学生端的在线选课模块,并调用公共类JDBCAdapter并定义一个boolean类型的selflag,用来标志操作数据库类型,然后定义一个私有方法buildTab,用来检索课程数据。在表格控件的公共方法mouseClicked()中定义一个String类型局部变量sqlStr,用于存储SQL查询语句,然后调用公共类RetrieveObject的公共方法getTableCollection(),其参数为sqlStr,返回值为集合Collection,然后将集合中数据存放到表格控件中。在表格控件上的“开课”链接的公共方法actionPerformed()中定义一个courseChoice类型的数组变量删除并通过循环语句为该变量中的对象赋值,然后调用公共类JDBCAdaptr中的InsertOrUpdate_obj_sc()方法来变更该课程的开课状态,其参数为sc。在学生端程序中,在表格控件的公共方法mouseClicked()中定义一个String类型局部变量sqlStr,用于存储SQL查询语句,然后调用公共类RetrieveObject的公共方法getTableCollection(),其参数为sqlStr,返回值为集合Collection,然后将集合中数据存放到表格控件中。在表格控件上的“选课”按钮的公共方法actionPerformed()中定义一个courseChoiced类型的数组变量删除并通过循环语句为该变量中的对象赋值,然后调用公共类JDBCAdaptr中的InsertOrUpdate_obj_cc()方法来变更该课程的开课状态,其参数为cc。

5.8、考试成绩班级明细查询模块

本模块用来查询学生课程成绩明细信息,在教师端中,教师或管理员用户可以查询隶属于各学院、专业、班级的所有学生的课程成绩明细,以便于教师了解各学院、专业和班级的所有学生的课程学生情况。在学生端中,学生用户通过该模块不仅可以查询到其所修的所有课程成绩,也可通过了解未通过课程的成绩,以便学生用户可以有效的调整其学习计划。

在Java中,通常使用Swing来开发桌面应用程序,且Swing中的控件大都有其默认的设置。若要改变这些默认设置,则可能影响这些控件的正常显示。假如表格控件在被创建后,表格内容的行高是固定的,,当修改表格文字的字体时,为了保证不影响正常显示,可以考虑使用表格控件所提供的setRowHight()方法重新设置行高,该方法的声明为public void setRowHight(int rowHight),其中,参数rowHight表示新的行高。

设计考试成绩明细查询模块的窗体界面,包括教师端的考试成绩明细查询模块和学生端的考试成绩明细查询模块,并定义一个素有方法initsize(),用来初始化列表框中的数据,供用户选择条件参数。其次,在“查询”按钮的公共方法actionPerformed()中,定义一个String类型局部变量tb,用来为表格模型设置列名。接着,定义公共类RetrieveObject的变量retrieve,然后执行retrieve的方法getTableCollection(),其参数为sqlSub。当结果集中存在数据的时候,定义一个String类型变量sqlStr,用来生成查询成绩语句,通过一个循环语句为sqlStr赋值,再定义一个公共类RetrieveObject类型变量bdt,并执行bdt的gettableModel()方法,其参数为sqlStr和tb变量。

11

北京同美世纪科技有限公司 版权所有