C#窗体随机四则运算 (第四次作业)
---恢复内容开始---
增量内容:1)处理用户的错误输入,比如输入字母或符号等,处理除法运算中分母为0的情况,处理结果为负数的情况,保证是小学水平不出现负数,比如不能出现5-8=-3这种情况;2)用户可以设定倒计时; 3)用户可以设定随机整数的范围和题目数量;4)用户可以选择哪种计算类型,比如加减乘除,或可选择软件随机生成四则运算中的一种; 5)用户可以选择随机生成的题目中是否带有小括号,比如(2+3)*5,如果是gui程序,添加这个功能可以用复选框实现; 6)保证生成过的题目不再重复出现。
设计思路:上次作业我们用的是控制台,这次原本还想用控制台,但是我的队友洪亮建议我用窗体,所以这次做这道题完全是把开始的作业都做了一遍,开始的时候其实还蛮顺利的,知道要实现用户可以输入范围的时候遇到了一些小问题,但是很快就解决了,完成其它实现的时候我们也会有一些分歧,不如要不要做个提示告诉用户在同一个界面上出现你已经做了多少道题,我说不要,他要,但是还是写上了,但是等到界面全部完成后,感觉加上还蛮合适的,就这样我们每个人负责一些任务,遇到问题我们就在一起解决,然而比一个
人做轻松了好多。下面是我们结对时的照片!!!

需求分析:增加的内容前几个还好啦,不是很难,但是要实现混合运算有点想不到方法,我们也上查了一下,但是网上介绍的方法比如栈,树的方式不是很懂,我们也实验了好多可是都没成功,有好多疑问,因为时间比较紧,所以课后做好了。
namespace _000000
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public static int Count = ;
public static int right = ;
public static int fault = ;
private void RandomNum()
{
Random ran = new Random();
int a, b; string m;
a = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text));
b = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text));
if (a >= b)
{
textBox1.Text = a.ToString();
textBox2.Text = b.ToString();
textBox3.Text = "";
Count++;
textBox6.Text = Form1.Count.ToString(); if (textBox7.Text == textBox6.Text)
{
MessageBox.Show("你已做完计算!"); } }
else if (a < b)
{
m = b.ToString();
textBox2.Text = a.ToString();
textBox1.Text = m;
textBox3.Text = "";
Count++;
textBox6.Text = Form1.Count.ToString();
if (textBox7.Text == textBox6.Text)
{
MessageBox.Show("你已做完计算!"); }
} }
private void timer1_Tick(object sender, EventArgs e)
{
if (Convert.ToInt32(textBox8.Text) <= 0)
{
timer1.Enabled = false;
textBox3.Enabled = false;
MessageBox.Show("时间到!");
textBox3.Enabled = false;
Form2 frm2 = new Form2();
frm2.ShowDialog()
}
int t = Convert.ToInt32(textBox8.Text);
t = t - 1;
textBox8.Text = t.ToString();
}
private void textBox3_KeyDown(object sender, KeyEventArgs e)
{
int sum = ;
string m = label3.Text; if (m == "+")
{ sum = int.Parse(textBox1.Text) + int.Parse(textBox2.Text);
if (e.KeyCode == Keys.Enter)
{
if (textBox3.Text == sum.ToString())
{
right++; RandomNum();
}
else
{
fault++;
RandomNum();
}
}
} else if (m == "-")
{
sum = int.Parse(textBox1.Text) - int.Parse(textBox2.Text);
if (e.KeyCode == Keys.Enter)
{
if (textBox3.Text == sum.ToString())
{
right++; RandomNum();
}
else
{
fault++;
RandomNum();
}
}
} else if (m == "x")
{
sum = int.Parse(textBox1.Text) * int.Parse(textBox2.Text);
if (e.KeyCode == Keys.Enter)
{
if (textBox3.Text == sum.ToString())
{
right++; RandomNum();
}
else
{ fault++;
RandomNum();
}
}
} else
{
sum = int.Parse(textBox1.Text) / int.Parse(textBox2.Text); } }
private void button1_Click(object sender, EventArgs e)
{
label3.Text = "+";
int t = Convert.ToInt32(textBox8.Text);
label2.Text = t.ToString();
timer1.Enabled = true;
timer1.Interval = ;
timer1.Start();
RandomNum();
}
private void button2_Click(object sender, EventArgs e)
{
label3.Text = "-";
int t = Convert.ToInt32(textBox8.Text);
label2.Text = t.ToString();
timer1.Enabled = true;
timer1.Interval = ;
timer1.Start();
RandomNum(); }
private void button3_Click(object sender, EventArgs e)
{
label3.Text = "x";
int t = Convert.ToInt32(textBox8.Text);
label2.Text = t.ToString();
timer1.Enabled = true;
timer1.Interval = ;
timer1.Start();
RandomNum();
}
private void button4_Click(object sender, EventArgs e)
{ label3.Text = "/";
int t = Convert.ToInt32(textBox8.Text);
label2.Text = t.ToString();
timer1.Enabled = true;
timer1.Interval = ;
timer1.Start();
Random ran = new Random();
int a, b; string m;
a = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text));
b = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text));
if (b != )
{
textBox1.Text = a.ToString();
textBox2.Text = b.ToString();
textBox3.Text = "";
Count++;
textBox6.Text = Form1.Count.ToString();
if (textBox7.Text == textBox6.Text)
{
MessageBox.Show("你已做完计算!");
}
}
else
{
m = b.ToString();
textBox2.Text = a.ToString();
textBox1.Text = m;
textBox3.Text = "";
Count++;
textBox6.Text = Form1.Count.ToString();
if (textBox7.Text == textBox6.Text)
{
MessageBox.Show("你已做完计算!");
}
}
}
private void button7_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.ShowDialog();
} private void textBox4_TextChanged(object sender, EventArgs e)
{
int result;
if (int.TryParse(textBox4.Text, out result) == false)
{
if (!(textBox4.Text == ""))
{
MessageBox.Show("请输入数字!", "提示");
textBox4.Clear();
}
}
}
private void textBox5_TextChanged(object sender, EventArgs e)
{
int result;
if (int.TryParse(textBox5.Text, out result) == false)
{
if (!(textBox5.Text == ""))
{
MessageBox.Show("请输入数字!", "提示");
textBox5.Clear();
}
}
}
private void textBox7_TextChanged(object sender, EventArgs e)
{
int result;
if (int.TryParse(textBox7.Text, out result) ==false)
{
if (!(textBox7.Text == ""))
{
MessageBox.Show("请输入数字!", "提示");
textBox7.Clear();
}
}
} private void button5_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox7.Clear(); }
}
}




PsP耗时

总结:没到看到和自己的伙伴完成一个项目时,顿时感觉付出的辛苦和努力都很值得,特别是看到队友那嘴角上扬的笑容,他心里应该会很自豪吧,但我也会感到非常快乐。结对编程是第二次做,比起第一次感觉配合的更默契一点,希望以后还是结对编程。
最后有一个小小的请求,希望老师能提示一下实现混合运算的方法如果老师能有个例子就更好了!!!
---恢复内容结束---
C#窗体随机四则运算 (第四次作业)的更多相关文章
- C#窗体->>随机四则运算(计算表达式)
用户需求: 程序能接收用户输入的整数答案,并判断对错程序结束时,统计出答对.答错的题目数量.补充说明:0——10的整数是随机生成的用户可以选择四则运算中的一种用户可以结束程序的运行,并显示统计结果.在 ...
- C#窗体->>随机四则运算
用户需求: 程序能接收用户输入的整数答案,并判断对错程序结束时,统计出答对.答错的题目数量.补充说明:0——10的整数是随机生成的用户可以选择四则运算中的一种用户可以结束程序的运行,并显示统计结果.在 ...
- 第四次作业之oop
第四次作业 四则运算 类 输入类:用户输入题数和答案,语言选择. 生成类:随机数字,运算符,生成表达式. 读取类:读取表达式,计算正确答案. 界面类:选择语言,输出正确题数和答案. 类与类之间是如何进 ...
- 《面向对象程序设计》c++第四次作业___calculator plus
c++第四次作业 Calculator Plus git上的作业展示 Calculator 2.0 SourceCode in Git PS:这次作业orz感谢某同学用windows的dev c++帮 ...
- c++的路上,我坚信,我可以 -----第四次作业体会
第四次作业 传送门 1.浅谈"新对象"sstream和stack 第四次作业,就是在第三次作业上作修改,上周周末,我刚刚才完成了第三次作业,但是知道了队列如何应用,面对这次的sta ...
- Java第四次作业——面向对象高级特性(继承和多态)
Java第四次作业--面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能, ...
- BUAA OO 2019 第四单元作业总结
目录 第四单元总结 总 UML UML 类图 UML 时序图 UML 状态图 架构设计 第十三次作业 第十四次作业 课程总结 历次作业总结 架构设计 面向对象方法理解 测试方法理解与实践 改进建议 尽 ...
- Java第四次作业,面向对象高级特性(继承和多态)
Java第四次作业-面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能,说 ...
- Java第四次作业—面向对象高级特性(继承和多态)
Java第四次作业-面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能,说 ...
随机推荐
- 深入虚拟内存(Virtual Memory,VM)
我们应该知道物理内存(Physical Memory)指的是硬件上的内存,即 RAM.它通常指的是插在主板上的内存条,给进程提供临时数据存储的设备.因为 CPU 可以直接从物理内存中读取数据和指令,所 ...
- [Golang学习笔记] 02 命令源码文件
源码文件的三种类型: 命令源文件:可以直接运行的程序,可以不编译而使用命令“go run”启动.执行. 库源码文件 测试源码文件 面试题:命令源码文件的用途是什么,怎样编写它? 典型回答: 命令源码文 ...
- Scala(四):对象
对象:Object 1.单例对象 2.伴生对象 3.扩展类或特质的对象 4.apply方法 5.应用程序对象 6.枚举1.单例对象 Scala中没有你静态方法或静态字段,可以用object这个语法结构 ...
- 2.Built-in types-基本数据类型(Dart中文文档)
初次翻译,部分内容并非按字面翻译,是按本人理解进行了内容重组.如有错误望指正. Dart语言内置如下数据类型: numbers strings booleans lists (所谓的数组) maps ...
- QT4.8.6之qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
想试着用qt写一个爬虫,编译的时候报如下错误 qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error qt. ...
- 20155332 补交课后测试——ch11网络编程
20155332 补交课后测试--ch11网络编程 这章的课后测试忘了提交,我课后补做了这章的测试题目,并将知识点和自己的错题汇总如下: 本章知识点总结 11.1 客户端-- 服务器模型 每个网络应用 ...
- Matlab zeros ones
zeros函数——生成零矩阵 ones函数——生成全1阵 [zeros的使用方法] B=zeros(n):生成n×n全零阵. B=zeros(m,n):生成m×n全零阵. B=zeros([m n]) ...
- Kafka系列二 kafka相关问题理解
1.kafka是什么 类JMS消息队列,结合JMS中的两种模式,可以有多个消费者主动拉取数据,在JMS中只有点对点模式才有消费者主动拉取数据. kafka是一个生产-消费模型. producer:生产 ...
- 解决在控制层springmvc框架发出的400状态的错误
错误场景: 错误分析: 这也是我第一次遇到这个类型的异常,400响应状态代表:客户端发出的请求中携带的参数与服务器端接受的参数类型不匹配,进一步就是说我后台的实体类中数据类型为Date,而前台传递过来 ...
- TensorFlow Python3.7环境下的源码编译(一)环境准备
参考: https://blog.csdn.net/yhily2008/article/details/79967118 https://tensorflow.google.cn/install/in ...