一道有意思的机试题
有四个学生、六门课程,要求使用三个页面,第一个页面出现四个学生的选择,选择了学生后,到第二个页面出现选择了学生的列表,每个学生后面都有六门课程供学生选择,选好课程后,到第三个页面出现选择了的学生和对应的课程列表。
乍一看很简单的一道题,不过我也用了一个小时左右的时间,最快的一个!题不难,要求也简单,无论什么使用技术,出现效果就行,可就是不会啊!现在不是接触的mvc就是servlet,所有的数据来源基本就是数据库,想问题想复杂了,我使用的办法是最古老的jsp页面脚本,在jsp页面定义数组来做的。
第一个页面脚本代码:
<%
String[] stu = new String[] { "张三", "李四", "王五", "赵六" };
%>
<%
for (int i = 0; i < stu.length; i++) {
%>
" name="stu" />
<%
out.print(stu[i] + "
");
}
%>
说明:a、就定义了四名学生,把学生输出
第二个页面的脚本代码:
<%
String[] course = new String[] { "数学", "英语", "物理", "地理", "哲学", "美术" };
%>
<%
request.setCharacterEncoding("gbk");
String[] stus = request.getParameterValues("stu");
%>
<%
for (int i = 0; i < stus.length; i++) {
%>
" name="stu" />
<%
out.print(stus[i] + "");
for (int m = 0; m < course.length; m++) {
%>
" name="course" />
<%
out.print(course[m] + " ");
}
out.print("
");
}
%>
说明:a、接受第一个页面已选择了的学生参数,输出,并使用隐藏域,为第三个页面学生的输出做铺垫
b、定义六门课程,输出
第三个页面脚本代码
<%
request.setCharacterEncoding("gbk");
String[] stu = request.getParameterValues("stu");
for (int m = 0; m < stu.length; m++) {
String[] course = request.getParameterValues("course" + m);
out.print(stu[m] + " ");
for (int n = 0; n < course.length; n++) {
out.print(course[n] + " ");
}
out.print("
");
}
%>
说明:a、接受学生参数和对应的选课参数,输出
思路很简单,使用数组,定义一个数组,专门用于保存需要选课的学生,与之对应,再定义数组用来保存选课数据。与之对应的意思是,比如我们有一个学生需要选课,那么就定义一个选课数组,有两个学生,那就定义两个,依此类推。
其实这个满足二维数组,可以使用二维数组来处理,不过当时我只想着作出结果,二维有点负责,就用一维数组了!
面对问题,用某种适合办法解决就行!