C++
我们学的就是C++啊可是 我们用的却是VC6.0啊
我以为VC就和C++一样
…………
现在在忙碌ing
很烦恼ing
……
整个世界都在转了
----------------解决方案--------------------------------------------------------
又是悲伤事
刚刚得到的新消息:老师说了连递归语句也不能用……晕了……
还让人活吗
继续重来吧
----------------解决方案--------------------------------------------------------
#include <iostream.h>
#include <time.h> //取当前时间作为随机数的种子
#incluee <stdlib.h>
void main()
{
int select;
cout<<"*************************************\n";
cout<<" 小学生四则运算练习系统 \n";
cout<<" 1--加法练习 \n";
cout<<" 2--减法练习 \n";
cout<<" 3--乘法练习 \n";
cout<<" 4--除法练习 \n";
cout<<" 0--退出 \n";
cout<<"请选择(0--4):";
while(true)
{
cin>>select;
switch(select)
{
case 1:
addition();
continue;
case 2:
subtract();
continue;
case 3:
multiplication();
continue;
case 4:
division();
continue;
case 0:
break;
}
}
}
void addition()
{
int a,b,result,input,trycount; //被加数,加数,正确结果,输入的结果,测试次数
trycount = 0;
srand((unsigned int)time(NULL)); //初始化随机数种子
a = rand() % 100 + 1; //被加数,1到100之间的一个整数
b = rand() % 100 + 1; //加数,1到100之间的一个整数
result = a + b;
cout<<"请你输入"<<a<<"+"<<b<<"=?的结果\n";
cin>>input;
while(trycount <= 3) //只能猜三次,控制循环
{
if(input == result) //当答对时的判断
{
switch(trycount)
{
case 0:
cout<<"正确,你真聪明!";
break;
case 1:
cout<<"正确,继续保持!";
break;
case 2:
cout<<"正确,加油!";
break;
}
}
else //当答错时的判断
{
trycount++;
switch(trycount)
{
case 1:
cout<<"不正确,再想一想,你还有两次机会。";
cin>>input;
continue;
case 2:
cout<<"不正确,不要着急,要把握住最后一次机会喔!";
cin>>input;
continue;
case 3:
cout<<"不正确,要加强练习喔!正确答案为"<<result;
break;
}
}
}
char g;
cout<<"是否继续练习(Y/N)";
cin>>g;
if('Y' == g || 'y' == g) addition(); //递归调用自己继续做题
else return; //否则返回
}
----------------解决方案--------------------------------------------------------
我建议你把老师抽一顿,不识货的家伙该打
我小学的时候写过这玩意,当时是用的GWBasic(小霸王学习机上的玩意儿),那个上面压根儿就没有这么多控制语句,连switch和子程序都没有,子程序就是GOSUB和RETURN,连递归都不允许,面对这种东西只能满程序的goto,哈哈~~~~
----------------解决方案--------------------------------------------------------
再顺便说一下,现在再看这程序,可以写得很简单,用一个函数处理运算,一个函数处理算式生成,UI直接放主函数处理,菜单啥的用宏得了,主函数一个用getchar做循环条件的循环语句……加起来三十行应该能解决吧……
----------------解决方案--------------------------------------------------------
好了 ,麻烦大家指导下
#include <iostream>#include <time.h>
#include <stdlib.h>
using namespace std;
double addition ();
double subtract ();
double multiplication ();
double division ();
double main()
{
cout<<"*************************************"<<endl;
cout<<" 小学生四则运算练习系统 "<<endl;
cout<<"*************************************"<<endl;
cout<<" 1--加法练习 "<<endl;
cout<<" 2--减法练习 "<<endl;
cout<<" 3--乘法练习 "<<endl;
cout<<" 4--除法练习 "<<endl;
cout<<" 0--退出 "<<endl;
cout<<" 请选择 (0--4): "<<endl;
char x;
cin>>x;
if (x=='1')
{
cout<<"您选择了加法练习: "<<endl;
addition ( );
}
if (x=='2')
{
cout<<"您选择了减法练习:"<<endl;
subtract ();
}
if (x=='3')
{
cout<<"您选择了乘法练习: "<<endl;
multiplication ();
}
if (x=='4')
{
cout<<"您选择了除法练习:"<<endl;
division ();
}
if (x=='0')
{
exit (1);
}
else
{
cout<<"请选择 (0--4)"<<endl;
return main();
}
}
double addition ()
{
double a,b,c,s;
srand (time(NULL));
a=rand ()%100;
b=rand ()%100;
cout<<a<<"+"<<b<<"="<<endl;
s=a+b;
cout<<"请输入计算结果:"<<endl;
cin>>c;
if (s==c)
{
cout<<"正确,你真聪明!"<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return addition ();
}
else cout<<"不正确,再想一想,你还有两次机会!"<<endl;
cin>>c;
if (s==c)
{
cout<<"正确,继续保持!"<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return addition ();
}
else cout<<"不正确,不要着急,要把握住最后一次机会喔"<<endl;
cin>>c;
if (s==c)
{
cout<<"正确,加油!"<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return addition ();
}
else cout<<"不正确,要加强练习喔!正确的答案为:"<<s<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return addition ();
}
double subtract ()
{
double a,b,c,s;
srand (time(NULL));
a=rand ()%100;
b=rand ()%100;
cout<<a<<"-"<<b<<"="<<endl;
s=a-b;
cout<<"请输入计算结果:"<<endl;
cin>>c;
if (s==c)
{
cout<<"正确,你真聪明!"<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return subtract ();
}
else cout<<"不正确,再想一想,你还有两次机会!"<<endl;
cin>>c;
if (s==c)
{
cout<<"正确,继续保持!"<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return subtract ();
}
else cout<<"不正确,不要着急,要把握住最后一次机会喔"<<endl;
cin>>c;
if (s==c)
{
cout<<"正确,加油!"<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return subtract ();
}
else cout<<"不正确,要加强练习喔!正确的答案为:"<<s<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return subtract ();
}
double multiplication ()
{
double a,b,c,s;
srand (time(NULL));
a=rand ()%100;
b=rand ()%100;
cout<<a<<"*"<<b<<"="<<endl;
s=a*b;
cout<<"请输入计算结果:"<<endl;
cin>>c;
if (s==c)
{
cout<<"正确,你真聪明!"<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return multiplication ();
}
else cout<<"不正确,再想一想,你还有两次机会!"<<endl;
cin>>c;
if (s==c)
{
cout<<"正确,继续保持!"<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return multiplication ();
}
else cout<<"不正确,不要着急,要把握住最后一次机会喔"<<endl;
cin>>c;
if (s==c)
{
cout<<"正确,加油!"<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return multiplication ();
}
else cout<<"不正确,要加强练习喔!正确的答案为:"<<s<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return multiplication ();
}
double division ()
{
double a,b,c,s;
cout<<"你选择了除法练习(结果四舍五入,保留两位小数)"<<endl;
do
{
srand (time(NULL));
a=rand ()%100;
b=rand ()%100;
}
while (b==0);
cout<<a<<"/"<<b<<"="<<endl;
s=a/b;
cout<<"请输入计算结果:"<<endl;
s=int(s*100.0+0.5)/100.00;
cin>>c;
if (s==c)
{
cout<<"正确,你真聪明!"<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return division ();
}
else cout<<"不正确,再想一想,你还有两次机会!"<<endl;
cin>>c;
if (s==c)
{
cout<<"正确,继续保持!"<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return division ();
}
else cout<<"不正确,不要着急,要把握住最后一次机会喔"<<endl;
cin>>c;
if (s==c)
{
cout<<"正确,加油!"<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return division ();
}
else cout<<"不正确,要加强练习喔!正确的答案为:"<<s<<endl;
cout<<"是否要继续练习? (Y/N)"<<endl;
char z;
cin>>z;
if (z=='n'||z=='N')
{
return main ();
}
else
return division ();
}
长是长了点 但水平有限
有地方什么能改进的 有什么要提问的
有什么地方有错的
请大家多多指导啊
谢谢大家的 支持
努力 努力……
----------------解决方案--------------------------------------------------------
代码冗余太大
[color=white]<>
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽