四则运算三c++汇编.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
四则运算三c汇编

结对开发——四则运算(三) 发表日期时间: 2016-03-19 10:17 一、题目及题目要求 编程随机生成四则运算,算数包括整数和真分数 1.题目避免重复 2.可定制(数量/打印方式) 3.可以控制下列参数: ????????? 是否有乘除法; ????????? 是否有括号(最多可以支持十个数参与运算); ????????? 数值范围; ????????? 加减有无负数; ????????? 除法有无余数。 4.输入结果并判断正确 二、设计思路 ? ? 在上次程序的基础上进行修改, ??? 1.题目避免重复:为避免随机数每次相同用了srand函数。 ??? 2.可定制出题数量:通过键盘输入数字,在for循环中控制循环次数。 ???3. 是否有乘除法:把算符分为两大类,利用case语句选择前四种加和减,后四种乘除。 ???4. 数值范围:在产生随机数时通过输入控制rand函数的参数,从而使运算数不超过此范围。 ???5. 加减有无负号:结果无负数,判断两操作数,第一操作数若比第二操作数小,则第二个减第一个。 ???6.除法有无余数:除法无余数,判断第一操作数模第二操作数的结果,若为0即可输出,否则再循环一次。 ???7.是否有括号:先随机生成一个数字,代表着生成表达式中操作数的个数。再循环生成一个数字,将其输出,然后等概率生成‘+’‘-’‘*’‘/’中的一个跟在该数字后面,输出。以一定概率生成左括号,若生成了左括号则输出,并进行计数标志当前共有多少个未完成匹配的左括号。若当前有未完成匹配的左括号,则在生成一个数字后,生成一个操作符前,以一定的概率生成右括号。在生成完毕后,生成最后一个数并将为匹配的左括号予以匹配。把产生的式子存入文件。 ?? 8.输入结果并判断正确:(1)对于两个运算数的式子,把结果存入数组,调用函数与数组中的值比较。(2)对于多个运算数的式子,从文件中读取内容,利用中缀表达式转换为后缀表达式,然后就是后缀表达式的计算,最后与用户输入结果对比。 三、代码 #includeiostream #includectime #includestack #includefstream #define length 10000//存放答案数组长度 using namespace std; typedef long long ll; ofstream fout(equation.txt); char Op[] = {+, -, *, /}; int rights;//对题数目 int wrong;//错题数目 struct num{ ll numerator, denominator; num(){numerator = 0; denominator = 1;} num(int n) {numerator = n; denominator = 1;} num(int n,int d) {numerator = n; denominator = d;} void operator = (num x) { numerator = x.numerator; denominator = x.denominator; } }; #define maxl 1005 char nifix[maxl], post[maxl]; char ans[maxl]; int cnt_right, cnt_wrong; bool error; num res, rst; //****分数类***// class fraction { private: int above; //分子 int below; //分母 void reduction(); //约分 fraction makeCommond(fraction); //通分 public: fraction() { //构造函数 } fraction add(fraction); //两分数相加 fraction sub(fraction); //两分数相减 fraction mul(fraction); //两分数相乘 fraction div(fraction); //两分数相除 int display(int,int); //显

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档