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

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

同美软件 实训指导

3、 数据库设计

本系统数据库采用了MySQL 5数据库,其数据库名称StuDB,根据以上对系统所做的的需求分析、流程设计及功能结构确定,每个功能模块可以抽象出一个或多个实体对象,包括了学院、专业(系)、班级、学生、课程实体对象等,这些实体对象彼此相互联系,并且最终被创建成数据表结构。部分数据表如下: 1、学院信息表(Schools) 字段名称 Sch_ID Sch_name 字段名称 Mjr_ID Sch_ID Mjr_name 字段名称 Cls_ID Mjr_ID Cls_name 字段名称 Stu_ID Stu_name Stu_gender Stu_birthday Sch_ID Mjr_ID Cls_ID Stu_join_date 字段名称 Cur_ID Cur_name Cur_score Mjr_ID Cls_ID 字段名称 Tea_ID Tea_name

类型 int varchar 类型 int int varchar 类型 int int varchar 类型 int varchar varchar datetime int int int datetime 类型 int varchar float int int 类型 int varchar 4 30 4 30 8 4 4 4 20 10 30 8 4 4 4 8 4 4 20 4 4 20 4 30 长度 学院编号 学院名称 长度 专业编号 学院编号 专业名称 长度 班级编号 专业编号 班级名称 长度 学号 学生姓名 学生性别 学生籍贯 学生出生日期 学院编号 专业编号 班级编号 学生入学时间 长度 课程编号 课程名称 课程最高学分 专业编号 班级编号 长度 教师工号 教师姓名 功能描述 2、专业(系)信息表(Majors) 功能描述 3、班级信息表(Classes) 功能描述 4、学生信息表(Students) 功能描述 Stu_hometown varchar 5、课程信息表(Courses) 功能描述 6、教师信息表(Teachers) 功能描述 5

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

同美软件 实训指导

varchat varchar varchar varchar int int int 类型 int int int float datetime 4 4 4 8 8 20 10 30 30 4 4 4 长度 课程成绩编号 学号 课程编号 课程成绩 课程考核日期 教师密码 教师性别 教师职称 教师学历 学院编号 专业编号 班级编号 功能描述 Tea_pwd Tea_gender Tea_Pos Tea_edu Sch_ID Mjr_ID Cls_ID 字段名称 Gra_ID Stu_ID Cur_ID Gra_score Gra_date 7、课程成绩表(Grades) 4、 公共模块编写

实体类对象主要用JavaBean来结构化后台数据表,完成对数据表的封装。在定义实体类的时候需要设置与数据表字段相对应的成员变量,且需要为这些字段设置相应的get和set方法。

4.1、实体类编写

在Eclipse中,创建实体对象类,并在类中设置与相应数据表字段相应的成员变量,然后,在菜单项选择“源代码”->“生成Getter和Setter”命令,这样该实体类就创建完成。

4.2、操作数据库公共类编写 4.2.1、连接数据库公共类

数据库连接在整个项目开发中占据着非常重要的位置,若数据库连接失败,功能再强大的系统都不能运行。在本项目的util包中建立类ConnectionalJDBC.java,并在该类中定义一个静态类型的类变量connection用来建立数据库的连接,这样在其他类中就可以直接访问该变量了。

4.2.2、操作数据库公共类

操作数据库公共类封装了对所有的数据表的添加、修改和删除的操作,前台业务中的相

6

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

同美软件 实训指导

应功能都是通过这个类来完成的。

在util包下建立公共类JDBCAdapater.java,并在该类中使用各实体对象作为参数,进而执行类中的相应方法。然后,再定义一个私有类方法AdapterObject()用来执行数据表的所有操作,方法参数为生成的SQL语句,并将所有的表操作封装在这个类中。最后,定义一个删除数据表的公共类方法DeleteObject(),用来执行删除数据表的操作。

4.2.3、检索数据公共类

数据的检索功能在整个系统中占有重要的位置,系统中所有的查询功能都是通过该公共类实现的,该公共类通过传递查询语句调用相应的类方法,查询满足条件的数据或则数据集合。

在util包下建立公共类RetrieveObject.java,并在该类中定义一个类公共方法getObjectRow(),用来检索一条满足条件的数据,该方法返回值类型为Vector。再定义一个公共方法getTableCollection(),用来检索满足条件的数据类型,该方法返回值类型为Collection。最后,定义类方法getTableModel()用来生成一个表格数据模型,该方法返回类型为DefaultTableModel,该方法中一个数组参数name用来生成模型中的列名。

4.2.4、产生流水号公共类

在util包下建立公共类ProduceMaxBh,并在该类定义一个公共方法getMaxBh(),该方法用来生成一个最大的流水号码,即首先通过参数来获得数据表中的最大号码,然后根据这个号码产生一个最大编号。

5、 系统功能实现

5.1、系统登录模块

系统登录窗体主要用来验证用户登录信息,完成用户登录功能。本系统包括两个用户角色,即系统教师用户和学生用户,当用户在登录本系统时,需要填写用户名、密码和登录类型等信息,系统会自动验证所填的用户是否存在,若存在,系统就登录到主界面中,否则,会给予相关的提示信息。同时,当用户初次登录本系统时,需要设置相应的配置信息,包括数据库主机IP、主机服务端口号等。

系统登录模块主要技术是如何让窗体居中显示,为了让窗体居中显示,需要获得显示器的大小,使用Toolkit类的getScreenSize()方法可以获得屏幕大小。由于Toolkit类是一个抽象类,无法使用new获得该对象,可是,该类中定义的getDefaultToolkit()方法可获得Toolkit类型的对象。

设计系统登录窗体界面,并当用户输入用户名、密码和登录类型后,点击“登录”按钮,在公共方法txtUsername_keyPressed()中,定义一个String类型变量sqlSelect用来生成SQL查询语句,然后再定义一个公共类RetrieveObject类型变量retrieve,调用retrieve的getObjecrRow()方法,其参数为sqlSelect,用来判断该用户是否存在;若用户存在,检查所填的密码是否正确,若密码正确,系统登录后,即可进入系统主界面上。

7

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

同美软件 实训指导

5.2、主窗体模块

主窗体是指用户登录后的窗体,对于本系统来说,有两个主窗体,学生端主窗体和教师端主窗体,主窗体采用的布局风格为:左边是一个树状列表用于导航,右边采用卡片布局显示各个功能模块。主窗体用到的主要技术是导航栏设计,通过导航栏可以打开本系统所有的子模块。本系统的导航栏是通过树组件来实现的,在这里要显示树的更节点,且该树结构不是展开的。

设计主界面界面,包括教师端和学生端主界面。接着,创建树的根节点对象和子节点对象,再创建树的叶子节点对象并添加到子节点上,以创建一个树结构,然后创建一个树模型对象,及一个树对象,并设置该树对象的相关绘制属性。再定义JMenuBar对象,并定义菜单对象数组用来生成整个系统的业务主菜单,然后定义主菜单中的子菜单项目,用来添加到主菜单中,为子菜单实现响应用户单击的操作方法,最后,通过私有方法BuildToolBar()进行工具栏创建。

5.3、班级信息设置模块

该模块主要完成对班级内容的操作,包括班级信息的添加、更改、删除等操作。本模块涉及到主要技术是使用面板的卡片布局,通过为面板定义卡片布局对象,则该界面就以卡片布局来显示。CardLayout 对象是容器的布局管理器。它将容器中的每个组件看作一张卡片。一次只能看到一张卡片,而容器充当卡片的堆栈。当容器第一次显示时,第一个添加到 CardLayout 对象的组件为可见组件。卡片的顺序由组件对象本身在容器内部的顺序决定。CardLayout 定义了一组方法,这些方法允许应用程序按顺序地浏览这些卡片,或者显示指定的卡片。addLayoutComponent(java.awt.Component, java.lang.Object) 方法可用于将一个字符串标识符与给定卡片相关联,以便进行快速随机访问。

设计班级信息管理模块窗体,并通过调用公共类JDBCAdapter,该模块程序先从数据表中检索出班级的基本信息,若存在数据,用户可以对任意数据进行修改、删除等操作,再定义一个Boolean实例变量insertflag,用来标志操作数据库类型,然后定义一个私有方法buildTable,用来检索班级数据。当用户在选择某条记录后,程序会将该数据填写到面板上相应控件上,也方便用户进行相应的操作,在表格控件的公共方法mouseClicked()中定义一个String类型局部变量sqlStr,用来生成SQL查询语句,然后调用公共类RetrieveObject的getObjectRow()方法,进行数据查询,若找到数据,则将该数据解析显示给用户。接着,在“删除”按钮的公共方法actionPerformed()中定义字符串类型的局部变量sqlDel,用来生成班级的删除语句,然后调用公共类的JDBCAdapter的DeleteObject()方法,以实现删除某条班级数据信息。最后,在“保存”按钮的方法actionPerformed()中定义实体类对象Obj_Class的变量objclass,然后使用set方法为该变量赋值,最后调用公共类JDBCAdapter的InsertOrUpdateObject()方法,即可实现将数据保存到数据表中功能。

5.4、学生基本信息管理模块

该模块用于管理学生基本信息,包括学生信息的基本信息、编辑、删除、查询等,在左侧导航上点击学生信息,右面就可以显示该模块的界面内容。该模块涉及的主要技术是JSplitPane,JSplitPane用于分隔两个Component,这两个Component图形化分隔以外观实现

8

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