找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3474|回复: 3
收起左侧

一个用C#写的小学数学出题联系系统源代码

[复制链接]
ID:851418 发表于 2020-11-29 23:26 | 显示全部楼层 |阅读模式
c#写的小学数学二年级自动出题系统,实现自动随机出题;四则运算。对于刚学C#的朋友掌握光标获取、锁定光标,TAB切换、回车键绑定、随机数产生、列表框显示运用等有帮助!
51hei.png

源程序如下:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;

  10. namespace WindowsFormsApp4
  11. {
  12.     public partial class Form1 : Form
  13.     {
  14.         public Form1()
  15.         {
  16.             InitializeComponent();
  17.         }

  18.         int a, b,aaa,bbb,bb;

  19.         string op;
  20.          string op1;
  21.          string op2;

  22.          int result;
  23.          int result1;
  24.          int result2;
  25.          
  26.       
  27.         Random rnd = new Random();

  28.         private void Form1_Load(object sender, EventArgs e)
  29.         {
  30.                
  31.         
  32.         }


  33.         private void Button1Click(object sender, EventArgs e)
  34.         {
  35.                
  36.             a = rnd.Next(10) + 1;

  37.             b = rnd.Next(10) + 1;
  38.             if (a<=b)
  39.                     a=a+b;
  40.             
  41.             
  42.             aaa = rnd.Next(10) + 1;

  43.             bbb = rnd.Next(10) + 1;
  44.              if (aaa<=bbb)
  45.                     aaa=aaa+bbb;
  46.             bb = rnd.Next(8) + 1;
  47.             int c = rnd.Next(3);
  48.             int cc = rnd.Next(3);
  49.                         int ccc = rnd.Next(2);
  50.             switch (c)

  51.             {

  52.                 case 0: op = "+"; result = a + b; break;

  53.                 case 1: op = "-"; result = a - b; break;

  54.                 case 2: op = "×"; result = a * b; break;

  55.                 case 3: op = "÷"; result = a / b; break;

  56.             }
  57.               switch (cc)

  58.             {

  59.                 case 0: op1 = "+"; result1 = aaa + bbb ; break;//OP1表示当前运算符号和结果,运算结果result1等于加数+加数

  60.                 case 1: op1 = "-"; result1 = aaa - bbb ; break;//OP1表示当前运算符号和结果,运算结果result1等于被减数-减数

  61.                 case 2: op1 = "×"; result1 = aaa * bbb ; break;//OP1表示当前运算符号和结果,运算结果result1等于乘数*乘数

  62.                 case 3: op1 = "÷"; result1 = aaa / bbb ; break;//OP1表示当前运算符号和结果,运算结果result1等于除数/除数

  63.             }
  64.                switch (ccc)

  65.             {

  66.                 case 0: op2 = "+"; result2 = result1 +  bb; break;

  67.             

  68.                 case 1: op2 = "×"; result2 = result1 *  bb; break;

  69.               

  70.             }
  71.             
  72.                     textBox2.Text = a.ToString();//算式1中的从左边到右第一个数

  73.             textBox3.Text = b.ToString();//算式1中的从左边到右第二个数
  74.          
  75.             textBox4.Text = aaa.ToString();//算式2中的从左边到右第一个数

  76.             textBox5.Text = bbb.ToString();//算式2中的从左边到右第二个数
  77.             textBox6.Text = bb.ToString();//算式2中的从左边到右第三个数

  78.             label2.Text = op;//算式1中的运算符号,随机产生对应的符号
  79.             label1.Text = op1;//算式2中的运算符号,随机产生对应的符号
  80.             label6.Text = op2;//算式2中的运算符号,随机产生对应的符号
  81.             textBox1.Text="";//按键后清空文本框的内容!
  82.             textBox7.Text="";//按键后清空文本框的内容!
  83.             textBox1.Focus();

  84.         }

  85.         private void Button2Click(object sender, EventArgs e)
  86.         {
  87.                
  88.                 //if (textBox1.Text =="")
  89.                 //        MessageBox.Show("请输入数字,不能为空");
  90.                
  91.                 //else
  92.                         // MessageBox.Show("输入的数字正确");
  93.                        

  94.                        
  95.           if (textBox1.Text  == "")//判断是否输入的用户名,如果没有输入,显示下面的提示,否则跳到else
  96.             {
  97.                 MessageBox.Show("答案不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  98.             }
  99.           if  (textBox7.Text  == "")//判断是否输入的用户名,如果没有输入,显示下面的提示,否则跳到else
  100.             {
  101.                 MessageBox.Show("答案不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  102.             }
  103.             else
  104.                 {
  105.                     string str = textBox1.Text;//文本框输入为等式的结果,结果答案输入处。

  106.                     string str1 = textBox7.Text;
  107.                        
  108.                  double d = double.Parse(str);

  109.             double dd = double.Parse(str1);
  110.                  string disp =  "       " + a + op + b + "=" + str + " ";
  111.                            string disp1 = "       " + aaa + op1 + bbb + op2 + bb + "=" + str1 + " ";
  112.       
  113.                            
  114.                  
  115.            if (d == result) // if( Math.Abs(d-result)< 1e-3 )

  116.          
  117.                     disp += "√       答案正确       刘颖颖你真棒";
  118.            
  119.             else
  120.             
  121.                           disp += "╳       答案错误       加油重新列算式运算";
  122.              if (dd == result2) // if( Math.Abs(d-result)< 1e-3 )

  123.                      disp1 += "√       答案正确       刘颖颖你真棒";
  124.             
  125.                      else
  126.                 disp1 += "╳       答案错误       加油重新列算式运算";
  127.             
  128.                                   lstDisp.Items.Add(disp);
  129.                                   lstDisp.Items.Add(disp1);
  130.                                   textBox1.Text="";//清空上一次输入的结果!
  131.                                   textBox7.Text="";//清空上一次输入的结果!
  132.                          
  133.             }
  134.                  
  135.     }
  136.                 void TextBox1KeyPress(object sender, KeyPressEventArgs e)
  137.                 {
  138.                         if(!(char.IsNumber(e.KeyChar))&& e.KeyChar !=(char)8)
  139.                         {
  140.                                 e.Handled = true;//判定为数字,可以输入
  141.                         }
  142.                 }
  143.                 void LstDispSelectedIndexChanged(object sender, EventArgs e)
  144.                 {
  145.                         if (lstDisp.Text.Length >10)
  146.                                 lstDisp.Text = "";
  147.                 }
  148.                 void TextBox7KeyPress(object sender, KeyPressEventArgs e)
  149.                 {
  150.         if(!(char.IsNumber(e.KeyChar))&& e.KeyChar !=(char)8)
  151.                         {
  152.                                 e.Handled = true;//判定为数字,可以输入
  153.                         }
  154.                 }
  155.                 void Button3Click(object sender, EventArgs e)
  156.                 {
  157.                         lstDisp.Items.Clear();
  158.                 }
  159.                
  160.     }
  161. }
复制代码

全部资料51hei下载地址:
运算1.4版本.7z (4.44 MB, 下载次数: 20)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:851418 发表于 2020-11-30 00:56 | 显示全部楼层
怎么上传附件
回复

使用道具 举报

ID:328014 发表于 2020-12-2 05:46 | 显示全部楼层
回复

使用道具 举报

ID:563034 发表于 2021-8-7 15:06 | 显示全部楼层
不错,学习了。实测可运行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表