四则运算法

1.  窗体设计好,如下图所示:

2. 定义总计和正确的变量 运算的方法。

3. 给加减乘除四个按钮的单击事件分别赋值lable1为+,-,*,/。

4. 给总计,正确,正确率这三个textBox赋值,并引用运算的方法。

其代码如下:

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 szys.c

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private static int

Count = 0,

right = 0;

//总计的个数和正确的个数

private void ys()

{

Random rn = new Random();

int i, j;

i = rn.Next(11);

j = rn.Next(1, 11);

textBox1.Text = i.ToString();

textBox2.Text = j.ToString();

textBox3.Text = "";

}        //算法的方法

private void button1_Click_1(object sender, EventArgs e)

{

label1.Text = "+";

label1.Visible = true;

}

private void button2_Click_1(object sender, EventArgs e)

{

label1.Text = "-";

label1.Visible = true;

}

private void button3_Click(object sender, EventArgs e)

{

label1.Text = "*";

label1.Visible = true;

}

private void button4_Click(object sender, EventArgs e)

{

label1.Text = "/";

label1.Visible = true;

} //四个button的单击事件,分别赋值lable1为+,-,*,/

private void button5_Click_1(object sender, EventArgs e)

{

ys();

} //开始的单击事件,运用算法

private void button6_Click_1(object sender, EventArgs e)

{

textBox3.Enabled = false;

MessageBox.Show("运算结束!");

}         //结束的单击事件

private void textBox3_KeyDown_1(object sender, KeyEventArgs e)

{

if (label1.Text == "+")

{

int sum;

sum = int.Parse(textBox1.Text) + int.Parse(textBox2.Text);

if (e.KeyCode == Keys.Enter)

{

if (textBox3.Text == sum.ToString())

{       right++;

Count++;

}

else

Count++;

textBox4.Text = Count.ToString();//总计值的赋值                                         textBox4.Enabled = false;

textBox5.Text = right.ToString();//正确值的赋值                     textBox5.Enabled = false;

textBox6.Text = ((right / (double)Count) * 100).ToString() + "%";//正确率的赋值                     textBox6.Enabled = false;

ys();

}

}

//以下三个赋值同上

else if (label1.Text=="-")

{     int cha;

cha = int.Parse(textBox1.Text) - int.Parse(textBox2.Text);

if (e.KeyCode == Keys.Enter)

{

if (textBox3.Text == cha.ToString())

{

right++;

Count++;

}

else

Count++;

textBox4.Text = Count.ToString();

textBox4.Enabled = false;

textBox5.Text = right.ToString();

textBox5.Enabled = false;

textBox6.Text = ((right / (double)Count) * 100).ToString() + "%";                     textBox6.Enabled = false;

ys();

}

}

else  if (label1.Text=="*")

{

int qj;

qj  = int.Parse(textBox1.Text) * int.Parse(textBox2.Text);

if (e.KeyCode == Keys.Enter)

{

if (textBox3.Text == qj.ToString())

{

right++;

Count++;

}

else

Count++;

textBox4.Text = Count.ToString();

textBox4.Enabled = false;

textBox5.Text = right.ToString();

textBox5.Enabled = false;

textBox6.Text = ((right / (double)Count) * 100).ToString() + "%";                     textBox6.Enabled = false;

ys();

}

}

if (label1.Text=="/")

{

double chu;

chu  = int.Parse(textBox1.Text) /int.Parse(textBox2.Text);

if (e.KeyCode == Keys.Enter)

{

if (double.Parse (textBox3.Text)==chu )

{

right++;

Count++;

}

else

Count++;

textBox4.Text = Count.ToString();

textBox4.Enabled = false;

textBox5.Text = right.ToString();

textBox5.Enabled = false;

textBox6.Text = ((right / (double)Count) * 100).ToString() + "%";                     textBox6.Enabled = false;

ys();

}

}

}

} }

5. 运行时选择要使用的运算符号,然后点击开始,即开始算题,按enter键继续下一题,点击结束,即运算结束,总计的个数和正确数,正确率都随计算的过程,个数而出现不同结果。

运算过程还有点缺陷,比如进行了加法运算结束后,需要关闭运行,再次运行程序才能进行其他的运算。希望老师给点意见 ,该怎么改进。

时间: 2024-08-06 06:34:00

四则运算法的相关文章

137.Single Number II(法1排序法2STL容器map哈希法3位运算法4改进的位运算)

Given an array of integers, every element appears three timesexcept for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement itwithout using extra memory? HideTags Bit Manipulation #pragma once

PHP加法递增运算法1+2+3+4+5................

<?php               //while循环语句 /* 1+2=3 3+3=6 6+4=10 10+5=15 15+6=21 21+7=28 28+8=36 36+9=45 45+10=55 ...... */ $a=1;//结果 $c=2;//循环次数 while ($c<=10){ $b=$c;  //把C的值赋值给B $a=$a+$b;//实现a+b结果赋值给a a=3 $c++;//变量C加1,原来的2变成3 echo"$a"; //循环中输出a ec

1.3 Bags, Queues, and Stacks(算法 Algorithms 第4版)(一)

1.3.1 package com.qiusongde; import java.util.Iterator; import java.util.NoSuchElementException; import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; public class FixedCapacityStackOfStrings implements Iterable<String> { privat

[经典算法] 中序式转后序式/前序式

题目说明: 平常所使用的运算式,主要是将运算元放在运算子的两旁,例如a+b/d这样的式子,这称之为中序(Infix)表示式,对于人类来说,这样的式子很容易理 解,但由于电脑执行指令时是有顺序的,遇到中序表示式时,无法直接进行运算,而必须进一步判断运算的先后顺序,所以必须将中序表示式转换为另一种表示方 法.可以将中序表示式转换为后序(Postfix)表示式,后序表示式又称之为逆向波兰表示式(Reverse polish notation),它是由波兰的数学家卢卡谢维奇提出,例如(a+b)*(c+d

算法初步

1, 选择排序 最简单粗暴地,也是大O比较大的 #include <iostream>   #include <algorithm>       using namespace std;       void selectionSort(int arr[], int n){       for(int i = 0 ; i < n ; i ++){   // 寻找[i, n)区间里的最小值   int minIndex = i;   for( int j = i + 1 ; j

【编程题】简单的四则运算

问题描述: 输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值 注: 1.表达式只含 +, -, *, /, (, ), 四则运算符 2.表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况 3.要考虑加减乘除按通常四则运算规定的计算优先级 4.除法用整数除法,即仅保留除法运算结果的整数部分.比如8/3=2.输入表达式保证无0作为除数情况发生 5.输入字符串一定是符合题意合法的表达式,其中只包括数字字符和四则运算符字符,除此之外不含其它任何字符,不会出现计算溢出情况 •

ACM学习历程——ZOJ 3829 Known Notation (2014牡丹江区域赛K题)(策略,栈)

Description Do you know reverse Polish notation (RPN)? It is a known notation in the area of mathematics and computer science. It is also known as postfix notation since every operator in an expression follows all of its operands. Bob is a student in

C/C++笔试忍法帖04——C/C++语法特性篇

1.Heap与stack的差别 Heap是堆,stack是栈. Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放. Stack空间有限,Heap是很大的自由存储区 C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符. 程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行. 2.In C++, what does "explicit" mean? what does "protected&

Scala Control Structures

Scala之Control Structures 一.前言 前面学习了Scala的Numbers,接着学习Scala的Control Structures(控制结构). 二.Control Structures Scala中的控制结构与Java中的颇为类似,但也有所不同,例如,if/then/else控制结构与Java的类似,但是其可以返回值,虽然Java中有三元运算符的特殊语法,但是在Scala中使用if就可以达到同样的效果. val x = if (a) y else z 同样,Scala的