学生成绩管理系统设计与实现Word格式.docx
《学生成绩管理系统设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统设计与实现Word格式.docx(26页珍藏版)》请在冰豆网上搜索。
![学生成绩管理系统设计与实现Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/5/11c95e40-d22c-4356-acb8-10b869b1f371/11c95e40-d22c-4356-acb8-10b869b1f3711.gif)
一个学校的信息化程度体现在将计算器与信息技术应用于教学与管理,以现代化工具代替传统手工作业。
无疑,使用信息化管理使教学更先进、办公更高效、管理更科学,信息交流更迅速。
学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情,故决定选择学生成绩管理系统来作为本人的毕业设计,在很短的时间里开发出一套界面友好,功能强大,使用简单的适用于各规模学院的学生成绩管理系统。
该学生成绩管理系统能有效的处理在校学生的成绩管理,具有成绩输入、成绩查询、成绩统计及打印功能。
学生成绩管理系统可以实施应用在各中、大、小院校中,适用范围很广,应用性强。
随着系统实施的日益成熟,最终会使单机作业为主的教学管理活动提高到这个平台上来,从而实现学校学生成绩信息管理的办公自动化,籍以提高办学效率和质量。
使学校充分利用计算机所带来的新技术,为培养人才打下坚实的基础。
第一章相关技术简介
1.1java语言简介
Java语言是sun公司与1995年5月正式发布的程序设计语言,他的前身是sun公司为智能消费类家用电器研究而开发的项目的一部分。
Java程序设计语言是新一代语言的代表,他强调了面向对象的特性,可以用来开发范围广泛的软件,它具有支持图形化的用户界面,网格以及数据库连接等复杂功能。
Java语言的主要特点:
1)易于学习
Java语言很简单,对于熟悉C++的程序设计人员更不会对其感到陌生,因为它的语法非常接近于C++,但他同时摒弃了C++许多的复杂易混淆的功能。
利用java同样可以变质出非常复杂的系统,且运行占用很少的内存资源。
2)高效率的执行方式
Java语言的执行方式是采用先经过编译器编译,在通过解释器解释执行的方式来运行的。
他综合了解释性语言与编译语言的众多有点,使其执行效率较以往的程序设计语言有了大幅度的提高。
3)与平台的无关性
由于iava语言是解释执行的,他会被转换成一种字节码的“目标程序“。
因此它可以跨平台运行
4)分布式安全性
Java从诞生之日起就与网络联系在了一起,他强调网络特性,内置TCP\IP,HTTP,FTP协议库,便于开发网上应用系统。
5)丰富的API文档和类库
Java为用户提供了详尽的API(ApplicationProgramInterface)文档说明。
1.2C/S模型优势
1.2.1什么是C/S结构
C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。
它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。
目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;
因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。
这也就是目前应用系统的发展方向。
传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。
由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。
而且代价高,效率低。
如我院使用的上海超兰公司“案件统计”管理软件就是典型的C/S体系结构管理软件。
1.2.2C/S架构软件的优势与劣势
1.应用服务器运行数据负荷较轻。
最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。
二者可分别称为前台程序与后台程序。
运行数据库服务器程序的机器,也称为应用服务器。
一旦服务器程序被启动,就随时等待响应客户程序发来的请求;
客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。
2.数据的储存管理功能较为透明。
在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。
所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。
在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。
在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。
3.C/S架构的劣势是高昂的维护成本且投资大。
首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。
第二章系统分析
2.1系统分析
学生成绩管理系统的要求是能够管理学生成绩信息,主要涉及到学生的基本信息、成绩信息和学校的授课计划信息的管理。
学生的成绩是需要由人工录入的,因此系统就需要设计一个学生成绩信息录入的窗口来录入期考成绩,并且在这个窗口中放入一个数据窗口来实现录入这方面信息的功能。
系统还要求具有查询期考成绩的功能,因此为了显示查询结果,就要设计一个数据窗口,并将其放在查询期考成绩的窗口中实现查询功能。
由于查询成绩和录入成绩有区别,因此为了更好的实现相应的功能,设计的数据窗口也要不同,分别采用两种风格的数据窗口实现。
系统要求能够录入授课计划和学生基本信息,必须设计录入授课计划窗口和录入学生基本信息窗口来实现相应功能。
由于该系统是学校管理学生成绩信息的系统,因此必须具有一定的保密性,需要特定的人员才可以修改,因此需要设计一个用户登陆的窗口,使具有访问权限的用户才能登录此系统。
为了简单化,我们的用户名和用户密码和数据库本身的用户名密码相同。
系统的主窗口要能够在用户选中相应操作后,调出相应的窗口来使用户在窗口中完成相应的功能。
2.2应解决的问题
2.2.1合理的设计数据库
尽量合理地减少数据库数据的冗余,使重复的数据保持在最小限度,这样将不必要的多占用存储空间,减少产生混乱影响的危险,还能提高计算机的运行速度。
作为学生成绩管理系统,必须能解决以下方面的问题:
能录入信息。
所需录入的表有①学生成绩信息表;
②学生基本信息表;
③授课计划表;
2.2.2设计出友好的界面
界面的友好与否是用户评价一个软件优劣的重要方面。
因为该系统涉及到学生成绩的真实性,所以该系统要具有一定的保密性和权限控制,首先应设计一个用户的登陆窗口界面,要求只能由特定的人员对该系统进行操作。
此外还应设计登陆后系统的主窗口,要求能够显示学生成绩的基本信息,可以实现数据的录入,更新,删除、查询、统计等功能。
另外窗口界面要多用按钮,少用菜单,窗口的各个控键布局要合理,美观。
要充分的利用java.awt和java.swing提供的强大的功能,多用窗口和控件,充分体现窗口的多元化格局。
2.2.3实现的基本功能
该系统要求除了能实现信息的录入,删除,插入,更新,数据导出excel文件等基本功能之外,还要求能够根据用户的需要进行操作。
例如要查询学生成绩,要求可以按照专业、班级等多种方式查询。
这些功能基本上能满足用户操作的需要,这样用户操作起来就更简单方便。
部分文本框使用了下拉式,使用户可以不用花费大量的时间去输入信息。
2.3系统调查
调查内容包括学生,课程,以及成绩存储的格式信息,用户对系统的基本功能要求。
2.3.1统计数据源
由于本系统主要是进行学生成绩管理,因此涉及到的信息包括学生信息,授课计划,学生成绩信息,数据源也主要是这些。
2.3.2功能调查
此系统能及时完成数据的添加、删除、修改、查询、统计等功能,必须还具有打印报表功能。
查询结果显示主要是数据窗口显示。
2.3.3查询结果输出形式
查询结果数据形式包括:
屏幕显示和保存为excel格式文件输出。
2.4调查结果
2.4.1功能需求
1)完成学生成绩和授课计划的管理,具有查阅、添加、删除、修改、统计等基本功能。
2)完成按照指定条件查询。
3)完成所需报表的打印。
4)非管理员不能使用本系统。
2.4.2数据字典
(1)学生基本情况表(学号,姓名,性别,院系,专业,班级,电话,入学时间,籍贯,备注)
(2)课程信息(课程号,课程名,任课老师,学分,平时分比例,课程类型,开课时间)
(3)成绩信息(学号,课程号,平时成绩,卷面成绩,总成绩)
第三章系统总体设计
3.1表结构设计
3.1.1表的选取
根据该系统的要求以及可能将来和其它学生信息管理系统结合,本系统需要有一个管理学生的基本信息的表;
作为成绩管理系统,要有成绩表;
需要包括课程的信息表,这就要建立一个课程表。
以这三个表作为基础,输出不同的结果表示形式。
3.1.2表的规范化
表的规范化是一系列能够应用到数据库结构上的测试,通过这些测试可以消除数据的冗余程度,使数据库结构处于一种优化形式,测试方法有:
对于每一行和列的交叉点,是否仅有一个值;
是否所以非主码列依赖全部主码;
表中是否有依赖其它非主码列的非主码列。
3.1.3表的具体设计
根据实现学生成绩管理所涉及的数据,设计的表的结构如下:
(注:
带有‘P’标记的列为主码列)
表3.1学生基本信息表
字段名
数据类型
长度
空
默认值
备注
Sno
char
11
No
none
p
Sname
Char
8
Ssex
2
None
Sdepart
15
Ssubject
Snative
Stelep
10
Sclass
Scometime
Remark
50
Yes
表3.2课程信息表
Cno
Cname
Cteacher
Ccredit
4
persent
Type
Term
remark
表3.3成绩信息表
P
score
int
/
tscore
total
3.2模块设计
模块化就是把程序分为若干个模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,可以完成指定的功能并满足问题的要求。
开发具有独立功能而且和其他模块之间没有相互作用的模块,就可以做到模块独立。
模块的独立程度可以由两个定性的标准来度量,这两个标准分别称为内聚和耦合。
耦合衡量不同模块彼此间相互依赖的紧密程度;
内聚衡量一个模块内部各个元素彼此结合的紧密程度。
设计时,应力求提高模块的内聚程度,降低模块间的耦合程度。
学生成绩管理系统此标准可分为用户登陆、输入数据、查询数据、数据导入导出等模块。
(如图3.1)
图3.1系统模块划分
3.2.1数据输入子模块功能设计
学生成绩信息量很大,不定期都会有新的数据产生,同时有报废的数据淘汰,根据这些要求,数据输入子模块应具有插入、删除、修改等功能。
其基本功能如下(图3.2):
(1)新生信息备案
完成学生基本信息的添加与删除
(2)学生信息修改
按学号筛选,显示要修改的学生档案,并修改。
(3)授课信息备案
完成课程基本信息的添加与删除
(4)授课信息修改
按课程号筛选,显示要修改的学生档案,并修改。
(5)考试成绩备案
按班级或专业输入学生成绩,并可修改、删除,打印报表。
(6)毕业成绩备案
按学号筛选,将学生大学期间所有课程那学期排列汇总成表打印输出
图3.2毕业成绩备案
3.2.2数据查询子模块功能设计
当学生成绩管理员需要查询有关成绩信息时,就可以进入查询模块,此模块具备单一查询和组合查询功能,并且可以将结果输出报表打印。
其基本功能如下:
(1)学生,课程,成绩信息的浏览
打开学生界面时,将显示所有学生信息;
打开课程界面时,显示所有课程信息;
打开成绩界面时,显示所有学生的各科成绩。
结果可以输出或导出到excel文件中
(2)学生信息查询
按学号,姓名,专业,入学时间或班级查询学生信息,可按单条信息查询也可组合查询。
(3)课程信息查询
按课程号,课程名,任课老师,课程类别或开课时间查询课程信息,结果可以输出或导出到excel文件中
(4)成绩信息查询
按学号,课程名,专业,班级,开课时间或成绩范围查询学生信息,可按单条信息查询也可组合查询。
3.2.3数据导入导出模块设计
在不同的界面上都有导入和导出按钮,点击导入按钮选择一定格式内容的excel文件,将把文件中的内容导入到数据库中。
点击导出按钮可将当前界面中的相关数据保存到指定的excel文件中。
1.导入数据流程图(如图3.3)
图3.3数据导入流程图
2.导出数据流程图(如图3.4)
图3.4数据导出数据流程图
3.2.4系统维护子模块的功能设计
在系统维护模块里,学生成绩管理员可以自动备份数据,系统出现错误或出现其他对数据具有破坏危害的问题,可以通过手动还原数据库,使用帮助命令更好的使用此系统。
第四章程序详细设计
设计应用程序的步骤如下:
1)环境配置。
2)创建用户界面,菜单
3)向用户界面中个部件添加相应功能
4.1环境配置
本系统是基于C/S体系结构的系统,在其上添加具体操作功能而完成的客户端对数据库中数据相应的查询,修改,删除及导入导出等功能。
在其中也用到了一些java/swing。
前端界面通过JDBC与后台数据库取得联系,用户在应用端对数据库中的相关数据进行操作,并根据需要导出数据到excel文件中。
1.系统开发环境:
数据库SQLServer2000,程序编辑器Jbiuder2006,JAVA开发环境J2SDK,JDBCDriver.
2.系统配置:
(1)安装j2sdk后,配置以下环境变量,在我的电脑->
属性->
高级->
环境变量中添加以下环境变量(j2sdk安装在C:
\ProgramFiles\Java\jdk1.5.0_04):
JAVA_HOME=C:
\ProgramFiles\Java\jdk1.5.0_04
classpath=.;
%JAVA_HOME%\lib\dt.jar;
%JAVA_HOME%\lib\tools.jar;
path=%JAVA_HOME%\bin
(2)安装Jbuilder2006.
(3)安装JDBCDriver.
(4)下载jxl包,并将引入JBuilder2006中。
如图4.1:
图4.1引入jxl包
4.2创建用户界面
4.2.1用户登陆界面
图4.2用户登录
4.2.2主控制界面
1.学生信息界面(图4.3)
图4.3学生信息
2.成绩信息界面(图4.4)
图4.4成绩信息
3.课程信息界面(图4.5)
图4.5课程信息
4.2.3主菜单
图4.6主菜单
4.3用户界面中各个控件功能
4.3.1数据库的创建及连接
(1)创建SQLServer数据库驱动实例
Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
);
(2)SQLServer数据库连接
Connectioncon;
con=DriverManager.getConnection("
jdbc:
odbc:
数据库名称"
"
用户名"
数据库密码"
4.3.2数据显示窗口显示功能
当用户执行某项操作后,数据窗口将刷新并显示相应的操作结果
publicvoidshowTable(ResultSetrs){//将数据显示在表格内
VectordataItme=null;
DefaultTableModeltModel=newDefaultTableModel(studetngradevector,0);
try{
while