计应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);
}
}

浙公网安备 33010602011771号