编写一个能对0--10之间的整数进行四则运算的“软件”程序能接收用户输入的整数答案,并判断对错程序结束时,统计出答对、答错的题目数量。补充说明:0——10的整数是随机生成的用户可以用键盘输入来选择四则运算中的一种,比如输入1代表加法运算用户用键盘输入一个字符来结束程序的运行并显示统计结果,比如输入e程序结束并显示统计结果编程语言不限制,命令行输出和图像界面输出都可以。在此基础上,做增量开发。增量内容:1)处理用户的错误输入,比如输入字母或符号等,处理除法运算中分母为0的情况,处理结果为负数的情况,保证是小学水平不出现负数,比如不能出现5-8=-3这种情况; 2)用户可以设定倒计时;     3)用户可以设定随机整数的范围和题目数量;4)用户可以选择哪种计算类型,比如加减乘除,或可选择软件随机生成四则运算中的一种。要求:要有需求分析,具体设计思路,代码实现,测试,书中PSP耗时分析,总结。

设计思路:由于是结对编程,我们选择我的上次作业为基础进行进一步完善,刚开始的前半小时我在向我的队友讲述上次的步骤以及具体实现的方法,他了解后我们开始修改,开始我们各自思考,大约过去40分钟我们相互交流自己的想法,最后我们找到了最好的方法,然后在在此进行完善,实现在一个界面上实现加减剩除我们采用了if方法,比较简单,处理分母不能为零我们采用了判断语句,实现定时需求时由于我们用的是控制台不能使用timer控件所以梦实现。

总结:对比上次自己做编程,感觉轻松好多,个人做时遇到问题往往会发牢骚,结对编程时,有问题我们会相互交流并鼓励,能使自己静下心来,最重要的是可以相互交流各自的想法能互补一下,能使程序更完善,我个人感觉结对编程是一个不错的方法。能够使我们在结对中共同进步!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
class Program
{
public static void Ni()

{
Console.WriteLine("请输入你想做的运算+,-,*,/ ");
string m = Console.ReadLine();
switch (m)
{
case "+":
Shu.Wo();
break;
case "-":
Shu.Sub();
break;
case "*":
Shu.Sheng();
break;
case "/":
Shu.Chu();
break;

}
Console.ReadLine();
}
static void Main(string[] args)
{
Ni();
}
}

//定义委托
public delegate double Num(double x, double y);
public class Math
{
public static double Add(double x, double y)
{ return x + y; }
public static double Sub(double x, double y)
{ return x - y; }
public static double sub(double x, double y)
{ return y - x; }
public static double Sheng(double x, double y)
{ return x * y; }
public static double Chu(double x, double y)
{ return x / y; }
}
public class Shu
{
public static int o = 0;//获取做错的题数
public static int i = 0;//获取做题总数
public static int right = 0;//获取做错的题数
public static void Wo()
{

double sum, n;
Random r = new Random();
double x = r.Next(0, 10);
double y = r.Next(0, 10);
sum = x + y;
Console.WriteLine("{0}+{1}=", x, y);
Console.WriteLine("请输入你的结果:");
n = double.Parse(Console.ReadLine());
Num nu = new Num(Math.Add);
Console.WriteLine("正确结果是:");
Console.WriteLine("{0}", nu(x, y));
if (sum == n)
{
Console.WriteLine("你的结果正确!");
i++;
right++;
Wo();

}
else if (n == 99)//提示输入99表示退出运算,不做其它运算
{
Jieshu();

}

else if (n == 00)//提示输入00退出本次运算可以继续做其它运算
{
Jieshu();

Program.Ni();

}
else
{
Console.WriteLine("你的结果不正确");
i++;
o++;
Wo();

}

}
public static void Jieshu()
{

Console.WriteLine("你好,你已退出计算!你共做{0}道题,答对{1},答错{2}\n", i, right , o);

}
public static void Sub()
{

double sum, n ;
Random r = new Random();
double x = r.Next(0, 10);
double y = r.Next(0, 10);
if (x > y)
{
sum = x - y;
Console.WriteLine("{0}-{1}=", x, y);
Console.WriteLine("请输入你的结果:");
n = double.Parse(Console.ReadLine());
Num nu = new Num(Math.Sub);
Console.WriteLine("正确结果是:");
Console.WriteLine("{0}",nu(x, y));
if (sum == n)
{
Console.WriteLine("你的结果正确!");
i++;
right++;
Wo();
}
else if (n == 99)
{
Jieshu();

}

else if (n == 00)
{
Jieshu();

Program.Ni();

}
else
{
Console.WriteLine("你的结果不正确");
i++;
o++;
Sub();
}

}
else if(x<y)
{
sum = y- x;
Console.WriteLine("{0}-{1}=", y, x);
Console.WriteLine("请输入你的结果:");
n = double.Parse(Console.ReadLine());
Num nu = new Num(Math.sub);
Console.WriteLine("正确结果是:");
Console.WriteLine("{0}",nu(x, y));
if (sum == n)
{
Console.WriteLine("你的结果正确!");
i++;
right++;
Wo();
}
else if (n == 99)
{
Jieshu();

}

else if (n == 00)
{
Jieshu();

Program.Ni();

}
else
{
Console.WriteLine("你的结果不正确");
i++;
o++;
Sub();
}
}
}
public static void Sheng()
{

double sum, n;
Random r = new Random();
double x = r.Next(0, 10);
double y = r.Next(0, 10);
sum = x * y;
Console.WriteLine("{0}*{1}=", x, y);
Console.WriteLine("请输入你的结果:");
n = double.Parse(Console.ReadLine());
Num nu = new Num(Math.Sheng);
Console.WriteLine("正确结果是:");
Console.WriteLine("{0}", nu(x, y));
if (sum == n)
{
Console.WriteLine("你的结果正确!");
i++;
right++;
Wo();
}
else if (n == 99)
{
Jieshu();

}

else if (n == 00)
{
Jieshu();

Program.Ni();

}
else
{
Console.WriteLine("你的结果不正确");
i++;
o++;
Sheng();
}
}
public static void Chu()
{

double sum, n;
Random r = new Random();
double x = r.Next(0, 10);
double y = r.Next(0, 10);
if (y != 0)
{
sum = x / y;
Console.WriteLine("{0}/{1}=", x, y);
Console.WriteLine("请输入你的结果:");
n = double.Parse(Console.ReadLine());
Num nu = new Num(Math.Chu);
Console.WriteLine("正确结果是:");
Console.WriteLine("{0}", nu(x, y));
if (sum == n)
{
Console.WriteLine("你的结果正确!");
i++;
right++;
Wo();
}
else if (n == 99)
{
Jieshu();

}

else if (n == 00)
{
Jieshu();

Program.Ni();

}
else
{
Console.WriteLine("你的结果不正确");
i++;
o++;
Chu();
}
}
else
{
sum = y/x ;
Console.WriteLine("{0}/{1}=",y ,x );
Console.WriteLine("请输入你的结果:");
n = double.Parse(Console.ReadLine());
Num nu = new Num(Math.Chu);
Console.WriteLine("正确结果是:");
Console.WriteLine("{0}", nu(x, y));
if (sum == n)
{
Console.WriteLine("你的结果正确!");
i++;
right++;
Wo();
}
else if (n == 99)
{
Jieshu();

}
else if (n == 00)
{
Jieshu();

Program.Ni();

}
else
{
Console.WriteLine("你的结果不正确");
i++;
o++;
Chu();
}
}
}

}
}

转载于:https://www.cnblogs.com/harlem/p/4882084.html

四则运算的进一步完善相关推荐

  1. 技术图文:进一步完善自动化交易系统 - 04

    背景 我们在 数字资产量化中的三角套利策略 这篇图文中详细的介绍了三角套利的原理以及代码实现. 在 进一步完善自动化交易系统 - 02 和 进一步完善自动化交易系统 - 03 中利用配置文件的方法,扩 ...

  2. 技术图文:进一步完善自动化交易系统 - 03

    背景 在 进一步完善自动化交易系统 - 02 这篇图文中,向大家详细介绍了,满足以下两个条件下: 拥有数字资产:BTC.EOS.USDT.ONE BigOne 提供交易对:ONE-USDT.ONE-E ...

  3. 技术图文:进一步完善自动化交易系统 - 02

    背景 自己的自动化交易系统起初只有网格交易法一个版本:如何利用网格交易法对数字资产进行交易.后面,加入了ONE.USDT.EOS的三角套利版本:如何通过三角套利来交易数字资产.接着,发现三角套利的个别 ...

  4. 内控体系建设五步骤_进一步完善环境保护标准体系建设 ——《国家环境保护标准“十三五”发展规划》解读...

    ◆中国环境报记者郭薇 为进一步完善环境保护标准体系,充分发挥标准对改善环境质量.防范环境风险的积极作用,在充分总结"十二五"环境保护标准工作基础上,环境保护部近日印发了<国家 ...

  5. 8月3日云栖精选夜读 | 阿里巴巴宣布 Sentinel 开源,进一步完善 Dubbo 生态(附PPT和视频)...

    1.当服务量大到一定程度,流量扛不住的时候,该如何处理? 2.应用之间相互依赖,当应用A出现响应时间过长,影响到应用B的响应,进而产生连锁反应影响整个依赖链上的所有应用,该如何处理? 热点热议 阿里巴 ...

  6. 阿里巴巴开源 Sentinel,进一步完善 Dubbo 生态

    为什么80%的码农都做不了架构师?>>>    阿里巴巴开源 Sentinel,进一步完善 Dubbo 生态 Sentinel 开源地址:https://github.com/ali ...

  7. 简述我国进一步完善分税制改革的基本思路

    (1)进一步明确各级政府的事权范围和各级预算主体的支出职责.①总体上政府与市场的关 系,也就是政府职能转变问题,对实行分级预算体制来说需要将原则具体化:②关于各级政府 事权的划分,规范的分级预算体制要 ...

  8. 数字人民币生态体系进一步完善 试点场景加速拓展

    数字人民币多地试点一年多来,应用场景持续创新,公众接受度不断提升.截至今年10月22日,数字人民币已开立个人钱包1.4亿个,企业钱包1000万个,累计交易1.5亿笔,交易额接近620亿元.专家表示,普 ...

  9. mysql mts_MySQL进一步完善可用并行复制-MTS并行增量的应用-爱可生

    原标题: MySQL进一步完善可用并行复制-MTS并行增量的应用-爱可生 MTS 并行增量应用 MySQL 的复制延迟在早期版本一直存在,MySQL 5.6.3 版本后开始支持并行复制,并在 5.7 ...

最新文章

  1. 基于PyTorch的Seq2Seq翻译模型详细注释介绍(一)
  2. ubuntu安装Android SDK,adb,fastboot
  3. 无人值守网络安装Linux
  4. html转word 图片丢失 java_Java 设置 Word 文档中图片文字环绕方式
  5. 蚂蚁技术专家:一篇文章带你学习分布式事务
  6. vue控制台报错Duplicate keys detected: 'xxxxx'. This may cause an update error.解决方案
  7. 计算机教室网络布线费用,办公室网络布线价格是怎么预算的
  8. AR公共安全及应急指挥中的应用 | TVP思享
  9. C++中的gotoxy函数
  10. android+tv局域网播放器,【实用教程】电视盒子局域网播放全攻略
  11. 【精选】抽奖点名、随机抽奖PPT素材合集,年会、老师必备
  12. Mac版哔哩哔哩视频下载工具
  13. MySQL数据库实验练习题
  14. 使用爱思助手备份苹果手机数据的方法
  15. web技术分享| 前端秘籍之“易容”术
  16. NGS基础:测序原始数据下载
  17. 微信ios浏览器 与 iframe的不兼容问题
  18. 试题 历届真题 时间显示【第十二届】【省赛】【B组】
  19. WIN10 下 “java -cp“ 命令解析
  20. linux自动拨号脚本,arm中实现pppd连接GPRS上网的相关笔记,含GPRS自动拨号脚本(真正的实时监控,断线自动重拨)...

热门文章

  1. Ubuntu的一些实用软件
  2. 程序员宅男干货福利!手把手教你获取上千张cosplay小姐姐的美照
  3. 我用飞桨Parakeet合成小姐姐声音帮我“读”论文
  4. Android开发-基本概念小整理(一)为了面试的小伙伴们所准备~~
  5. 路由 OSPF常见4种网络类型MA、P2P、NBMA、P2MP、OSPF报头字段信息简介。
  6. 微信小程序动态添加view
  7. 常用工具类 (三) : Hutool 常用工具类整理 (全)
  8. VSCode更新到1.42.1版本有问题(January 2020 (version 1.42))
  9. 如何做到推广链接的落地页链接实现无变化跳转?
  10. 测试术语-bug分类