C#控制台->>四则运算
用户需求:
要求编写一个0-10之间的整数进行四则运算,程序能接收输入的整数答案,并判断对错,程序结束时,统计出答对、答错的题目数量!并且0-10的整数是随机生成的,用户可以用键盘输入来选择四则运算中的一种。比如输入1代表加法运算,用户用键盘来输入一个字符来结束程序的运行并显示!统计出结果!
设计思路:
1、既然要编写一个0-10之间的整数,那么我就定义三个数据类型为int的变量,其中两个用来存整数,另一个用来存最后的计算结果。
2、需要判断对错,那么我可以用if(){}...else{}进行判断。
3、程序结束要求统计答对与答错的数量,所以再定义两个int类型的变量来存储数量,并用“自增”来达到每次的计数。
4、0-10是随机的,我就用Random()方法来生成。
5、既然用来进行四则运算,我就声明4个运算方法。再声明一个统计结果的方法用来调用
6、用键盘来选择运算中的一种,可以用switch(){case: break;}来做选择。
具体的代码实现:
1、这个是用来显示菜单栏的,我们可以通过选择'1' '2' '3'...等来决定用哪一种算法!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _Random
{
class Program
{
static void Main(string[] args)
{
mathvoid op = new mathvoid();
string Z = "";
do
{
Console.WriteLine("-------------------------------四则运算-------------------------");
Console.WriteLine("");
Console.WriteLine("请选择您使用的运算方法:1.加法 2.减法 3.乘法 4.除法 5.退出!");
Z = Console.ReadLine();
switch (Z)
{
":
op.mathjia();
continue;
":
op.mathjian();
continue;
":
op.mathcheng();
continue;
":
op.mathchu();
continue;
":
op.result();
break;
default:
Console.WriteLine("输入无效!");
continue;
}
break;
}
while (true);
}
}
}

2、下面这个是用来调用的方法!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _Random
{
public class mathvoid
{
; //记录答对的总数!
; //记录答错的总数!
public void mathjia() //加法运算!
{
int a, b;
int result;
Random rd = new Random();
a = rd.Next(, );
b = rd.Next(, );
Console.WriteLine("请计算:{0}+{1}=?", a, b);
result = Convert.ToInt32(Console.ReadLine());
if (result == a + b)
{
Console.WriteLine("回答正确!");
right++;
}
else
{
Console.WriteLine("错误,继续努力!");
wrong++;
}
}
public void mathjian() //减法运算!
{
int a, b;
int result;
Random rd = new Random();
a = rd.Next(, );
b = rd.Next(, );
Console.WriteLine("请计算:{0}-{1}=?", a, b);
result = Convert.ToInt32(Console.ReadLine());
if (result == a - b)
{
Console.WriteLine("回答正确!");
right++;
}
else
{
Console.WriteLine("错误,继续努力!");
wrong++;
}
}
public void mathcheng() //乘法运算!
{
int a, b;
int result;
Random rd = new Random();
a = rd.Next(, );
b = rd.Next(, );
Console.WriteLine("请计算:{0}*{1}=?", a, b);
result = Convert.ToInt32(Console.ReadLine());
if (result == a * b)
{
Console.WriteLine("回答正确!");
right++;
}
else
{
Console.WriteLine("错误,继续努力!");
wrong++;
}
}
public void mathchu() //除法运算!
{
int a, b;
int result;
Random rd = new Random();
a = rd.Next(, );
b = rd.Next(, );
)
{
Console.WriteLine("请计算:{0}/{1}=?", a, b);
result = Convert.ToInt32(Console.ReadLine());
if (result == a / b)
{
Console.WriteLine("回答正确!");
right++;
}
else
{
Console.WriteLine("错误,继续努力!");
wrong++;
}
}
else
{
)
{
Console.WriteLine("请计算:{0}/{1}=?", b, a);
result = Convert.ToInt32(Console.ReadLine());
if (result == b / a)
{
Console.WriteLine("回答正确!");
right++;
}
else
{
Console.WriteLine("错误,继续努力!");
wrong++;
}
}
}
}
public void result() //统计结果!
{
Console.WriteLine("总共做了{0}道题:你做对了{1}道题,做错了{2}道题。",right+wrong,right,wrong);
}
}
}

3、最后这个是运行的控制台!

PSP耗时分析 :
1、首先,预测完成这个任务我需要的时间是12个小时,实际用了9个小时左右吧。
2、需求分析:感觉30分钟就够了
3、生成设计文档:刚开始接到这个作业的时候,我就在纸上画了一个大概需要哪些方法的草图,需要用什么。这个计划差不多用了20分钟列了一个大致的草图。
4、设计复审:仔细检查了一下,觉得不需要的地方就先放在一旁,第一次没有想到的再加上去。这是一个思路,还会发生改变的!耗时:30分钟左右
5、代码规范:这个是便于浏览整个结构框体,不是太费时间10分钟左右吧。
6、具体设计:耗时1小时左右!
7、具体编码:这个最耗时了,因为要不停地改动,每当有一个错误都要仔细检查具体的错误原因。这样才好解决问题!还有就是具体的方法应该在哪里调用,哪个地方放什么东西要根据你的原计划来进行编码。还有时而的变动。当有一个错误不通过的时候,就要想好久来解决!花费4.5个小时左右。
8、代码复审:这个还可以吧,仔细浏览,大概花费20分钟。
9、测试:因为只有测试才能知道哪里有不足,所以有不足的地方又花费了我的时间来进行改动。花了1个多小时!
总结:
当接到一个项目的时候,大概看一下客户的要求是什么!预测一下大概需要花费多少时间,这是给自己的一个标准。
然后根据客户的具体需求,来进行仔细分析。大概需要用到什么方法,列一个方案,生成设计文档!再根据自己的设计思路来进行代码编写,在代码编写的时候可能会有新的思路,那就要灵活变通。客户需要什么,我们就完成什么。如果你有新的想法,想为客户添加新的功能,我觉得最好还是不要这样做,因为这会浪费时间和精力,还会带来不必要的麻烦。我们所需要做的就是完成客户的需求。
我的疑问:
在除法的方法中,会产生类似于9/7=?这样的式子,作业要求是用户接收整数结果,那么9/7=1,这是一个正确的答案。可在实际生活中,就不符合我们的习惯!那么如果我改成数据类型为double的result,我该如何答题???
思考题:
如果用户要求处理的范围是0-100,程序应如何应对扩展性。
答:把产生随机数的范围改一下,改成
Random rd = new Random();
a = rd.Next(0, 101);
b = rd.Next(0, 101);
附加题:
程序能处理用户的错误输入,比如用户输入一个小数或一个字符
答:在switch() {case : }里面,我添加了default,如果输入的不是switch里的字符,将会输出:"输入无效!"
C#控制台->>四则运算的更多相关文章
- java实现四则运算应用(基于控制台)
项目地址:https://gitee.com/wxrqforever/object_oriented_exp1.git 一.需求分析: 一个基于控制台的四则运算系统,要能实现生成并计算含有真,假分数, ...
- 小学生四则运算出题软件-基于java控制台的实现
.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和 ...
- 四则运算题目生成程序(基于控制台)(Bug修改)
针对上个程序中出现的bug进行修改 https://git.coding.net/cx873230936/calculator.git Bug: 1.控制台输入问题数问题 a.不能处理用户输入负数. ...
- 个人作业1——四则运算题目生成程序(java代码,基于控制台)
一.题目描述: 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: ...
- 介绍一款原创的四则运算算式生成器:CalculateIt2
家里小朋友读一年级了,最近每天都有一些10以内的加减法口算练习,作为程序员爸爸,自然也是想办法能够偷懒,让电脑出题,给小朋友做些练习.于是,自己在业余时间开发了一个四则运算算式生成器,名为:Calcu ...
- C#窗体->>随机四则运算(计算表达式)
用户需求: 程序能接收用户输入的整数答案,并判断对错程序结束时,统计出答对.答错的题目数量.补充说明:0——10的整数是随机生成的用户可以选择四则运算中的一种用户可以结束程序的运行,并显示统计结果.在 ...
- 四则运算2+psp0级表格
四则运算2 一.题目和要求 题目:写一个能自动生成小学四则运算题目的程序,要求一次输出不少于30道,只能是整数100以内的四则运算(四则运算1升级版) 要求: 1.题目避免重复 2.可定制(数量/打印 ...
- C++四则运算出题器---有答案版
一.实验题目 四则运算扩展----能接受答案并判断对错然后给出成绩. 二.实验思路 在每次输出算式后面输入答案,然后判断对错,对则统计. 稍微优化了一下界面. 三.代码 // 12345.cpp : ...
- 结对编程1---基于Flask的四则运算题目生成器
项目代码地址 / WEB应用地址 / 合作伙伴iFurySt博文链接 需求分析 本次程序是基于原有的控制台四则运算器的基础上,改成WEB的形式,同时还增加了一些新的功能.同时因为交互方式的改变,代码也 ...
随机推荐
- HAVING用法详解
HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 和 SELECT 的交互方式类似.WHERE 搜索条件在进行分组操作之前应用:而 HAVING 搜索条件在进行分组操作之后应用 ...
- listview中item 有checkbox多选防止滑动 listview页面 出现checkbox错位问题
checkbox点击切换背景 <CheckBox android:id="@+id/checkbox" android:layout_width="40dp&quo ...
- ios7下不能录音问题解决
在ios6上运行非常正常的AVAudioRecoder组件,而跑到ios7上就不能工作了.通过google搜索在stackoverflow上的解决方法.http://stackoverflow.com ...
- Spring之AOP面向切片
一.理论基础: AOP(Aspectoriented programming)面向切片/服务的编程,在Spring中使用最多的是对事物的处理.而AOP这种思想在程序中很多地方可以使用的,比如说, ...
- 由于 add 运算符中“Chinese_PRC_CI_AS”和“Chinese_PRC_CS_AS_WS”之间的排序规则冲突
有一个字段的排序规则是 Chinese_PRC_CS_AS_WS,字符串连接的时候报错. 处理方案 cast(columnName as varbinary) 即可
- PBOC APDU命令解析【转】
转自:http://blog.csdn.net/zuokong/article/details/49335257 版权声明:本文为博主原创文章,未经博主允许不得转载. 应用层发出的命令报文和卡片回送到 ...
- java面试每日一题11
题目:求1+2!+3!+...+20!的和 public class Recursion { public static void main(String args[]) throws NumberF ...
- hihoCoder 搜索一·24点
题目1 : 搜索一·24点 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 周末,小Hi和小Ho都在家待着.在收拾完房间时,小Ho偶然发现了一副扑克,于是两人考虑用这副扑 ...
- 20151124001 关闭C#主窗体弹出是否关闭对话框
关闭C#主窗体弹出是否关闭对话框 private void Frm_Main_FormClosing(object sender, FormClosingEventArgs e) { ...
- UpdatePane中弹出框
ScriptManager.RegisterClientScriptBlock(this.UpdatePanel21, typeof(UpdatePanel), "提示",&quo ...