结对编程项目---四则运算
小组成员:
陈芝航 学号:118205119
胡运佳 学号:130201230 博客地址:http://home.cnblogs.com/u/huyunjia1995/
结对编程项目---四则运算
基本功能:
1) 实现一个带有用户界面的四则运算。
2) 生成的题目不能重复。
3) 支持负数。
需要支持的基本设定参数
1) 题目的数量
2) 数值的范围
3) 题目中最多几个运算符
4) 题目中或运算过程中有无有分数
5) 题目中是否有乘除法
6) 题目中是否有括号
7) 题目中或运算过程中有无负数
工作分配:
陈芝航:设计窗体,逻辑规划,部分代码。
胡运佳:整体代码实现,功能调试。
编程代码:
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 11 namespace 四则运算 12 { 13 public partial class Form1 : Form 14 { 15 public Form1() 16 { 17 InitializeComponent(); 18 } 19 char[] ysf = { '+', '-', '*', '%', ' ' }; 20 static int GetRandomSeed() 21 { 22 byte[] bytes = new byte[4]; 23 System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider(); 24 rng.GetBytes(bytes); 25 return BitConverter.ToInt32(bytes, 0); 26 } 27 public void ysfshuchu() 28 { 29 shuchu(" "); 30 Random rd = new Random(GetRandomSeed()); 31 if (comboBox3.SelectedItem.ToString() == "是") 32 { 33 shuchu(ysf[rd.Next(4)].ToString()); 34 } 35 else 36 { 37 shuchu(ysf[rd.Next(2)].ToString()); 38 } 39 shuchu(" "); 40 } 41 public void cal_1(int r) 42 { 43 if (comboBox1.SelectedItem.ToString() == "是") 44 { 45 Random rd = new Random(GetRandomSeed()); 46 zsfs(r); 47 ysfshuchu(); 48 zsfs(r); 49 } 50 else 51 { 52 Random rd = new Random(GetRandomSeed()); 53 zs(r); 54 ysfshuchu(); 55 zs(r); 56 } 57 } 58 public void cal_2(int r) 59 { 60 Random rd = new Random(GetRandomSeed()); 61 int t = 0; 62 t = rd.Next(2); 63 if (t == 0) 64 { 65 cal_1(r); 66 } 67 else 68 { 69 70 if (comboBox4.SelectedItem.ToString() == "是") 71 { 72 input_cal_2kh(r); 73 } 74 else 75 { 76 input_cal_2(r); 77 } 78 79 80 } 81 } 82 public void input_cal_2(int r) 83 { 84 if (comboBox2.SelectedItem.ToString() == "是") 85 { 86 zsfs(r); 87 ysfshuchu(); 88 zsfs(r); 89 ysfshuchu(); 90 zsfs(r); 91 } 92 else 93 { 94 zs(r); 95 ysfshuchu(); 96 zs(r); 97 ysfshuchu(); 98 zs(r); 99 } 100 101 } 102 public void input_cal_2kh(int r) 103 { 104 if (comboBox2.SelectedItem.ToString() == "是") 105 { 106 shuchu("("); 107 zsfs(r); 108 ysfshuchu(); 109 zsfs(r); 110 shuchu(")"); 111 ysfshuchu(); 112 zsfs(r); 113 } 114 else 115 { 116 shuchu("("); 117 zs(r); 118 ysfshuchu(); 119 zs(r); 120 shuchu(")"); 121 ysfshuchu(); 122 zs(r); 123 } 124 125 } 126 127 public void zs(int r) 128 { 129 Random rd = new Random(GetRandomSeed()); 130 int num; 131 do 132 { 133 num = rd.Next(r + 1); 134 } while (num == 0); 135 136 shuchu(num.ToString()); 137 138 } 139 public void zsfs(int r) 140 { 141 int t = 0; 142 Random rd = new Random(GetRandomSeed()); 143 t = rd.Next(2); 144 if (t == 0) 145 { 146 int num; 147 do 148 { 149 num = rd.Next(r + 1); 150 } while (num == 0); 151 152 shuchu(num.ToString()); 153 154 } 155 else 156 { 157 fsfs(r); 158 } 159 160 } 161 public void fsfs(int r) 162 { 163 Random rd = new Random(GetRandomSeed()); 164 int x, y; 165 do 166 { 167 x = rd.Next(r + 1); 168 } while (x == 0); 169 do 170 { 171 y = rd.Next(r + 1); 172 } while (y == 0 || y == x); 173 174 if (x > y) 175 { 176 int t = x; 177 x = y; 178 y = t; 179 } 180 shuchu(x.ToString()); 181 shuchu("/"); 182 shuchu(y.ToString()); 183 184 185 } 186 public void shuchu(string t) 187 { 188 txt_show.AppendText(t); 189 } 190 private void btn_show_Click(object sender, EventArgs e) 191 { 192 int n = Convert.ToInt32(this.txt_n.Text); 193 int x = Convert.ToInt32(this.txt_r.Text); 194 int ysf = Convert.ToInt32(this.comboBox1.Text.ToString()); 195 for (int i = 0; i < n; i++) 196 { 197 if (ysf == 1) 198 { 199 cal_1(x); 200 } 201 else if (ysf == 2) 202 { 203 cal_2(x); 204 } 205 shuchu(" = "); 206 shuchu("\n"); 207 shuchu("\n"); 208 } 209 } 210 211 } 212 }
个人总结:通过这次和队友共同协作完成了我的第一个窗体程序。这次代码的编写遇到很多困难,还好都一一克服了。