结对编程项目——四则运算vs版
结对编程项目——四则运算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.更快速的找到错误并解决。<br |
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();
}
}
}
结对编程项目——四则运算vs版的更多相关文章
- 20175324王陈峤宇 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结
20175324王陈峤宇 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 这次的结对作业是要求我们利用栈来设计一个计算器. 自动生成四则运算 ...
- 20175229许钰玮 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结
20175229许钰玮 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 自动生成四则运算题目(加.减.乘.除). 既可以用前缀算法(波兰算法 ...
- 20175311胡济栋 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周 阶段性总结
20175311胡济栋 2018-2019-2<Java程序设计>结对编程项目-四则运算 第二周 阶段性总结 需求分析 这是利用栈来设计一个计算器的第二阶段总结. 自动生成四则运算的题目( ...
- 20175316盛茂淞 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周(6)
20175316与20175329 结对编程练习_四则运算(第二周) 1.需求分析 实现一个命令行程序,要求: 自动生成指定数量的小学四则运算题目(加.减.乘.除) 支持整数 统计正确率 支持多运算符 ...
- 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结
码云链接 https://gitee.com/A5320/pair_programming_code 需求分析 实现一个命令行程序,要求: 1.自动生成小学四则运算题目(加.减.乘.除) 2.支持整数 ...
- 结对编程1.四则运算GUI版
201421123022 王若凡 201421123026 欧阳勇 coding详细代码 a.需求分析: 这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linu ...
- 20165223 结对编程之四则运算week2-整体总结
目录 一.结对对象 二.需求分析 三.设计思路 四.核心代码 五.功能截图 六.结对感受 一.结对对象 担任角色(本周交换角色,流动学习) 驾驶员(Driver):20165218 赵冰雨(是控制键盘 ...
- 20165223 结对编程之四则运算week1-阶段性总结
目录 一.结对对象 二.需求分析 三.设计思路 四.功能截图 五.结对感受 一.结对对象 担任角色 驾驶员(Driver):20165223 蔡霓(是控制键盘输入的人) 领航员(Navigator): ...
- 结对编程项目报告--四则运算CORE
<!doctype html> sw_lab2.mdhtml {overflow-x: initial !important;}#write, body { height: auto; } ...
随机推荐
- 8款适合乐队、歌手和音乐家免费 WordPress 主题
这篇文章与大家分享8款适合乐队.歌手和音乐家免费 WordPress WordPress 音乐网站主题.WordPress 作为最流行的博客系统,插件众多,易于扩充功能.安装和使用都非常方便,而且有许 ...
- HTML5 表单新增属性
1. 表单内元素的form属性 在H5中可以把form放到页面的任何地方,然后为该元素指定一个form属性,属性值为该表单的id,这样就可以声明该元素从属于指定表单了 <form id=&quo ...
- 如何删掉Portal中的无效内容
1.登陆到https://[PORTALURL]/arcgis/sharing/rest/ 2.使用内容的所有者或者门户管理员的账号登陆. 3.登陆后访问https://[PORTALURL]/arc ...
- Linux下EclipseCDT工程和TFS的持续集成CI实践
在Linux下使用TFS自动构建,需要自动执行连接tfs服务器的操作,命令行文件包TEE-CLC-10.1.0.2011121402.zip,下载地址:http://www.microsoft.com ...
- Android Handler机制(一)---Message源码分析
Message: 定义: public final class Message implements Parcelable Message类是个final类,就是说不能被继承,同时Message类实现 ...
- This version of android studio is incompatible with the gradle version used.Try disabling the instant run解决办法
今天打开android studio又碰到一个奇怪的问题:This version of android studio is incompatible with the gradle version ...
- 操作系统开发系列—13.g.操作系统的系统调用 ●
在我们的操作系统中,已经存在的3个进程是运行在ring1上的,它们已经不能任意地使用某些指令,不能访问某些权限更高的内存区域,但如果一项任务需要这些使用指令或者内存区域时,只能通过系统调用来实现,它是 ...
- iOS开发-生成随机数
有时候我们需要在程序中生成随机数,但是在Objective-c中并没有提供相应的函数,好在C中提供了rand().srand().random().arc4random()几个函数.那么怎么使用呢?下 ...
- 在eclipse中把之前的Tomcat 6删掉,不能再建
在eclipse中把之前的Tomcat 6删掉,重新配置一个,不料没有下一步. 解决的方法了,如下: 1.退出 eclipse 2.到[工程目录下]/.metadata/.plugins/org.ec ...
- (视频) 《快速创建网站》 3.2 WordPress多站点及Azure在线代码编辑器 - 扔掉你的ftp工具吧,修改代码全部云端搞定
本文是<快速创建网站>系列的第6篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...