zoukankan      html  css  js  c++  java
  • zzzzw_在线考试系统③完结篇

    昨天填完原本打算写有关“学生考试部门”的总结,但是因为时间来不及,所以推迟到今天来写。

    至于最后的:“老师登录”部门就没什么好说的了,只要会了“管理员部分”和“学生考试部分”的书写,剩下就只是耐心的一点一点把代码码出来,写代码是一个考验耐性的活,我本身不是很有耐心,但是我慢慢地我努力改变着自己,其实稍微努力一下,我也可以蛮有耐心的嘛,哈哈!老规矩,我上图分析分析:

    第一点问题:

     

    图一

    图一中我想说说的是sessionScope。,意思如下图二所示:

    图二

    第二点问题:struts2标签

    图三

    2.1如图三所示#request.selects是OGLN语句,他跟EL语句是由区别的!分别是用法区别和页面取值的区别:如下图四和图五所示:

    图四

    图五

    2.2继续看图三中的Iterator便签中var=”select“和status="sta",但要用到索引的时候就要用${sta.index+1},也就是status,切记是sta而不是select;这里涉及到一个问题:就是当index+1的时候。就会自动从1开始,如果是${sta.index+11}则是从11开始.....

    ,但是在遍历的是时候用到的是select。也就是var,如下图所示:

    图五

    2.3这个问题就是一开始谈到的那个问题,这里跳过

    图六

    第三点问题说说arrayList和LinkList;如图七图八所示:

    图七

    图八

    4.产生随机数字的算法:这里比较巧的是for(){number[j-1]==nuber[i]},如果产生的随机数重复了,就要重新产生数据,因为在考试过程中出现的题目不可以一模一样,这就要求选择数据库的题号的时候不可以重复

    图九

    5这段代码我想给出详细解说,如下所示:

     1    //从题库中随机生成填空题,返回保存num个填空题的链表
     2      public List<FillQuestion>selectFillQuestion(int num)
     3      {
     4          Connection conn=JDBCConnectionFactory.getConnection();//连接数据池
     5          FillQuestion fill=null;//javabean
     6           List<FillQuestion>list=new LinkedList<FillQuestion>(); //List<>
     7         //查询该选择题
     8          try{
     9              Statement stmt= conn.createStatement(); //执行数据库语句
    10            //生成num个随机数作为需选择题的题号
    11              ResultSet rsl=stmt.executeQuery("select MAX(f_id) FROM fillquestion");//返回一个结果集,数据库语句的意思是寻找并返回最大的f_id
    12              int maxfid=30;  //这个是随便取值的
    13              if(rsl.next())//
    14              {
    15                  maxfid=rsl.getInt(1);//取出结果集中第一个数值。
    16              }
    17             //生成选题编号数组
    18              int[] number=random_number(maxfid,num);
    19             //查询所有选择题并选出num道题
    20              String sql="select * from FillQuestion";
    21              ResultSet rs=stmt.executeQuery(sql);
    22              while(rs.next())
    23              {
    24                  for(int i=0;i<num;i++)
    25                  {
    26                      if(rs.getInt(1)==number[i])//如果是相同的话,取值第二个和第三个!
    27                      {
    28                          fill=new FillQuestion(rs.getString(2),rs.getString(3));
    29                          list.add(fill);//List表就是这样子添加一个 javabean成为链表格式
    30                      }
    31                  }
    32              }
    33              }catch(SQLException ee){
    34                  ee.printStackTrace();
    35                  
    36              }finally{}
    37          return list;
    38     }

    6             s:if   便签

    图十

    图十一

    根据图十和图十一,s:if text=#li其实就是s:if text=#request.cz。

    备注:①

    ②整型的记得转一下:

    ---- 动动手指关注我!或许下次你又能在我这里找到你需要的答案!ZZZZW与你一起学习,一起进步!
  • 相关阅读:
    Coursera机器学习week11 单元测试
    关于 TypeReference 的解释
    getModifiers 方法解释。
    instanceof isInstance isAssignableFrom 比较
    elasticsearch 基础 语法总结
    kibana 启动 关闭 和进程查找
    MD5 SHA1 SHA256 SHA512 SHA1WithRSA 的区别
    spring boot 项目 热启动
    java zip 压缩文件
    Packet for query is too large (1660 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
  • 原文地址:https://www.cnblogs.com/zzzzw/p/4546609.html
Copyright © 2011-2022 走看看