基于JAVA的综合测评系统设计与开发Word文档下载推荐.docx
- 文档编号:21110612
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:27
- 大小:326.32KB
基于JAVA的综合测评系统设计与开发Word文档下载推荐.docx
《基于JAVA的综合测评系统设计与开发Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于JAVA的综合测评系统设计与开发Word文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。
Access还提供了强大的管理模型,它以图形化用户界面和向导为基础。
Access的结构可以适应模块化增长、自动化配制、维护比较小规模的服务器程序开发的需要。
2.2Java及JavaApplet简介
Java最早大概可追溯至1991年四月份,Sun的绿色计划(GreenProject)开始着手于发展消费性电子产品(ConsumerElectronics),所使用的语言是C、C++、及Oak(为Java语言的前身),后因语言本身和市场的问题,使得消费性电子产品的发展无法达到当初预期的目标,再加上网络的兴起,绿色计划也因此而改变发展的方向,最终导致Java的产生[4]。
Java是一种简单的、面向对象的、健壮的、安全的、解释的、与平台无关的、多线程的、动态的语言。
JavaApplet是用Java语言编写的一些小应用程序,这些程序直接嵌入到页面中,由支持Java的浏览器(IE或Nescape)解释执行能够产生特殊效果。
它可以大大提高Web页面的交互能力和动态执行能力。
包含Applet的网页称为Java-powered页,可以称其为Java支持的网页[5]。
当用户访问这样的网页时,Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。
由于Applet是在用户的计算机上执行的,所以它的执行速度不受网络带宽或者Modem存取速度的限制,用户可以更好地欣赏网页上Applet产生的多媒体效果。
Applet小应用程序的实现主要依靠java.applet包中的Applet类。
与一般的应用程序不同,Applet应用程序必须嵌入在HTML页面中,才能得到解释执行;
同时Applet可以从Web页面中获得参数,并和Web页面进行交互。
含有Applet的网页的HTML文件代码中必须带有<
APPLET>
和<
/APPLET>
这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小程序代码并在本地计算机上执行该Applet小程序。
Applet小程序也可以通过Java开发工具的appletviewer来运行。
Applet程序离不开使用它的HTML文件。
这个HTML文件中关于Applet的信息至少应包含以下三点:
1)字节码文件名(编译后的java文件,以.class为后缀);
2)字节码文件的地址;
3)在网页上显示Applet的方式。
由于用HTML(超文本标志语言)编写的网页是静态的且不具备与用户交互的能力,JavaApplet广泛用于在网页上添加动态、交互成份[6]。
因为Applet是从远端服务器上下载并且在本地执行,所以安全性就显得格外重要。
通过限制Applet在沙箱(Applet的运行环境)中运行,从而保证了对本地系统而言Applet是安全的。
Applet在沙箱中运行时:
1)不能运行任何本地可执行程序;
2)除了存放下载的Applet的服务器外,Applet不能和其它主机进行通信;
3)不能对本地文件系统进行读写。
(信任的Applet放宽这一限制);
4)除了本地机使用的Java版本号、操作系统名称及版本号、文件名分隔符(‘/’或‘\’)和路径以外,Applet无法获得有关本地机的其他信息。
Applet也无法获得使用者的名字和E-mail地址等[7]。
3综合测评系统分析设计
3.1需求分析
根据计算机科学与工程系综合测评评分细则以及广大同学计算综合测评的经历,整理得到该系统的功能需求为:
1、用户只要根据列出的得分项进行选择,以及少量的数据输入就可以计算出自己的综合测评成绩。
2、用户将自己计算好并核对过的综合测评成绩上传,为防止恶意用户随意修改合法用户的成绩,成绩上传前必须进行用户合法性的验证,合法用户方能将自己的综合测评成绩上传至服务器端的数据库。
同时,合法用户也可以随时修改自己的密码。
3、用户可以根据自己的需要进行查询:
1)输入学号,就可以精确得到该位同学的综合测评的得分、排名等情况
2)查询所有学生的综合测评得分情况,并按学号顺序排列显示
3)查询业务学习成绩大于等于或小于某一值的所有学生的综合测评得分情况,并按业务学习成绩从高到低排列显示
4)查询综合测评成绩大于等于或小于某一值的所有学生的综合测评得分情况,并按综合测评成绩从高到低排列显示
5)查询业务学习成绩大于或小于某一值且综合测评成绩大于等于或小于某一值的所有学生的综合测评得分情况,并按学号的顺序排列显示。
4、用户可以查看全班同学的业务学习成绩及综合测评成绩各个得分段的比例,更好地了解班级的综合测评情况。
3.2系统整体框架
根据系统的功能需求,分析出系统的框架为:
图1综合测评系统总体框架图
图2综合测评计算框架图
图3综合测评查询框架图
3.3模块功能说明
1、政治素质
该模块能够将所有的政治素质方面的得分项列出来,供用户选择自己的得分情况,然后计算出政治素质的得分。
法纪观念、学习态度、品德修养、劳动实践、奖惩得分与政治素质模块的功能相似,都是计算各自的得分,所以在此不一一阐述。
2、政治思想素质
该模块则将政治素质、法纪观念、学习态度、品德修养、劳动实践、奖惩分各个模块组合,以整体的方式显示给用户,并能将各个小模块的得分情况相加,得出政治思想素质的实际得分(100分制)及总得分(实际得分×
20%)
3、业务学习得分
该模块能够处理用户输入各门课程的得分情况,计算业务学习实际得分(100分制,业务学习实际得分=各门课程的学分成绩总和÷
各门课程学分总和+公共选修课的成绩)及总得分(业务学习实际得分×
60%)。
4、智能素质得分
该模块则将科研能力、社会工作能力、师范生技能、文艺活动能力各个小模块的得分相加得到智能素质的实际得分(100分制)及总得分(实际得分×
10%)。
5、体育素质得分
该模块能够处理用户体育课成绩的输入,计算体育素质的实际得分(体育课成绩×
60%+课外体育活动成绩)及总得分(实际得分×
6、精确查询
该模块能够接受用户输入学号,查询该同学综合测评的相关情况。
7、模糊查询
该模块能够接受用户的输入,根据用户的需要,以业务学习得分和综合测评得分为条件进行查询。
8、综合测评成绩比例显示
该模块能够根据全部上传的综合测评,统计总人数,某一分数段的人数,然后按比例图显示给用户。
9、综合测评成绩上传
该模块能够验证用户的合法性并将合法用户计算出的综合测评得分情况上传至服务器端的数据库上,作为留档材料,也作为成绩核对的依据。
10、用户密码修改
该模块能够验证用户的合法性并能实现合法用户对自己密码的修改。
4综合测评系统实现
4.1系统数据库设计
1、数据库需求分析:
本系统数据库的设计总体需求是:
学号、用户密码、课程名称、课程学分、成绩类型、政治思想素质、业务学习、智能素质、体育素质、综合测评得分、备注。
2、本系统采用ACCESS作为数据库。
在本系统中,要求数据库名为:
综合测评数据库.mdf,并在里面建立系统设计时需要用到的数据表,各表设计如下所示:
表1用户信息表
字段名称
数据类型
字段大小
允许空
学号
文本
15
否
姓名
密码
20
其中:
学号为主键
表2综合测评成绩表
小数位数
50
政治思想素质
数字
单精度型
允许
2
业务学习
智能素质
体育素质
综合测评得分
备注
表3课程信息表:
课程名称
学分
10
成绩类型
课程名称为主键
表4:
业务学习成绩表:
是
说明:
其中学号为主键,本表的各个字段除了学号与备注这两个固定字段以外,其他字段都是在程序运行过程中动态生成的。
4.2数据库访问模块的实现
本项目与数据库的连接采用JDBC-ODBC桥连接[8],其连接成功后将出现提示,如图4所示界面:
图4数据库连接成功提示图
其核心代码如下:
booleansuccess=true;
//定义一个标志变量标志连接数据库是否成功
try
{
Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
);
//加载驱动程序con=DriverManager.getConnection("
jdbc:
odbc:
zonghecepingshujuku"
//与数据库的连接
stmt=con.createStatement();
//执行访问数据库的SQL语句
}
catch(Exceptione)
JOptionPane.showMessageDialog(this,"
数据库连接失败!
"
success=false;
}
if(success)
{JOptionPane.showMessageDialog(this,"
数据库连接成功"
4.3客户端各个模块的实现
1、政治思想素质模块的实现:
本模块的界面主要是利用Java的awt包及swing包开发的,界面实现如图5
所示:
图5政治思想素质计算界面
本模块是由政治素质、法纪观念、学习态度、品德修养、劳动实践、奖惩得分,其他得分共七个小模块够成的,各小模块的容器面板都是继承自swing包的Jpanel,而且其中的各个元素,如:
复选框、文本框等采用GridLayout布局管理。
各个小模块作为一个类来设计,其中包含构造函数,getscore()方法及getbeizhu()方法,分别取得本小模块的得分,及得分的原因。
选取其中的政治素质模块描述其实现过程(其他模块类似)如下:
classZhengzhisuzhiextendsZuhemianban//政治素质类,详见源代码
{……//类内部成员的声明
publicZhengzhisuzhi(){……}//构造函数,实现界面的布局
publicfloatgetscore()//获取政治素质得分
{beizhu="
;
//用于存放得分理由
floatscore=18;
//基本分18分
if(this.malie.getState())//如果“马列理论学习优”有选中
{score+=1;
//加上该项的得分
beizhu+=this.malie.getLabel()+"
//得分理由加入备注字符串中
}
……//其他得分项类似处理
returnscore;
//将得分值返回
publicStringgetbeizhu()//获取备注内容
{returnbeizhu;
2、业务学习成绩计算模块
业务学习成绩的界面如图6所示:
图6业务学习成绩计算界面图
其中一个科目就是一个小模块,而且这些科目的信息是从服务器端的“课程信息表”中获取的,这些科目组合就够成了业务学习成绩计算的主要部分。
但由于这些科目是动态生成的,而不是设计时给定的,所以必须用一个数组链表存储这些动态生成的科目类实例,才可能在计算出业务学习得分的过程中得到必须的数据。
也因其是动态生成的,所以实现过程相对比较复杂,其核心代码如下:
publicYewuxuexi(InetAddressip)//构造函数传入服务器的IP地址
{……//建立与服务器通信的数据输入输出流,并提交初始化请求
xinxis=datain.readUTF().split("
:
//读取初始化数据
for(inti=1;
i<
xinxis.length;
i++)
{String[]kechengxinxi=xinxis[i].split("
"
Xuexichengjixuexichengji=newXuexichengji(kechengxinxi[0],
Float.parseFloat(kechengxinxi[1].trim()),kechengxinxi[2]);
//实例化一门科目,并将其加入面板中
this.add(xuexichengji);
//将其加入数组链表中,为下面计算课程的学分成绩提供数据
this.arraylist.add(xuexichengji);
}//for
}//Yewuxuexi
publicfloatgetscore()//获取各门课程的学分成绩总和
{floatsum=0;
//初始化成绩为0
for(inti=0;
this.arraylist.size();
i++)
{//遍历链表中的每个元素,并将得分累加
sum=sum+((Xuexichengji)(arraylist.get(i))).getscore();
returnsum;
//将得分作为该方法的返回值返回
3、智能素质模块
智能素质的模块实现界面如图7所示:
图7智能素质计算界面图
该模块是由科研能力、社会工作能力、师范生技能、文艺活动能力、其他得分5个小模块组合成的,其实现过程与政治思想素质的实现过程类似,这里不再赘述。
4、体育素质模块
体育素质模块实现界面如图8所示:
图8体育素质计算界面图
本模块实现过程与政治思想素质的实现过程也类似,这里不再赘述。
5、成绩上传模块
成绩上传模块的实现界面如图9所示:
图9成绩上传界面图
该模块类继承自java.awt包中的Frame类,当用户输入的学号与密码正确时,才能将成绩上传,其实现的核心代码如下:
//综合测评得分情况插入数据库的SQL语句
strshangchuan=strshangchuan+"
insertinto综合测评成绩表values('
+this.xuehao.getText().trim()+"
'
+this.sqlzongheceping+"
)"
String[]temps=this.yewuxuexi.split("
//业务学习得分情况插入数据库的SQL语句
Stringtemp="
insertinto业务学习成绩表(学号,备注"
+temps[0]+"
)
values('
+this.xuehao.getText().trim()+"
'
+temps[2]+"
+temps[1]+"
strshangchuan+=temp;
6、用户密码修改模块
用户密码修改模块的实现界面如图10所示:
图10密码修改界面图
该模块类也是继承自java.awt包中的的Frame类。
首先将进行“新口令”与“确认新口令”的核对,如果两者相同,将进行用户合法性检查。
如果是合法用户,可进行密码修改,数据库信息修改成功后,将反馈一个“密码修改成功”的消息给用户。
否则,不能进行密码的修改,将反馈一个“密码修改失败”的信息给用户。
其中,用户合法性的检查与成绩上传时用户的合法性检查一致,这里不再赘述,只取其中部分核心代码说明如下:
if(datain.readUTF().trim().equals("
密码修改合法用户"
))//若是合法用户
{//密码修改SQL语句
Stringxinmimashangchuan="
update用户信息表set密码='
+this.xinkouling.getText().trim()+"
where学号='
dataout.writeUTF(xinmimashangchuan);
//更新数据库请求上传
else//非法用户
{……}
7、查询模块
查询模块实现界面如图11所示:
图11查询界面图
其分为精确查询与模糊查询两块,精确查询是将输入的学号作为查询条件,而模糊查询则根据业务学习成绩与综合测评成绩的组合作为查询条件进行查询。
精确查询的结果将返回个人的各个得分情况及综合测评与业务学习成绩的排名情况。
模糊查询返回结果的界面图12所示:
图12模糊查询结果显示图
当业务学习成绩与综合测评成绩选项数值都为0时,或者两个选项的值都不为0时,将返回所有结果集,并按学号顺序排列。
当业务学习选项的数值为0但综合测评成绩选项数值不为0时,或者相反时,将以非0的一项作为排列显示的依据。
1)精确查询
resultset=stmt.executeQuery("
select*from综合测评成绩表orderby综合测评得分desc"
//成绩由高到低排列
while(this.resultset.next())//检索该生的综合测评记录
{i++;
//i标记该学生综合测评成绩的排名
if(this.resultset.getString
(1).equals(xinxis[1].trim()))
//若是该学生的综合测评成绩记录则提取其所有的得分情况及排名
{jieguo+="
+this.resultset.getFloat
(2)+"
+this.resultset.getFloat(3)+"
+this.resultset.getFloat(4)+"
+this.resultset.getFloat(5)+"
+this.resultset.getFloat(6)+"
+i;
break;
//跳出检索}
2)模糊查询
Stringmohuchaxunjieguo=datain.readUTF();
//读取模糊查询结果
//以下是数据在JTable中的显示
this.vector.removeAllElements();
//将存放显示数据的向量清空
this.tm.fireTableStructureChanged();
//通知所有侦听器表结构已更改。
String[]strmohuxianshis=mohuchaxunjieguo.split("
//将从服务器端返回的数据字符串按行分割
strmohuxianshis.length;
{
Vectorrowvector=newVector();
String[]strs=strmohuxianshis[i].split("
for(intj=0;
j<
strs.length;
j++)
{rowvector.addElement(strs[j]);
}//添加一个显示数据项
this.vector.addElement(rowvector);
//添加一行显示数据项
this.tm.fireTableStructureChanged();
模糊查询的部分SQL语句如下:
s="
select用户信息表.学号,姓名,政治素质,业务学习,智能素质,体育素质,综合测评得分from综合测评成绩表,用户信息表where业务学习>
="
+this.yewu.getfloat()+"
and综合测评得分>
+this.zonghe.getfloat()
+"
and综合测评成绩表.学号=用户信息表.学号"
8、成绩比例图显示模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 JAVA 综合 测评 系统 设计 开发