计应191西第二组 小学生口算题卡

1、张岩峰   https://www.cnblogs.com/nrwzyf/p/14826219.html 

2、石亚佩

计划:

开发阶段所需时间共计150分钟

 

开发阶段

需求分析:

作为一名1年级小学生的家长,我希望开发出一个口算题卡软件,希望能生成100以内的加减法。

分析要实现的功能:自动出题、随机生成100以内的加减法、判断对错、判断做题的正确率

 

项目实现的代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 小学生100以内加法计算器
{
    public partial class Form1 : Form
{
    public Form1()
{
    InitializeComponent();
}

private void label1_Click(object sender, EventArgs e)
{

}

private void label3_Click(object sender, EventArgs e)
{

}

private void Form1_Load(object sender, EventArgs e)
{
    Random a = new Random();
    int num1 = a.Next(0, 50);
    label1.Text = num1.ToString();
    int num2 = a.Next(0, 50);
    label3.Text = num2.ToString();
}
    double d, b, f = 0; double g;
private void button1_Click(object sender, EventArgs e)
{
    f = f + 1;
    if (textBox1.Text == "")
{
    MessageBox.Show("错误");
}
    string x = label1.Text;
    string y = label3.Text;
    string c = (int.Parse(x) + int.Parse(y)).ToString();
    if (textBox1.Text == c)
{
    listBox1.Items.Add(x + "+" + y + "=" + c + " √");
    d = d + 1;
}

if (textBox1.Text != c)
{
    listBox1.Items.Add(x + "+" + y + "=" + c + " ×");
    b = b + 1;
}

{
    listBox1.Items.Add(x + "-" + y + "=" + c + " √");
    d = d - 1;
}

if (textBox1.Text != c)
{
    listBox1.Items.Add(x + "-" + y + "=" + c + " ×");
    b = b - 1;
}


    Random a = new Random();
    int num1 = a.Next(0, 50);
    label1.Text = num1.ToString();
    int num2 = a.Next(0, 50);
    label3.Text = num2.ToString();
    g = (d / f) * 100;
    g=Math.Round(g,2);

}

private void button3_Click(object sender, EventArgs e)

{
    textBox1.Text = "";
    listBox1.Items.Clear();
}

private void button2_Click(object sender, EventArgs e)
{
    listBox1.Items.Add("共出题数" + f + "正确数" + d + "错误数" + b + "得分" + g);
}


}
}

 复审代码

运行成功!

3、谢泽田  https://www.cnblogs.com/qq2232012405/p/14833662.html

4、郭志鑫  

主要功能:
(1)主页选择出题范围:
主要描述:提交表单到后台接口,生成相应符合标准的运算式。
表单验证
<c:forEach items="${sessionScope.formulaList}" var="c" varStatus="status">
//遍历运算式数组
<div class="Ti">

<div class="mu a">${c}=</div>//运算式
<div class="mu b">
<input name="c" type="text" class="c">//用户答题框
</div>
<div class="yesno"></div>//打钩或打叉
<div class="ans" ></div><!-- 答案为: -->
<div class="duide"></div><!-- 正确的结果 -->
</div>
</c:forEach>

<c:forEach items="${sessionScope.resultList}" var="d" varStatus="status">
<input style="display:none;" class="daan" value="${d}">//对应的正确答案
</c:forEach>
<form action="/TikaServlet" method="post">
<input type="hidden" name="time" id="time_id"/><!-- 时间 -->
<input type="hidden" name="corNum" id="numRight_id"/><!-- 正确个数 -->
<input type="hidden" name="corRate" id="Rightrate"/><!-- 正确率 -->

<input type="submit" id ="out" class=" chuan" value="上传">
</form>
//判卷
function check(){
var duide = document.getElementsByClassName("duide");//要显示的正确答案
var daan=document.getElementsByClassName('daan');//后台获取的正确答案
var c = document.getElementsByClassName('c');//用户作答
var time=document.getElementById("time_id");
var x = document.getElementById('startShow');
//总计时间
var yesno = document.getElementsByClassName("yesno");//钩或叉
var ans = document.getElementsByClassName("ans");//“答案为:”
var numRight=document.getElementById("numRight_id");//正确的个数
var rate = document.getElementById("Rightrate");//正确率
var yes = 0;//正确个数
var no =0;
var count = 0;//总个数
for(var i=0;i<daan.length;i++){
if(daan[i].value==c[i].value){//若答对了
yesno[i].innerHTML="√";
yesno[i].style.color="#1DF126";
yes++;
count++;
}else{
yesno[i].innerHTML="×";
yesno[i].style.color="red";
//若错误,显示 "答案:正确的答案"
ans[i].innerHTML = "答案:";
ans[i].style.display="inline-block";
duide[i].innerHTML = daan[i].value;
duide[i].style.display="inline-block";
console.log(duide[0].innerHTML);
no++;
count++;
}

numRight.value=yes;
time.value = x.innerHTML;
var str = Number(yes/count*100).toFixed(2);
str +="%";
rate.value = str;
//将相应值通过input hidden 传到后台
}

}
<div class="ka">
<div class="titl">答题卡</div>
<div class="line"

<div class="left">答对总数</div>
<div class="mid">:</div>
<div class="right"><%=request.getSession().getAttribute("corNum")%></div>
</div>
<div class="line">
<div class="left">正确率为</div>
<div class="mid">:</div>
<div class="right"><%=request.getSession().getAttribute("corRate")%></div>
</div>
<div class="line">
<div class="left">总共用时</div>
<div class="mid">:</div>
<div class="right"><%=request.getSession().getAttribute("time")%></div>
</div>
</div>

5、王有才 https://www.cnblogs.com/w000/articles/14833783.html

6、谢书豪 https://www.cnblogs.com/w000/articles/14833783.html

7、宣大卫 

 

一、目的

学会用Java编写简单的四则运算。

二、步骤

思路分析:拿到表达式后,按照人的计算方法先乘除后加减,遍历运算符,得出结果。

三、核心代码

package sizeyunsuan;
 
import java.util.Scanner;
 
public class Szys {
        public static void main(String[] args) {
            Scanner str1 = new Scanner(System.in);
            System.out.println("请输入:");
            String str = str1.nextLine();
            String strs = str.replace("+","-");
            String[] s = strs.split("-");
            double temp=0;
            double sum=0;
            //遍历截取了的字符数组
            for(String a:s){
                //查找有*或/的数组
                if(a.contains("*")||a.contains("/")){
                    //遍历带符号的数组
                    for(int i=0;i<a.length();){
                        //设置一个变量,来控制下标,
                        int count = 1;
                        //需要截取的字符串长度
                        a:for(int j=i+1;j<a.length();j++){
                            //取出下一个字符
                            char c = a.charAt(j);
                            //System.out.println(c+"===");
                            //如果字符是*或/
                            if(c=='*'||c=='/'){
                                //终止a循环
                                break a;
                            }else{
                                //如果不是就长度加一;
                                count++;
                            }
                        }
                        //截取字符串
                        String strNun =a.substring(i,i+count);
//                      System.out.println(strNun+"=========");
                        //转变为数字
                        double d = Double.parseDouble(strNun);
                        //第一个数字
                        if(i==0){
                            temp = d;
                        }else{
                            //取出当前的数字前面的符号
                            char t =a.charAt(i-1);
                            //如果运算符是*
                            if(t=='*'){
                                //前一个数就乘它
                                temp*=d;
                            }else if(t=='/'){
                                temp/=d;
                            }
                        }
                        //把坐标向后移一个长度
                        i+=count+1;
                    }
                    str = str.replace(a, temp+"");
                }
            }
            //计算加减,与上面的思路一样
            for(int i = 0;i<str.length();){
                int count =1;
                a:for(int j=i+1;j<str.length();j++){
                    char c = str.charAt(j);
                    if(c=='+'||c=='-'){
                        break a;
                    }else{
                        count++;
                    }
                }
                String strNum = str.substring(i,i+count);
                double d  =Double.parseDouble(strNum);
                if(i==0){
                    sum=d;
                }else {
                    char s2 =str.charAt(i-1);
                    if(s2=='+'){
                        sum+=d;
                    }else if(s2=='-'){
                        sum-=d;
                    }
                }
                i+=count+1;
            }
            System.out.println(sum);
        }
    }

posted @ 2021-05-31 23:13  计应191西第二组  阅读(52)  评论(0)    收藏  举报