结对项目小学生四则运算系统网页版项目报告一只大喵喵

本次结对项目,我们制作的是网页版的四则运算系统。在结对的过程中,我(王文雨)负责前端,童宇欣负责后端。一起进行了两部分功能的对接与融合

以下是我们的一些项目信息:

项目代码说明(以童宇欣的代码仓库内容为准):项目整体放在了Calculate文件夹下,里面包含命令行出题部分代码NewCalculate,以及网页版完整源代码(web文件夹下)。命令行测试入口为src下Command.java;在src下将其编译,即可输入数据进行测试运行。

PSP

PSP2.1

任务内容

Planning

计划

20

Estimate

10

Development

开发

1000

Analysis

需求分析(包括学习新技术)

DesignSpec

生成设计文档

DesignReview

设计复审(和同事审核设计文档)

CodingStandard

代码规范(为目前的开发制定合适的规范)

1

Design

具体设计

Coding

具体编码

500

CodeReview

代码复审

Test

测试(自我测试,修改代码,提交修改)

15

Reporting

报告

TestReport

测试报告

SizeMeasurement

计算工作量

在《构建之法》书中没有找到有关信息,希望老师在设计要求的时候,可以告诉我们页数。我在网上查阅了资料。

InformationHiding信息隐藏:信息隐藏指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。

InterfaceDesign接口设计:是传统的后勤保障的一种要素也是一种后勤功能。

LooseCoupling松耦合:系统通常是基于消息的系统,此时客户端和远程服务并不知道对方是如何实现的。客户端和服务之间的通讯由消息的架构支配。只要消息符合协商的架构,则客户端或服务的实现就可以根据需要进行更改,而不必担心会破坏对方。

本次作业采用的是网页制作,整体采用MVC模型MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。本次作业进行了模块化编程,运算模块和界面模块相对较独立,尽量做到了低耦合度。让判断正误和计时以及条件受限放到前端制作,减少服务器的负担。

我负责的有

①计算结果正误判断:

用js方法通过回答数组对答案数组的一一对应。

for(vari=0;i

②智能出题的条件判断,通过js方法,限制输入的条件

varoBiaodan=document.getElementById('oBiaodan');$("#yiding").click(function(){varnummMax=document.getElementById('nummMax');varnumm=document.getElementById('numm');varminn=document.getElementById('minn');varmaxx=document.getElementById('maxx');if(numm.value==""){alert("请填写题目数量!!!");oBiaodan.onsubmit=function(){returnfalse;}}if(numm.value<1||numm.value>10000){alert("题目数量超出范围,范围为1-10000");oBiaodan.onsubmit=function(){returnfalse;}}if(minn.value==""||minn.value<1||minn.value>50){alert("请填写正确范围!!!下线范围1-100,上限范围50到1000");oBiaodan.onsubmit=function(){returnfalse;}}if(maxx.value==""||maxx.value<50||maxx.value>1000){alert("请填写正确范围!!!下线范围1-100,上限范围50到1000");oBiaodan.onsubmit=function(){returnfalse;}}});

1.性能分析改进

在运算模块的性能分析过程中,大约花费了2小时,首先经过性能分析知道了我有些资源在使用结束后是没有回收的,经过排查后,我发现了是在写入文件后没有关闭输出流,导致了资源没有完全回收。发现这一问题后,我针对它进行了改进,关闭了输出流。使项目的性能得到了提高。同时经过性能分析,我发现我整个程序消耗最大函数是出题过程中的MakeQuestion3,即出题过程中不仅要出题,还要判断题目是否符合要求,要调用调度场算法运算答案。因为这里要满足出题的时候必须在规定数字范围内,及整除等条件,不符合要求的算式都要重新出题。发现这一问题后,我也对我的程序进行了改进,将是否能整除这些判断在出两个数字的简单式子的时候直接进行了保证,使这里只需要判断每一步的运算结果是否在规定范围内,使整个程序的性能得到了提高。

2.性能分析截图

项目总体分析图,从内存,多线程,CPU等方面分析了计算模块的性能,截图如下:

性能分析过程截图:

首次按F4,出现以下截图。可见有些资源没有回收,经排查,我发现是我没有关闭写入文件的输出流。解决过这个问题后,我再一次进行了性能分析。

经过以上的分析,让我了解了性能分析的过程,也知道了性能分析的重要性。

6)计算模块部分单元测试展示

(1)分别对计算模块的Command.java和MakeQuestion.java进行了测试。写了如下两个单元测试类。

(2)以下是测试类的部分代码截图:

(3)构造测试数据思路

a.对于Command的测试,主要应保证参数的各种输入情况都有涉及。所以我就分别构造了:参数输入正确时的参数args数组;不包含必须输入的参数,并且-o参数后没有输入应有数字的args1数组;-n参数后不包含应有的数字的args2数组;及字母参数后数字范围有错的args3,args4,args5,args6。经过以上设计,最终Command类的测试覆盖率达90%以上。

b.对于MakeQuestion方法的测试,为保证测试覆盖率,应保证各种类型的参数都输入执行。所以这里就构造了有乘除的,有括号的;没有乘除的,没有括号的;及不同运算符个数限制;不同数量;不同范围限制这些情况。经过以上设计,最终MakeQuestion类的测试覆盖率达90%以上。

(4)测试覆盖率截图展示

由图可知,此次单元测试的覆盖率还是相对较高的,执行通过的绿色占大部分,但仍有一些呈现黄色和红色。也会继续改进,争取再次提高测试覆盖率。

7)计算模块部分异常处理说明

(1)没有输入必须的参数-m,-n

①通过if判断对这种异常进行了处理。设计了两个参数ifm和ifn判断是否有-m,-n的输入。

②单元测试样例

③错误对应场景:例如命令行没有输入-n或-m。发生错误时,会提示用户输入的参数中必须包含题目数量/对题目数值上下界的设定。请重新输入。

(2)输入的参数超出指定范围

①对于这种情况我设计了参数ifrun对能获取到数字但是数字超出范围的情况进行了判断,出现异常时ifrun值为false。

③错误对应场景:例如命令行输入-n10–m-13。发生错误时,会提示用户各个参数应有的界限,请用户重新输入。

(3)输入的字母后没有紧跟着对应数量的或对应形式的参数。

①对于这种情况用了try-catch语句判断处理异常。输入错误就会执行catch语句中内容,给出合理提示。

③错误对应场景:例如-n–m1100的输入。发生错误时,会提示用户正确的输入形式,请用户重新输入。

(4)出题后,写入文件时出错

对于这种情况用了try-catch语句判断处理异常。输入错误就会执行catch语句中内容,给出文件出错提示。

8)界面模块的详细设计过程

整体思路:

①出题部分

功能如图所示通过

表单进行功能实现向后台传输数据

如果输入的东西不符合要求,js会进行判断

②文件上传(题目导入)

功能如图,文件提交由后台代码实现

③功能转换

这三个功能在同一个页面上,通过js改变css样式进行改变。

$("#mia").click(function(){$("#xinxi").css("display","block");$("#miao").css("display","none");});$("#chu").click(function(){$("#xinxi").css("display","none");$("#miao").css("display","block");});$("#otou").click(function(){$("#mengban").css("display","block");});$("#cha").click(function(e){$("#chamian").css("display","block");e.stopPropagation();})$("#chamian").click(function(e){$("#chamian").css("display","block");e.stopPropagation();})$(document).click(function(e){$("#chamian").css("display","none");});④成绩汇总

有两个汇总,一个是全部成绩,一个是最佳成绩。点击这两个按钮都会跳转到同一个jsp页面。而内容显示的不同由后台代码实现

全部成绩

嗷,前面截图漏了学号

各用户的最佳成绩

⑤题目页

没有提交之前,包括计时器(js实现)和题目显示,答案写在中通过js进行与答案的判断

答题情况的弹窗是可以拉动的,可以让学生查看自己哪里答错了,可以再做但是不可以再次提交。拉动由js实现

9)界面模块与计算模块的对接。

作为前端,我只说我负责的部分:

①计时

//setInterval计时器vartheTime=document.getElementById('theTime');varn=0;varm=0;varf=0;varff=0;vartimert=null;functiontimeCount(){clearInterval(timert);timert=setInterval(function(){n=n+1;f=n/60;ff=parseInt(f)m=n%60;theTime.innerHTML=ff+"分"+m+"秒";},1000);}timeCount();

②判断正误

//判断回答是否正确vartiJiao=document.getElementById('tiJiao');varoBody=document.getElementById('mainbody');varhuida=document.getElementsByClassName('huida');vardaan=document.getElementsByClassName('e');varanwser=document.getElementsByClassName('anwser');varyesno=document.getElementsByClassName('yesno');varemm=document.getElementsByClassName('emm');varallnum=document.getElementById('allnum');varalltime=document.getElementById('alltime');varallyes=document.getElementById('allyes');//varyes=0;//varno=0;tiJiao.onclick=function(){varyes=0;varno=0;for(vari=0;i

HTML:

JS:

oBody.style.display="block";tiJiao.style.display="none";allnum.value=daan.length;allyes.value=yes;emm[0].innerHTML=daan.length;emm[1].innerHTML=yes;emm[2].innerHTML=no;if(theTime.innerHTML=="计时区"){emm[3].innerHTML="您没有计时";alltime.value=0;}else{emm[3].innerHTML=theTime.innerHTML;alltime.value=theTime.innerHTML;}}

10)描述结对的过程

我们的结对大约分为两个阶段,由于我们编写的是网页版,两个人擅长的领域不相同

第一阶段主要是一人负责前端,一人负责后端,这一过程我们相当于是分开各自编程的,所以这里部分对驾驶员和领航员这种模式的切换和运用不够明显,每人负责自己的那部分代码的编写;

第二部分,进入合页面和两个模块的对接过程,我们两人一起合作,在这一阶段也充分体验了结对编程两个人一起的高效之处。我们两个人不断切换驾驶员领航员角色,比较顺利的完成了不同板块的对接与项目的测试。同时也共同完成了整个项目的性能分析和单元测试的覆盖率分析。

结对的时候,我们都要耐心倾听,一起改bug,听取对方的建议

11)结对编程的优点和缺点

结对编程的优点:锻炼合作能力,沟通交流能力,分工配合能力

结对编程的缺点:两人分开干活,彼此进度不同,代码功能不同。合在一起不容易

童宇欣的优点:学习的上进心,在最开始考虑项目功能时,她一直强调想做出附加功能

强大的代码能力,在工作室她已经接手过几个校级项目,对代码熟悉

耐心,合作中配合,会有不同的bug一起改

童宇欣的缺点:真想不出来,和她配合很愉快

我的优点:积极配合,因为是前端,更多是辅助宇欣,她想要什么功能都可以满足

对前端语言的熟悉,也接手过项目

我的缺点:对Java语言不熟悉

30

2700

40

60

1800

45

700

840

780

本次作业完成了所有基本功能,能够实现规定要求的出题,和带负数的计算,同时实现了允许多用户做题,并能记录所有用户的全部成绩和最好成绩。

和宇欣合作非常棒!!她做事认真,热情开朗,是一个非常棒的合作伙伴!!

THE END
1.学测网学生版历史版本下载学测网学生版老版本大全 APK1.10.2 学测网学生版 2024-11-29 85.8MB APK1.10.1 学测网学生版 2024-07-19 124MB APK1.10.0 学测网学生版 2024-07-13 124MB APK1.9.4 学测网学生版 2024-02-22 124MB https://m.liqucn.com/os/android/rj/138985-history.wml
2.学业水平新知教育官网2024-12-09 技能集训开营 | 这个冬天让升学从 “困难模式” 秒变 “简单模式”! 2024-12-09 每人每年6000元!属于中职生的国家奖学金你也可以拿到! 2024-12-09 纯数据!全类别近年公办院校最低录取分数汇总! 2024-12-02 官方点名!这些学校可能面临缩招甚至停招? 2024-11-11 福建学子在2024年世界职业https://www.fjxzjy.com/category/zuixindongtai/xueyeshuiping/
3.测试- 声明 - (一)由于考试政策等各方面情况的不断调整与变化,本网站所提供的考试信息仅供参考,请以权威部门公布的正式信息为准。 (二)本网站在文章内容出处标注为其他平台的稿件均为转载稿,免费转载出于非商业性学习目的,归原作者所有。如您对内容、版 权等问题存在异议请与本站联系,我们会及时进行处理解决。https://www.eol.cn/baokao/jianzhugongcheng/20241216111823.html
4.2023年学业水平测试在线考试试题和答案经管文库2023年学业水平测试在线考试试题和答案 https://bbs.pinggu.org/forum.php?mod=viewthread&tid=12936209
5.免费学习能力测试25题小猫测试(xmcs.cn)小猫测评2.7w+人已测|115人点赞 共有25个测试问题,预计用时10分钟 个人版测试企业团体版 职业性格测评,可参考:MBTI 职业性格测试(免费版)、霍兰德职业兴趣测试(免费版)、九型人格测试(免费版)、大五人格测试(免费版)、艾森克人格测试(免费版)、disc个性测试、个人优势能力测评。 https://www.xmcs.cn/x/xxnl
6.ZZULIOJ8877965 542401030220 1057 正确 1068 0 C 355 B 2024-12-10 09:31:57 LOCAL 8877939 542401030220 1057 答案错误 1068 0 C 355 B 2024-12-10 09:27:36 LOCAL 8877931 542401030220 1057 答案错误 1068 0 C 354 B 2024-12-10 09:25:19 LOCAL 8877900 542401030220 1052 正确 1044 0 C 225 B 2024-12http://acm.zzuli.edu.cn/status.php?user_id=542401030220&top=8877985
7.门口易测网页版入口门口易测手机网页版登录门口易测网页版入口 如今,学习不再受地域、时间的限制,各种在线学习平台应运而生,为广大学子提供了丰富的资源和灵活的学习方式。其中,“门口易测学习平台”以其独特的魅力和卓越的功能,在众多平台中脱颖而出,成为广大老师和学习者信赖的伙伴。 门口易测网页版入口:https://app.3dmgame.com/mip/gl/531090.html
8.别被运营商骗了手把手学会测自家网速网页版SpeedTest测试 首先,在PC端我们连接好网络后,直接打开浏览器,在地址栏输入“www.speedtest.net”并访问,即可进入到网站中。PC端的SpeedTest无需进行下载和安装,在等待网页加载完成后点击“begin”按钮,就可以开始进行测试。测试结果很快就会显示在网页的正中央,显示出用户的延迟,下载速率和上传速率,让用户对自己的https://net.zol.com.cn/560/5608898_all.html
9.思科网络技术学院教程(第6版):网络简介本书中文简体字版由美国Pearson Education授权人民邮电出版社独家出版。未经出版者书面许可,不得以任何方式复制或抄袭本书内容。 版权所有,侵权必究。 内容提要 思科网络技术学院项目是Cisco公司在全球范围推出的一个主要面向初级网络工程技术人员的培训项目,旨在让更多的年轻人学习先进的网络技术知识,为互联网时代做好准备https://labs.epubit.com/bookDetails?id=N15003
10.网页版官网入口?登录cp彩票,打开金多宝73459网址,尊彩网网页版,kaiyun全站app登录入口,爱心彩票Welcome彩票中心JNTY体育官方APP下载,ww赢彩吧登入口,安鼎app登录入口下载官网,新星国际app,宾果购彩中心登录入口体育直营平台,十大搏彩信誉网站,足球胜负彩24138,皇冠体彩网站入口官网,财神通棋牌 inurl:fayunsi澳门永利彩票官网,完美体育跑路了,http://www.fukey.cn/
11.强烈推荐!教你测试手机网页的五大方法优设网教你测试手机网页的五大方法 @陈子木细心的同学不难发现,现在用手机访问优设网有了全新的阅读体验,而且速度很快。有这样的改变其实也是收到了很多来自微信、微博粉丝的建议,大家想在上班、下班及睡觉的时候阅读收藏在微博和浏览器(同步)里的优设文章。 我们知道手机浏览器的使用量每天都在增长,根据StatCounter的统计数据https://www.uisdc.com/how-to-test-mobile-website/
12.计算机科学技术:网页设计与制作在线测试(每日一练)题库试看结束后微信扫下方二维码即可打包下载完整版《★计算机科学技术》题库 手机用户可保存上方二维码到手机中,在微信扫一扫中右上角选择“从相册选取二维码”即可。 题库试看结束后微信扫下方二维码即可打包下载完整版《计算机科学技术:网页设计与制作》题库,分栏、分答案解析排版、小字体方便打印背记!经广大会员朋友http://www.91exam.org/exam/87-4482/4482697.html
13.微信检测违规的两个手段,你知道几个?2.网页版微信抓包 该方法的含义是通过抓包的方式捕获微信中打开链接时请求验证地址是否合法的接口。 不过这个方法我也试过了,无法捕获。 接口,正常链接未经验证跳转请求,被屏蔽的地址无法直接打开。 后来我也尝试了网上找到的其他接口,但都没有效果。 所有的请求都是针对起始地址但实际上并没有什么用比如下http://www.bjhwtx.com/h-nd-41671.html
14.2022Aech安装(详细)使用需要配合客户端,要处于局域网 sudo pacman -S kdeconnect sshfs ## 安装软件及依赖 sudo pacman -S kdeconnect sshfs ## 安装软件及依赖 Teamviewei(远程支持和在线会议软件) yay -S teamviewer yay -S teamviewer Xrdp(支持微软远程桌面协议) yay -S xrdp yay -S xrdp Rdesktop(微软远程桌面) sudhttp://www.devboy.cn/article/310767
15.Django入门(十四)路由Django入门学习路由称为URL (Uniform Resource Locator- 统一资源定位符),也可以称为URLconf, 是对可以从互联网上得到的资源位置和访问方法的一种简洁表示,是互联网上标准资源的地址。 互联网上每个文件都有一个唯一的路由,用于指出网站文件的路径位置。 简单地说,路由可视为我们常说的网址,每个网址代表不同的网页。 语法格式:https://download.csdn.net/blog/column/12484190/134365271
16.抖音官方正式上线网页测试版所以说了这么多,“抖音不推出网页版”似乎已经无需再去强调,但这时候的抖音却狠狠地打了我们的脸:6月21日消息,抖音官方正式上线网页版平台,虽然还是测试版,但已经称得上“麻雀虽小五脏俱全”。 被视为“移动互联网时代最有代表性App”的抖音却反其道地推出了网页版,这的确是令人感到不解的行为。但结合这两年https://www.maijia.com/article/489631
17.网站专题策划方案(精选7篇)(2)链接策略:结合搜索引擎策略,尽量更多的在各类网页中出现公司网站的名称及链接,行业网站、专业目录、互换连接、签名文章等等,目的在于提供访问量的同时,提高连接广泛度。 八、项目组织架构 1、网站名称:xx网。 2、团队名称: 队名:six top(译six:表示我们团队的六个人;top:希望我们六个人无论遇到什么困难都可以向https://www.unjs.com/fanwenku/348330.html
18.全球网测下载全球网测手机版2024官方下载想要手机版全球网测下载安装?PP提供全球网测2024版官方下载。"全球网测"是由通院与研究所自主研发一款拥有宽带测速、体验网络诊断等功能综合测速软件。APP突出六大亮点优势:5G/千兆接入测速、速率评价反馈、用户上网感知、一站式自动测试、访问测试、。APP测试中国信规划所覆盖全国的千余台自有测量服务器,既达到的要求https://wap.pp.cn/app_BycxdzycxOcxu/
19.人工智能技术应用专业人才培养方案初中毕业或具有同等学力 三、基本学制 3年 四、培养目标 坚持立德树人,不断加强学生思想政治教育,持续深化“三全育人”综合改革,把立德树人融入思想政治教育、文化知识教育、技术技能培养、社会实践教育各环节,推动思想政治工作体系贯穿教学体系、教材体系、管理体系,切实提升思想政治工作质量。本专业主要培养思想政治坚定、https://www.jnitc.cn/sys-nd/1368.html