结对项目-web小学四则运算

目录

一、Coding.net地址

二、接口设计

三、主要代码展示

四、程序运行流程

五、页面展示

六、描述结对的过程

七、PSP

八、个人总结


一、Coding.net地址

详见地址:https://dev.tencent.com/u/Cuiyiran/p/jieduixiangmu-WEBsizeyunsuan2

二、接口设计

共有五个类来实现功能:

  • Condition类
  • Produce类
  • Print类
  • Main类
  • ToFile类

主要函数流程图:

结对项目-web小学四则运算_第1张图片

三、主要代码展示

 

1、将答案和结果进行比较

public static int doCal2(List list ){
        Stack stack = new Stack();
        for(int i=0;i

2、根据要求生成题目

public class Request extends HttpServlet {
    public Request() {
    }

    @Override
    public void destroy() {
        super.destroy();
    }

    @Override
    public void init() throws ServletException {
        super.init();
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html;charset=utf-8");
        request.setCharacterEncoding("utf-8");
        int  n= Integer.parseInt(request.getParameter("quesNum"));
        int  max= Integer.parseInt(request.getParameter("maxNum"));
        int min= Integer.parseInt(request.getParameter("minNum"));
        int o= Integer.parseInt(request.getParameter("operScope"));
        boolean c= Boolean.parseBoolean(request.getParameter("multi"));
        boolean  b= Boolean.parseBoolean(request.getParameter("bracket" ));
        Produce p=new Produce();
        ArrayList s=new ArrayList();

        for(int i=0;i

3、对输入异常的处理

            if(args[r].equals("-n") ){//输入异常处理

                try {
                    n = Integer.parseInt(args[++r]);//控制命令行输入
                    if (n<0)
                        System.out.println("n必须是正整数");
                }
                catch (Exception e)
                {
                    System.out.println("n必须是正整数");
                }

            }

 4、计时功能(包括开始、暂停、重置)

function Reset() //重置
{
	window.clearInterval(int);
	millisecond = hour = minute = second = 0;
	document.getElementById('timetext').value = '00时00分00秒';
}

function start() //开始
{
	int = setInterval(timer, 50);
}

function timer() //计时
{
	millisecond = millisecond + 50;
	if(millisecond >= 1000) {
		millisecond = 0;
		second = second + 1;
	}
	if(second >= 60) {
		second = 0;
		minute = minute + 1;
	}

	if(minute >= 60) {
		minute = 0;
		hour = hour + 1;
	}
	document.getElementById('timetext').value = hour + '时' + minute + '分' + second + '秒';

}

function stop() //暂停
{
	window.clearInterval(int);
}

5、题目的判错

function yesOrNo(){
    //yes 为题目正确个数
    //total为题目总个数&
    var yes=0;
    var total = document.getElementById("total_number").value;
    var get_answer = document.getElementsByClassName("get_answer");
    var yesOrNo = document.getElementsByClassName("gou");
    var right_answer= document.getElementsByName("meng");

    for(var i = 0; i < total ; i++){
        //right_answer:传过来的答案
        //get_answer:输入的答案
        //get_ques:得到的题目

        if(get_answer[i].value == right_answer[i].value){
            yesOrNo[i].innerHTML="yes"+"  "+right_answer[i].value;
            yesOrNo[i].style.color="#00ad45";
            yes++;
        }else{
            yesOrNo[i].innerHTML="no"+"  "+right_answer[i].value;
            yesOrNo[i].style.color="#ED3434";
        }
    }

    var yesNum = document.getElementById("right_number");
    yesNum.value = yes;
}

四、程序运行流程

结对项目-web小学四则运算_第2张图片

五、页面展示

开始答题界面

定制题目界面

进行答题界面

六、描述结对的过程

       对于刚刚开始写结对项目的时候,我们觉得有些茫然,不知道自己应该从哪些方面开始着手,我们的页面应该是什么样子的?我们的功能又要有哪些?经过大概一个星期的讨论与合作,我们第一个项目也即将完成。在第一次磨合的过程中,我们有过困难,会为了为什么不出现想要的效果而愁眉苦脸,也会因为在苦苦寻找方法很久,最后发现竟然是一个因为粗心而导致的小问题而哭笑不得。最终,我们还是在项目中取长补短,一个人负责后端代码,一个人负责前端代码,一起合作完成了整个项目。在这次结对项目中,我们深刻体会到了团队沟通的重要性,也学会了如何更好的表达自己的想法与建议,以及认真的听取伙伴的意见。这次合作使我们两个人都收获很多,希望以后一起加油。

七、PSP

PSP2.1

任务内容

计划共完成需要的时间(min)

实际完成需要的时间(min)

Planning

计划

60

45

·        Estimate

·   估计这个任务需要多少时间,并规划大致工作步骤

60

45

Development

开发

2295

4034

·        Analysis

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

70

90

·        Design Spec

·         生成设计文档

0

0

·        Design Review

·         设计复审

30

25

·        Coding Standard

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

45

60

·        Design

·         具体设计

90

106

·        Coding

·         具体编码

 

2000

3500

·        Code Review

·         代码复审

30

197

·        Test

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

30

54

Reporting

报告

165

241

·         Test Report

·         测试报告

120

150

·         Size Measurement

·         计算工作量

15

35

·         Postmortem & Process Improvement Plan

·         事后总结, 并提出过程改进计划

30

56

八、个人总结

后端:刚开始毫无头绪,感觉虽然核心代码是一样的,但是要想实现web的新需求还是要加上很多东西,而对于这些我没有一个具体的思路,后来浏览了很多学长学姐们的代码,抽丝剥茧,找到了大概的思路和实现方式;之前没有搞清楚前台可以实现的功能,后来发现和前端的小伙伴合作之后发现可以更加简单的实现功能;在实现功能的过程中遇见了很多之前没有遇到过的bug和爆红,这些错误给了我很重要的经验,感觉很充实。想写出一个好的程序,不止要有严谨的逻辑,还要有细心、耐心和精益求精的精神。总之,这次作业使我受益匪浅。

前端:我觉得对于前端来说,这次作业的页面如何设计,怎么可以使页面尽量的美观是非常重要的,对于页面的配色和结构与后端的小伙伴选择了很久,最后我们还是选择了这一种相似于教室黑板的背景。这次的前端页面主要是使用了HTML与CSS;在计时与判断题目是否正确,是由JS代码实现的,但是由于时间比较短,所以记时的功能完成的不是特别的完善。在这次的结对项目中觉得自己学会了很多,对JS了解的更加深刻,同时也深深的认识到自己的不足。我们在后期也同样意识到在项目开始的初期确定详细功能的重要性。希望下次合作中,我们可以更好地取长补短,一起努力。

你可能感兴趣的:(结对项目-web小学四则运算)