四则运算3
发布日期:2021-08-21 13:18:15 浏览次数:13 分类:技术文章

本文共 2007 字,大约阅读时间需要 6 分钟。

一、设计思想

在此前程序拥有的功能:加减有无负数,除法有无余数,以及算式可定制的功能的基础上,此次程序又添加了算式结果的计算,提示用户结果正确与否,正确与错误个数和用户意志存入数组的功能。
    1.对于运算符的选择和算式个数,各算式的长短均利用随机数函数产生。
    2.对于算式计算方面:
  只有两个数的加减乘除没有括号时:在减时考虑是否出现负数,除时考虑是否出现余数。
  多个数的加减没有乘除和括号时:遇到减号考虑前面结果是否小于减数,是则改变运算符为加号以确保最终结果没有负数。
  多个数的加减乘除没有括号时:在检索到式子中的乘除号时,判断其后面的符号,若有连续的乘除号,特别是有除号的时候,考虑是否需要余数,若有余数则利用找被除数因子的方法使连除的时候得数为整数,若无余数则将被除数和除数分别作为分子和分母保存起来。之后将只含有乘除号的连续子式先算出存入另一数组中,再与加减号相连的数进行相应的运算,在遇到加减运算符时,如果有余数,则利用通分的方法将结果保存为分数的形式。之后判断是否需要有负数,如果不需要负数,则在遇到减号时,将处在减数位置的式子利用随机数进行数值的重组,直到被减数大于减数为止。
3.对于算式输出方面:文件输出使用了ofstream文件输出流,输出到problems.txt中。
4.对于用户输入答案,判断用户输入字符串是否与正确结果相匹配,如果匹配,则提示恭喜你,答对了,否则提示回答错误,并且给出正确答案。利用循环计数判断正确回答题目的个数,在答题结束后显示在屏幕上。

不能实现的部分是当有括号有乘除的部分,有思路,写了代码,但是有bug,尚未实现,在源程序中注释掉的部分。

二、源程序代码

#include
      
       #include
       
        #include
        
         int main(){
         
  srand(time(NULL));
 int sz;
  //sz 即数值取值范围
char fh;
 //fh即四则运算中的加减乘除
cout<<"请输入运算数的最大取值范围:";
cin>>sz;
cout<<"***********************************************"<
for(int i=0;i<30;i++)
{
   int a=rand()%sz;
 int b=rand()%sz;
   int
c=rand()%4;
   if(c==0)
{
   fh='+';
   }
 if(c==1)
   {
   fh='-';
   }
  if(c==2)
   {
   fh='*';
   }
if(c==3)
   {
   fh='/';
   }
cout< <<"、"< < < <<'='<<"
 ";
}
cout<<"***********************************************"<
return 0;}

 

1.当输入最大取值范围为 99999999999999999999 时,运算数都是很大的正整数,结果正确。
2.当输入最大取值范围为 100 时,运算数都是小于100的正整数,结果正确。 3.当输入最大取值范围为 0 时,程序不能运行,立即停止工作。 4.当输入最大取值范围为 -100 时,运算数都是小于100的正整数,结果出现错误。 5.当输入最大取值范围为 -99999999999999999999 时,运算数都是很大的正整数,结果出现错误。 测试分析: 当输入一个负数,程序会将它看作其绝对值处理,也就是说,此程序不能实现负数的操作。当输入0,其判断没有比0小的数,自动停止工作。当输入结果大于0,其能正常工作。

 

转载于:https://www.cnblogs.com/dgj1314/p/5272521.html

转载地址:https://blog.csdn.net/weixin_33720078/article/details/93746409 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:以软件开发生命周期来说明各种测试的使用情况
下一篇:怎样做才是一个独立自主的人?

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2023年03月18日 04时56分35秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章

格式化 计算机术语,计算机格式化操作步骤 2019-12-06 20:23:50
计算机软件排序,[计算机软件及应用]排序综合.doc 2019-12-06 20:23:50
恢复html的初始选定状态,win10主页怎么恢复初始状态恢复刚安装时的初始状态 2019-12-06 20:23:47
在线html排版网页排版,40张网页排版设计案例,总有一款你会用得上 2019-12-06 20:23:47
html5鼠标拖动绘制圆形,html5的canvas鼠标点击画圆 2019-12-06 20:23:47
哪些教学内容适合用计算机画面表现,浅析计算机多媒体在教学中的应用 2019-12-06 20:23:48
三校生计算机网络技术,辽宁省三校生高考复习题-[网络]第1章 计算机网络概述... 2019-12-06 20:23:48
tb添加背景html,开发工具与关键技术:DW 使用HTML制作登陆界面设置透明背景图... 2019-12-06 20:23:48
计算机桌面打标签,桌面记事本,详细教您怎么在桌面添加便签 2019-12-06 20:23:48
俄语考生学计算机难吗,俄语说的不好,没有计算机证书,甚至还是单身狗,怎么办?... 2019-12-06 20:23:48
鸿蒙系统会不会在p40上用,鸿蒙系统何时出现在华为手机上 华为证实P40系统有重大改动... 2019-12-06 20:23:45
android 3g 定位,Hbuil使用android studio 离线打包+地图定位的使用配置 2019-12-06 20:23:45
android 常用技术,打造自己的Android常用常识体系 2019-12-06 20:23:46
android package.xml,android – ${packageName}.${activityClass}如何在布局XML文件中工作? 2019-12-06 20:23:46
android tcp测速工具,PCATTCP使用札记——TCP UDP速度测试工具 2019-12-06 20:23:46
opera mini android apk,Download Opera Mini APK Android 2019-12-06 20:23:46
android system image 编译出错,Android framework 编译常见错误 2019-12-06 20:23:46
c语言中逻辑真等价于非零的整数6,全国计算机等级考试二级C语言笔试试题及答案(六)(44页)-原创力文档... 2019-12-06 20:23:44
c语言求解极大质数,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们... 2019-12-06 20:23:44
数据结构c语言版 线性表的动态分配顺序存储结构表示和实现,《数据结构》(C语言版)——线性表的动态分配顺序存储结构... 2019-12-06 20:23:44