设为首页 加入收藏

TOP

四则运算之C++实现篇(二)
2015-04-07 15:29:02 来源: 作者: 【 】 浏览:72
Tags:四则 运算 实现

? ? ? ? ? ? cout<? ? ? ? cout<<"-";
? ? ? ? if(b1[i]<0)
? ? ? ? ? ? cout<<"("<? ? ? ? else
? ? ? ? ? ? cout<<" "<? ? ? ? cout<<"=";
? ? ? ? if(k%line==0)
? ? ? ? ? ? cout<? ? ? ? else
? ? ? ? ? ? cout<<"\t";
? ? }
? ? for(i=0;i? ? {
? ? ? ? k++;
? ? ? ? if(a2[i]<0)
? ? ? ? ? ? cout<<"("<? ? ? ? else
? ? ? ? ? ? cout<? ? ? ? cout<<"*";
? ? ? ? if(b2[i]<0)
? ? ? ? ? ? cout<<"("<? ? ? ? else
? ? ? ? ? ? cout<<" "<? ? ? ? cout<<"=";
? ? ? ? if(k%line==0)
? ? ? ? ? ? cout<? ? ? ? else
? ? ? ? ? ? cout<<"\t";
? ? }
? ? for(i=0;i? ? {
? ? ? ? k++;
? ? ? ? if(a3[i]<0)
? ? ? ? ? ? cout<<"("<? ? ? ? else
? ? ? ? ? ? cout<? ? ? ? cout<<"/";
? ? ? ? if(b3[i]<0)
? ? ? ? ? ? cout<<"("<? ? ? ? else
? ? ? ? ? ? cout<<" "<? ? ? ? cout<<"=";
? ? ? ? if(k%line==0)
? ? ? ? ? ? cout<? ? ? ? else
? ? ? ? ? ? cout<<"\t";
? ? }
? ? cout<<"请在此输入各式的结果:"<? ? for(i=0;i? ? ? ? cin>>C[i];
? ? int t=0,corr=0;
? ? //判断输入结果的对错
? ? for(i=0;i? ? {
? ? ? ? if(c0[i]==C[t])
? ? ? ? {t++;corr++;}
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? t++;
? ? ? ? ? ? cout<<"第"<? ? ? ? }
? ? }
? ? for(i=0;i? ? {
? ? ? ? if(c1[i]==C[t])
? ? ? ? {t++;corr++;}
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? t++;
? ? ? ? ? ? cout<<"第"<? ? ? ? }
? ? }
? ? for(i=0;i? ? {
? ? ? ? if(c2[i]==C[t])
? ? ? ? {t++;corr++;}
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? t++;
? ? ? ? ? ? cout<<"第"<? ? ? ? }
? ? }
? ? for(i=0;i? ? {
? ? ? ? if(c3[i]==C[t])
? ? ? ? {t++;corr++;}
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? t++;
? ? ? ? ? ? cout<<"第"<? ? ? ? }
? ? }
? ? if(line==corr)
? ? ? ? cout<<"恭喜你都答对了!!!!!!"<}


三、运行结果截图


四、开发过程


? 整个程序都在一个cpp文件中,而且都在一个main函数中,程序开始时就想要将程序分割为一个个调用函数,鉴于能力有限,对于各个函数之间的值传递不熟练,且涉及到很多数组,所以暂且写在了一个函数里面。


? 关于判断是否重复的解决。函数主要使用了for循环,首先随机出一个算式的两个参数和一个符号,根据符号的不同分为四组,以此减少验证是否重复时的验证次数。每组中有两个数组来存放两个参数。当每获得两个随机数,就和相应组内进行比较,前一个和前一个数组中数值比较,后一个和后一个数组中数值比较,有相同的就continue跳过,不保存在数组中。这种比较方式就忽略了两个参数颠倒产生两个式子的情况,例如5+4和4+5,单这种情况可以当做交换率的考核。


? 关于出题数量和打印方式的限制解决。使用两个参数num、line,num限制出题数量,line限制输出时每行输出数量。将for循环设为无限循环,在循环的最后让四组数量相加等于num即可break跳出循环。


? 最后一个限制有很多要求,目前完成了除分数的前几个要求。解决方法就是在for循环刚开始时,两个参数和符号都产生后,加上对各个限制的判断,不符合就continue跳过。数值范围则使用x=min+rand%(max-min)产生符合数值范围的随机数。


? 分数没有解决,一开始的想法就是用四个数组分别表示两个参数的分子和分母,根据我的分组判断的做法,那就还要再声明16个数组,这十六个数组不能在使用一开始for循环内的产生算式的算法,需要新的代码来实现要求,新的代码其实也就是在以前for循环的算法中加上每个式子加上两个数组进行运算,可有了式子的两个参数后,问题产生,怎么让两个参数满足限制条件,最基本的就是怎么让产生的分数在数值范围内,如果要求有负数又怎么办?因此分数还没有实现。


五、时间记录日志


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 学生:**? ?? ? ? ? ? ? ? ? ? ? ? ? ?日期:2015.3??


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 教师:**? ? ? ? ? ? ? ? ? ? ? ? ? ? 课程:软件工程


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇前端性能优化 下一篇加速Android Studio/Gradle构建

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: