我们在我的第二次作业上增加了减法的被减数问题和除法的除数不为0,被除数和除数是整除关系。选择运算的功能在上次作业已经实现。减法重新定义一个随机数c,使其不能大于被减数a。除法则是新增一个f使其=d*e,然后运行除法运算的时候获取随机数f和d分别作为被除数与除数,于是乎就不会出现减法中的负数,除法中的余数分数等情况了。如图代码:
可以让小学生们做四则运算使用软件的时候不会涉及到自己未学过的分数负数等知识。
在用户界面添加计时器的代码我们通过网络找到了,可是这个代码是一秒一行显示的,如果添加到程序里,会导致程序一直在换行。最终还是没有添加成功,如图:
程序测试图如下:
下面发一下程序的全代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 加减乘除运算
{
class Program
{
static void Main(string[] args)
{ /*程序运行,输出1234键选择算法。
计算完毕提示对错后,随机按“1-9键”后按“空格”重新开始下一次计算
若全部计算完毕,在提示对错后直接按“回车”即可显示出对错题数。*/
int 正确 = 0;
int 错误 = 0;
do
{
Console.WriteLine("输入1进行加法运算,输入2进行减法运算,输入3进行乘法运算,输入4进行除法运算");
Random num = new Random();
int a = num.Next(0, 11);
int b = num.Next(0, 11);
int c = num.Next(0, a + 1);//可以试随机数c不大于随机数a
int d = num.Next(1, 10);//使除数范围内无0,且除数都10以内。
int e = num.Next(1, 10);//规定一个商的值,不为0,且在10以内。
int f = e * d;//被除数=除数*商,可使被除数一定为除数的整十倍数。
string A = Console.ReadLine();
switch(A)
{
case "1":
Console.WriteLine("{0}+{1}=?请输入答案", a, b);
int a加b = Convert.ToInt32(Console.ReadLine());
if (a加b == a + b)
{
Console.WriteLine("你算对了!点赞");
正确++;
}else
{
Console.WriteLine("你算错了!加油");
错误++;
}break;
case"2":
Console.WriteLine("{0}-{1}=?请输入答案,", a, c);
int a减c = Convert.ToInt32(Console.ReadLine());
if (a减c == a - c)
{
Console.WriteLine("你算对了!点赞");
正确++;
}
else
{
Console.WriteLine("你算错了!加油");
错误++;
}break;
case"3":
Console.WriteLine("{0}*{1}=?请输入答案,", a, b);
int a乘b = Convert.ToInt32(Console.ReadLine());
if (a乘b == a * b)
{
Console.WriteLine("你算对了!点赞");
正确++;
}
else
{
Console.WriteLine("你算错了!加油");
错误++;
}break;
case"4":
Console.WriteLine("{0}/{1}=?请输入答案,",f,d);
int f除d = Convert.ToInt32(Console.ReadLine());
if (f除d ==f / d)
{
Console.WriteLine("你算对了!点赞");
正确++;
}
else
{
Console.WriteLine("你算错了!加油");
错误++;
}break;
}
}
while (Console.ReadLine() != "");
Console.WriteLine("你一共答了{0}道题,正确:{1},错误:{2}", 正确 + 错误, 正确, 错误);
Console.ReadLine();
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 加减乘除运算
{
class Program
{
static void Main(string[] args)
{ /*程序运行,输出1234键选择算法。
计算完毕提示对错后,随机按“1-9键”后按“空格”重新开始下一次计算
若全部计算完毕,在提示对错后直接按“回车”即可显示出对错题数。*/
int 正确 = 0;
int 错误 = 0;
do
{
Console.WriteLine("输入1进行加法运算,输入2进行减法运算,输入3进行乘法运算,输入4进行除法运算");
Random num = new Random();
int a = num.Next(0, 11);
int b = num.Next(0, 11);
int c = num.Next(0, a + 1);//可以试随机数c不大于随机数a
int d = num.Next(1, 10);//使除数范围内无0,且除数都10以内。
int e = num.Next(1, 10);//规定一个商的值,不为0,且在10以内。
int f = e * d;//被除数=除数*商,可使被除数一定为除数的整十倍数。
string A = Console.ReadLine();
switch(A)
{
case "1":
Console.WriteLine("{0}+{1}=?请输入答案", a, b);
int a加b = Convert.ToInt32(Console.ReadLine());
if (a加b == a + b)
{
Console.WriteLine("你算对了!点赞");
正确++;
}else
{
Console.WriteLine("你算错了!加油");
错误++;
}break;
case"2":
Console.WriteLine("{0}-{1}=?请输入答案,", a, c);
int a减c = Convert.ToInt32(Console.ReadLine());
if (a减c == a - c)
{
Console.WriteLine("你算对了!点赞");
正确++;
}
else
{
Console.WriteLine("你算错了!加油");
错误++;
}break;
case"3":
Console.WriteLine("{0}*{1}=?请输入答案,", a, b);
int a乘b = Convert.ToInt32(Console.ReadLine());
if (a乘b == a * b)
{
Console.WriteLine("你算对了!点赞");
正确++;
}
else
{
Console.WriteLine("你算错了!加油");
错误++;
}break;
case"4":
Console.WriteLine("{0}/{1}=?请输入答案,",f,d);
int f除d = Convert.ToInt32(Console.ReadLine());
if (f除d ==f / d)
{
Console.WriteLine("你算对了!点赞");
正确++;
}
else
{
Console.WriteLine("你算错了!加油");
错误++;
}break;
}
}
while (Console.ReadLine() != "");
Console.WriteLine("你一共答了{0}道题,正确:{1},错误:{2}", 正确 + 错误, 正确, 错误);
Console.ReadLine();
}
}
}
PSP耗时总结图如下:
我们两个人一起做作业的合照也是有的(刚好是室友不经意照的):
结对编程总结:感觉比一个人做要来的实在,两个人把程序做完了后的合作感很强。主要是在实现代码的过程中可以分工在书上找或者在网上找,不会像之前那种一个人找不到就感觉很急躁,那种担心做不出来的感觉没有了,在做程序的时候感觉很轻松。