作业四:结对编程项目--四则运算
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作业四:结对编程项目--四则运算相关的知识,希望对你有一定的参考价值。
一、基本要求
1) 实现一个带有用户界面的四则运算。
2) 生成的题目不能重复。
3) 支持负数,例如-1,-1/2,-3‘4/5等。
4) 题目的数量(个人项目的要求)
5) 数值的范围
6) 题目中最多几个运算符
7) 题目中是否有乘除法
8) 题目中或运算过程中有无负数
根据老师的要求我们做的程序中解决了以上的问题。因为在第一次制作的四则运算中我的代码就已经制作了一个用户操作的界面,只是比较粗糙不够完善,所以这次我和我的组员完善了四则运算的界面和一些具体的功能。在这些要求中的运算符有几个的问题里,第一次制作的四则运算的运算符是做了三个,所以这次依旧使用三个运算符,没有进行大的修改。
二、源代码
源代码:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication2 { public partial class Form1 : Form { //加减运算字符数组 private String[] strs1 = new String[] { "+", "-", }; private Random r10 = new Random(); //乘除运算字符数组 private String[] strs2 = new String[] { "*","/"}; private Random r11 = new Random(); //混合运算字符数组 private String[] strs3 = new String[] { "+","-","*", "/" }; private Random r12 = new Random(); public Form1() { InitializeComponent(); } //出题按钮 private void btnTest_Click(object sender, EventArgs e) { if (jiajian.CheckState == CheckState.Checked) { Build_NoMul_NoDiv_NoMinus(); } else { } if (chengchu.CheckState == CheckState.Checked) { Build_Mul_Div_NoMinus(); } else { } if (hunhe.CheckState == CheckState.Checked) { Build_Mul_Div_Add_Minus(); } else { } } //重新出题按钮 private void btnClear_Click(object sender, EventArgs e) { listView1.Items.Clear(); } //加减运算代码 public void Build_NoMul_NoDiv_NoMinus() { 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] + ")"+"="); } } //乘除运算代码 public void Build_Mul_Div_NoMinus() { 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 != 0 && r2 != 0 && r3 != 0 && r4 != 0)&&(r1>r2)&&(r3>r4)&&(s1>s2)) { 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] + ")" + "="); } } //混合运算代码 public void Build_Mul_Div_Add_Minus() { 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 != 0 && r2 != 0 && r3 != 0 && r4 != 0) && (r1 > r2) && (r3 > r4) && (s1 > s2)) { 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] + ")" + Getstr3(1) + "(" + num2[i] + ")" + Getstr3(1) + "(" + num3[i] + ")" + Getstr3(1) + "(" + num4[i] + ")" + "="); } } //加减运算符号随机出现 private string Getstr1(int num) { string result = ""; for (int i = 0; i < num; i++) { int r = r10.Next(strs1.Length); result += strs1[r]; } return result; } //乘除运算符号随机出现 private string Getstr2(int num) { string result = ""; for (int i = 0; i < num; i++) { int r = r11.Next(strs2.Length); result += strs2[r]; } return result; } //混合运算运算符号随机出现 private string Getstr3(int num) { string result = ""; for (int i = 0; i < num; i++) { int r = r12.Next(strs3.Length); result += strs3[r]; } return result; } } }
三:运行截图和界面截图
四:小组成员和总结心得
1.小组成员:王珏、杜尧
合作小组:王乃宽、宋玉辉
2.总结心得:
对于这次程序的制作,我的组员杜尧,合作组员王乃宽和宋玉辉,他们的基础相对薄弱,在制作的过程中,他们一直跟我一起编写程序,但是有很多不懂的地方,他们都会提出来,我会为他们解答。相信他们在这次程序的编写过程中学到了很多知识,对他们以后的编程和制作有很大的帮助。希望他们可以真的理解,在以后制作程序的过程中完善自己的作品。
这次程序的制作过程中也遇到了一些困难,但是通过上网查阅资料和同学的帮助让我顺利的解决了自己的问题,也让我慢慢看到了自己的不足之处还有很多,需要学习和努力的地方还有很多,并不能因为自己会一些基础的编程就骄傲,当真正制作东西的时候这些小问题就会暴露出来,让我手足无措。我会继续完善自己的四则运算,也会让自己的基本功和一些进阶的编程操作更加扎实。相信自己下一次制作出来的东西会更加完美。
以上是关于作业四:结对编程项目--四则运算的主要内容,如果未能解决你的问题,请参考以下文章