四则运算生成器升级版1.0_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 四则运算生成器升级版1.0

四则运算生成器升级版1.0

 2015/3/14 17:53:39  韩东东  程序员俱乐部  我要评论(0)
  • 摘要:一、程序设计题目要求和设计思想1、题目(1)、题目避免重复;(2)、可定制(数量/打印方式);(3)、可以控制下列参数:是否有乘除法、是否有括号、数值范围、加减有无负数、除法有无余数、否支持分数(真分数,假分数,…)、是否支持小数(精确到多少位)、打印中每行的间隔可调整;2、设计思想要求1:题目避免重复设计思想:(1)通过srand(time(NULL));来控制。要求2:可以定制(数量/打印方式)设计思想:(1)定义一个参数,利用用户输入的数量来控制数量;设计思想:(2
  • 标签:

一、程序设计题目要求和设计思想

1、题目

    (1)、题目避免重复;
    (2)、可定制(数量/打印方式);
    (3)、可以控制下列参数: 是否有乘除法、是否有括号、 数值范围、加减有无负数、除法有无余数、否支持分数 (真分数, 假分数, …)、是否支持小数 (精确到多少位)、打印中每行的间隔可调整;

2、设计思想

    要求1:题目避免重复
    设计思想:(1)通过srand(time(NULL));来控制。
    要求2:可以定制(数量/打印方式)
    设计思想:(1)定义一个参数,利用用户输入的数量来控制数量;
    设计思想:(2)输出格式可以目前可以设置两个方式,一个方式是纵向X道,另一个是X*Y格式输出,其中X、Y可以由用户选择来控制。
    要求3:控制参数
    设计思想:(1)所有的参数控制都要通过用户来选择,控制实现在主函数里,打印函数另行设计
    设计思想:(2)数值范围可以设置几个输出函数,用户进行选择
    设计思想:(3)是否有乘除法,可以在输出函数里控制,用户进行选择
    设计思想:(4)加减有无负数可以用参数比较大小来实现
    总体设计:程序里要涉及到很多条件判断,一层一层的设计,先把在所有要求都满足的情况下的结果输出,然后在一步步的展开,一项一项的完成。

二、程序源代码

 

  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 sizeyunsuanqi
 11 {
 12     public partial class Form1 : Form
 13     {
 14         int shitishumu = 0;
 15         int shuzhifanwei1 = 0;
 16         int shuzhifanwei2 = 0;
 17         string suoyoufuhao;
 18         string fuhao;
 19         string d;
 20 
 21         public Form1()
 22         {
 23             InitializeComponent();
 24         }
 25         private void Form1_Load(object sender, EventArgs e)//通常初始化在Form1_Load事件中完成
 26         {
 27             richTextBox1.Clear();
 28             textBox1.Clear();
 29         }
 30         private void button2_Click(object sender, EventArgs e)//button2(清除按钮)的单击事件:清除功能,清除已选择选项内容
 31         {
 32             richTextBox1.Clear();
 33             textBox4.Text = "";
 34             textBox2.Text = "";
 35             textBox3.Text = "";
 36             checkBox3.Checked = false;
 37             checkBox2.Checked = false;
 38             checkBox1.Checked = false;
 39         }
 40         private void button1_Click(object sender, EventArgs e)        //button2(确认按钮)的单击事件:单击后,输出题目
 41         {
 42             shitishumu = int.Parse(textBox4.Text);//用户控制输入试题数目
 43             shuzhifanwei2 = int.Parse(textBox3.Text);//用户控制输入数值范围(大)
 44             shuzhifanwei1 = int.Parse(textBox2.Text);//用户控制输入数值范围(小)
 45             richTextBox1.Text += "尊敬的用户您好,您的请求已经得到确认"+"\r\n";
 46             richTextBox1.Text += "您将打印 " + shitishumu + " 道题目" + "\r\n";
 47             richTextBox1.Text += "您打印试题的数值范围是: " + shuzhifanwei1 + "-" + shuzhifanwei2 + "\r\n";
 48             if (checkBox3.Checked == true)
 49             {
 50                 richTextBox1.Text += "试题输出结果存在括号" + "\n";
 51             }
 52             if (checkBox3.Checked == false)
 53             {
 54                 richTextBox1.Text += "试题输出结果不存在括号" + "\n";
 55             }
 56             if (checkBox2.Checked == true)
 57             {
 58                 richTextBox1.Text += "试题输出结果中减法的结果存在负数" + "\n";
 59             }
 60             if (checkBox2.Checked == false)
 61             {
 62                 richTextBox1.Text += "试题输出结果中减法的结果不存在负数" + "\n";
 63             }
 64             if (checkBox1.Checked == true)
 65             {
 66                 richTextBox1.Text += "试题输出结果存在乘除法" + "\n";
 67             }
 68             if (checkBox1.Checked == false)
 69             {
 70                 richTextBox1.Text += "试题输出结果不存在乘除法" + "\n";
 71             }
 72             
 73 
 74             System.Random number = new Random(System.DateTime.Now.Millisecond);
 75             //循环输出题目
 76             for (int i = 0; i < shitishumu; i++)
 77             {
 78                 int num1 = number.Next(shuzhifanwei1, shuzhifanwei2);
 79                 int num2 = number.Next(shuzhifanwei1, shuzhifanwei2);
 80                 int num3 = number.Next(shuzhifanwei1, shuzhifanwei2);
 81                 int yunsuan1 = number.Next(0, 4);
 82                 int yunsuan2 = number.Next(0, 2);
 83                 int fuhaonum = number.Next(0, 2);
 84                 if (fuhaonum == 0)//符号进行随机
 85                 {
 86                     fuhao = "+";
 87                 };
 88                 if (fuhaonum == 1)
 89                 {
 90                     fuhao = "-";
 91                 };
 92                 int suoyoufuhaonum = number.Next(0, 4);
 93                 if (suoyoufuhaonum == 0) 
 94                 { 
 95                     suoyoufuhao = "+"; 
 96                 };
 97                 if (suoyoufuhaonum == 1)
 98                 { 
 99                     suoyoufuhao = "-";
100                 };
101                 if (suoyoufuhaonum == 2)
102                 {
103                     suoyoufuhao = "*";
104                 };
105                 if (suoyoufuhaonum == 3) 
106                 {
107                     suoyoufuhao = "/"; 
108                 };
109 
110                 if (checkBox3.Checked == true)//有括号情况
111                 {
112                     textBox1.Text += num3;
113                     if (checkBox1.Checked == true)//有乘除法
114                     {
115                         if (checkBox2.Checked == true)//减法有负数
116                         {
117                             if (yunsuan1 == 0) { textBox1.Text += suoyoufuhao + "(" + num1 + "+" + num2 + ")" + "=" + "\r\n"; }
118                             else if (yunsuan1 == 1) { textBox1.Text += suoyoufuhao + "(" + num1 + "*" + num2 + ")" + "=" + "\r\n"; }
119                             else if (yunsuan1 == 2) { textBox1.Text += suoyoufuhao + "(" + num1 + "-" + num2 + ")" + "=" + "\r\n"; }//减法有负数
120                             else if (yunsuan1 == 3 && num2 != 0) { textBox1.Text += suoyoufuhao + "(" + num1 + "/" + num2 + ")" + "=" + "\r\n"; }//除法有余数
121                         }
122                         else if (checkBox2.Checked == false)//减法没有负数
123                         {
124                             if (yunsuan1 == 0) { textBox1.Text += suoyoufuhao + "(" + num1 + "+" + num2 + ")" + "=" + "\r\n"; }
125                             else if (yunsuan1 == 1) { textBox1.Text += suoyoufuhao + "(" + num1 + "*" + num2 + ")" + "=" + "\r\n"; }
126                             else if (yunsuan1 == 2 && num1 > num2) { textBox1.Text += suoyoufuhao + "(" + num1 + "-" + num2 + ")" + "=" + "\r\n"; }//减法没有负数
127                             else if (yunsuan1 == 2 && num1 <= num2) { textBox1.Text += suoyoufuhao + "(" + num2 + "-" + num1 + ")" + "=" + "\r\n"; }//减法没有负数
128                             else if (yunsuan1 == 3 && num2 != 0) { textBox1.Text += suoyoufuhao + "(" + num1 + "/" + num2 + ")" + "=" + "\r\n"; }//除法有余数
129 
130                         }
131                     }
132                     else if (checkBox1.Checked == false)//没有乘除法
133                     {
134                         if (checkBox2.Checked == true)//减法有负数
135                         {
136                             if (yunsuan2 == 0) { textBox1.Text += fuhao + "(" + num1 + "+" + num2 + ")" + "=" + "\r\n"; }
137                             else if (yunsuan2 == 1) { textBox1.Text += fuhao + "(" + num1 + "-" + num2 + ")" + "=" + "\r\n"; }//减法有负数
138                         }
139                         else if (checkBox2.Checked == false)//减法没有负数
140                         {
141                             if (yunsuan2 == 0) { textBox1.Text += fuhao + "(" + num1 + "+" + num2 + ")" + "=" + "\r\n"; }
142                             else if (yunsuan2 == 1 && num1 > num2) { textBox1.Text += fuhao + "(" + num1 + "-" + num2 + ")" + "=" + "\r\n"; }//减法没有负数
143                             else if (yunsuan2 == 1 && num1 <= num2) { textBox1.Text += fuhao + "(" + num2 + "-" + num1 + ")" + "=" + "\r\n"; }//减法没有负数
144                         }
145                     }
146 
147                 }
148                 else if (checkBox3.Checked == false)//没有括号
149                 {
150                     if (checkBox1.Checked == true)//有乘除法
151                     {
152                         if (checkBox2.Checked == true)//减法有负数
153                         {
154                             if (yunsuan1 == 0) { textBox1.Text += num1 + "+" + num2 +"=" + "\r\n"; }
155                             else if (yunsuan1 == 1) { textBox1.Text += num1 + "*" + num2 + "=" + "\r\n"; }
156                             else if (yunsuan1 == 2) { textBox1.Text += num1 + "-" + num2 + "=" + "\r\n"; }//减法有负数
157                             else if (yunsuan1 == 3 && num2 != 0) { textBox1.Text += num1 + "/" + num2 +"=" + "\r\n"; }//除法有余数
158                         }
159                         else if (checkBox2.Checked == false)//减法没有负数
160                         {
161                             if (yunsuan1 == 0) { textBox1.Text += num1 + "+" + num2 + "=" + "\r\n"; }
162                             else if (yunsuan1 == 1) { textBox1.Text += num1 + "*" + num2 + "=" + "\r\n"; }
163                             else if (yunsuan1 == 2 && num1 > num2) { textBox1.Text += num1 + "-" + num2 + "=" + "\r\n"; }//减法没有负数
164                             else if (yunsuan1 == 2 && num1 <= num2) { textBox1.Text += num2 + "-" + num1 + "=" + "\r\n"; }//减法没有负数
165                             else if (yunsuan1 == 3 && num2 != 0) { textBox1.Text += num1 + "/" + num2 + "=" + "\r\n"; }//除法有余数
166 
167                         }
168                     }
169                     else if (checkBox1.Checked == false)//没有乘除法
170                     {
171                         if (checkBox2.Checked == true)//减法有负数
172                         {
173                             if (yunsuan2 == 0) { textBox1.Text += num1 + "+" + num2 + "=" + "\r\n"; }
174                             else if (yunsuan2 == 1) { textBox1.Text +=  num1 + "-" + num2 + "=" + "\r\n"; }//减法有负数
175                         }
176                         else if (checkBox2.Checked == false)//减法没有负数
177                         {
178                             if (yunsuan2 == 0) { textBox1.Text += num1 + "+" + num2 + "=" + "\r\n"; }
179                             else if (yunsuan2 == 1 && num1 > num2) { textBox1.Text += num1 + "-" + num2 + "=" + "\r\n"; }//减法没有负数
180                             else if (yunsuan2 == 1 && num1 <= num2) { textBox1.Text += num2 + "-" + num1 + "=" + "\r\n"; }//减法没有负数
181                         }
182                     }
183 
184                 }
185 
186             }
187             
188         }
189 
190         private void button3_Click(object sender, EventArgs e)//清除输出结果按钮
191         {
192             textBox1.Text = "";
193         }
194 
195         private void checkBox3_CheckedChanged(object sender, EventArgs e)
196         {
197             
198         }
199 
200         private void checkBox1_CheckedChanged(object sender, EventArgs e)
201         {
202             
203         }
204 
205         private void checkBox2_CheckedChanged(object sender, EventArgs e)
206         {
207             
208         }
209 
210         private void textBox2_TextChanged(object sender, EventArgs e)
211         {
212 
213         }
214 
215         private void textBox3_TextChanged(object sender, EventArgs e)
216         {
217 
218         }
219 
220         private void textBox4_TextChanged(object sender, EventArgs e)
221         {
222 
223         }
224 
225         private void button4_Click(object sender, EventArgs e)//全屏清除按钮
226         {
227             richTextBox1.Clear();
228             textBox1.Text = "";
229             textBox4.Text = "";
230             textBox2.Text = "";
231             textBox3.Text = "";
232             checkBox3.Checked = false;
233             checkBox2.Checked = false;
234             checkBox1.Checked = false;
235 
236         }
237     }
238 }

 

三、运算结果截图

 

四、程序存在的问题

目前来说这个程序还存在很多的问题:

1、本程序交互能力比较差,发生问题是没有很好的反馈,打印数量只有输入正整数程序才能正常运行;

2、数值范围的输入,用户可以输入整数范围,例如:-100到100,范围包括所有整数,也可以输出,输出结果没有为负数加上括号来区分,如果用户真的输入负数范围,打印出来就会是像 “1--1=”情况,理想的情况应该是“1-(-1)=”;

3、题目要求的所有功能只实现了一部分,并没有完全实现,尤其是打印方式没有规范,一直是纵向输出;

4、由于本人能力以及时间等多重复杂因素在内,本程序还只是一个简简单单的雏形,忘广大博友批评指正,谢谢;

  • 相关文章
发表评论
用户名: 匿名