根據馮老師給出的作業我們解決了最基本的功能以及基本設定參數:
1) 題目的數量(個人項目的要求)
2) 數值的範圍(個人項目的要求)
3) 題目中最多幾個運算符
4) 題目中是否有乘除法
5) 題目中有無負數
我們本次兩個小組合作完成本次作業,我們小組主要負責以下功能:
1) public void Build_NoMul_NoDiv_NoMinus函數
2) public void Build_Mul_Div_Minus函數
3)private string Getstr2函數
1.主界面

3.主要函數代碼
1)public void Build_NoMul_NoDiv_NoMinus函數
public void Build_NoMul_NoDiv_NoMinus(int cal) {
if (cal == 1)
{
int[] num1;
int[] num2;
int i, r1, r2;
int n = int.Parse(textSum.Text);
Random r = new Random();
num1 = new int[100];
num2 = new int[100];
for (i = 0; i < n; i++)
{
r1 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r2 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
int s = r1 + r2;
if ((r1>r2&&s > 0)&&(r1!=0&&r2!=0))
{
num1[i] = r1; num2[i] = r2;
}
else {
i--;
continue;
}
}
for (i = 0; i < n; i++)
{
if (num1[i] != 0&&num2[i]!=0)
{
listView1.Items.Add("("+num1[i]+")" + Getstr1(1) +"("+ num2[i]+")"+"=");
}
}
}
if (cal == 2) {
int[] num1;
int[] num2;
int[] num3;
int i, r1, r2,r3;
int n = int.Parse(textSum.Text);
Random r = new Random();
num1 = new int[100];
num2 = new int[100];
num3 = new int[100];
for (i = 0; i < n; i++)
{
r1 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r2 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r3 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
int s = r1 + r2 + r3;
if ((r1>(r2+r3)&&(r2*r3>0)&&s > 0)&&(r1 != 0&&r2 != 0&&r3 != 0))
{
num1[i] = r1; num2[i] = r2; num3[i] = r3;
}
else
{
i--;
continue;
}
}
for (i = 0; i < n; i++)
{
if (num1[i] != 0 && num2[i] != 0&&num3[i] != 0)
{
listView1.Items.Add("(" + num1[i] + ")" + Getstr1(1) + "(" + num2[i] + ")" + Getstr1(1) + "(" + num3[i] + ")"+"=");
}
}
}
if (cal == 3) {
int[] num1;
int[] num2;
int[] num3;
int[] num4;
int i, r1, r2, r3,r4;
int n = int.Parse(textSum.Text);
Random r = new Random();
num1 = new int[100];
num2 = new int[100];
num3 = new int[100];
num4 = new int[100];
for (i = 0; i < n; i++)
{
r1 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r2 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r3 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r4 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
int s1 = r1 + r2;
int s2 = r3 + r4;
if ((r1>r2&&s1 > 0&&r3>r4&&s2>0) && (r1 != 0&& r2 != 0 &&r3!=0 &&r4!=0))
{
num1[i] = r1; num2[i] = r2; num3[i] = r3; num4[i] = r4;
}
else
{
i--;
continue;
}
}
for (i = 0; i < n; i++)
{
if (num1[i] != 0 && num2[i] != 0 && num3[i] != 0&&num4[i]!=0)
listView1.Items.Add("(" + num1[i] + ")" + Getstr1(1) + "(" + num2[i] + ")" + Getstr1(1) + "(" + num3[i] + ")" + Getstr1(1) + "(" + num4[i] + ")"+"=");
}
}
if (cal == 4) {
int[] num1;
int[] num2;
int[] num3;
int[] num4;
int[] num5;
int i, r1, r2, r3, r4,r5;
int n = int.Parse(textSum.Text);
Random r = new Random();
num1 = new int[100];
num2 = new int[100];
num3 = new int[100];
num4 = new int[100];
num5 = new int[100];
for (i = 0; i < n; i++)
{
r1 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r2 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r3 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r4 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r5 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
int s=r1+r2+r3+r4+r5;
int s1 = r1 + r2;
int s2 = r3 + r4;
if ((r1>r2&&r3>r4&&s1>0&&s2>0&&s1>(s2+r5)&&s>0&&s2*r5>0) && (r1 != 0&&r2 != 0&&r3 != 0&&r4 != 0&&r5 != 0))
{
num1[i] = r1; num2[i] = r2; num3[i] = r3; num4[i] = r4; num5[i] = r5;
}
else
{
i--;
continue;
}
}
for (i = 0; i < n; i++)
{
if (num1[i] != 0 && num2[i] != 0 && num3[i] != 0 && num4[i] != 0&&num5[i]!=0)
listView1.Items.Add("(" + num1[i] + ")" + Getstr1(1) + "(" + num2[i] + ")" + Getstr1(1) + "(" + num3[i] + ")" + Getstr1(1) + "(" + num4[i] + ")" + Getstr1(1) + "(" + num5[i] + ")"+"=");
}
}
if (cal == 5) {
int[] num1;
int[] num2;
int[] num3;
int[] num4;
int[] num5;
int[] num6;
int i, r1, r2, r3, r4, r5,r6;
int n = int.Parse(textSum.Text);
Random r = new Random();
num1 = new int[100];
num2 = new int[100];
num3 = new int[100];
num4 = new int[100];
num5 = new int[100];
num6 = new int[100];
for (i = 0; i < n; i++)
{
r1 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r2 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r3 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r4 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r5 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r6 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
int s = r1 + r2 + r3 + r4 + r5 + r6;
int s1 = r1 + r2;
int s2 = r3 + r4;
int s3 = r5 + r6;
if ((r1>r2&&s1>0&&r3>r4&&s2>0&&r5>r6&&s3>0) && (r1 != 0&&r2 != 0&&r3 != 0&&r4 != 0&&r5 != 0&& r6 != 0))
{
num1[i] = r1; num2[i] = r2; num3[i] = r3; num4[i] = r4; num5[i] = r5; num6[i] = r6;
}
else
{
i--;
continue;
}
}
for (i = 0; i < n; i++)
{
listView1.Items.Add("(" + num1[i] + ")" + Getstr1(1) + "(" + num2[i] + ")" + Getstr1(1) + "(" + num3[i] + ")" + Getstr1(1) + "(" + num4[i] + ")" + Getstr1(1) + "(" + num5[i] + ")" + Getstr1(1) + "(" + num6[i] + ")"+"=");
}
}
}
2)public void Build_Mul_Div_Minus函數
public void Build_Mul_Div_Minus(int cal)
{
if (cal == 1)
{
int[] num1;
int[] num2;
int i, r1, r2;
int n = int.Parse(textSum.Text);
Random r = new Random();
num1 = new int[100];
num2 = new int[100];
for (i = 0; i < n; i++)
{
r1 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r2 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
int s = r1 + r2;
if (r1 != 0 && r2 != 0)
{
num1[i] = r1; num2[i] = r2;
}
else
{
i--;
continue;
}
}
for (i = 0; i < n; i++)
{
if (num1[i] != 0 && num2[i] != 0)
{
listView1.Items.Add("(" + num1[i] + ")" + Getstr2(1) + "(" + num2[i] + ")" + "=");
}
}
}
if (cal == 2)
{
int[] num1;
int[] num2;
int[] num3;
int i, r1, r2, r3;
int n = int.Parse(textSum.Text);
Random r = new Random();
num1 = new int[100];
num2 = new int[100];
num3 = new int[100];
for (i = 0; i < n; i++)
{
r1 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r2 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r3 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
if (r1 != 0 && r2 != 0 && r3 != 0)
{
num1[i] = r1; num2[i] = r2; num3[i] = r3;
}
else
{
i--;
continue;
}
}
for (i = 0; i < n; i++)
{
if (num1[i] != 0 && num2[i] != 0 && num3[i] != 0)
{
listView1.Items.Add("(" + num1[i] + ")" + Getstr2(1) + "(" + num2[i] + ")" + Getstr2(1) + "(" + num3[i] + ")" + "=");
}
}
}
if (cal == 3)
{
int[] num1;
int[] num2;
int[] num3;
int[] num4;
int i, r1, r2, r3, r4;
int n = int.Parse(textSum.Text);
Random r = new Random();
num1 = new int[100];
num2 = new int[100];
num3 = new int[100];
num4 = new int[100];
for (i = 0; i < n; i++)
{
r1 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r2 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r3 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r4 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
if (r1 != 0 && r2 != 0 && r3 != 0 && r4 != 0)
{
num1[i] = r1; num2[i] = r2; num3[i] = r3; num4[i] = r4;
}
else
{
i--;
continue;
}
}
for (i = 0; i < n; i++)
{
if (num1[i] != 0 && num2[i] != 0 && num3[i] != 0 && num4[i] != 0)
listView1.Items.Add("(" + num1[i] + ")" + Getstr2(1) + "(" + num2[i] + ")" + Getstr2(1) + "(" + num3[i] + ")" + Getstr2(1) + "(" + num4[i] + ")" + "=");
}
}
if (cal == 4)
{
int[] num1;
int[] num2;
int[] num3;
int[] num4;
int[] num5;
int i, r1, r2, r3, r4, r5;
int n = int.Parse(textSum.Text);
Random r = new Random();
num1 = new int[100];
num2 = new int[100];
num3 = new int[100];
num4 = new int[100];
num5 = new int[100];
for (i = 0; i < n; i++)
{
r1 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r2 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r3 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r4 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r5 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
if (r1 != 0 && r2 != 0 && r3 != 0 && r4 != 0 && r5 != 0)
{
num1[i] = r1; num2[i] = r2; num3[i] = r3; num4[i] = r4; num5[i] = r5;
}
else
{
i--;
continue;
}
}
for (i = 0; i < n; i++)
{
if (num1[i] != 0 && num2[i] != 0 && num3[i] != 0 && num4[i] != 0 && num5[i] != 0)
listView1.Items.Add("(" + num1[i] + ")" + Getstr2(1) + "(" + num2[i] + ")" + Getstr2(1) + "(" + num3[i] + ")" + Getstr2(1) + "(" + num4[i] + ")" + Getstr2(1) + "(" + num5[i] + ")" + "=");
}
}
if (cal == 5)
{
int[] num1;
int[] num2;
int[] num3;
int[] num4;
int[] num5;
int[] num6;
int i, r1, r2, r3, r4, r5, r6;
int n = int.Parse(textSum.Text);
Random r = new Random();
num1 = new int[100];
num2 = new int[100];
num3 = new int[100];
num4 = new int[100];
num5 = new int[100];
num6 = new int[100];
for (i = 0; i < n; i++)
{
r1 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r2 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r3 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r4 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r5 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
r6 = r.Next(int.Parse(textF.Text), int.Parse(textT.Text));
if (r1 != 0 && r2 != 0 && r3 != 0 && r4 != 0 && r5 != 0 && r6 != 0)
{
num1[i] = r1; num2[i] = r2; num3[i] = r3; num4[i] = r4; num5[i] = r5; num6[i] = r6;
}
else
{
i--;
continue;
}
}
for (i = 0; i < n; i++)
{
listView1.Items.Add("(" + num1[i] + ")" + Getstr2(1) + "(" + num2[i] + ")" + Getstr2(1) + "(" + num3[i] + ")" + Getstr2(1) + "(" + num4[i] + ")" + Getstr2(1) + "(" + num5[i] + ")" + Getstr2(1) + "(" + num6[i] + ")" + "=");
}
}
}
3)private string Getstr2函數
private string Getstr2(int num)
{
string result = "";
for (int i = 0; i < num; i++)
{
int r = r10.Next(strs2.Length);
result += strs2[r];
}
return result;
}
4.總結
經過這兩周斷斷續續的學習軟體工程,終于完成了四則運算。在編碼的過程中,在本次項目中我經過大量的通路網上的資源和跟同學的積極讨論完成了并不完善的四則運算。
PS:雖然實作的代碼不是很嚴謹且結構簡單,但我希望通過下一次的作業優化并且完善四則運算這個項目。
小組成員:
李紅亮,常宇鵬;
合作小組:
李成帥,張偉祥;