基于SWING和MyBatis的学生成绩管理系统设计与实现0315223104Word格式文档下载.docx
- 文档编号:21097870
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:16
- 大小:107.88KB
基于SWING和MyBatis的学生成绩管理系统设计与实现0315223104Word格式文档下载.docx
《基于SWING和MyBatis的学生成绩管理系统设计与实现0315223104Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于SWING和MyBatis的学生成绩管理系统设计与实现0315223104Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
4.2系统测试截图15
5.总结与展望18
1.背景简介
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生成绩进行管理,具有手工管理无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、成本低、效率高等。
这些优点能够极大地提高学生选课系统的效率,也是企业、学校的科学化、正规化管理和与世界接轨的重要条件。
因此,开发这样一套管理系统已成为很有必要的事情。
学生成绩管理系统是一个学校中不可缺少的部分。
成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式对课程进行查询、更新等,这种管理方式存在着许多缺点,如:
效率低、执行速度慢,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。
JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。
使用JAVA语言建立一个课程管理系统,使学生成绩信息管理工作规范化,系统化,程序化,提高信息处理的速度和准确性,能够及时,准确,有效的查询和修改成绩。
2.需求分析
2.1功能需求
本次设计的学生选课系统是一个面向管理员、学生和教师这三个对象的教务平台。
对学生的课程成绩进行录入、修改查询等基本功能。
对教师或系统管理人员可以登录系统进行成绩录入等管理,学生只能登录系统进行成绩查询。
学生成绩管理系统的要求是能够管理学生成绩信息,主要涉及到学生的基本信息、成绩信息和学校的授课计划信息的管理。
学生的成绩是需要由人工录入的,因此系统就需要设计一个学生成绩信息录入的窗口来录入期考成绩,并且在这个窗口中放入一个数据窗口来实现录入这方面信息的功能。
系统还要求具有查询期考成绩的功能,因此为了显示查询结果,就要设计一个数据窗口,并将其放在查询期考成绩的窗口中实现查询功能。
由于查询成绩和录入成绩有区别,因此为了更好的实现相应的功能,设计的数据窗口也要不同,分别采用两种风格的数据窗口实现。
系统要求能够录入授课计划和学生基本信息,必须设计录入授课计划窗口和录入学生基本信息窗口来实现相应功能。
由于该系统是学校管理学生成绩信息的系统,因此必须具有一定的保密性,需要特定的人员才可以修改,因此需要设计一个用户登陆的窗口,使具有访问权限的用户才能登录此系统。
为了简单化,我们的用户名和用户密码和数据库本身的用户名密码相同。
系统的主窗口要能够在用户选中相应操作后,调出相应的窗口来使用户在窗口中完成相应的功能。
2.2性能需求
一般用户并不具备计算机专业知识,若程序性能有一定的缺陷或可对其隐藏,但一旦异常暴露,对于计算机专业知识较少的用户来说将一发不可收拾。
对于一个专业的开发人员来讲,其项目在满足用户提出的功能实现外,首先应保证性能良好。
综上所属,本系统的性能需求大致如下:
系统的多数模块(尤其是后台几乎所有的)都有相应的特殊操作,所以在进入模块之前要对用户所具有的权限等用户信息做出严格检测,预防非法操作。
数据库的连接应采用连接池技术,合理、有效的分配、回收资源。
系统运行过程中会产生许多异常(其中大多数是预期效果),要有良好的异常处理机制,即要显示界面友好又要体现程序严谨。
学生在查询成绩时,系统设计要充分考虑到线程之间
的并发与冲突。
注重系统所需时间与空间上的资源消耗和运行效果。
2.3使用技术和开发平台
鉴于数据库的选择,本系统仅能在Windows系统上运
行,需装有MySQL。
在工程中,本系统采用MyEclipse作为
开发及测试环境。
3.系统设计
3.1界面设计
登录界面有账号,密码,管理员账号以字母A开头,
教师账号以字母T开头,学生账号以字母S开头,登录账号
或密码输入错误会弹出相应的提示对话框。
3.2功能设计
图3-1系统功能结构图
各模块功能:
学生信息管理模块:
管理员用于添加和删除学生信息的
模块。
教师信息管理模块:
管理员用于添加和删除教师信息的模块。
教师密码修改模块和学生密码修改模块:
管理员添加的用户帐号的初始密码与用户的帐号相同,用户通过密码修改模块可以自己需改密码。
教师录入成绩模块:
教师可以浏览选修自己课程的学生的信息并且录入该学生的成绩。
学生查询成绩模块:
通过表格的形式将该学生选择了的课程列出来,如果教师有录入成绩,则可以看到自己的课程成绩。
3.3数据库表设计3.3.1E-R图
图3-2学生管理E-R图
图3-4成绩管理E-R图
3.3.2关系模式
学生信息(学号,姓名,性别,生日,年级,班别,语文,数学,
英语,专业)
学生管理(增加学生,删除学生,修改学生,单个查询)
学生查找(查看全体,按年级查找,按班别查找,按专业查找)
成绩管理(单科排名,总分排名,合格学生,各科学生)
3.3.3数据库管理系统
MySQL
3.3.4数据库命名
studentmanagerment
3.3.5数据库表
Logon登录帐号密码)
(主要用来保存用户登录信息)
字段名
数据类型
长度
是否为空
是否主键
user
char
10
不为空
主键
password
StudentTablel学生信息表)
(主要用来保存成绩信息)
主键否
描述
Num
Char
:
学生学号1
Name
学生姓名
Sex
2
学生性别
Birth
Datetime
8
学生生日—
Class
16
所在班级
Grade
20
学生成绩:
Major
主修
Chinese
Float
语文成绩
English
M0
英语成绩「
Maths
数学成绩
Total
总成绩
CourseTable课程信息表)
CourseID
不为空—
课程编号
CourseName
课程名
Point
不为空「
学分
StuNumber
4
选课人数
3.4代码设计
Login.java
packagescoreManagement;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
//登录界面
publicclassLoginextendsJFrameimplementsActionListener{
JButtonb1=newJButton("
登录"
);
JButtonb2=newJButton("
退出"
JLabella仁newJLabel(用户名"
JLabella2=newJLabel(密码"
JPanelp1=newJPanel();
JPanelp2=newJPanel();
JPanelp3=newJPanel();
JTextFieldname=newJTextField(15);
JPasswordFieldpw=newJPasswordField(15);
publicLogin(){
/*setBak();
//调用背景方法
Containerc=getContentPane();
//获取JFrame面板
JPaneljp=newJPanel();
//创建个JPanel
jp.setOpaque(false);
//把JPanel设置为透明这样就不会遮住后面的
背景这样你就能在JPanel随意加组件了
c.add(jp);
setSize(540,450);
setVisible(true);
*/
/*JLabelp=newJLabel();
p.setOpaque(true);
p.setBackground(Color.red);
JLabell=newJLabel();
Iconicon=newImageIcon("
D:
\\a.jpg"
//在此直接创建对象
l.setIcon(icon);
l.setBounds(0,0,icon.getIconWidth(),icon.getIconHeight());
p.add(l,newInteger(Integer.MIN_VALUE));
getContentPane().add(p);
pack();
//窗口适应组件大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//用来关闭窗口的*/setVisible(true);
setTitle("
学生成绩管理系统"
getContentPane().setLayout(newGridLayout(3,1));
getContentPane().add(p1);
getContentPane().add(p2);
getContentPane().add(p3);
p1.add(la1);
p1.add(name);
p2.add(la2);
p2.add(pw);
p3.add(b1);
p3.add(b2);
setBounds(500,250,100,100);
pw.setEchoChar('
*'
b1.addActionListener(this);
b2.addActionListener(this);
}
/*publicvoidsetBak(){
((JPanel)this.getContentPane()).setOpaque(false);
ImageIconimg=newImageIcon("
//a.jpg"
//添加图片
JLabelbackground=newJLabel(img);
this.getLayeredPane().add(background,newInteger(Integer.MIN_VALUE));
background.setBounds(0,0,img.getIconWidth(),img.getIconHeight());
}*/
publicvoidactionPerformed(ActionEvente){
if(e.getActionCommand()=="
){
Stringpassword=pw.getText();
Stringuser=name.getText();
if(user.equals("
wujingjing"
)&
&
password.equals("
201231526"
)){
Functionfunction=newFunction。
;
function.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(false);
else{
JOptionPane.showMessageDialog(null,"
用户名或密码错误"
"
Error"
JOptionPane」NFORMATION_MESSAGE);
elseif(e.getActionCommand()=="
System.exit(O);
DateBaseCreate.java
4.系统实现与测试
4.1功能模块测试
由于时间和自身能力所限,我们只进行了功能测试(黑盒测试)。
1)登陆界面测试
2)学生信息查询,删除,修改,添加及导入导出功能的测试
3)课程信息查询,删除,修改,添加及导入导出功能的测试
4)成绩信息查询,删除,修改,添加及导入导出功能的测试经过测试本系统基本实现了所要求的功能,能够比较方便的,快捷的完成所执行操作。
4.2系统测试截图
部分截图如下:
图4.1-1登录页面
图4.1-2主界面
图4.1-3增删改查页面
图4.1-4查看全体成绩页面
图4.1-5按成绩查找页面
图4.1-6按班级查询页面
5.总结与展望
该系统主要实现了学生成绩管理的功能,从需求分析,界面的搭建,到数据库的连接,表格,存储过程和存储过程等的建立,在这段时间的摸索中,我确实学到了很多东西,特别是对以前不太了解的JavaSwing组件有了更深刻的了解。
比如JTabl^对于它的用法我在网上找了很多资料,jTab^F建立有各种不同的方法,可以使用DefaultTableModel类来实现;
然后再table.setModel(dtm);
或者继承AbstractTableModel类,还有对于如何在JTable中添加Swing组件,原本我是直接新建一个JcheckBoX对象直接添加到表格的单兀
格里,结果发现只能显示出一串字符串,上网查找后才知道,要用DefaultCellEditor来添加Swing组件,再设置setCelIRenderer(newMyTableRenderer())这是一个实现了TableCellRendere接口的
JCheckBoxTableCellRendere可以看做是Swing组件的呈现器,这样Table就会把内容显示绘制交给JCheckBo)了。
对于数据库,我尽量将对数据库的操作放在存储过程中,这样的抽象和封装使得源程序代码更加容易理解,而且在web应用系统中也可以避免发生不安全的状况,我想这是一个号的程序员应当要养成的习惯,在这次的课程设计中,层次化,模块化,抽象化也是我学到的一个重要的经验,参考一些资料后发现模块化能使程序设计更加简单,设计代码时目标更加明确,效率更高,以前虽然也知道这些道理,但自己真正实施起来却感到无从下手,比如前面的数据库操作和数据库资源配置文件,就是我从书中看来的,这样做的好处是,在程序中操作数据库的时候避免了使用很多try和catch语句,是代码更加简洁,更容易理解,此外需要连接不同的数据库时只要修改数据库的资源配置文件sysConfig.properties就可以了。
本系统的不足之处及其改进:
本系统只是针对学生成绩管理一块的开发,这只是学生信息管理中的一部分,因时间和精力的限制,没有来得及扩及整个学生信息管理的开发。
而且在数据库的管理操作方面完成较差部分功能没有完全实现,或不够完善。
数据导入格式规定过于严格。
通过这次设计,我学会了与别人配合工作,因为一个人所学
的知识不可能面面俱到的,只有通过合作,发挥自己的优点,体现团队精神,才能使工作做得更为出色。
通过这次设计,我学到了许多书本上学不到的知识,增强了自己的动手能力。
即将毕业我十分珍惜这次锻炼的机会,我按部就班的完成了自己的设计任务,但由于自己的知识水平有限,仍然存在很多的不足之处,恳请老师多多指教!
当今的社会是竞争的社会,而人才的竞争则是竞争的焦点,对于我们来说,是很好的一次锻炼,使我们各方面的能力都有了很大的提高,为我们踏出校门,走上社会增强了能力与自信!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 SWING MyBatis 学生 成绩管理系统 设计 实现 0315223104
链接地址:https://www.bdocx.com/doc/21097870.html