中国科技论文在线
http://www.paper.edu.cn
基于JSP的统计图表生成模块
宁祥峰1,张春业1,李婧卿1,万伟1,李仁波1,汪峰2
1山东大学信息科学与工程,山东济南(250100)2山东大学信息安全研究所山东济南(250100)
E-mail:
jsp统计图为[网学网-网友上传,谢谢支持]。
摘要:为了掌握学生的消费情况,需要对学生的消费记录进行统计分析和数据挖掘,因此开发一个校园卡消费分析系统还是非常有现实必要性的。本文首先简单介绍了作者实际参与开发的一个基于JSP的消费分析系统,然后给出了一种详细的利用JFreeChart组件生成统计图表的设计方案,并通过实际编程实现了这个模块,包括友好的用户界面和后台服务器数据处理。关键词:JSP,JFreeChart,统计图表,消费分析,数据挖掘中图分类号:TP393
1.引言
为了掌握学生的消费情况,需要对学生的消费记录进行统计分析和数据挖掘,因此开发一个校园卡消费分析系统还是非常有现实必要性的。随着校园信息化的实现,绝大部分都实现了刷卡就餐消费,这就为掌握学生的消费情况提供了便利的条件。此校园卡消费分析系统是基于JSP语言,所有程序操作都是在服务器端执行,网络上传送给客户端的仅仅是结果。在浏览器端输入服务器IP,端口号,程序配置路径就可远程访问。开发运行环境为JDK1.6+Eclipse3.3+tomcat6.0+lomboz3.3+SQLserver2000[1]。主要面向或的管理人员,比如辅导员。对学生的消费记录进行查询统计分析,以挖掘出一些对决策有用的信息,比如可以在本科生的贫困等级评定中作为一项重要的参考量化指标。统计数据以图表的形式呈现出来,具有直观,清晰明了,突出差异的特点,所以本文重点介绍统计图表生成模块的设计与具体编程实现方法。
2.消费分析系统介绍
下图1为消费分析系统的总体模块结构框图,主要分8个模块。下面对各个模块实现的功能做一个简单的介绍:(1)个人消费统计模块主要是统计某个学生的每个月的消费情况。统计数据显示包括每个月的消费总金额,分餐次早、中、晚总金额和平均每餐金额,总就餐次数,早、中、晚就餐次数等。(2)消费统计主要是查询某一个范围内的符合筛选条件的学生,统计消费总金额区间人数,分年级消费情况,分身份类别消费情况等。(3)消费统计和消费统计功能基本上一样的,只是加入了全校范围学生处理,只有管理员才有权限使用。(4)消费指数查询是为学工部单独实现的一个模块,主要是为贫困生等级评定给出一个量化的指标。(5)统计图表显示就是通过一些下拉列表选择,定制得到所选条件的统计图。该模块的功能明确为生成各种统计图表。这个模块也是本文要重点介绍的模块。
-1-
中国科技论文在线
http://www.paper.edu.cn
(6)用户管理模块[1]主要是新用户注册,老用户修改资料,管理员查看、修改、删除用户信息等。(7)系统信息模块主要是发表、查看新闻通知,发表、查看留言,上传、下载附件,系统登录日志信息等。(8)登陆模块[1]主要实现权限控制,系统使用情况统计等。
3.统计图表生成模块的功能需求设计
统计图表的生成条件包括:(1)学生范围(全校或各,系统管理员和普通管理员可选择,但要求用户无需选择);(2)时间范围;(3)图表横坐标选择。包括:年级、性别、年级+性别、生均月消费金额、生均月消费金额+性别、生均月消费金额+年级、生均月消费金额+年级+性别;(4)图表的纵坐标,这里需要设置下拉框的联动,即:当横坐标选择为年级、性别、年级+性别时,纵坐标为:总消费金额、生均月消费金额;当横坐标选择生均月消费金额、生均月消费金额+性别、生均月消费金额+年级、生均月消费金额+年级+性别时,纵坐标必选为一项:学生人数。(5)图表类型,下拉框可选的形式:柱状图、饼状图、折线图根据以上五个必选条件能够获得对应的统计图表。
4.统计图表生成模块用户界面
下图2为根据需求设计的统计图表生成模块的用户界面,用户需要选择想要呈现的图的五个条件。下边对每一个条件的具体实现做了详细的介绍。
4.1学生范围
学生范围为全校或者各个。各个的信息要从数据库的表中读出,这样当信
-2-
中国科技论文在线
选择学生范围的下拉列表具体实现代码如下。
http://www.paper.edu.cn
息变动的时候不用更改代码,只需在数据库中修改相应数据既可。类别具体实现同学生范围。
请选择要查询的范围全校<%ResultSetrs1=dbc.executeQuery("USEEcardSELECT名称FROM信息");//javabean[1][2]while(rs1.next()){Stringa1=rs1.getString("名称");out.println(""+a1+"");}%>//下拉列表从数据库读出[1]
4.2时间范围
时间范围通过日历控件[3]来实现。
4.3图表类型
图表类型下拉列表包括饼状图、柱状图和折线图。
4.4横纵坐标选择
坐标选择的一个难点是实现横纵坐标联动。具体实现关键代码如下:vartotalCount=17;//定义数据总数,包括1级2级//数据结构,是个数组的数组,可以使用开发语言动态产生dataArray=newArray();
-3-
中国科技论文在线
dataArray[1]=newArray("性别","性别","0");dataArray[2]=newArray("年级+性别","年级+性别","0");
http://www.paper.edu.cn
dataArray[0]=newArray("年级","年级","0");//一级菜单表示为0
dataArray[3]=newArray("生均月消费金额","生均月消费金额","0");dataArray[4]=newArray("生均月消费金额+性别","生均月消费金额+性别","0");dataArray[5]=newArray("生均月消费金额+年级","生均月消费金额+年级","0");dataArray[6]=newArray("生均月消费金额+年级+性别","生均月消费金额+年级+性别","0");dataArray[7]=newArray("总消费金额","总消费金额","年级");dataArray[8]=newArray("生均月消费金额","生均月消费金额","年级");dataArray[9]=newArray("总消费金额","总消费金额","性别");dataArray[10]=newArray("生均月消费金额","生均月消费金额","性别");dataArray[11]=newArray("总消费金额","总消费金额","年级+性别");dataArray[12]=newArray("生均月消费金额","生均月消费金额","年级+性别");dataArray[13]=newArray("学生人数","学生人数","生均月消费金额");dataArray[14]=newArray("学生人数","学生人数","生均月消费金额+性别");dataArray[15]=newArray("学生人数","学生人数","生均月消费金额+年级");dataArray[16]=newArray("学生人数","学生人数","生均月消费金额+年级+性别");//一级菜单改变产生的动作functionselect1Change(select1ID){if(select1ID=='select1Text')//如果是选中了一级菜单文字,则显示回二级菜单文字{alert("回到2级菜单显示");document.myform.select2.length=0;document.myform.select2.options[0]=newOption("==请选二级分类==","select2Text");returnfalse;}else//其他情况则显示对应的2级菜单项{document.myform.select2.length=0;for(vari=0;i -4[3]
中国科技论文在线
}}}
http://www.paper.edu.cn
5.统计图表生成模块后台数据处理
5.1数据处理部分
这部分是图表显示的关键,必须保证得到正确的数据处理结果。下边以最复杂的横坐标为生均月消费金额+年级+性别,纵坐标为学生人数为例来说明具体实现方法。具体关键代码如下:if(select1.equals("生均月消费金额+年级+性别")&;&;select2.equals("学生人数"))//横纵坐标判断,处理选择坐标的数据{intj=0;Stringfilename="";StringgraphURL="";Stringa[][]=newString[100][100];//定义数组Stringa0[]=newString[100];Stringa1[]=newString[100];Doubleb[][]=newDouble[100][100];for(inti=0;i<100;i++)//数组初始化{for(intm=0;m<100;m++){a[i][m]="";b[i][m]=0.0;}a0[i]="";a1[i]="";}try{Stringsql10="USEEcardselectc.年级,c.性别,人数0=sum(c.人
上一篇:JSP简单的网站论文模板
下一篇:我突然不喜欢你了