软工概论第二周个人项目四则运算二(改进)

设计思想:

设计思想:输出表达式的个数n,利用随机数方法产生小于100的随机数,用for循环产生多个随机数,然后在进行判断,判断两个证书的和小于100,差大于0,乘积小于100,能够整除如果不符合要求则跳过本次循环,如果符合则赋值当总数到n时跳出循环,用字符串保存表达式,用double类型的数组保存正确结果,然后循环输出表达式,输入结果后跳转到判断结果界面,循环判断结果,如果相等flag[]为1,不等为0,最后给出正确的题目数量和错误的数量和未作的数量,在循环输出不正确的那些题目

改进的地方:表达式数量输入为空或者为0的优化,结果输入时意外添加空格的优化,最后输出不正确的题目,在线答题时时间限制,更加人性化

//Suanshijava
package p1;

public class Suanshi {
    final int MAX=1000;
    double[] e= new double[MAX];
    String[] f=new String[MAX];
    private int num;

    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public Suanshi(){}
    public Suanshi(int n)
    {
        creatSuanshi(n);
        this.num=n;
    }
    public void creatSuanshi(int n)
    {
          int a;
          int c;
          int d;
          for(int i=0;i<n;i++)
          {
          a=(int)(Math.random()*100+1);
          d=(int)(Math.random()*4+1);
          c=(int)(Math.random()*100+1);
          switch(d){
          case 1:
                  if(a+c>100)
                  {
                      i--;
                      break;
                  }
                  e[i]=a+c;
                   f[i]=""+a+"+"+c;
                  break;
          case 2:
                  if(a-c<0)
                  {
                      i--;
                      break;
                  }
                      e[i]=a-c;
                      f[i]=""+a+"-"+c;
                  break;
          case 3:
                  while(a*c>100)
                  {
                       a=(int)(Math.random()*100+1);
                       c=(int)(Math.random()*100+1);
                  }
                  e[i]=a*c;
                  f[i]=""+a+"*"+c;
                  break;
          case 4:

                  e[i]= (int)(Math.random()*10+1);
                  c= (int)(Math.random()*10+1);
                  a=(int)(c*e[i]);
                  f[i]=""+a+"/"+c;
                  if((c==0)&&(a>100))
                  {
                      i--;
                      break;
                  }
                  break;
              }
              }
    }
    public String getSuanshi(int i)
    {
        return f[i];
    }
    public double getDaan(int i)
    {
        return e[i];
    }

}
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
      <title>输入数量页面</title>
  </head>
    <body background="C:\Users\DELL\Desktop\photo1.jpg">
    <br><br><br><br><br><br><br>
<%
    String loginError = (String)request.getAttribute("loginError");
    if(loginError == null)
    {
        loginError = "";
    }
%>
        <form action="add.jsp" method="get">
            <center><h1>输入页面</h1>
            数量:<input type="text" name="number"/><%=loginError %><br><br>
            时间一共为<font color="red">100</font>秒<br><br>
            <input type="submit" value="开始答题" /></center>
        </form>
    </body>
</html>
<%@page import="p1.Suanshi"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body onLoad="TimeClose();">
<script language="javascript">
    var cTime=100;
    function TimeClose()
    {
        window.setTimeout(‘TimeClose()‘,1000);
        if(cTime<=0)
            CloseWindow_Click();
        this.ShowTime.innerHTML="倒计时"+cTime+"秒后结束答题";
        cTime--;
    }
    function CloseWindow_Click()
    {
        window.close();
    }
</script>
<%
    //获取客户端传递过来的参数

    if("".equals(request.getParameter("number").trim()))
    {
    request.setAttribute("loginError","不能为空");
%>
    <jsp:forward page="index.jsp"></jsp:forward>
<%
    }
    else
    {
        if(Integer.parseInt(request.getParameter("number").trim())==0)
        {
            request.setAttribute("loginError","不能为0");
%>
            <jsp:forward page="index.jsp"></jsp:forward>
<%
        }
    }
    int number=Integer.parseInt(request.getParameter("number").trim());
       Suanshi suanshi=new Suanshi(number);
       session.setAttribute("suanshi", suanshi);
%>
    <center><h1>答题</h1></center>
       <div align="right" id="ShowTime">倒计时100秒后结束答题</div>
       <hr>
       <form action="judge.jsp">

       <table align="center" border="1" width="450">
       <tr>
    <td align="center">题号</td>
    <td align="center">表达式</td>
    <td align="center">你的答案</td>
    </tr>
<%
    for(int i=0;i<number;i++)
     {
%>
    <tr>
    <td align="center">第<%=i+1%>题</td>
    <td align="center"><%=suanshi.getSuanshi(i)%>=</td>
    <td><input type="text" name="daan<%=i%>"></td>
    </tr>
<%
     }
%>
    </table><br>
    <center><input type="submit" value="提交"></center>
    </form>
</body>
</html>
<%@page import="p1.Suanshi"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<%
    Suanshi suanshi = (Suanshi)session.getAttribute("suanshi") ;
    int dui=0;
    int cuo=0;
    int meizuo=0;
    int[] flag=new int[suanshi.getNum()];
    String daan[]=new String[suanshi.getNum()];
    double daan1[]=new double[suanshi.getNum()];

    for(int i=0;i<suanshi.getNum();i++)
    {
        daan[i]=request.getParameter("daan"+i).trim();
        if((daan[i]==null)||("".equals(daan[i].trim())))
        {
            flag[i]=0;
            meizuo++;
        }
        else
        {

              daan1[i] =Double.parseDouble(daan[i]);
            if(Math.abs(daan1[i]-suanshi.getDaan(i))<0.01)
            {
                flag[i]=1;
                dui++;
            }
            else
            {
                flag[i]=0;
                cuo++;
            }
        }
    }
%>
<body>
    <hr size="1" color="black">
    <center>
        <h1>测试成绩</h1>
    <hr size="1" color="black">
        一共:<%=suanshi.getNum()%>道<br>
        没做的:<%=meizuo %>道<br>
        做错的:<%=cuo %>道<br>
        作对的:<%=dui %>道<br></center>
    <hr width="800" color="red">
        <center><h3>错误题目</h3></center>
    <hr width="800" color="red">
<table align="center" border="1" width="450">
<tr>
    <td align="center">题号</td>
    <td align="center">表达式</td>
    <td align="center">正确答案</td>
    <td align="center">你的结果</td>
    </tr>
<%
    for(int i=0;i<suanshi.getNum();i++)
    if(flag[i]==0)
     {
%>
        <tr>
        <td align="center">第<%=i+1%>题</td>
        <td align="center"><%=suanshi.getSuanshi(i)%>=</td>
        <td align="center"><%=suanshi.getDaan(i)%></td>
        <td align="center"><%=daan[i]%></td>
        </tr>
<%
     }
%>
</table>
</body>
</html>
时间: 2024-08-02 15:21:46

软工概论第二周个人项目四则运算二(改进)的相关文章

软工概论第一周动手动脑

一.需要网站系统开发需要掌握的技术 1.java语言 面向对象思想 设计模块和框架思想 xml语言 网页脚本语言 数据库 应用服务器 集成开发环境 二.本次课堂测试的源程序代码 //登录页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3

西北师大-18软工】第二次作业成绩汇总

[西北师大-18软工]第二次作业成绩汇总 同学们在本学期第一次练习小项目,这个过程中一定遇到了许多困难,希望同学们认真反思得失.同时要认清编程能力薄弱的现实,抓紧时间补短板. 作业题目 实验二 软件工程个人项目 实验目的与要求 (1)掌握软件项目个人开发流程. (2)掌握Github上发布软件项目的操作方法 作业评分标准: 按时交 - 有分(满分30分,代码和博客各15分),检查项目包括: 未提交项目源码到Github上,代码部分不得分:未提交博客到班级博客上,博客部分不得分: 根据项目完成质量

软件工程概论第二周学习进度

                                                                           第二周        所花时间(包括上课)                            4小时        代码量                            50行        博客量                            2篇        了解到的知识点(填写具体知识点)                

第二周——团队项目(小小大佬带飞队)

姓名 学号 杨浩政(组长) 3116004705 谢创敏 3116004478 钟伟 3116004711 李奕柱 3116004691 李晓阳 3116004641 肖洁銮(小小) 3216004492 文本图像识别是机器视觉领域的重要研究课题之一.文本图像识别涵盖很多应用和任务,其中大部分起源于几十年前的文档数字化.利用原始图像数据实现其分类.识别.检索已经成为信息处理领域极其重要的研究内容.用户能够对图像文档进行更高层次的操作与理解,因此文本图像识别技术得到了越来越广泛的关注与应用. 需求

软工概论-课堂练习:添加信息

题目要求: 设计思路: 对于该设计,主要使用两个jsp页面编码,一个java文件,其余java文件是定义相关变量与方法的,具体可参考下述代码.对于该设计首先使用jsp进行编码设计,设计出基本的框架,对"保存"按钮类型定义成submit,进行页面的跳转,跳转到接收上述文本框输入的内容jsp页面,在这个页面接收文字信息,并且使用这些文字信息(即将要添加到数据库的)进行数据库的插入操作,首先按照要求判断是否符合题目要求(注意使用Str.equals()而不是用==),具体判断用到了字符串取字

阿外团队——软工第9周计划汇报

产品需求书 一.产品描述 通过开发基于网站形式的网页端大学生二手物品交易平台,发布相关闲置物品交易信息,为大学生解决“剁手”完之后的“回血”提供一个发布信息的平台,有利于大学的相关的交易,提高闲置物品的流通利用以及提高大学生的生活质量. 二.用户特点以及需求分析 本网站基于广东工业大学的本科生,硕士生以及在校老师,职工等,开发的一个网页端的信息发布以及交流平台,当今大学生在今天的物质生活中很容易冲动消费,导致购买了很多生活上不需要的物件,或者在生活中有很多一次性使用的物品,比如说:四.六级耳机,

软工实践第二次作业-黄紫仪

1)Github项目地址 https://github.com/ziyi12345/shudu2.git 2)在开始实现程序之前,在下述PSP表格记录下你估计将在程序的各个模块的开发上耗费的时间 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 · Estimate · 估计这个任务需要多少时间 30 Development 开发 260 · Analysis · 需求分析 (包括学习新技术) 60

软件工程概论第二周综合测验----设计思路

四则运算2 程序要求:题目避免重复,可定制(数量.打印方式):可以控制下列参数:是否有乘除法,数值范围,加减有无负数,除法有无余数,是否支持分数. 设计思路: 1,题目避免重复:先出第一道题,再出第二道题的话首先判断第二道题的运算如果等于第一道题则有:第二道题的第一个随机数如果等于第一道题的第一个数且第二道题的第二个随机数等于第一道题的第二个数,则重新选数.否则继续.第三道题也从运算符开始判断. 2,可定制数量.打印方式:设置一个变量,变量根据用户需要输入.即“请输入所需题目的数量:”和“每行打

20165322 第二周结队编程-四则运算

结对编程-四则运算 整体总结 学习笔记 中缀表达式转换为后缀表达式 如果遇到数字,我们就直接将其输出. 如果遇到非数字时,若栈为空或者该符号为左括号或者栈顶元素为括号,直接入栈. 如果遇到一个右括号,持续出栈并输出符号,直到栈顶元素为左括号,然后将左括号出栈(注意,左括号只出栈,不输出),右括号不入栈. 如果遇到运算符号且栈非空,查看栈顶元素,如果栈顶元素的运算优先级大于或者等于该运算符号,则持续出栈,直到栈顶元素优先级小于该运算符.最后将该元素入栈. 如果我们读到了输入的末尾,则将栈中所有元素