东南大学计算机Java作业成绩管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东南大学
题目学生成绩管理系统
学院计算机学院
专业
班别
学号
姓名
摘要
随着网络通信技术的迅速发展和信息技术的广泛应用,计算机的应用已普及到经济和社会生活的各个领域。
教育领域也不例外,现今已经出现了各种远程网络在线教育系统、图书管理系统、学籍管理系统,学生成绩管理系统等。
其中成绩管理系统是任一院校都不可缺少的部分,它的内容对于学校的决策者和教育管理者来说都是至关重要,而传统的人工管理方式效率较低,为数据的查询、更新和维护带来了极大的不便。
所以学生成绩管理信息系统的开发和应用是必要的,它能够为管理人员提供充足的信息和快捷的查询手段,提高学校学生成绩管理的效率。
本文的学生成绩管理系统是给予C/S模型的,它提供了强大的学生成绩管理功能,方便系统管理员对学生成绩等信息的添加、修改、删除、查询等操作,同时一样的方便学生对自己各科成绩查询,学习的交流。
本系统也主要利用java
语言和SQLserver2005实现,因此它具有很强的可移植性,很方便。
关键字:学生成绩管理系统java JDBC SQL jxl.jar
Abstract
Along with the fast development of network communication technology and the wide application of information technology, the computer application to the economical and social life each domain. Education is no exception, now has a variety of remote network education system, library management system, student management system, student achievement management system. The performance management system is one of the institutions are an indispensable part, its contents for the policy makers and school education managers is critical, and the traditional manual management mode is the low efficiency, data query, update and maintenance has brought great inconvenience. So the student achievement management information system development and application is necessary, it can provide adequate staff for management information and the quick inquiry method, improve student achievement school management efficiency.
The student achievement management system is given by C / S model, which provides a powerful student achievement management functions, the system administrator to facilitate student achievement and other information to add, modify, delete, query and other operations, like the convenience of their students all query results, learning exchanges. This system is mainly the use of Java language and SQLserver2005 to achieve, so it has strong portability, very convenient.
Keywords: student achievement management system for Java JDBC SQL jxl.jar
目录
Abstract (2)
Keywords: student achievement management system for Java JDBC SQL jxl.jar (3)
第一章绪论 (5)
1.1 背景 (5)
1.2基于B/S结构技术的应用 (6)
第二章需求分析 (7)
2.1 开发目标 (7)
2.2项目的意义 (7)
2.3可行性分析 (8)
2.3.1 经济上可行性 (8)
2.3.2 技术上可行性 (8)
2.3.3 操作可行性 (9)
2.4主要研究内容 (9)
2.5系统环境需求 (9)
第三章系统分析 (10)
3.1 系统分析 (10)
3.2 应解决的问题 (11)
3.2.1合理的设计数据库 (11)
3.2.2设计出友好的界面 (11)
3.2.3实现的基本功能 (11)
3.3 系统调查 (12)
3.3.1 统计数据源 (12)
3.3.2 功能调查 (12)
3.3.3查询结果输出形式 (12)
3.4 系统模块结构图 (13)
3.5 系统业务流程图 (13)
3.5.1 系统总业务流程图 (14)
3.5.2 登录业务流程图 (15)
第四章数据库设计 (15)
4.1 数据库系统分析 (15)
4.2 调查结果 (18)
4.2.1 功能需求 (18)
4.2.2 数据字典 (18)
4.2.3数据库表的具体设计 (18)
第五章系统功能和代码编写 (20)
5.1系统模型实际 (20)
5.1.1系统主界面 (22)
5.1.2 学生添加界面 (24)
5.1.3 学生添加界面 (26)
5.1.4 选修课添加界面 (29)
5.1.5学生界面 (32)
5.1.6个人信息 (33)
第六章系统测试 (36)
6.1 测试准备 (36)
6.2 测试的目标 (36)
6.3 测试方法 (37)
6.3.1 功能测试 (37)
6.3.2 性能测试 (37)
6.3.2 界面测试 (38)
6.4 测试技术 (38)
第七章结束语 (39)
致谢 (40)
参考文献 (41)
第一章绪论
1.1 背景
现在的社会日新月异,发展的非常快。
学校的发展也是非常的快了,而且每年都有不同的要求。
学生的量也非常的大,资料可能经常性的发生更换,原来手工的管理模式就显的不怎么的合适了。
而且手工的数据是存放在多处的,没有使用统一管理的模式,数据整理非常的麻烦,统计也困难,很多的情况下,老师都是在重复一些相同的工作。
做一些相似的报表,这样不但降低了工作效率,而且非常的容易出错。
在这种条件下,使用微机管理就显的非常的合适了。
只要你正确的录入,统计,报表输出一点问题都没有的。
学生做为学校的最主要的管理对象,学生档案管理系统就成了学校信息化管理系统中中不可缺少的部分,它的内容对于学校的管理者说都至关重要。
但一直以来人们使用传统人工的方式进行学生的档案管理,这种管理方式存在着许多缺点,如:效率低,容易出错,格式不规范。
另外时间一长,不容易进行统计和分析。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深
刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生档案进行管理,具有手工管理所无法比拟的优点。
例如:检索迅速、查找方便、可靠性高、存储量大、寿命长、成本低等。
这些优点能够极大地提高学校学生档案管理的效率。
因此,开发这样一套管理软件成为很有必要的事情。
而且只要软件的设计合理,可以为学校提供合理的管理模式。
1.2基于B/S结构技术的应用
B/S是Brower/Server的缩写,也就是所谓的浏览器/服务器模式B/S结构(Browser/Server结构)结构即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。
它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
目前我院内网(Intranet)、外网(Internet)和北京东方清大公司“案件、办公管理软件”就是B/S 结构管理软件,干警在局域网各工作站通过WWW浏览器就能实现工作业务。
随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S 型模式,即浏览器/服务器结构。
B/S模式最大特点是:用户可以通过WWW浏览器去访问Internet上的文本、数据、图像、动画、视频点播和声音信息,这些信息都是由许许多多的Web服务器产生的,而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。
客户端除了WWW浏览器,一般无须任何用户程序,只需从Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。
在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。
而各个企业可以在此结构的基础上建立自己的
Intranet。
B/S结构的优点
(1)具有分布性特点,可以随时随地进行查询、浏览等业务处理。
(2)业务扩展简单方便,通过增加网页即可增加服务器功能。
(3)维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
(4)开发简单,共享性强
第二章需求分析
2.1 开发目标
建立学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平。
帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化。
2.2项目的意义
学生成绩管理系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统能够为用户提供充足的信息和快捷的查询手段,但是一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点如:效率低,容易出错,格式不规范。
另外时间一长,不容易进行统计和分析随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻的认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生成绩管理进行操作,有着手工管理无法比拟的优点:检索迅速,查找方便,可靠性高,存储量大,保密性好,成本低等。
这些优点能够极大的提高人事劳资管理的效率,也是企业的科学化,正规化管理,与世界接轨的重要条件。
2.3可行性分析
可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能够解决。
考虑到系统开发时间、资源等因素,在实际开发该计算机系统时,常常要为资源不足和交付日期难以完成而苦恼,因而需要慎重地尽可能早地估价研制课题的可行性。
可行性研究包括:经济可行性、技术可行性、操作可行性、不同的方案等等。
2.3.1 经济上可行性
现在,计算机的价格已经十分低廉,性能却有了长足的进步。
而本系统的开发,为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:第一,本系统的运行可以代替人工进行许多繁杂的劳动;
第二,本系统的运行可以节省许多资源;
第三,本系统的运行可以大大的提高学校的工作效率;
第四,本系统可以使敏感文档更加安全,等等。
所以,本系统在经济上是可行的。
2.3.2 技术上可行性
本系统的开发利用Microsoft SQL Server2005作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。
学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。
使用java作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。
综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。
2.3.3 操作可行性
本系统为一个小型的学生信息管理系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,界面设计时充分考虑管理人员的习惯,使得操作简单;数据录入迅速、规范、可靠;统计准确;制表灵活;适应力强;容易扩充,因此,本系统在操作上是可行的。
2.4主要研究内容
(1)能够浏览学生成绩的所有信息
(2)能够对学生的信息注册登记管理
(3)学生成绩资料的数据库建立和管理
(4)能够通过学生的一个信息找到个人成绩的相关信息(例如:知道学生的学号能够找到该学生的所有有关的成绩信息)
(5)通过一条信息找到与之匹配的信息(例如:查询同一专业的所有人员)(6)相关人员能对包含学生的成绩信息进行管理
(7)多用户数据安全管理,保证各部门的数据安全、完整,对每个使用本系统用户进行权限的设置
(8)简易操作,不需要计算机专业人员
(9)学生成绩添加、删除和修改,包括学生的学号、姓名、课程名称、学分、成绩
(10)成绩查询,查询条件为学生学号、姓名、课程名称等信息的综合查询,允许管理员模糊查询,查询结果以图表形式列出学生信息查询,查询条件为学生学号、姓名、身份证号等信息的综合查询,查询结果以图表形式列出
2.5系统环境需求
编程语言:JAVA
Java + Eclipse + SQL server数据库
开发工具:Eclipse SDK(英文版)
数据库:SQL 2005(中文版)
运行环境:Windows xp或windows 7
第三章系统分析
3.1 系统分析
学生成绩管理系统的要求是能够管理学生成绩信息,主要涉及到学生的基本信息、成绩信息的管理。
学生的成绩是需要人工录入的,因此系统就需要设计一个学生成绩信息录入的窗口来录入学生成绩,并且在这个窗口中放入一个数据窗口来实现录入这方面信息的功能。
系统还要求具有查询成绩和修改成绩的功能,因此为了显示查询结果,就要涉及2个数据窗口,并将其放在查询成绩和修改成绩的窗口中实现查询和修改功能。
由于查询、修改成绩和录入成绩有区别,因此为了更好的实现相应的功能,设计的数据窗口也要不同,分别采用两种风格的数据窗口实现。
由于该系统是学校管理学生成绩信息的系统,因此必须具有一定的保密性,需要特定的人员才可以修改,因此需要设计一个用户登陆的窗口,使具有访问权限的用户才能登陆此系统。
为了简单化,系统的主窗口要能够在用户选中相应操作后,调出相应的窗口来使用户在窗口中完成相应的功能。
3.2 应解决的问题
3.2.1合理的设计数据库
尽量合理地减少数据库数据的冗余,使重复的数据保持在最小限度,这样将不必要的多占用存储空间,减少产生混乱影响的危险,还能提高计算机的运行速度。
作为学生成绩管理系统,必须能解决以下方面的问题:能录入信息。
所需录入的表友:(1)学生成绩信息表
(2)学生基本信息表
(3)教师基本信息表
3.2.2设计出友好的界面
界面的友好与否是用户评价一个软件优劣的重要方面。
因为该系统涉及到学生成绩的真实性,所以该系统要具有一定的保密性和权限控制,首先应设计一个用户的登陆窗口界面,要求只有由特定的人员对该系统进行操作。
此外还应设计登陆后系统的主窗口,要求能够显示学生成绩的基本信息,可以实现数据的录入、更新、删除、查询等功能。
另外窗口界面要多用按钮,少用菜单,窗口的各个控件布局要合理,美观。
要充分利用java.awt和java.swing提供的强大功能,充分体现窗口的多元化格局。
3.2.3实现的基本功能
该系统要求除了能实现信息的录入、删除、插入、更新等基本功能之外,还要求能根据用户的需要进行操作。
例如要查询学生成绩,要求可以按照专业、班级等多种方式查询。
这些功能基本上能满足用户的操作需要,这样用户用起来就
更简单方便。
部分文本框使用下拉式,使用户可以不用花费大量的时间去输入信息
3.3 系统调查
调查内容包括学生,课程,以及成绩存储的格式信息,用户对系统的基本功能要求。
3.3.1 统计数据源
由于本系统主要是进行学生成绩管理,因此涉及到的信息包括学生信息,学生成绩,数据源也主要是这些。
3.3.2 功能调查
此系统能及时完成数据的添加、删除、修啊、查询等功能。
查询结果显示主要是数据窗口显示
3.3.3查询结果输出形式
查询结果据形式为屏幕显示。
3.4 系统模块结构图
图3-1系统功能结构模块图
3.5 系统业务流程图
首先是进入登录界面,如图3.4所示,本页面显示系统名称,密码校验等信息,本系统的用户分为三类:管理员,教师,学生。
使用者可以在组合框中选择所要登录的用户的类型,并输入相应的用户名和密码,单击“确定”就会将输入提交给系统以验证用户、密码及身份。
如果用户类型及密码正确,就会进入与用户相对应的界面。
3.5.1 系统总业务流程图
图3-2系统总业务流程图
3.5.2 登录业务流程图
图3-3系统登录业务流程图
第四章数据库设计
4.1 数据库系统分析
本系统的数据库实体主要有“学生”、“教师”、“管理员”、“课程”等。
其中“教师”与“课程”存在“授课”联系,并且一个教师可以授课n门课程,即“教
师”与“课程”之间是一对多的关系。
一个学生可以学习n门课程,一门课程可以有m个学生学习,即“学生”与“课程”之间是多对多的关系。
其中“管理员”与“课程”存在“开课”联系,并且一个管理员可以开设n门课程,即“管理员”与“课程”之间是一对多的关系。
整个数据库可以用一个E-R图表示,如图:
图4-1 整体E-R图
图4-2 学生E-R实体图
图4-3 教师E-R实体图
图4-4 管理员E-R实体图
图4-5 课程E-R实体图
4.2 调查结果
4.2.1 功能需求
1)完成学生成绩的管理,具有查阅、添加、删除、修改等基本功能。
2)完成按照指定条件查询
3)非管理员不能对系统中的数据进行添加、删除、修改。
4.2.2 数据字典
1 )学生登陆表表的情况:(学生编号;密码)
2 )教师表的情况:(教师编号;密码)
3 )学生信息表情况:(学号;姓名;性别;籍贯;系别;专业;班级;课
程名)
4 )课程表情况:(课程编号;课程名)
5 )成绩表情况:(学号;对应课程的成绩)
4.2.3数据库表的具体设计
表2-1 : 学生登陆表
表2-2 : 教师登陆表
表2-3 :学生基本信息表
表2-4 :课程表
表2-4 :成绩表
第五章系统功能和代码编写
5.1系统模型实际
本界面的主要功能是为了对系统进行安全性管理,本系统的用户名和密码保存在Admins表中,可以用admin;admin为用户名和密码来登陆本系统,其登录界面如下:
图2-1 登陆界面
代码:
public void Method_Login()
{
String query = null;
if(choice_category.getSelectedIndex()==0){
category_identity = true;//身份类别标志,true为教师登陆
if(jTextField_name.getText().length()>0){
String password = new String
(jPasswordField_password.getPassword());
query="SELECT * FROM teacher WHERE teachername
='"+jTextField_name.getText()+"' and teacherpassword='"+password+"'";
if(Method_Verification(query)){
JOptionPane.showMessageDialog(StudentManagementSystem.this,"登陆成功");//提示登陆成功
jFrame_teacher.setVisible(true);
dispose();
}
else
JOptionPane.showMessageDialog(StudentManagementSystem.this,"密码错误");//否则提示密码错误
}
else
JOptionPane.showMessageDialog(StudentManagementSystem.this,"请输入用户名!");
}
else
{ category_identity = false;//身份类别标志,false为学生登陆studentnumber = jTextField_name.getText();
if(jTextField_name.getText().length()>0){
String password = new String(jPasswordField_password.getPassword()); query="SELECT * FROM studentuser WHERE number='"+
jTextField_name.getText()+"' and studentpassword='"+password+"'";
if(Method_Verification(query))
{
JOptionPane.showMessageDialog(StudentManagementSystem.this,"登陆成功");//提示登陆成功
jFrame_student.setVisible(true);
dispose();
}
else
JOptionPane.showMessageDialog(StudentManagementSystem.this,"密码错误");//否则提示密码错误
}
else
JOptionPane.showMessageDialog(StudentManagementSystem.this,"请输入用户名!");
}
}
5.1.1系统主界面
本模块是本系统的主功能界面,在本界面上集成了本系统的所有功能,共有个功能菜单,从而实现了本系统从信息管理、成绩管理、页面管理等系统的具体功能,同时,在系统管理模块中可以完成对本系统的安全性管理。
图2-2系统主界面
代码:
public static Point getMidDimesion(Dimension d)//获得屏幕中间的坐标
{
Point p = new Point();
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); p.setLocation((dim.width - d.width)/2,(dim.height - d.height)/2);
return p;
}
public Image getImage(String url){
Image image = null;
url = System.getProperty("user.dir")+"/images/"+url;
//获得图片的相对路径+图片所在文件夹
url = url.replaceAll("\\\\", "/").replaceAll("/src", "");
//修改路径,将路径中的\换成/
image =new ImageIcon(url).getImage();
return image;
}
//固定背景图片,允许这个JPanel可以在图片上添加其他组件
protected void paintComponent(Graphics g){
g.drawImage(image, 0, 0, this.getWidth(),this.getHeight(),this);
}
private JTextField getJTextField_name() {
if (jTextField_name == null) {
jTextField_name = new JTextField();
jTextField_name.setBounds(new Rectangle(114, 84, 173, 28));
jTextField_name.setToolTipText("教师的用户名是自己工作号,学生的用户名是自己的学号");
jTextField_name.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent e) {
if(e.getKeyChar() == KeyEvent.VK_ENTER){
Method_Login();
}}})}
return jTextField_name;
}
5.1.2 学生添加界面
通过该功能可以添加学生信息,如学号、姓名、性别、籍贯、系别、专业、班级几个基本信息。
图2-3 学生添加
private JTextField getJTextField_number() {
if (jTextField_number == null) {
jTextField_number = new JTextField();
jTextField_number.setFont(new Font("楷体",Font.PLAIN,16));
jTextField_number.setBounds(new Rectangle(79, 18, 140, 29));
jTextField_number.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent e) {
if(e.getKeyChar() == KeyEvent.VK_ENTER){
Method_Add_Student_Information();
}
}
});
}
return jTextField_number;
}
private JTextField getJTextField_studentname() {
if (jTextField_studentname == null) {
jTextField_studentname = new JTextField();
jTextField_studentname.setFont(new Font("楷体",Font.PLAIN,16));
jTextField_studentname.setBounds(new Rectangle(300, 18, 140, 29));
jTextField_studentname.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent e) {
if(e.getKeyChar() == KeyEvent.VK_ENTER){
Method_Add_Student_Information();
}
}
});
}
return jTextField_studentname;
}
5.1.3 学生添加界面
该功能通过选择学生,对学生信息和成绩的查询,然而对学生信息和成绩的操作修改。
如图:
图2-4查询学生
private JPanel getJContentPane_query() {
if (jContentPane_query == null) {
jLabel_query_explain= new JLabel("请选择要查询的学生!",JLabel.CENTER);
jLabel_query_explain.setFont(new Font("楷体",Font.PLAIN,13));
jLabel_query_explain.setForeground(Color.red);
jLabel_query_explain.setBounds(new Rectangle(68, 18, 144, 26));
jContentPane_query = new MyPanel(getImage("查询.jpg"));
jContentPane_query.setLayout(null);
jContentPane_query.add(getJButton_query_ok(), null);
jContentPane_query.add(getJButton_query_return(), null);
jContentPane_query.add(jLabel_query_explain, null);
jContentPane_query.add(getChoice_query(), null);
}
return jContentPane_query;
}
图2-5成绩录入
代码:
public void Method_Del_Curriculum(){
String st = choice_del_curriculum.getSelectedItem();
choice_del_curriculum.remove(st);
String query = "DELETE FROM curriculum WHERE curriculum='"+st+"'";
Method_del_curriculum(query);
}
public void Method_Teacher_Print_All_Curriculum(){
String result = Method_teacher_query_all_curriculum();
String a[] = result.split("@");//将数据库返回的字符串截取
int i = 0;
while(i<a.length){
choice_del_curriculum.add(a[i]);
i++;
}
}
public void Method_Student_Print_All_Curriculum(){
String result = Method_student_query_all_curriculum();
String a[] = result.split("@");//将数据库返回的字符串截取
jTextField_curriculum_number.setText(studentnumber);
jTextField_curriculum_name.setText(a[0]);
int i=1;
while(i<a.length){
choice_curriculum.add(a[i]);
i++;
}
}
5.1.4 选修课添加界面
该功能添加选修课的课程名。
如图:
图2-6添加选修课
private JFrame getJFrame_add_curriculum() {
if (jFrame_add_curriculum == null) {
jFrame_add_curriculum = new JFrame("添加选修课程名");
jFrame_add_curriculum.setDefaultCloseOperation(JFrame.EXIT_ON_CL OSE);
jFrame_add_curriculum.setResizable(false);
jFrame_add_curriculum.setSize(new Dimension(349, 176));
jFrame_add_curriculum.setLocation(StudentManagementSystem.getMidD imesion(jFrame_add_curriculum.getSize()));
Image image = getImage("添加选修课程名.jpg");
jFrame_add_curriculum.setIconImage(image);
jFrame_add_curriculum.setContentPane(getJContentPane_add_curriculu m());
}
return jFrame_add_curriculum;
}
private JPanel getJContentPane_add_curriculum() {
if (jContentPane_add_curriculum == null) {
jLabel_add_curriculum = new JLabel("<html>新增选修<br>  课程名</html>",JLabel.CENTER);
//上面是标签里显示多行文字的方法, 是HTML中空格的代码,不然在这里是不能显示出来的
jLabel_add_curriculum.setFont(new Font("楷体",Font.PLAIN,12));
jLabel_add_curriculum.setBounds(new Rectangle(55, 18, 59, 41));
jContentPane_add_curriculum = new MyPanel(getImage("添加选修课程名.jpg"));
jContentPane_add_curriculum.setLayout(null);
jContentPane_add_curriculum.add(jLabel_add_curriculum, null);
jContentPane_add_curriculum.add(getJTextField_add_curriculum(), null);
jContentPane_add_curriculum.add(getJButton_add_curriculum_ok(), null);
jContentPane_add_curriculum.add(getJButton_add_curriculum_return(), null);
}
return jContentPane_add_curriculum;
}
private JTextField getJTextField_add_curriculum() {
if (jTextField_add_curriculum == null) {
jTextField_add_curriculum = new JTextField();
jTextField_add_curriculum.setBounds(new Rectangle(129, 25, 154, 29));
jTextField_add_curriculum.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent e) {
if(e.getKeyChar() == KeyEvent.VK_ENTER){
Method_Add_Curriculum();
}
}
});
}
return jTextField_add_curriculum;
}
5.1.5学生界面
学生信息管理系统,包含的功能主要有个人信息的查询,成绩的查询,选课,重新选课,删除选课,修改密码,注销,退出等功能。
学生可以通过该界面操作,完成在校选课和学习的课程。
图2-7学生界面
jButton_exit = new JButton("退出");
jButton_exit.setFont(new Font("楷体",Font.PLAIN,12));
jButton_exit.setBounds(new Rectangle(173, 196, 65, 28));
jButton_exit.addMouseListener(new
java.awt.event.MouseListener() {
public void mouseClicked(java.awt.event.MouseEvent e) {
System.exit(0);
}
public void mousePressed(java.awt.event.MouseEvent e) {
}
public void mouseReleased(java.awt.event.MouseEvent e) {
}
public void mouseEntered(java.awt.event.MouseEvent e) {
}
public void mouseExited(java.awt.event.MouseEvent e) {
}
});
5.1.6个人信息
个人信息界面,包括学号、、姓名、性别、选课、籍贯、系别、专业、成绩等一些列问题的查询。
图2-8个人信息
private JButton getJButton_del_information_ok() {
if (jButton_del_information_ok == null) {
jButton_del_information_ok = new JButton("确定");
jButton_del_information_ok.setFont(new Font("楷体",Font.PLAIN,13));
jButton_del_information_ok.setBounds(new Rectangle(64, 105, 60, 30));
jButton_del_information_ok.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
Method_Del_Information();
choice_del_information.removeAll();
}
});
}
return jButton_del_information_ok;
}
private JButton getJButton_del_information_return() {
if (jButton_del_information_return == null) {
jButton_del_information_return = new JButton("返回");
jButton_del_information_return.setFont(new Font("楷体",Font.PLAIN,13));
jButton_del_information_return.setBounds(new Rectangle(189, 105, 60, 30));
jButton_del_information_return.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
jFrame_del_information.setVisible(false);
jFrame_teacher.setVisible(true);
choice_del_information.removeAll();
}
});
}
return jButton_del_information_return;
}
第六章系统测试
系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统是否达到用户的实际要求,系统测试的依据是系统分析报告。
系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。
系统测试与建构同时进行或略慢。
系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免系统测试延到项目末尾进行。
6.1 测试准备
1. 在测试前,将详细设计书和程序进行手工debug,尽早掌握测试的结果。
2. 测试时,必须以"bug是一定存在的"心态进行。
3. 编程阶段必须注意的,从编程一开始,"bug是不允许的"作为编程的信念尽
量利用已有的程序或者是模块进行模块化编程。
4. 对每一个测试情形,测试结果必须事先想象出来。
(1) 编程时已经考虑的情形,不能有错误发生。
(2) 编程时没有考虑的情形,要作相应的测试数据进行测试。
5. 程序的bug的发生,通常是程序员或者用户认为不会发生的情况下发生的
6. 很多的bug往往发生在对测试结果没有进行仔细完全的检查的基础之上。
7. bug的特性,发现bug越多的程序,潜在的bug也就越多。
8. 如果存在一个bug,别的bug存在的可能性时很高的。
(1) 不能只看到bug的表面现象,必须找到产生bug的原因。
(2) bug修改时,产生新的bug的可能性时非常高的。
(3) bug修改后,必须仔细检查和测试,保证新的代码时正确有效的。
6.2 测试的目标
1.测试是一个为了发现错误而执行程序的过程。
2.一个好的测试用例是揭示了迄今尚未发现错误的测试。
3.一个成功的测试是揭示了迄今为止尚未发现的错误的测试。
进行软件工程研究的先辈们已经帮我们统计出Praetor原则,那就是说测试
发现的错误的80%往往由程序模块中的20%产生,所以我在测试时往往比较侧重出现错误比较多的模块。
当然这并不是说其他模块的测试不重要,而是说这样做的效率会比较高而且比较有针对性。
6.3 测试方法
6.3.1 功能测试
1. 链接测试:测试所有链接是否按指示的那样确实链接到了应该链接的页面;测试所链接的页面是否存在;保证成绩管理系统没有孤立的页面。
所谓孤立页面是指没有链接指向该页面,只有知道正确的URL 地址才能访问,链接测试可以手动进行,也可以自动进行。
链接测试必须在集成测试阶段完成,也就是说,在整个成绩管理系统的所有页面开发完成之后进行链接测试。
2. 表单测试:表单提交应当模拟用户提交,验证是否完成功能,如添加用户,要确保提交按钮能正常工作,当添加完成后应返回添加成功的消息。
要测试这些程序,需要验证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信息。
还有数据正确性验证,异常处理等,最好结合易用性要求等。
B/S结构实现的功能可能主要的就在这里,提交数据,处理数据等如果有固定的操作流程可以考虑自动化测试工具的录制功能,编写可重复使用的脚本代码,可以在测试、回归测试时运行以便减轻测试人员工作量。
3.数据校验:根据业务规则,需要对用户输入进行校验,则要保证这些校验功能正常工作。
例如:地址的字段可以用一个有效列表进行校验。
需要验证列表完整性;程序是否正确调用了该列表;列表操作是否正确,如在列表中添加一个测试值。
数据校验测试和表单测试可能会有一些重复。
6.3.2 性能测试
1.压力测试:压力测试目的是要弄清楚被测试的系统是不是不仅能做我们认为它能做的事,而且在被施加了某些高强度压力的情况下仍然继续正常运行。
(1)重复(Repetition):测试的重复就是一遍又一遍地执行某个操作或功能。
比如重复调用系统功能模块中的某一个操作,确定操作能否正常执行,并且能否。