考试提交答案后台代码

我们在考试后,将每个答案提交,这样会使得方法的参数数量非常多(SpringMVC);怎样才能使得提交的答案和数据库的答案比对效率更高?有大佬知道的回复一下!

// 提交答案请求
    @RequestMapping("/tijiaodaan")
    public String tijiaodaan(Map<String,Object> map,String s1,String s2,String s3,String s4, String s5,
                             String s6,String s7,String s8,
                             String s9){
        // 在session中获取pid
        HttpSession session=httpServletRequest.getSession();
        Integer intPid=(Integer) session.getAttribute("pid");
        if(intPid!=null){
            Question question=questionService.selectQuestionByPidAndQuestionType3(intPid);
            Integer qid=question.getId();
            // 1、获取学生id
            String sid=(String) session.getAttribute("stuSid");
            // sid转为整型
            Integer intSid=Integer.parseInt(sid);
            Answer answer=new Answer(qid,intSid,s9);
            // 添加数据
            Boolean updateAnswer=answerService.insertAnswer(answer);
            if(updateAnswer){
                map.put("updateAnswer","答案保存成功!");
            }

            List<Question> answers=questionService.selectAnswerByPidAndQuestion02(intPid);
            // 计算选择题和判断题的总分
            int total=0;
            // 计算错误个数
            int error=0;
            if(answers!=null && answers.size()>0){
                // 单选题的总个数
                Integer count0=questionService.selectCount0(intPid);
                System.out.println("count0:"+count0);
                // 判断题的总个数
                Integer count2=questionService.selectCount2(intPid);
                System.out.println("count2:"+count2);
                String [] sx=new String[count0+count2];
                sx[0]=s1;
                sx[1]=s2;
                sx[2]=s3;
                sx[3]=s4;
                sx[4]=s5;
                sx[5]=s6;
                sx[6]=s7;
                sx[7]=s8;
                for(int i=0;i<count0;i++){
                    System.out.println(answers.get(i).getAnswer()+":"+sx[i]);
                    if((answers.get(i).getAnswer()).equals(sx[i])) {
                        total=total+2;
                    }else {
                        error+=1;
                    }
                }
                System.out.println("error:"+error);
                for(int i=count0;i<(count0+count2);i++){
                    System.out.println(answers.get(i).getAnswer()+":"+sx[i]);
                    if((answers.get(i).getAnswer().equals(sx[i]))){
                        total=total+5;
                    }else {
                        error+=1;
                    }
                }
            }
            // 将选择题和判断题总分放到学生成绩表中

            // 2、获取试卷名称
            String nam=(String)session.getAttribute("name");
            // 3、根据sid和name查到学生成绩表
            Stuexam stuexams=stuexamService.selectStuexam(sid,nam);
            if(stuexams!=null){
                Integer id=stuexams.getId();
                Integer dateScore=stuexams.getScore();
                Integer score=dateScore+total;
                Integer to=stuexams.getTotal();
                Integer pidXTotle=questionService.selectCountByPidX(intPid);
                to=pidXTotle;
                Integer dateErrorNumber=stuexams.getErrorNumber();
                dateErrorNumber=error;
                // 更新指定的学号和试卷名称的学生信息
                Stuexam stuexam=new Stuexam(id,intSid,nam,score,to,dateErrorNumber);
                Boolean updateStuexam=stuexamService.updateStuexamBySidAndName(stuexam);
                if(updateStuexam){
                    map.put("updateStuexam","成绩提交成功!");
                }else {
                    map.put("updateStuexam","成绩提交失败!");
                }
            }
        }
        return PAPER;
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 题目中提到的Java考试系统代码并不具体,因此我无法给出具体的回答。Java考试系统可能是一个基于Java语言编写的计算机应用程序,用于管理和评估学生的考试成绩和知识水平。 根据题目的要求,可能需要实现以下功能: 1. 用户登录与注册 2. 试题库管理: - 添加、修改、删除试卷 - 添加、修改、删除试题 3. 考试管理 - 生成考试试卷 - 移除考试试卷 - 设定考试时间 4. 考试答题 5. 评分与结果查询 6. 数据统计与报告生成 为了实现这些功能,需要考虑到数据库的设计与实现、 用户交互界面的设计、代码的模块化等方面。同时还需要考虑一些非功能性需求,如安全性与性能等。 总体而言,Java考试系统是一项复杂的软件工程开发项目。编写源代码需要对Java语言的掌握和实际开发经验,同时也需要认真思考系统的需求和整体架构。 ### 回答2: Java考试系统是一种基于Java语言开发的在线考试平台。它主要包含三个部分:后台管理系统、考生端和考试端。这些部分相互配合,实现了在线考试的全过程,包括题目的发布、考生的注册、考试题目的展示与答题、答卷的批改与分数统计等功能。 后台管理系统是整个系统的核心部分,管理员可以在该系统中进行试题管理、用户管理、试卷生成等工作。这部分代码包含了Java Web开发的许多技术,如Servlet、JSP、JDBC等。除了传统的增删改查功能,还有试卷自动生成、题目分类等高级功能,能够极大地提高管理员的工作效率。 考生端是供考生进行考试的界面,通过该界面可以进行注册、登录、查询成绩等操作。这部分代码实现了Java Web中的Servlet、JSP和JavaScript等技术,使得界面交互更加友好,大大提高了考生的考试体验。 考试端是整个系统最关键的部分,它通过前端的JavaScript和后端Java代码实现了试卷的呈现和评分。这部分代码中最重要的是后端的Java代码,实现了多线程的评卷功能,保证了系统的高并发性和稳定性。同时,通过JavaScript和AJAX等技术,使得试卷呈现和提交等操作更加流畅。 综上所述,Java考试系统是一个相对完整、基于Java Web技术架构开发的在线考试平台,通过后台管理系统、考生端和考试端的紧密配合,实现了在线考试的全过程。该系统的源代码中运用了Java Web开发中的许多核心技术,对于Java Web开发初学者有很大的借鉴意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小飞LOVE霞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值