作业四
1. 结对编程项目---四则运算
结对编程对象:130201105 何玥 http://www.cnblogs.com/heyue/
//界面 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace FourOperations { public partial class 界面 : Form { public 界面() { InitializeComponent(); } //题目生成 private void button1_Click(object sender, EventArgs e) { Form1 form1 = new Form1(); form1.Show(); } //题目练习 private void button2_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.Show(); } } }
运行结果截图:
//题目生成 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace FourOperations { public partial class Form1 : Form { public int choice; public Form1() { InitializeComponent(); } //整数运算 public void zhengshu() { String strnum = txtAmount.Text;//接收字符 int num = Convert.ToInt32(strnum);//转义 题目个数 Random R = new Random(); int oper = 0; for (int i = 0; i < num; i++) { int num1, num2; num1 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text)); num2 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text)); oper = R.Next(0, 3); switch (oper)//0-7分别表示加减乘除 { case 0: if (num2 >= 0) { ListboxResult.Items.Add(num1 + "+" + num2 + "="); } else { ListboxResult.Items.Add(num1 + "+" + "(" + num2 + ")" + "="); } break; case 1: if (num2 >= 0) { ListboxResult.Items.Add(num1 + "-" + num2 + "="); } else { ListboxResult.Items.Add(num1 + "-" + "(" + num2 + ")" + "="); } break; case 2: if (num2 >= 0) { ListboxResult.Items.Add(num1 + "*" + num2 + "="); } else { ListboxResult.Items.Add(num1 + "*" + "(" + num2 + ")" + "="); } break; case 3: if (num2 > 0) { ListboxResult.Items.Add(num1 + "/" + num2 + "="); } else if (num2 < 0) { ListboxResult.Items.Add(num1 + "/" + "(" + num2 + ")" + "="); } else { i++; } break; } } } //分数运算 public void fenshu() { String strnum = txtAmount.Text;//接收字符 int num = Convert.ToInt32(strnum);//转义 题目个数 Random R = new Random(); int oper = 0; for (int i = 0; i < num; i++) { int num1, num2, num3, num4;//num1/num3第一个数;num2/num4第二个数 num1 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text)); num2 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text)); num3 = R.Next(0, int.Parse(txtMaxRange.Text)); num4 = R.Next(0, int.Parse(txtMaxRange.Text)); oper = R.Next(0, 3); if (num3 != 0) { switch (oper)//0-7分别表示加减乘除 { case 0: if (num4 != 0) { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "+" + "(" + num2 + "/" + num4 + ")" + "="); } else { i--; } break; case 1: if (num4 != 0) { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "-" + "(" + num2 + "/" + num4 + ")" + "="); } else { i--; } break; case 2: if (num4 != 0) { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "*" + "(" + num2 + "/" + num4 + ")" + "="); } else { i--; } break; case 3: if (num4 != 0) { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "/" + "(" + num2 + "/" + num4 + ")" + "="); } else { i--; } break; } } else { i--; } } } //混合运算 public void hunhe() { String strnum = txtAmount.Text;//接收字符 int num = Convert.ToInt32(strnum);//转义 题目个数 Random R = new Random(); int oper = 0; for (int i = 0; i < num; i++) { int num1, num2, num3, num4;//num1/num3第一个数;num2/num4第二个数 num1 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text)); num2 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text)); num3 = R.Next(0, int.Parse(txtMaxRange.Text)); num4 = R.Next(0, int.Parse(txtMaxRange.Text)); oper = R.Next(0, 7); if (num3 != 0) { switch (oper)//0-7分别表示加减乘除 { case 0: if (num2 >= 0) { ListboxResult.Items.Add(num1 + "+" + num2 + "="); } else { ListboxResult.Items.Add(num1 + "+" + "(" + num2 + ")" + "="); } break; case 1: if (num2 >= 0) { ListboxResult.Items.Add(num1 + "-" + num2 + "="); } else { ListboxResult.Items.Add(num1 + "-" + "(" + num2 + ")" + "="); } break; case 2: if (num2 >= 0) { ListboxResult.Items.Add(num1 + "*" + num2 + "="); } else { ListboxResult.Items.Add(num1 + "*" + "(" + num2 + ")" + "="); } break; case 3: if (num2 > 0) { ListboxResult.Items.Add(num1 + "/" + num2 + "="); } else if (num2 < 0) { ListboxResult.Items.Add(num1 + "/" + "(" + num2 + ")" + "="); } else { i++; } break; case 4: if (num4 != 0) { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "+" + "(" + num2 + "/" + num4 + ")" + "="); } else { i--; } break; case 5: if (num4 != 0) { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "-" + "(" + num2 + "/" + num4 + ")" + "="); } else { i--; } break; case 6: if (num4 != 0) { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "*" + "(" + num2 + "/" + num4 + ")" + "="); } else { i--; } break; case 7: if (num4 != 0) { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "/" + "(" + num2 + "/" + num4 + ")" + "="); } else { i--; } break; } } else { i--; } } } //清除按钮 private void btnClear_Click(object sender, EventArgs e) { txtAmount.Text = ""; txtMinRange.Text = ""; txtMaxRange.Text = ""; ListboxResult.Items.Clear(); } //确认按钮 private void btnEnsure_Click(object sender, EventArgs e) { switch (choice) { case 1: zhengshu(); break; case 2: fenshu(); break; case 3: hunhe(); break; } } //整数模式按钮 private void rbtnZheng_CheckedChanged(object sender, EventArgs e) { if (rbtnZheng.Checked) choice = 1; } //分数模式按钮 private void rbtFen_CheckedChanged(object sender, EventArgs e) { if (rbtnFen.Checked) choice = 2; } //混合模式按钮 private void rbtnHun_CheckedChanged(object sender, EventArgs e) { if (rbtnHun.Checked) choice = 3; } } }
运行结果截图:
//题目练习 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace FourOperations { public partial class Form2 : Form { double[] ans; double[] input; public Form2() { InitializeComponent(); ans = new double[20]; input = new double[20]; } private void btnStart_Click(object sender, EventArgs e) { Random R = new Random(); int oper = 0; int num1, num2; num1 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text)); num2 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text)); oper = R.Next(0, 3); switch (oper)//0-7分别表示加减乘除 { case 0: if (num2 >= 0) { txtStart.Text = num1 + "+" + num2 + "="; } else { txtStart.Text = num1 + "+" + "("+ num2 +")"+ "="; } ans[1] = num1 + num2; break; case 1: if (num2 >= 0) { txtStart.Text = num1 + "-" + num2 + "="; } else { txtStart.Text = num1 + "-" + "(" + num2 + ")" + "="; } ans[1] = num1 - num2; break; case 2: if (num2 >= 0) { txtStart.Text = num1 + "*" + num2 + "="; } else { txtStart.Text = num1 + "*" + "(" + num2 + ")" + "="; } ans[1] = num1 * num2; break; case 3: if (num2 > 0) { txtStart.Text = num1 + "/" + num2 + "="; } else if (num2 < 0) { txtStart.Text = num1 + "/" + "(" + num2 + ")" + "="; } ans[1] = num1 / num2; break; } } private void btnEnsure_Click(object sender, EventArgs e) { input[1] = Double.Parse(txtEnsure.Text); if (ans[1] == input[1]) {MessageBox.Show("回答正确!");} else { MessageBox.Show("回答错误,正确答案是" + ans[1]); }; } } }
运行结果截图:
总结:
通过这节课的学习,我学到了结对编程的一些知识,在编写这次作业的过程,我感受到了结对编程的重要性。最开始编程的时候,两个人各自都有自己的思路,我们先是进行了讨论,将各自的想法说出来,之后我们在综合两个人所想的,把自己没有想到的方面进行弥补,完成一个比较完整的思想。思路大概形成后,我们开始分工合作,一个人负责进行代码的编写,另一个人在旁边负责进行复审以及补充完整。完成一部分代码时,我们会把各自的工作调换一下,让每个人都可以有编写和复审的过程。在我们的这个程序中,她主要负责编写的是四则运算的整数运算部分,我主要负责编写的是四则运算的分数部分,混合运算以及题目的练习是将我们所编写的代码进行整合再修改。我们的这个程序主要实现了用户可以自设题目数量、数值的范围(支持正负数),支持整数的加减乘除和分数的加减乘除,以及判断对错,如果答案错误,则会输出正确答案。在结对编程的过程中,我发现结对编程大大提高了编写程序的效率,而且可以引导我想出更多的想法,将自己的想法更加完善,以及可以更加丰富程序的编写。同时,会发现结对的组员的一些优点,例如:她的有些想法可以让我扩大思考的范围。有时,在我编写的过程中,她的一些建议也会让我的思路更加的清晰,这些都可以感受到结对编程的重要性。通过这次的编写,我们发现程序中还有未完成的功能需要进行补充,所以我们会继续修改,完成一个比较全面的程序。
照片:
2. 学习进度表
|
学习时间 |
新增代码行 |
博客量(篇) |
知识总结 |
第一周 |
6小时 |
约100 |
2 |
数据库课设,巩固了上个学期的知识,将自己不是很熟练的东西重新进行学习。 软件工程,在课下将教材大概的浏览了一下,了解了一些基础的概念。 |
第二周 |
10小时 |
约150 |
4 |
软件工程,c语言中的随机数rand()函数,以及巩固了一下switch语句。 数据库课设,建表,增删改查语句。 |
第三周 |
9小时 |
约200 |
5 |
软件工程,巩固了c语言中的一些函数和循环语句,学习了代码规范、代码复审以及用PSP表格记录自己的学习时间。 数据库课设,增删改查语句,完成报告。 |
第四周 |
15小时 |
约800 |
6 |
软件工程,巩固了C#的一些基础的知识点,了解了结对编程,进行了对四则运算的编写. |
...... |
|
|
|
|