在新浪开博客最郁闷的两件事情
2006-12-30 00:46
267 查看
昨天朋友给了我这样一个需求,要我帮她想想办法!我不知道这是否是关于算法,实现了,她说效果就是那样的!也许这个实现并不难,但我还是共享出来,让大家一起讨论一下吧!
问题如下:
现需要从数据库的专家表中抽取若干位专家(每一位专家都有一个行业属性),现在页面上已经有两个选项,一个是行业多选框,可以选择一个或多个行业,另外一个是文本框,填入需要抽取的专家个数。
请根据以上两个条件抽取专家,同时需要达到的要求是:
(1) 随机抽取,即每次抽取的专家不同
(2) 按行业多选框选中的行业,专家数近似平均分布,如选中3个专业,抽取10人,则专家数分布应为4、3、3或者3、4、3或者3、3、4。
我的代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'tanming.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<table>
<tr>
<td>请选择行业个数:</td>
<td>
<select multiple="multiple" id="select" name="select">
<option value="计算机软件">计算机软件</option>
<option value="计算机硬件">计算机硬件</option>
<option value="互联网/电子商务">互联网/电子商务</option>
<option value="通信/电信运营、增值服务">通信/电信运营、增值服务</option>
<option value="网络游戏">网络游戏</option>
<option value="通信/电信/网络设备">通信/电信/网络设备</option>
<option value="计算机服务(系统、数据服务,维修)">计算机服务(系统、数据服务,维修)</option>
<option value="电子技术/半导体/集成电路">电子技术/半导体/集成电路</option>
</select>
</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td>请输入专家个数:</td>
<td><input type="text" id="text"/></td>
</tr>
</table>
<input type="button" value="分布专家" onclick="btnOnClick();"/>
<div id="div1">
</div>
</body>
<script type="text/javascript">
function btnOnClick(){
var inumber = 0;//行业个数
var enumber = 0;//专家个数
var gnumber = 0;//分组个数
var iarray = new Array();//行业数组
var selectobj = document.getElementById("select");
var textobj = document.getElementById("text");
var enumber = textobj.value;
var selectlength = selectobj.length;
for(var i=0;i<selectlength;i++){
if(selectobj[i].selected){
inumber++;
iarray.push(selectobj[i].value);
}
}
if(inumber==0){
alert("请选择行业!");
return;
}
if(enumber==""){
alert("请输入专家个数!");
textobj.focus();
return;
}
var yushu = enumber%inumber;//余数
var chushu = parseInt(enumber/inumber);//除数
gnumber = inumber;
var lastnumber = enumber-(gnumber-1)*chushu;//最后那一组的专家个数
var garray = new Array();//整个专家分布个数的数组
for(var j=0;j<gnumber;j++){
var array = new Array();
for(var k=0;k<inumber;k++){
if(j==k){
array.push(lastnumber+"个"+iarray[k]);
}else{
array.push(chushu+"个"+iarray[k]);
}
}
garray.push(array);
}
var str = "";
var divobj = document.getElementById("div1");
for(var m=0;m<garray.length;m++){
str+="分布方案"+parseInt(m+1)+":";
for(var n=0;n<garray[m].length;n++){
str+=garray[m]
;
str+="、 ";
}
str+="<br><br>";
}
divobj.innerHTML=str;
}
</script>
</html>
感谢您的支持,我会更加努力!本文出自 “零度空間” 博客,请务必保留此出处http://rhyme.blog.51cto.com/328158/77030
问题如下:
现需要从数据库的专家表中抽取若干位专家(每一位专家都有一个行业属性),现在页面上已经有两个选项,一个是行业多选框,可以选择一个或多个行业,另外一个是文本框,填入需要抽取的专家个数。
请根据以上两个条件抽取专家,同时需要达到的要求是:
(1) 随机抽取,即每次抽取的专家不同
(2) 按行业多选框选中的行业,专家数近似平均分布,如选中3个专业,抽取10人,则专家数分布应为4、3、3或者3、4、3或者3、3、4。
我的代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'tanming.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<table>
<tr>
<td>请选择行业个数:</td>
<td>
<select multiple="multiple" id="select" name="select">
<option value="计算机软件">计算机软件</option>
<option value="计算机硬件">计算机硬件</option>
<option value="互联网/电子商务">互联网/电子商务</option>
<option value="通信/电信运营、增值服务">通信/电信运营、增值服务</option>
<option value="网络游戏">网络游戏</option>
<option value="通信/电信/网络设备">通信/电信/网络设备</option>
<option value="计算机服务(系统、数据服务,维修)">计算机服务(系统、数据服务,维修)</option>
<option value="电子技术/半导体/集成电路">电子技术/半导体/集成电路</option>
</select>
</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td>请输入专家个数:</td>
<td><input type="text" id="text"/></td>
</tr>
</table>
<input type="button" value="分布专家" onclick="btnOnClick();"/>
<div id="div1">
</div>
</body>
<script type="text/javascript">
function btnOnClick(){
var inumber = 0;//行业个数
var enumber = 0;//专家个数
var gnumber = 0;//分组个数
var iarray = new Array();//行业数组
var selectobj = document.getElementById("select");
var textobj = document.getElementById("text");
var enumber = textobj.value;
var selectlength = selectobj.length;
for(var i=0;i<selectlength;i++){
if(selectobj[i].selected){
inumber++;
iarray.push(selectobj[i].value);
}
}
if(inumber==0){
alert("请选择行业!");
return;
}
if(enumber==""){
alert("请输入专家个数!");
textobj.focus();
return;
}
var yushu = enumber%inumber;//余数
var chushu = parseInt(enumber/inumber);//除数
gnumber = inumber;
var lastnumber = enumber-(gnumber-1)*chushu;//最后那一组的专家个数
var garray = new Array();//整个专家分布个数的数组
for(var j=0;j<gnumber;j++){
var array = new Array();
for(var k=0;k<inumber;k++){
if(j==k){
array.push(lastnumber+"个"+iarray[k]);
}else{
array.push(chushu+"个"+iarray[k]);
}
}
garray.push(array);
}
var str = "";
var divobj = document.getElementById("div1");
for(var m=0;m<garray.length;m++){
str+="分布方案"+parseInt(m+1)+":";
for(var n=0;n<garray[m].length;n++){
str+=garray[m]
;
str+="、 ";
}
str+="<br><br>";
}
divobj.innerHTML=str;
}
</script>
</html>
感谢您的支持,我会更加努力!本文出自 “零度空間” 博客,请务必保留此出处http://rhyme.blog.51cto.com/328158/77030
相关文章推荐
- 在新浪开博客最郁闷的两件事情
- 国内各大互联网公司相关技术博客3.0版 (集合腾讯、阿里、百度、搜狐、新浪、网易、360等共29个)
- 新浪博客
- (3)【艺术家迈克尔.帕克斯魔幻现实主义作品欣赏】_AD的风花雪月-世界名画与摄影-_新浪博客
- 第二届新浪博客大赛IT评论组银奖
- 51CTO博客移动化意味着什么?IT博主可以搞事情了! 推荐
- CSDN的博客只发技术文章,开通新浪投资博客
- 据说CSDN的博客和新浪的微博的信息可以互通了,真假我们来测试一把!
- 博客升级,新浪也将转型走技术驱动路线?
- 破解百度空间、新浪相册、网易、搜狐等博客图片防盗链的方法
- Windows Live Writer 新浪、网易、blogcn、blogbus、cnblogs博客的设置
- LoadRunner测试结果分析01 转载至zhangzhe的新浪博客
- 呵呵, 要过年了, 为什么自己的事情豪无进展, 郁闷呀
- 现在开始废止这个博客空间,转用新浪的博客!
- 转自新浪博客的网页运作原理
- 博客对阵,新浪偷笑
- 三个京剧大家都说江青懂戏老韩新浪博客
- 新浪博客
- 博客开通 坚持做自己懒得做但是正确的事情