图12 模糊查询结果显示图
当业务学习成绩与综合测评成绩选项数值都为0时,或者两个选项的值都不为0时,将返回所有结果集,并按学号顺序排列。当业务学习选项的数值为0但综合测评成绩选项数值不为0时,或者相反时,将以非0的一项作为排列显示的依据。其核心代码如下:
1)精确查询
resultset= stmt.executeQuery("select * from 综合测评成绩表 order by 综合测评得分 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)模糊查询
String mohuchaxunjieguo=datain.readUTF(); //读取模糊查询结果
//以下是数据在JTable中的显示
this.vector.removeAllElements(); //将存放显示数据的向量清空
this.tm.fireTableStructureChanged(); //通知所有侦听器表结构已更改。
String[] strmohuxianshis=mohuchaxunjieguo.split(":");
//将从服务器端返回的数据字符串按行分割
for(int i=1;i<strmohuxianshis.length;i++)
{
Vector rowvector=new Vector();
String[] strs=strmohuxianshis[i].split(",");
for(int j=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、成绩比例图显示模块
该模块实现界面如图13所示:
图13 成绩比例图
其中,左右两块为同一类的两个不同实例化对象。该模块的实现过程是:
先查询数据库,统计总人数以及各个成绩段的人数,然后在客户端计算各个成绩段人数所占总人数的比例,最后将比例图通过Graphics类的fillArc()方法画出,数据通过文本框显示出来,其核心代码如下:
public void paint(Graphics g)
{
int int_red=(int)(bili[0]*360); //计算红色扇形圆心角的度数
int int_green=(int)(bili[1]*360); //计算绿色扇形圆心角的度数
int int_blue=(int)(bili[2]*360); //计算蓝色扇形圆心角的度数
int int_yellow=360-int_red-int_green-int_blue;
//计算黄色扇形圆心角的度数,下面画出比例图
g.setColor(Color.red); //绘制红色扇形
g.fillArc(startx,starty,endlen,endlen,0,int_red);
g.setColor(Color.green); //绘制绿色扇形
g.fillArc(startx,starty,endlen,endlen,int_red,int_green);
g.setColor(Color.blue); //绘制蓝色扇形
g.fillArc(startx,starty,endlen,endlen,int_red+int_green,int_blue);
g.setColor(Color.yellow); //绘制黄色扇形
g.fillArc(startx,starty,endlen,endlen,int_red+int_green+int_blue,int_yellow);
}
4.4开发过程中遇到的问题及解决
在整个项目的开发过程中遇到了各种各样的问题,但在老师的指导下,都得到了解决。
1、刚开始的界面问题
由于综合测评计算各个得分项相对来说很繁杂,开发本系统就是为了避免因为计算繁杂带来的不便,所以界面如何有序明了很重要。刚开始设计的时候,将全部得分项在一个页面里面全部展现。结果,给人以杂乱的感觉。在指导老师的建议下,最终决定将“政治思想素质”、“业务学习”、“智能素质”、“体育素质”四大部分分开显示。于是采用了CardLayout布局管理器来实现界面的布局,该布局管理器能够帮助用户处理两个以至更多的成员共享同一显示空间[9],终于使界面问题得到了解决。
2、Applet访问数据库的问题
Java Applet为了安全性得到保证,在各方面做了严格的限制,所以访问服务器端的数据库显得复杂。我通过查找资料,知道了Applet访问服务器端的数据库可以有以下几种方式:
1)Java Applet 直接访问服务器端的数据库,但是需要配置策略文件[10]。这种方式方便了我们开发者,但却麻烦了使用者,与设计的初衷:方面用户使用相矛盾。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>