四则运算生成器升级版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控件以前没有用到过,现在是现学现卖,只是简单的学了控件的输入输出,学习了如何接收用户在单元格里的输入值。

心得体会:

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

posted @ 2015-03-20 16:02  韩东东  阅读(409)  评论(0编辑  收藏  举报