zoukankan      html  css  js  c++  java
  • 结对编程1

    PS:201421123067(柯怡芳)、201421123083(王李焕)

    a. 需求分析:

    1.为了使界面更加人性化,将此次程序做成一个简单的服务端用的编程网页
    2.为了实现了计时功能,方便用户查看学习效果,故可以计算出用户答题消耗的时间,在前端网页answerpage.jsp中给出题目和开始计时,在result.jsp中答案检查和各项数据统计,正确数,正确率,时间的统计
    3.为了照顾到不同用户的阅读习惯,在前端网页index.jsp中实现语言切换功能,界面支持中文简体/中文繁体/英语,方便用户使用。

    b. 程序设计:

    后台java中生成的类:

    前端网页jsp:

    c. 代码展示:

    1.代码移植

     首先,对上次的代码进行修改,主要是工具类中的方法的输出和返回值的修改,以适合网页后端要求,将主函数中部分代码应用与jsp页面,具体代码见码云。
    

    2.首页 index.jsp

     首页用提供一输入框供用户输入题数。按要求添加三种语言选择项,选择后通过表单提交给本页实现切换,选择表单代码:
    
    <form action="index.jsp" method="post">
    <input type="radio" name="language" value="simplified" checked >简体中文
    <br>
    <input type="radio" name="language" value="complex">繁體中文
    <br>
    <input type="radio" name="language" value="English">English
    <br/><br/>
    <input type="submit" value="<%out.print(button); %>">
    </form>
    
     实现语言切换:
    
    String input="请输入需要的题目数量:";
    String title="小学四则运算生成器";
    String button="确定";
    String language=(String)request.getParameter("language");
    /* 依据language的值(simplified,complex,English)给字符串赋值*/
    try{
    if(language.equals("complex")){input="請輸入需要的題目數量:";button="確定";title="小學四則運算生成器";}
    else if(language.equals("English")){input="Please input the number of Questions:";button="Go";title="Arithmetic Generator for Pupils";}
    }catch(NullPointerException e){
        language="simplified";
    }
    

    3.答题页 answerpage.jsp

     答题页适应语言切换:
    
    String str="";//接受session
    String button="提交";
    String language=(String)request.getParameter("language");
    String time="计时: ";
    try{
    if(language.equals("complex")){button="確定";time="計時: ";}
    else if(language.equals("English")){button="Submit";time="Time: ";}
    }catch(NullPointerException e){
    	 button="提交";
    }
    
    
     添加计时功能,当页面开启时开始计时,用JavaScript实现,答案提交时结束,时间数值提交到结果页:
    
    <script type="text/javascript">
    var c=0
    
    function timedCount()
    {
    document.getElementById('txt').value=c
    c=c+1
    t=setTimeout("timedCount()",1000)     //每1秒跳一次
    }
    
    

    在网页主体头标签onload="timeCount()"来实现开始计时。

    4.结果页 result.jsp

     本页用于检查答案以及对答题情况进行统计,同时也有适应语言的代码,不再列出,详见码云及下文截图。
    

    d. 程序运行:

    首页中文:

    繁体:

    英文:

    答题页:

    结果页:

    结果页英文版:

    e. 小结感受:

    我觉得结对编程有好有坏,但是好处远远大于的不好的地方:
    1.结对意味着合作,我们在结对写程序时,我不仅能观察队友如何编写代码,还能看到他是如何面对整个开发流程的,可以有效地在实践中进行学习。
    2.在编程中,两人能进行相互讨论,即使遇到了分歧,大家互相协调,也能更快更有效地解决问题,一个人的想法始终有限,两个人的力量是远大于一个人的。
    3.我是属于编程基础比较差的一方,在编写过程中,队友帮助了我许多,很感谢我的队友。因此,我认为结对编程能够带来1+1>2的效果。


    ###码云地址:[https://git.oschina.net/HuanWong/PersonalHomework_1]
    ###结队分工: 本次作业选用队友的代码做出功能的而修改。在代码的移植修改阶段,主要由队友修改代码,本人负责提供思路建议及校对监督。在添加新功能阶段,两人在讨论中轮流交换角色,一个人负责写代码另一个负责校对监督,最终将本次作业完成。最后共同讨论完成博客。

    照骗!!


    ###PSP
    PSP2.1 Personal Software Process Stages Time Senior Student Time
    Planning 计划 10 8
    · Estimate 估计这个任务需要多少时间 10 7
    Development 开发 70 73
    · Analysis 需求分析 (包括学习新技术) 6 9
    Design Spec 生成设计文档 6 8
    · Design Review 设计复审 4 5
    · Coding Standard 代码规范 4 4
    · Design 具体设计 9 13
    · Coding 具体编码 40 25
    · Code Review 代码复审 7 8
    · Test 测试(自我测试,修改代码,提交修改) 15 20
    Reporting 报告 10 10
    · 测试报告 3 3
    · 计算工作量 2 1
    · 并提出过程改进计划 3 3
  • 相关阅读:
    mysql 创建++删除 数据表
    mac 配置apache
    mac 安装mysql
    mysql 创建++删除 数据库
    配置默认编码为utf8
    mysql 添加用户
    mysql 查看库结构---查看表结构
    centos7
    centOS 7 安装mysql
    修改字符集
  • 原文地址:https://www.cnblogs.com/keyi123/p/6542061.html
Copyright © 2011-2022 走看看