一、设计思想

设计两个窗体,在第一个窗体中选择功能参数,在第二个窗体中显示所出题目。

二、源代码

Form1.cs:

  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 sizeyunsuan
  11. {
  12. public partial class Form1 : Form
  13. {
  14. static public int max = ;
  15. static public int min = ;
  16. static public int num = ;
  17. static public int select = ;
  18.  
  19. public Form1()
  20. {
  21. InitializeComponent();
  22. }
  23.  
  24. private void button2_Click(object sender, EventArgs e)
  25. {
  26. textBox1.Text = "";
  27. textBox2.Text = "";
  28. textBox3.Text = "";
  29. radioButton1.Checked = false;
  30. radioButton2.Checked = false;
  31. radioButton3.Checked = false;
  32. radioButton4.Checked = false;
  33. radioButton5.Checked = false;
  34. radioButton6.Checked = false;
  35. }
  36.  
  37. private void button1_Click(object sender, EventArgs e)
  38. {
  39. min = int.Parse(textBox1.Text);
  40. max= int.Parse(textBox3.Text);
  41. num = int.Parse(textBox2.Text);
  42. if (radioButton1.Checked == true)
  43. select = ;
  44. else if (radioButton2.Checked == true)
  45. select =;
  46. else if(radioButton3.Checked == true)
  47. select = ;
  48. else if(radioButton4.Checked == true)
  49. select = ;
  50. else if (radioButton5.Checked == true)
  51. select = ;
  52. else if (radioButton6.Checked == true)
  53. select = ;
  54. Form2 fm = new Form2();
  55. fm.Show();
  56.  
  57. }
  58.  
  59. }
  60. }

Form2..cs:

  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 sizeyunsuan
  11. {
  12. public partial class Form2 : Form
  13. {
  14. public Form2()
  15. {
  16. InitializeComponent();
  17. int num = Form1.num;
  18. int max = Form1.max;
  19. int min = Form1.min;
  20. int select = Form1.select;
  21. int opr_symbol;
  22. Random Random1 = new Random();
  23. for(int i=;i<num;i++)
  24. {
  25. switch (select)
  26. {
  27. case :
  28. {int rdm1 = Random1.Next(min, max);
  29. int rdm2 = Random1.Next(min, max);
  30. opr_symbol = Random1.Next(, );//随机产生一个操作符
  31. if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
  32. else richTextBox1.Text += rdm1;
  33. if (opr_symbol ==) richTextBox1.Text += "+";
  34. else richTextBox1.Text += "-";
  35. if (rdm2< ) richTextBox1.Text += "(" + rdm2+ ")=\n";
  36. else richTextBox1.Text += rdm2+"=\n" ;
  37. break;
  38. }
  39. case :
  40. { int rdm1 = Random1.Next(min, max);
  41. int rdm2 = Random1.Next(min, max);
  42. opr_symbol = Random1.Next(, );//随机产生一个操作符
  43. if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
  44. else richTextBox1.Text += rdm1;
  45. switch(opr_symbol)
  46. {
  47. case : richTextBox1.Text +="+";break;
  48. case : richTextBox1.Text +="-";break;
  49. case : richTextBox1.Text +="*";break;
  50. case : richTextBox1.Text +="/";break;
  51. }
  52. if (rdm2 < ) richTextBox1.Text += "(" + rdm2 + ")\n";
  53. else richTextBox1.Text += (rdm2+)+"\n";
  54. break;
  55. }
  56. case : {
  57. int rdm1 = Random1.Next(min, max);
  58. int rdm2 = Random1.Next(min, max);
  59. int rdm3 = Random1.Next(, max);
  60. if (Random1.Next(, ) == )
  61. {//第一个数是否是分数
  62. rdm1 = Random1.Next(, max);//保证分数为正数
  63. if (rdm1 > rdm3) richTextBox1.Text += "(" + rdm3 + "/" + rdm1 + ")";
  64. else richTextBox1.Text += "(" + rdm1 + "/" + rdm3 + ")";
  65. }
  66. else { //第一个操作数不是分数
  67. if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
  68. else richTextBox1.Text += rdm1;
  69. }
  70. opr_symbol = Random1.Next(, );//随机产生一个操作符
  71. switch (opr_symbol)
  72. {
  73. case : richTextBox1.Text += "+"; break;
  74. case : richTextBox1.Text += "-"; break;
  75. case : richTextBox1.Text += "*"; break;
  76. case : richTextBox1.Text += "/"; break;
  77. }
  78. if (Random1.Next(, ) == )
  79. {//第二个数是否是分数
  80. rdm2 = Random1.Next(, max);//保证分数为正数
  81. if (rdm2 > rdm3) richTextBox1.Text += "(" + rdm3 + "/" + rdm2 + ")=\n";
  82. else richTextBox1.Text += "(" + rdm2 + "/" + rdm3 + ")=\n";
  83. }
  84. else
  85. { //第一个操作数不是分数
  86. if (rdm2< ) richTextBox1.Text += "(" + rdm2 + ")=\n";
  87. else richTextBox1.Text += rdm2+"=\n";
  88. }
  89. break;
  90. }
  91. case :
  92. {
  93. int rdm1 = Random1.Next(min, max);
  94. int rdm2 = Random1.Next(min, max);
  95. int rdm3 = Random1.Next(, max);
  96. if (Random1.Next(, ) == )
  97. {//第一个数是否是分数
  98. rdm1 = Random1.Next(, max);//保证分数为正数
  99. if (rdm1 < rdm3) richTextBox1.Text += "(" + rdm3 + "/" + rdm1 + ")";
  100. else richTextBox1.Text += "(" + rdm1 + "/" + rdm3 + ")";
  101. }
  102. else
  103. { //第一个操作数不是分数
  104. if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
  105. else richTextBox1.Text += rdm1;
  106. }
  107. opr_symbol = Random1.Next(, );//随机产生一个操作符
  108. switch (opr_symbol)
  109. {
  110. case : richTextBox1.Text += "+"; break;
  111. case : richTextBox1.Text += "-"; break;
  112. case : richTextBox1.Text += "*"; break;
  113. case : richTextBox1.Text += "/"; break;
  114. }
  115. if (Random1.Next(, ) == )
  116. {//第二个数是否是分数
  117. rdm2 = Random1.Next(, max);//保证分数为正数
  118. if (rdm2< rdm3) richTextBox1.Text += "(" + rdm3 + "/" + rdm2 + ")=\n";
  119. else richTextBox1.Text += "(" + rdm2 + "/" + rdm3 + ")=\n";
  120. }
  121. else
  122. { //第一个操作数不是分数
  123. if (rdm2 < ) richTextBox1.Text += "(" + rdm2 + ")=\n";
  124. else richTextBox1.Text += rdm2 + "=\n";
  125. }
  126. break;
  127. }
  128. case : {
  129. int rdm1 = Random1.Next(min, max);
  130. int rdm2 = Random1.Next(min, max);
  131. double rdm3;
  132. opr_symbol = Random1.Next(, );//随机产生一个操作符
  133. switch (opr_symbol)
  134. {
  135. case :
  136. {
  137. if (Random1.Next(, ) == )//第一个操作数为小数
  138. {
  139. rdm3 = Random1.NextDouble();//产生一个随机的小数
  140. rdm3 += rdm1;
  141. rdm3 = Math.Round(rdm3, );
  142. richTextBox1.Text += rdm3;
  143. }
  144. else
  145. {
  146. if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
  147. else richTextBox1.Text += rdm1;
  148. }
  149. richTextBox1.Text += "-";
  150. if (Random1.Next(, ) == )//第二个操作数为小数
  151. {
  152. rdm3 = Random1.NextDouble();//产生一个随机的小数
  153. rdm3 += rdm2;
  154. rdm3 = Math.Round(rdm3, );
  155. richTextBox1.Text += rdm3 + "=\n";
  156. }
  157. else
  158. {
  159. if (rdm2 < ) richTextBox1.Text += "(" + rdm2 + ")=\n";
  160. else richTextBox1.Text += rdm2 + "=\n";
  161. }
  162. break;
  163. }
  164. case :
  165. {
  166. if (Random1.Next(, ) == )//第一个操作数为小数
  167. {
  168. rdm3 = Random1.NextDouble();//产生一个随机的小数
  169. rdm3 += rdm1;
  170. rdm3 = Math.Round(rdm3, );
  171. richTextBox1.Text += rdm3;
  172. }
  173. else
  174. {
  175. if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
  176. else richTextBox1.Text += rdm1;
  177. }
  178. richTextBox1.Text += "-";
  179. if (Random1.Next(, ) == )//第二个操作数为小数
  180. {
  181. rdm3 = Random1.NextDouble();//产生一个随机的小数
  182. rdm3 += rdm2;
  183. rdm3 = Math.Round(rdm3, );
  184. richTextBox1.Text += rdm3 + "=\n";
  185. }
  186. else
  187. {
  188. if (rdm2 < ) richTextBox1.Text += "(" + rdm2 + ")=\n";
  189. else richTextBox1.Text += rdm2 + "=\n";
  190. }
  191. break;
  192. }
  193. case :
  194. {
  195. if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
  196. else richTextBox1.Text += rdm1;
  197. richTextBox1.Text += "*";
  198. if (rdm2 < ) richTextBox1.Text += "(" + rdm2 + ")\n";
  199. else richTextBox1.Text += rdm2 + "=\n";
  200. break;
  201. }
  202. case :
  203. {
  204. if (rdm1 < ) richTextBox1.Text += "(" + rdm1 + ")";
  205. else richTextBox1.Text += rdm1;
  206. richTextBox1.Text += "/";
  207. if (rdm2 < ) richTextBox1.Text += "(" + rdm2 + ")\n";
  208. else richTextBox1.Text += (rdm2 + ) + "=\n";
  209. break;
  210. }
  211. }
  212. break;
  213. }
  214. case : {
  215. int rdm1 = Random1.Next(min, max);
  216. int rdm2 = Random1.Next(min, max);
  217. int rdm3 =Random1.Next(, max);
  218. richTextBox1.Text += "(";
  219. if (rdm1 < ) richTextBox1.Text += "("+rdm1+")";//判断rdm1是否为负数
  220. else richTextBox1.Text += rdm1;
  221. if (Random1.Next(, ) == ) richTextBox1.Text += "+";//确定括号内的符号
  222. else richTextBox1.Text += "-";
  223. if (rdm2 < ) richTextBox1.Text += "(" + rdm2 + "))";//判断rdm2是否为负数
  224. else richTextBox1.Text += rdm2+")";
  225. if (Random1.Next(, ) == ) richTextBox1.Text += "*"+rdm3+"=\n";//确定括号外的符号
  226. else richTextBox1.Text += "/"+rdm3+"=\n";
  227. break;
  228. }
  229. }
  230. }
  231. }
  232.  
  233. private void Form2_Load(object sender, EventArgs e)
  234. {
  235.  
  236. }
  237.  
  238. private void button1_Click(object sender, EventArgs e)
  239. {
  240. this.Close();
  241. }
  242. }
  243. }

三、运行结果截图:

四、心得体会

  通过这次对四则运算的扩展,我学会了怎样在两个窗体之间传递参数,把变量设置为静态变量,可以被所有对象使用。这次巩固了对C#的学习,只是一些基础,以后要学的还更多。

五、PSP0级

项目计划总结:

周活动总结表

姓名:王雪青                                   日期:2015.3.21

日期       任务

听课

编写程序

阅读课本

准备考试

日总计

周一

300

300

周二

400

400

周三

100

148

248

周四

300

300

周五

200

98

298

周六

49

阶段时间和效率                                        周数(上一次周活动表的周数+1):2

不包括上一周在内的累计时间

总计

1300

295

1595

平均

1300

295

1595

最大

1300

295

1595

最小

1300

295

1595

以前各周的累计时间

总计

1100

610

1163

平均

1100

610

95

1163

最大

1100

610

95

1163

最小

1100

610

95

1163

时间记录表:

学生        王雪青                                            日期          2015.3.21

教师        王建民                                             课程           PSP

日期

开始时间

结束时间

中断时间

净时间

活动

备注

3.18

14:50

17:48

30

148

写程序

3.20

19:10

21:14

26

98

写程序

3.21

19:00 20:11 22 49 写程序

缺陷记录表

学生       王雪青

日期         2015.3.21

教员        王建民

程序号         3

日期

编号

类型

引入阶段

排除阶段

修复时间

修复缺陷

3/18

1

编码

编译

2min

描述:设置全局变量没有加static

2

编码

执行

未知

描述:算法无法达到预期结果,比如无法显示结果

软件工程——四则运算3(C#)的更多相关文章

  1. 软件工程——四则运算py(我小学的时候怎么没用过这东西?)

    题目:实现一个自动生成小学四则运算题目的命令行程序 github地址:https://github.com/ILTHEW/wc.git 主编:黄晖朝3116005178 助手:朱健栋311600520 ...

  2. 软件工程随堂小作业——随机四则运算Ⅱ(C++)

    一.设计思路 设计思路已给出,此处不再赘述. 二.源代码 (1)四则运算2.cpp(源文件) // 四则运算2.cpp : Defines the entry point for the consol ...

  3. 软件工程启程篇章:C#和四则运算生成与运算

    0x01 :序言 I leave uncultivated today, was precisely yestoday perishes tomorrow which the person of th ...

  4. 软件工程启程篇章:结对编程和进阶四则运算(197 & 199)

    0x01 :序言:无关的事 I wrote a sign called "Dead End" in front of myself, but love crossed it wit ...

  5. 《软件工程》小组团队项目-小学生四则运算APP(First Sprint)

    <软件工程>团队项目我们小组选择了小学生四则运算APP,在上学期原有的项目基础上进行更新升级.(自我感觉我们团队上学期的小学生四则运算APP是较为成功且实用的,不过这学期学习到了新的知识, ...

  6. 软件工程之四则运算--Github

    由于现在配置问题,然后借用同学电脑将代码上传至Github,网址为:https://github.com/be821/RealFour 参考相关Github文档: 1. http://my.oschi ...

  7. 软件工程课堂作业(五)——终极版随机产生四则运算题目(C++)

    一.升级要求:让程序能接受用户输入答案,并判定对错.最后给出总共对/错的数量. 二.设计思想: 1.首先输入答案并判断对错.我想到的是定义两个数组,一个存放用户算的结果,另一个存放正确答案.每输出一道 ...

  8. 软件工程课堂作业(二)续——升级完整版随机产生四则运算题目(C++)

    一.设计思想: 1.根据题目新设要求,我将它们分为两类:一类是用户输入数目,根据这个数目改变一系列后续问题:另一类是用户输入0或1,分情况解决问题. 2.针对这两类要求,具体设计思路已在上篇博文中写出 ...

  9. 软件工程课程作业(三)--四则运算3(C++)

    伙伴链接:http://www.cnblogs.com/haoying1994/ 一.设计思路 在此前程序拥有的功能:加减有无负数,除法有无余数以及算式可定制的功能的基础上,此次程序又添加了算式结果的 ...

随机推荐

  1. Jquery在线引用地址:

    转自:http://www.cnblogs.com/lkf18/archive/2012/12/11/2813241.html 1. 很多网站都是使用这种方式引入,客户的浏览器可能已经缓存过了 jqu ...

  2. hdu2053

    查找1-n中能整除n的数的个数. 如果是偶数的话,结果为0 奇数的话,结果为1 #include <stdio.h> int main(){ int i,cnt,n; while(~sca ...

  3. MyBatis学习系列一之环境搭建

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 学习一个新的知识,首先做一个简单的例子使用一下,然后再逐步深入.MyBat ...

  4. shell script 基本语法

    几个符号的意义$#:代表后接的参数『个数』,以上表为例这裡显示为『 4 』:$@:代表『 "$1" "$2" "$3" "$4&q ...

  5. 创建parameter id

    Custom Parameter-id Creation By Abhijit Daptary, Capgemini India Step1: Creation of parameter ID.  P ...

  6. Cookie禁用了,Session还能用吗?

    Cookie与Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案.Cookie分为两种,一种可以叫做session ...

  7. VBA删除表格最后一行

    Sub 删除最后一行() If MsgBox("要为所有表格添加列吗?", vbYesNo + vbQuestion) = vbYes Then To ActiveDocument ...

  8. 05-Tom猫(UIImageView的简单运用)

    ViewController.h文件中: @interface ViewController : UIViewController @property (weak, nonatomic) IBOutl ...

  9. [leetcode]_Longest Common Prefix

    问题:寻找最长公共前缀 思路:就是逐一检查每个string中的每一位,碰到不相等的时候,结束:每个string中这一位都相等,加入到common prefix中~ public String long ...

  10. 在Windows下Mysql如何重置root用户密码

    原文链接:http://www.feeldesignstudio.com/2013/05/windows-mysql-root-password-reset 网上的很多在Windows下重置root用 ...