第二次作业:四则运算

需求分析

编写一个能对0--10之间的整数(随机生成)进行四则运算的“软件”程序能接收用户输入的整数答案,并判断对错程序结束时,统计出答对、答错的题目数量。

设计思路:

我用的是Windows窗体应用程序,有3个Form窗体,如图:

在Form1中设置3个Textbox控件,表示随机数和输出结果,两个Label控件,代表运算符和“=”,7个Button控件代表“+、-、*、/、开始、说明、结束”;

Form2中4个Label控件,4个Textbox控件,表示“答题总数、正确数、错误数和正确率”;

Form3

代码:

Form1代码:

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 四则运算
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public static int Count = 0;
        public static int right = 0;

        private void button1_Click(object sender, EventArgs e)
        {
            RandomNum();
        }
        private void RandomNum()
        {
            Random random = new Random();
            int number1, number2;
            number1 = random.Next(1, 11);
            number2 = random.Next(1, 11);
            textBox1.Text = number1.ToString();
            textBox2.Text = number2.ToString();
            textBox3.Text = "";
            Count++;

        }

        private void textBox3_KeyDown(object sender, KeyEventArgs e)
        {
            int sum;
            string  n= label1.Text;

            switch (n)
            {
                case "+":
                    sum = int.Parse(textBox1.Text) + int.Parse(textBox2.Text);
                    break;
                case "-":
                    sum = int.Parse(textBox1.Text) - int.Parse(textBox2.Text);
                    break;
                case "*":
                    sum = int.Parse(textBox1.Text) * int.Parse(textBox2.Text);
                    break;
                default:
                    sum = int.Parse(textBox1.Text) / int.Parse(textBox2.Text);
                    break;
            }

            if (e.KeyCode == Keys.Enter)
            {
                if (textBox3.Text == sum.ToString())
                    right++;

                RandomNum();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            textBox3.Enabled = true;
            Form2 frm2 = new Form2();
            frm2.ShowDialog();

        }

        private void button3_Click(object sender, EventArgs e)
        {
            label1.Text = "+";
        }

        private void button4_Click(object sender, EventArgs e)
        {
            label1.Text = "-";
        }

        private void button5_Click(object sender, EventArgs e)
        {
            label1.Text = "*";
        }

        private void button6_Click(object sender, EventArgs e)
        {
            label1.Text = "/";
        }

        private void button7_Click(object sender, EventArgs e)
        {
            new Form3().Show();
        }
    }
}

Form2代码:

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 四则运算
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            textBox1.Text = Form1.Count.ToString();
            textBox2.Text = Form1.right.ToString();
            textBox3.Text = (Form1.Count - (double)(Form1.right)).ToString();
            textBox4.Text = ((Form1.right / (double)(Form1.Count)) * 100).ToString() + "%";
        }
    }
}

运行结果:

PSP耗时分析:

总结:

这是第一次在不是照书抄的情况下自己设计程序,看到题目要求后就感觉自己不会做,后来发现以前的一次作业与这个类似,我就仿照了一些,但还是有一些地方不太明白,后请教他人解决了。但运行结果出来后发现因为程序自动产生下一道,总有一道是错的,不能解决,希望老师可以帮忙!

时间: 2025-01-17 09:06:20

第二次作业:四则运算的相关文章

第二次作业——四则运算

package sz; import java.awt.Button; import java.awt.Frame; import java.awt.Label; import java.awt.TextField; import java.util.Random; public class Jsq { Frame frame = new Frame("四则运算"); frame.setVisible(true); String one=""; String sec

第二次作业 四则运算

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 Windowss { public partial class Form1 : Form { public Fo

结对第二次作业

软件工程结对编程第二次作业 四则运算要求 能够自动生成四则运算练习题 可以定制题目数量 用户可以选择运算符 用户设置最大数(如十以内.百以内等) 用户选择是否有括号.是否有小数 用户选择输出方式(如输出到文件.打印机等) 最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主) 本次任务中扮演的角色及任务要求 ??在本次结对作业中我是一名领航员,负责辅助驾驶员完成全部代码工作,并且为关键函数选用合适的覆盖标准设计测试用例,并编写代码进行单元自动测试. 根据代码检查表对驾驶员的本次工作进行评

解题报告——2018级2016第二学期第二周作业

解题报告——2018级2016第二学期第二周作业 D:迷宫问题 题目描述: 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线. 输入 一个5 × 5的二维数组,表示一个迷宫.数据保证有唯一解. 输出 左上角到右

马哥linux 培训第二周作业

注意:第二周作业,请将以下题目整理在51cto博客当中,完成后请将对应的博文链接地址提交在答案栏中,提交格式如下:学号+姓名+博文链接地址eg:1+张三+http://mageedu.blog.51cto.com/4265610/1794420 本周作业内容:1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 文件管理的命令有cp.mv.rm 复制命令:cp 用法: cp [-adfilprsu] 来源文件(source) 目标文件(destination) cp [o

第二次作业 孙榜婷

2.9 设有如下语句,请用相应的谓词公式分别把它们表示出来: (1) 有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花又喜欢菊花 . 解:定义谓词 P(x):x是人 L(x,y):x喜欢y 其中,y的个体域是{梅花,菊花}. 将知识用谓词表示为: (∃x )(P(x)→L(x, 梅花)∨L(x, 菊花)∨L(x, 梅花)∧L(x, 菊花)) (2) 有人每天下午都去打篮 解:定义谓词 P(x):x是人 B(x):x打篮球 A(y):y是下午 将知识用谓词表示为: (∃x )(∀y) (A(y)→

牛老师第二次作业

namespace 第二次作业{    class RandomNumber    {        public int Add(int x, int y)        {            return x + y;        }        public int Sub(int x, int y)        {            return x - y;        }        public int Mul(int x, int y)        {    

Linux+Python高端运维班第二次作业

Linux+Python高端运维班第二次作业 1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. [[email protected] ~]# who |cut -d" " -f1|uniq (unknown) root test1 [[email protected] ~]# who |cut -d" " -f1|sort -u root (unknown) wangyanglin 2.取出当前系统上被用户当作其默认shel

第二周作业补交(请老师看一下)

#include<stdio.h> #include<math.h> int main(void) { int money,year; double rate,sum; printf("Enter money:"); scanf("%d",&money); printf("Enter year:"); scanf("%d",&year); printf("Enter rate:

耿丹16-1第二次作业

-- Deadline: 2016-09-23 23:00 pm -- 作业内容:https://edu.cnblogs.com/campus/bjgygd/Sixteen-One/homework/85 -- 第二次作业总结: 1. 总共5位同学未按时提交,且目前未交. 2. 大部分同学都注意了代码的缩进格式,希望继续保持! 3. 希望同学们下节课作业可以使用博客中自带的代码编辑器,养成良好的代码编写风格! 周刘晋源同学已经开始使用了,特此提出表扬! 4. 大家学习了变量类型的定义,以后会遇到