小学四则运算练习题网页版结对项目报告

一.项目结构

二.计算模块和界面模块间的调用

三.页面演示效果

四.遇到问题

五.知识点记录

六.新知识新技能

七.未实现但计划实现功能

八.学习目标与总结



项目地址:https://git.dev.tencent.com/hey_wuqw/webArithmetic.git


一.项目结构

二. 计算模块和界面模块间的调用

三.页面演示效果



四.遇到问题

1.check()方法(用于接收答题页面传来的参数,请求从answer.jsp(答题界面)转发到result.jsp(做题结果界面))需要访问makeQ()方法中的保存运算式子的字符串数组(即qlist):同一个类中的一个方法里访问另一个方法的变量是不合理的。
——想到的三个解决方法(1已实践成功,2,3未实践不知是否可行):
(1)定义一个全局变量(字符串数组qlist),这样就能在makeQ()方法中访问该变量
——问题:数组大小是固定的,在定义数组时用户传的numExp(出题数量)是未知的,这时定义数组变量无法确定数组大小,只能随便给一个足够大的数。但这样转为list集合放到中遍历时集合大小变为某固定值,会遍历出所有无内容的空值。
——解决:由于集合的大小是可变的,所以把集合list定为全局变量,集合再转换为数组:

String[] list2 = list.toArray(new String[list.size()]);

(2)给makeQ()定义一个返回值,返回qlist数组,check()调用返回值。
(3)由于answer.jsp中请求的目标资源是servlet中的check(),那么把该表量从makeQ()传到answer.jsp再传到check().
2.将foreach循环内的input框输入值传到servlet:
——设置一个ID

<c:set var="position" value="0"/>

每循环一次给name赋如下值且ID+1

<input name="s${position}" id="id${position}" style="width: 60px;"/>
<c:set var="position" value="${position+1}"/>

servlet中接收:

for(int i = 0;i<expNum;i++){
    userAn[i] = request.getParameter("s"+i);
}

3.for input String:””
——一开始expNum是makeQ()方法的局部变量,无法在check()中使用——expNum也定义为全局变量
4.把两个字符创变量userAn和correctAn用“==”来比较是否相等——字符串的比较用str1.equals(str2)

五.知识点记录

1.JSTL 中的属性:
items:用于接收集合(划重点)对象。varStatus:常用参数有index,count,current等,本次用到的count是用于从1开始的迭代技术(显示了题号)
待优化:
1.Arith类里creaeteExp()(生成加减法运算)和createExpWithMD()(生成简单四则运算)方法实现思路一模一样,代码重复率高;createExpWithBrac()(生成带括号的加减法运算)和createExpWithAll()(生成带括号的四则运算)也同理。
——预设优化方法:将重复代码抽出另封装在一个方法中,需要时再调用此方法。
2.在servlet层判断是否有乘除法和括号时用了大量的if else条件语句判断,逻辑简单但代码冗长,如下:

if( !MD && !Brac ){//没有乘除法和括号
    for (int i=0; i<expNum; i++)
        qlist[i] = question.createExp(fuNum, upper, lower);
}else if ( !MD && Brac ){//没有乘除法有括号
    for (int i=0; i<expNum; i++)
        qlist[i] = question.createExpWithBrac(fuNum, upper, lower);
}else if ( MD && !Brac ){//有乘除法没有括号
    for (int i=0; i<expNum; i++)
        qlist[i] = question.createExpWithMD(fuNum, upper, lower);
}else{//既有乘除法又有括号
    for (int i=0; i<expNum; i++)
        qlist[i] = question.createExpWithAll(fuNum, upper, lower);
}

3.controller层包含了较多的逻辑业务处理功能,背离controller层的真正存在意义。如check()方法中涵盖了生成计算结果,并把计算结果的存入数组的逻辑。

六.新知识新技能

我和我的结对伙伴都是主要学习后端的,关于前端编写我们速学了一下bootstrap,用了bootstrap的基本模板,再进行修改,得到的页面真的是整洁美观,还具备兼容性,特别好用。

七.未实现但计划实现功能

1.错题报告(将错误题目及答案列出,生成错题集)
2.生成题目文件并课下载
3.做题历史记录

八.学习目标与总结

浏览了上届学长学姐这个结对项目的博客,发现他们有大量的篇幅都是在做代码性能分析,之前从来没有接触过,感觉可以学一学。这次涉及人机交互界面的设计,让我意识到在进行后端技术学习时也可以抽空学学前端,能自己完成一个项目的同时,也能更好的理解前后端的交互。

原文地址:https://www.cnblogs.com/Apriler/p/10686986.html

时间: 2024-08-27 20:59:11

小学四则运算练习题网页版结对项目报告的相关文章

201571030335/201571030320《小学四则运算练习软件》结对项目报告

源码链接地址:  https://github.com/woaichimangguo(我的201571030335) https://github.com/mashifang(小伙伴的201571030320) 一. 需求分析: (1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分. (2)题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下: (3)程序为用户提供三种进阶四

2015710301120/201571030119《小学四则运算练习软件》结对项目报告

一.项目源码 Github地址:https://github.com/myGitHub1018/Student_Comput3.git 二.项目报告 1.需求分析 (1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分: (2)题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下: (3)程序为用户提供三种进阶四则运算练习功能选择:百以内整数算式(必做).带括号算式.真分数算式

201571030310/201571030329《小学四则运算训练软件》结对项目报告

一.项目源码. Github地址:https://github.com/lucky6991/SoftWareTest/tree/master/SoftWareTest3 二.项目报告. 1.需求分析: (1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不       计分,20道题测试结束后给出测试总分: (2)题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下: (3)程序为用户提供三种进阶四则运算练习功能

201571030106/201571030116《小学四则运算练习软件》结对项目报告

使用JAVA编程语言,采用结对编程方式实现四则运算出题小程序,软件基本功能要求如下: 由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分 题库文件可采用实验二的方式自动生成,也可以手工编辑生成 程序为用户提供三种进阶四则运算练习功能选择:百以内整数算式(必做).带括号算式.真分数算式练习 程序允许用户进行多轮测试,提供用户多轮测试分数柱状图 程序记录用户答题结果,当程序退出再启动的时候,可为用户

201571030316/201571030314《小学生四则运算练习软件》结对项目报告

github代码地址:https://github.com/mqqgd/Experiment2 小伙伴儿的博客地址链接:http://www.cnblogs.com/mjuan/p/8715700.html 我的学号:201571030316                  小伴儿的学号:201571030314 一.需求分析    本次实验采用结对编程方式,设计开发一个小学生四则运算练习软件,使之具有以下功能: 由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答

201574010343/201571030318《小学四则混合运算》结对项目报告

github代码地址:https://github.com/zxt555/demo2/tree/master/src 一:需求分析 1. 由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分: 2.系统随机产生一百以内的两个数进行运算选择加.减.乘.除运算. 3.系统随机产生一百以内的两个数进行运算. 4.练习时,用户从键盘输入结果,正确和错误均有提示,错误的话提示下会有正确的结果. 5. 根据实

201571030121《小学四则运算练习软件软件需求说明》结对项目报告

201571030107/201571030121<小学四则运算练习软件软件需求说明>结对项目报告 结对小伙伴:冯晓(201571030107) 任务一 首先,我们进行了实例体验,把我们已经上线的<小学生四则运算网站>链接发给我们调研的人,在他们体验过我们的程序后在填写需求分析调查问卷,这样可以更好的得到一个反馈,让我们的需求分析更加清楚. 网站链接:http://123.56.24.117:8080/ 其次,我们主要采取了精准的问卷调查方式来进行需求分析,调查的主要对象为老师和有

201571030133/201571030102《小学四则运算练习软件软件需求说明》结对项目报告

我的学号:201571030133 结对伙伴的学号:201571030102 结对伙伴的博文链接:http://www.cnblogs.com/yuan1229/p/8873824.html 任务一: 以实验二个人项目.实验三结对项目所开发的小学生四则运算练习软件作为原型,实施小学生四则运算练习软件用户调研活动. 1. 调研对象:小学生.小学生家长和小学老师. 2. 需求调研方法:访谈.问卷调查 .原型评估. 问卷样本链接:https://www.wjx.cn/jq/22680152.aspx

实验四:201571030116/201571030106《小学四则运算练习软件需求说明》结对项目报告

任务1:以实验二个人项目.实验三结对项目所开发的小学生四则运算练习软件作为原型,实施小学生四则运算练习软件用户调研活动. 由于上次作业小伙伴很机智的把软件的操作过程录成了gif动图,所以在做基于原型的用户需求调查时减少了很多麻烦.对于这个任务我们采用了三种方法做用户需求调查:1.线上问卷调查 2.真实用户线上访谈 3.会议研讨 1.线上问卷调查:地址: 我们通过前两次作业整理了一些问题,用"问卷星"做了一份线上问卷调查,为了更精确的区分不同真实用户对软件的需求,我们把问卷调查分成了三个