zoukankan      html  css  js  c++  java
  • 四则运算结对项目升级版

    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213

    GitHub地址:https://github.com/CCCCLM/CLM

    结对伙伴:刘睿智     201606120032  博客地址:https://www.cnblogs.com/LRZluck/

                    陈力铭 201606120034  博客地址:https://www.cnblogs.com/Cclm/

    一、程序基本要求

    自动生成题目,单个题目最多不能超过4个运算符,操作数小于100。

    用户可以输入答案

    若用户输入答案正确,则提示正确;若答案错误,则提示错误,并要提示正确答案是多少。

    二、四个扩展方向

    用户答题结束以后,程序可以显示用户答题所用的时间

    用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数

    程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题。

    程序可以设置皮肤功能,可以改变界面的颜色即可。

    用户在第一次答题时,需要用户输入用户名,用户下次启动后,程序需要记住用户前一次输入的用户名 

    三、时间记录表

    PSP2.1

    Personal Software Process Stages

    Time Senior Student(h)

    Time(h)

    Planning

    计划

    0.5

    0.5

    · Estimate

    估计这个任务需要多少时间

    10

    26

    Development

    开发

    1

    1.1

    · Analysis

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

    0.1

    0.5

    · Design Spec

    生成设计文档

    0

    0

    · Design Review

    设计复审

    0.1

    2.5

    · Coding Standard

    代码规范

    0.1

    0.1

    · Design

    具体设计

    2

    4

    · Coding

    具体编码

    10

    15

    · Code Review

    代码复审

    1

    1

    · Test

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

    1

    1.5

    Reporting

    报告

    0

    0

    Test Report

    测试报告

    0.3

    0

    ·workload

    计算工作量

    0.3

    0.5

    ·correction

    并提出过程改进计划

    0.3

    3.3

    • 四、结对过程

    • 结对照片:

    五.开发环境

      调试并编写代码

    六.结对感悟

    通过这次的结对项目让我明白了团队的力量,以前做项目很多时候都是自己一个人来搞,每次碰到解决不了的问题就只会自己烦操,但通过这次结对合作,让我在做项目的时候感觉到了一种依靠,不用自己一个人孤苦作战。然后说回项目本身,这次项目应该是比较难的一次作业了,功能也蛮多的,在要求脱离控制台这个要求上我们思考了蛮久的。在这次项目里,我们不断查阅资料不断解决bug,在这个阶段我们是学习到最多东西的一部分。

    七.具体代码

    时间+计时器

    var i =0;
        function clock(){
            i++;
            var time = new Date();
            document.getElementById("clock").value = time;
            var btn =document.getElementById("btn");
    //        btn.onclick = function(){
    //            clearInterval(t);
                document.getElementById("sumtime").value=i;
    //        }
                if(i==120){
                    clearInterval(t);
                alert("时间到,请提交答案");
            }
        }
        var t = setInterval(clock,1000);

    计算分数

    for(int i=0;i<number;i++){
        answers[i]= Integer.parseInt(request.getParameter("answer"+i));
        if(answer[i]==answers[i]){
            fenshu1=fenshu1+fengshu;
            j++;
        }
    }

    运算算法

     public int Calculation(){
            int[] numberA=numberB;
            String[] numberSymbol=SymbolNumber1;
            int answer=0;
            int h=0;
            int l=0;
            int z=0;
             for(int i=0;i<numberSymbol.length;i++){
                 if(i>=1&&z==1){
                     h=i;
                     i--;
                 }
                 if(numberSymbol[i].equals("*")){
                   answer= numberA[i]*numberA[i+1];
                   numberA[i]=answer;
                   for(int j=i;j<numberSymbol.length;j++){
                         if(j<numberSymbol.length-1){
                             numberA[j+1]=numberA[j+2];
                             numberSymbol[j]=numberSymbol[j+1];
                             numberSymbol[j+1]="a";
                         }
                     }
                     z=1;
    
                         l++;
    
                 }
                 if(numberSymbol[i].equals("/")){
                     answer=numberA[i]/numberA[i+1];
                     numberA[i]=answer;
                     for(int j=i;j<numberSymbol.length;j++){
                         if(j<numberSymbol.length-1) {
                             numberA[j + 1] = numberA[j + 2];
                             numberSymbol[j] = numberSymbol[j + 1];
                             numberSymbol[j+1]="b";
                         }
                     }
                     z=1;
                         l++;
    
                 }
                 if(h!=0) {
                     i = h;
                     h = 0;
                 }
             }
             for(int i=0;i<numberSymbol.length-l;i++){
                 if(i>=1){
                     h=i;
                     i--;
                 }
                 if(numberSymbol[i].equals("-")){
                     answer= numberA[i]-numberA[i+1];
                     numberA[i]=answer;
                     for(int j=i;j<numberSymbol.length;j++){
                         if(j<numberSymbol.length-1) {
                             numberA[j + 1] = numberA[j + 2];
                             numberSymbol[j] = numberSymbol[j + 1];
                         }
                     }
                     if(h!=0) {
                         l++;
                     }
                 }
                 if(numberSymbol[i].equals("+")){
                     answer=numberA[i]+numberA[i+1];
                     numberA[i]=answer;
                     for(int j=i;j<numberSymbol.length;j++){
                         if(j<numberSymbol.length-1) {
                             numberA[j + 1] = numberA[j + 2];
                             numberSymbol[j] = numberSymbol[j + 1];
                         }
                     }
                     if(h!=0) {
                         i++;
                     }
                 }
                 if(h!=0) {
                     i = h;
                     h=0;
                 }
             }
             return answer;
        }

    更改颜色

    function Changecolor()
            {
                document.getElementById("change").style.backgroundColor="#6610f2";
            }

    八.运行截图

  • 相关阅读:
    什么是 bean 的自动装配?
    什么是 Spring 的内部 bean?
    什么是 Spring 的 MVC 框架?
    Spring AOP and AspectJ AOP 有什么区别?
    解释 JDBC 抽象和 DAO 模块?
    volatile 类型变量提供什么保证?
    一个 Spring Bean 定义 包含什么?
    什么是 Spring MVC 框架的控制器?
    使用 Spring 访问 Hibernate 的方法有哪些?
    什么是 Callable 和 Future?
  • 原文地址:https://www.cnblogs.com/LRZluck/p/9846515.html
Copyright © 2011-2022 走看看