📄 分班.txt
字号:
两个表
学生表(报名号,姓名,专业代码,性别,班级号,高考分数)
专业代码表(专业代码,专业名称,专业人数)
create table stu_info(
stu_num varchar(20),
stu_name varchar(12) not null,
specialitycode varchar(20) not null,
gender varchar(20) not null,
stu_class varchar(2),
result int(10) not null);
create table zydm(
specialitycode varchar(20) PRIMARY KEY,
specialityname varchar(20),
specialityno int(10));
实现分班的算法如下:
先遍历专业
在每个专业中在查询所有的学生并按性别,高考总分排序
Iterator iter=session.iterate("from zydm");
while(iter.hasNext())
{
Zydm zydm=(Zydm) iter.next();
String SpecialityCode=zydm.getSpecialitycode();
Integer no=zydm.getSpecialityno();
int no=Integer.parseInt(""+no);
Iterator it=session.iterate("from StuInfo where StuInfo.SpecialityCode=:SpecialityCode ORDER BY gender,result)");
int i=0; //用来控制当前分班级号是按升序还是降序
int j=1; //用来控制下一个分班的是按升序还是降序
while(it.hasNext())
{
if(i==0)
{
StuInfo stuInfo=(StuInfo) it.next();
stuInfo.setStuId(""+j);
j++;
if(j==no)
{
i=1;
}
}
if(i==1)
{
StuInfo stuInfo=(StuInfo) it.next();
stuInfo.setStuId(""+j);
j--;
if(j==1)
{
i=1;
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -