结对编程项目——四则运算vs版
2016-04-06 15:14
169 查看
结对编程项目——四则运算vs版
1)小伙伴信息:
学号:130201238 赵莹博客地址:点我进入 小伙伴的博客
2)实现的功能:
实现带有用户界面的四则运算:将原只能在c free程序框内构建并运行,进一步完善为利用vs搭建Windows窗体完成运行,有关用户体验方面得到了提高。加入登录窗口:此版本需固定登录名和密码才可登录,也可随及退出。原意是希望一人一账号,可以记录每个人的进度并更新。
密码隐藏:可加入设置选项,可隐藏or显示密码。
可清空现有题目。
支持负数:将负数加以括号,进行简单四则运算出题。只针对出题一方面,对于答题,暂未进行深入挖掘。
出题量和范围的自由设定。
混合出题:由两整数/两分数进行四则运算(加减乘除)。
暂未实现的功能:
题目存在重复。每道题目只涉及一个运算符:可设置新题型选项,加入多运算符。
答题功能未能加入:在用c有完成题目纠错并给出正确答案,因不熟悉c#的编写and时间紧迫,未能加入。
答题模式多样:此版本仅有混合运算,可扩充为多样式答题模块。
3)合作过程中的负责模块:
完成windows窗口排版。完成所设计题目数量和范围的正常显示。
完成程序模块化。将case各选项中的冗长语句移出,添加到新创建相应的子程序中,便于审阅和纠错。
程序纠错。在进行编写的时出现了各式各样的错误,这时就需要纠错啦。比如在题目数量未按照输入数值显示、分数的出题对于分母为0的更改、考虑问题的不全面等等。
在程序正常运行的前提下,优化程序界面,规范代码格式。
(注:程序大多是在两人共同讨论推进的,同时其中因和结对小伙伴对c#的不熟悉,向其他小伙伴 频频再频频的求助,在此感谢感谢感谢!!)
4)结对伙伴的优缺点总结:
优点 | 缺点 | |
本人 | 1.尤为注重代码规范,编写的代码方便查看并纠错。(只说一句:I’m处女座) 2.善于提出问题,并快速寻求帮助,保证进程不拖沓。 3.宿舍地理位置优越,处于多学霸中心地带,请教问题时掌握快准狠的原则。 | 1.做事追求的更多一点,有自己的想法。容易和小伙伴发生摩擦。(结果还是美好滴!) 2.对c#的不熟悉,很容易拖慢整体进程。(解决办法:不断请求其他小伙伴) |
小伙伴 | 1.对待问题显得沉稳,能够容(tuo)忍(zou)我并且找出问题。 2.牺牲个人时间也要完成代码编写。 3.编写代码比较细心。 | 1.很少主动请教其他小伙伴,性格偏内。(我外呀!) 2.同样地,对c#的不熟悉也造成了一定的困扰。 |
5)结对编程的优缺点总结:
优点 | 缺点 | |
结对编程 | 1.更快速的找到错误并解决。 2.思维的碰撞,使功能更完善。 3.为组成团队打下良好的基础。 4.在讨论过程中,不断加深印象。 5.减轻编程负担。 | 1.在两人对c#编程还不清晰的情况下,任意一人所添加的语句都需要做出多遍解释,造成项目的拖沓。相对应的,也会对此语句加深印象。 2.对一件问题各执己见,容易发生争执。相应的,无论在以后的团队项目中,亦或是工作中,都会养成善于听取他人意见或建议的习惯,不断完善自身。 |
6)照片
7)程序截图
① 登录界面② 运算界面
③ 清除程序
附录
//主界面 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 Enter { public partial class topic : Form { /* public String getmax; public int maxnum; public String getmin; public int minnum; public Random R; public int den1, den2, num1, num2; */ public topic() { InitializeComponent(); /* //新增(可减少在每个函数内 重复定义) getmax = textMax.Text; getmin = textMin.Text; minnum = int.Parse(getmin); //最小范围设定 maxnum = int.Parse(getmax); //最大范围设定 R = new Random(); //取随机数 den1 = R.Next(minnum, maxnum); num1 = R.Next(minnum, den1); den2 = R.Next(minnum, maxnum); num2 = R.Next(minnum, den2); */ } //整数除法 case3 public void Integerdivide() { String getmax = textMin.Text; int minnum = Convert.ToInt32(getmax); //最小范围设定 String getmin = textMax.Text; int maxnum = Convert.ToInt32(getmin); //最大范围设定 Random R = new Random(); //取随机数 int den1, den2, num1, num2; den1 = R.Next(minnum, maxnum); num1 = R.Next(minnum, den1); den2 = R.Next(minnum, maxnum); num2 = R.Next(minnum, den2); if (den2 != 0) list.Items.Add(den1 + "/" + "(" + den2 + ")" + "="); else { list.Items.Add(den2 + "/" + "(" + den1 + ")" + "="); } } //分数加法 case 4 public void Fractionadd() { String getmax = textMin.Text; int minnum = Convert.ToInt32(getmax); //最小范围设定 String getmin = textMax.Text; int maxnum = Convert.ToInt32(getmin); //最大范围设定 Random R = new Random(); //取随机数 int den1, den2, num1, num2; den1 = R.Next(minnum, maxnum); num1 = R.Next(minnum, den1); den2 = R.Next(minnum, maxnum); num2 = R.Next(minnum, den2); if (den1 != 0) //当第一个分数分母den1!=0的情况,分析den2 { if (den2 != 0) { list.Items.Add("(" + num1 + "/" + den1 + ")" + "+" + "(" + num2 + "/" + den2 + ")" + "="); } else if (den2 == 0) { list.Items.Add("(" + num1 + "/" + den1 + ")" + "+" + "(" + den2 + "/" + num2 + ")" + "="); } } else //当第一个分数分母den1=0的情况,分析den2 { if (den2 != 0) { list.Items.Add("(" + den1 + "/" + num1 + ")" + "+" + "(" + num2 + "/" + den2 + ")" + "="); } else if (den2 == 0) { list.Items.Add("(" + den1 + "/" + num1 + ")" + "+" + "(" + den2 + "/" + num2 + ")" + "="); } } } //分数减法 case 5 public void Fractiondelete() { String getmax = textMin.Text; int minnum = Convert.ToInt32(getmax); //最小范围设定 String getmin = textMax.Text; int maxnum = Convert.ToInt32(getmin); //最大范围设定 Random R = new Random(); //取随机数 int den1, den2, num1, num2; den1 = R.Next(minnum, maxnum); num1 = R.Next(minnum, den1); den2 = R.Next(minnum, maxnum); num2 = R.Next(minnum, den2); if (den1 != 0) //当第一个分数分母den1!=0的情况,分析den2 { if (den2 != 0) { list.Items.Add("(" + num1 + "/" + den1 + ")" + "-" + "(" + num2 + "/" + den2 + ")" + "="); } else if (den2 == 0) { list.Items.Add("(" + num1 + "/" + den1 + ")" + "-" + "(" + den2 + "/" + num2 + ")" + "="); } } else //当第一个分数分母den=0的情况,分析den2 { if (den2 != 0) { list.Items.Add("(" + den1 + "/" + num1 + ")" + "-" + "(" + num2 + "-" + den2 + ")" + "="); } else if (den2 == 0) { list.Items.Add("(" + den1 + "/" + num1 + ")" + "-" + "(" + den2 + "/" + num2 + ")" + "="); } } } //分数乘法 case 6 public void Fractionmultiply() { String getmax = textMin.Text; int minnum = Convert.ToInt32(getmax); //最小范围设定 String getmin = textMax.Text; int maxnum = Convert.ToInt32(getmin); //最大范围设定 Random R = new Random(); //取随机数 int den1, den2, num1, num2; den1 = R.Next(minnum, maxnum); num1 = R.Next(minnum, den1); den2 = R.Next(minnum, maxnum); num2 = R.Next(minnum, den2); if (den1 != 0) //当第一个分数分母den1!=0的情况,分析den2 { if (den2 != 0) { list.Items.Add("(" + num1 + "/" + den1 + ")" + "*" + "(" + num2 + "/" + den2 + ")" + "="); } else if (den2 == 0) { list.Items.Add("(" + num1 + "/" + den1 + ")" + "*" + "(" + den2 + "/" + num2 + ")" + "="); } } else ////当第一个分数分母den1=0的情况,分析den2 { if (den2 != 0) { list.Items.Add("(" + den1 + "/" + num1 + ")" + "*" + "(" + num2 + "/" + den2 + ")" + "="); } else if (den2 == 0) { list.Items.Add("(" + den1 + "/" + num1 + ")" + "*" + "(" + den2 + "/" + num2 + ")" + "="); } } } //分数除法case 7 public void Fractiondivide() { String getmax = textMin.Text; int minnum = Convert.ToInt32(getmax); //最小范围设定 String getmin = textMax.Text; int maxnum = Convert.ToInt32(getmin); //最大范围设定 Random R = new Random(); //取随机数 int den1, den2, num1, num2; den1 = R.Next(minnum, maxnum); num1 = R.Next(minnum, den1); den2 = R.Next(minnum, maxnum); num2 = R.Next(minnum, den2); if (den1 != 0) //当第一个分数分母den1!=0的情况,分析den2 { if (den2 != 0) { list.Items.Add("(" + num1 + "/" + den1 + ")" + "/" + "(" + num2 + "/" + den2 + ")" + "="); } else if (den2 == 0) { list.Items.Add("(" + num1 + "/" + den1 + ")" + "/" + "(" + den2 + "/" + num2 + ")" + "=");//换 } } else //当第一个分数分母den1 =0的情况,分析den2 { if (den2 != 0) { list.Items.Add("(" + den1 + "/" + num1 + ")" + "/" + "(" + num2 + "/" + den2 + ")" + "="); } else if (den2 == 0) { list.Items.Add("(" + den1 + " / " + num1 + ")" + "/" + "(" + den2 + "/" + num2 + ")" + "="); } } } // 确认按钮(出题) private void btnOk_Click(object sender, EventArgs e) { String getnum = textIn.Text; int num = Convert.ToInt32(getnum); //输入题目 String getmax = textMin.Text; int minnum = Convert.ToInt32(getmax); //最小范围设定 String getmin = textMax.Text; int maxnum = Convert.ToInt32(getmin); //最大范围设定 int i; Random R = new Random(); //取随机数 int import = 0; //输入的数量 for (i = 0; i < num; i++) { int den1, den2, num1, num2; den1 = R.Next(minnum, maxnum); num1 = R.Next(minnum, den1); den2 = R.Next(minnum, maxnum); num2 = R.Next(minnum, den2); import = R.Next(0, 8); //取随机数 switch (import) { case 0: list.Items.Add(den1 + "+" + "(" + den2 + ")" + "="); break; case 1: list.Items.Add(den1 + "-" + "(" + den2 + ")" + "="); break; case 2: list.Items.Add(den1 + "*" + "(" + den2 + ")" + "="); break; case 3: Integerdivide(); break; //整数除法 case 4: Fractionadd(); break; //分数加法 case 5: Fractiondelete(); break; //分数减法 case 6: Fractionmultiply();break;//分数乘法 case 7: Fractiondivide(); break; //分数除法 } } } //清空按钮(清空输入数值,恢复初始化状态) private void btnClear_Click(object sender, EventArgs e) { textIn.Text = " "; //设置为空 textMax.Text = " "; textMin.Text = " "; list.Items.Clear(); } } } //登录界面 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 Enter { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //登录按钮(跳转窗口至主界面——计算) private void btnEnter_Click(object sender, EventArgs e) { if (textName.Text == "JINGYAN" && textPassword.Text == "646646") //符合输入值,跳转 { topic form = new topic(); form.Show(); } } //退出按钮(退出程序) private void button2_Click(object sender, EventArgs e) { this.Close(); } } }
相关文章推荐
- Java的MyBatis框架中对数据库进行动态SQL查询的教程
- Python运算符
- java中的多线程包--- Executor详细介绍 打造基于Executor的Web服务器
- eclipse打包maven工程文件提示找不到tools.jar的解决办法
- Struts2 提交表单无法接收input disabled的值
- java Iterable and for each
- java HashMap
- PHP 遍历数组的方法汇总
- django 分页
- eclipse查看jar包源码
- PHP静态成员的实质
- scala 调用 c++
- C++虚函数分析[3]--常见问题汇总
- C++捕获除0和空指针异常
- 已经装了MySQL-python,但在引用时报错:ImportError: No module named MySQLdb
- Eclipse 配置Activiti插件
- Eclipse 配置Activiti插件
- eclipse中的快速修复的另类用法(转,例子)
- python处理中文文件名
- c++中exception和stdexcept