我之前想过用窗体做这个关于运算程序出来,因为那样可以让用户更加一目了然,更加方便的使用。但是一直在研究了好久之后,发现不知道该怎么样让用户在点击+-*/按钮的时候能够自动列出算式以及自动运用于计算。所以最终还是选择了用控制台应用程序来做。
这个程序大概是可以应用于小学,让低年级的小学生自己在电脑上做作业,既能够开发学生的思维,也可以借助小学生对电脑的兴趣来让他们对学习动脑更加努力。
设计思路大概就是运用之前学过树上的加法随机数运算,改变运算的规律,算法。运用计算机的计算功能以及if.else语句i++的功能来实现对错多少道题,想来这样做是可以的,所以就做了这个程序。以下为程序测试图和代码以及PSP分析图:
测试图如下:
具体代码如下:
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);
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}=?请输入答案,", a, b);
int a除b = Convert.ToInt32(Console.ReadLine());
if (a除b == a / b)
{
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);
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}=?请输入答案,", a, b);
int a除b = Convert.ToInt32(Console.ReadLine());
if (a除b == a / b)
{
Console.WriteLine("你算对了!点赞");
正确++;
}
else
{
Console.WriteLine("你算错了!加油");
错误++;
}break;
}
} while (Console.ReadLine() != "您输入的格式不正确,请审核后输入");
Console.WriteLine("你一共答了{0}道题,正确:{1}.错误{2}", 正确 + 错误, 正确, 错误);
Console.ReadLine();
}
}
}
PSP耗时分析如下:
![](https://images2015.cnblogs.com/blog/813595/201510/813595-20151006000040456-202140757.png)
思考题:只要要将下图中的“11”改为“101”即可:![](https://images2015.cnblogs.com/blog/813595/201510/813595-20151006000310409-1436760323.png)
![](https://images2015.cnblogs.com/blog/813595/201510/813595-20151006000310409-1436760323.png)
总结:以前都是照着书上的代码去打,这次自己第一次一个人做一个程序去让它运行成功,天知道运行成功那一刻我的心里是多么开心,努力终于得到了回报。可是程序终究不是很完美,减法的被减数减数问题解决了,但是除法的余数问题还是没有解决。思考题简单,但是附加题还是没有做出来。快到交作业的时间了,还是交上把!做这个一共用了大概+起来有20个小时,可能是我学的不太好的原因,比别人用的时间多出太多,中间VS2010也提示过很多错误,刚开始的时候看到这么多错误我一度想过放弃,最终还是一个一个的改正了过来,主要还是自己对于计算机语言的不精通,我想克服这些困难,以后我要更努力的学习,再也不让这些语言问题成为我的阻碍。另外希望以后可以再次感受到那种成功时开心的心情。感谢牛老师给了我们这样的机会。