你的位置:首页 > ASP.net教程

[ASP.net教程]四则运算生成器升级版2.0


一、题目要求

     每个同学对已有的四则运算生成器进行优化,我选择的题目是:让程序能接受用户输入答案,并判断对错,最后给出总共对/错的数量。

二、设计思想

     首先考虑用c#编写程序,找到一个能输出运算题目、能接收用户输入的还能反馈给用户做的对与错的控件,最后考虑选择的是datagridview控件,而且用了之后效果还是不错的,但是不进行数据库的链接,就是简单的实现这个控件的单元格的内容输入输出。

三、程序源代码

 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.Windows.Forms; 9  10 namespace sizeyunsuanqi2._0 11 { 12   public partial class Form1 : Form 13   { 14  15     int shitishumu = 0; 16     int shuzhifanwei1 = 0; 17     int shuzhifanwei2 = 0; 18     int a = 0; 19     int b = 0; 20     int c = 0; 21     int addition, division = 0, subtraction1, subtraction2, multiplication, count = 0; 22     public Form1() 23     { 24       InitializeComponent(); 25     } 26  27     private void button1_Click(object sender, EventArgs e) 28     { 29       shitishumu = int.Parse(textBox4.Text);//用户控制输入试题数目 30       shuzhifanwei2 = int.Parse(textBox3.Text);//用户控制输入数值范围(大) 31       shuzhifanwei1 = int.Parse(textBox2.Text);//用户控制输入数值范围(小) 32       richTextBox1.Text += "尊敬的用户您好,您的请求已经得到确认" + "\r\n"; 33       richTextBox1.Text += "您将打印 " + shitishumu + " 道题目" + "\r\n"; 34       richTextBox1.Text += "您打印试题的数值范围是: " + shuzhifanwei1 + "-" + shuzhifanwei2 + "\r\n"; 35       if (checkBox2.Checked == true) 36       { 37         richTextBox1.Text += "运算试题的计算结果存在负数" + "\n"; 38       } 39       if (checkBox2.Checked == false) 40       { 41         richTextBox1.Text += "运算试题的计算结果不存在负数" + "\n"; 42       } 43       if (checkBox1.Checked == true) 44       { 45         richTextBox1.Text += "运算试题存在乘除法" + "\n"; 46       } 47       if (checkBox1.Checked == false) 48       { 49         richTextBox1.Text += "运算试题不存在乘除法" + "\n"; 50       } 51       System.Random number = new Random(System.DateTime.Now.Millisecond); 52       int num1=0, num2=0; 53       for (int i = 0; i < shitishumu; i++) 54       { 55         if (shuzhifanwei1 <=shuzhifanwei2) 56         { 57           num1 = number.Next(shuzhifanwei1, shuzhifanwei2); 58           num2 = number.Next(shuzhifanwei1, shuzhifanwei2); 59         } 60         else if (shuzhifanwei1 > shuzhifanwei2) 61         { 62           num1 = number.Next(shuzhifanwei2, shuzhifanwei1); 63           num2 = number.Next(shuzhifanwei2, shuzhifanwei1); 64         } 65         int yunsuan1 = number.Next(0, 4); 66         int yunsuan2 = number.Next(0, 2); 67  68         //判断条件并输出运算式 69         if (checkBox1.Checked == true)//有乘除法 70         { 71           if (checkBox2.Checked == true)//减法有负数 72           { 73             if (yunsuan1 == 0) { dataGridView1.Rows.Add(i + 1, num1, "+", num2, "="); } 74             else if (yunsuan1 == 1) { dataGridView1.Rows.Add(i + 1, num1, "*", num2, "="); } 75             else if (yunsuan1 == 2) { dataGridView1.Rows.Add(i + 1, num1, "-", num2, "="); }//减法有负数 76             else if (yunsuan1 == 3 && num2 != 0) { dataGridView1.Rows.Add(i + 1, num1, "/", num2, "="); }//除法有余数 77           } 78           else if (checkBox2.Checked == false)//减法没有负数 79           { 80             if (yunsuan1 == 0) { dataGridView1.Rows.Add(i + 1, num1, "+", num2, "="); } 81             else if (yunsuan1 == 1) { dataGridView1.Rows.Add(i + 1, num1, "*", num2, "="); } 82             else if (yunsuan1 == 2 && num1 > num2) { dataGridView1.Rows.Add(i + 1, num1, "-", num2, "="); }//减法没有负数 83             else if (yunsuan1 == 2 && num1 <= num2) { dataGridView1.Rows.Add(i + 1, num2, "-", num1, "="); }//减法没有负数 84             else if (yunsuan1 == 3 && num2 != 0) { dataGridView1.Rows.Add(i + 1, num1, "/", num2, "="); }//除法有余数 85             else if (yunsuan1 == 3 && num2 == 0) { dataGridView1.Rows.Add(i + 1, num2, "/", num1, "="); }//除法有余数 86  87           } 88         } 89         else if (checkBox1.Checked == false)//没有乘除法 90         { 91           if (checkBox2.Checked == true)//减法有负数 92           { 93             if (yunsuan2 == 0) { dataGridView1.Rows.Add(i + 1, num1, "+", num2, "="); } 94             else if (yunsuan2 == 1) { dataGridView1.Rows.Add(i + 1, num1, "-", num2, "="); }//减法有负数 95           } 96           else if (checkBox2.Checked == false)//减法没有负数 97           { 98             if (yunsuan2 == 0) { dataGridView1.Rows.Add(i + 1, num1, "+", num2, "="); } 99             else if (yunsuan2 == 1 && num1 > num2) { dataGridView1.Rows.Add(i + 1, num1, "-", num2, "="); }//减法没有负数100             else if (yunsuan2 == 1 && num1 <= num2) { dataGridView1.Rows.Add(i + 1, num2, "-", num1, "="); }//减法没有负数101           }102         }103 104         //dataGridView1.Rows.Add(i+1, num1, "+",num2,"=");105       }106     }107 108     private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)109     {110 111     }112 113     private void button5_Click(object sender, EventArgs e)//批改114     {115       //int a=0, b=0, c=0, addition, division=0, subtraction1,subtraction2, multiplication,count=0;116       for (int i = 0; i < shitishumu; i++)117       {118         string x = "+";119         string w = "-";120         string y = "*";121         string z = "/";122         if (this.dataGridView1.Rows[i].Cells[1].Value.ToString() != null)123         {124           a = int.Parse(this.dataGridView1.Rows[i].Cells[1].Value.ToString());125         }126         if (this.dataGridView1.Rows[i].Cells[3].Value.ToString() != null)127         {128           b = int.Parse(this.dataGridView1.Rows[i].Cells[3].Value.ToString());129         }130         addition = a + b;131         subtraction1 = a - b;132         subtraction2 = b - a;133         multiplication = a * b;134         if (b != 0)135         {136           division = a / b;137         }138         139         if (this.dataGridView1.Rows[i].Cells[5].Value == null)140         {141           this.dataGridView1.Rows[i].Cells[6].Value = "错误";142           count = count + 1;143         }144         else if (this.dataGridView1.Rows[i].Cells[5].Value != null)145         {146           c = int.Parse(this.dataGridView1.Rows[i].Cells[5].Value.ToString());147 148           if (x == this.dataGridView1.Rows[i].Cells[2].Value.ToString())//判断加法结果149           {150             if (c == addition)151             {152               this.dataGridView1.Rows[i].Cells[6].Value = "正确";153             }154             else if (c != addition)155             {156               this.dataGridView1.Rows[i].Cells[6].Value = "错误";157               count = count + 1;158             }159 160           }161           else if (w == this.dataGridView1.Rows[i].Cells[2].Value.ToString())//判断减法结果162           {163             if (c == subtraction1 || c == subtraction2)164             {165               this.dataGridView1.Rows[i].Cells[6].Value = "正确";166             }167             else if (c != subtraction1 && c != subtraction2)168             {169               this.dataGridView1.Rows[i].Cells[6].Value = "错误";170               count = count + 1;171             }172 173           }174           if (y == this.dataGridView1.Rows[i].Cells[2].Value.ToString())//判断乘法结果175           {176             if (c == multiplication)177             {178               this.dataGridView1.Rows[i].Cells[6].Value = "正确";179             }180             else if (c != multiplication)181             {182               this.dataGridView1.Rows[i].Cells[6].Value = "错误";183               count = count + 1;184             }185 186           }187           if (z == this.dataGridView1.Rows[i].Cells[2].Value.ToString())//判断除法结果188           {189             if (c == division)190             {191               this.dataGridView1.Rows[i].Cells[6].Value = "正确";192             }193             else if (c != division)194             {195               this.dataGridView1.Rows[i].Cells[6].Value = "错误";196               count = count + 1;197             }198           }199         }200         201       }202       richTextBox1.Text += "正确数目:" + (shitishumu-count) + "\n";203       richTextBox1.Text += "错误数目:" + count + "\n";204 205     }206   207   }208 }

四、运行结果截图

五、设计题目遇到的问题与心得体会

遇到的问题:

datagridview控件以前没有用到过,现在是现学现卖,只是简单的学了控件的输入输出,学习了如何接收用户在单元格里的输入值。

心得体会:

不要觉得问题多么多么的难弄,程序多么多么的难编写,每一个大的程序大的项目都是一个个小的程序,小的功能搭建在一起实现的,我们在做程序的时候,不要想着一下子把所有的功能都实现了,一个一个功能的来,分成若干个小模块,小模块的问题解决了,那么也就完成,慢慢来,慢慢来,切勿浮躁。