结对项目-四则运算 “软件”之升级版
本作業要求來自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213?
我的githup地址為:https://github.com/lianglina98/ruanjian02
、基本要求
從個人項目出發,將程序改造成一個單機帶用戶界面(不是控制臺)的程序,這個程序最基本要達到:
- 自動生成題目,單個題目最多不能超過4個運算符,操作數小于100。
- 用戶可以輸入答案
- 若用戶輸入答案正確,則提示正確;若答案錯誤,則提示錯誤,并要提示正確答案是多少。
二、擴展方向
三、開發環境調試:Visual C++
四、代碼呈現
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#include<windows.h>
float calculate(float x,char op,float y)
{
float result;
switch(op)
{
case'+':result = x + y;break;
case'-':result = x - y;break;
case'*':result = x * y;break;
case'/':result = x / y;break;
}
return result;
}
float calculate2(float x,char op2,float y)
{
float result;
switch(op2)
{
case'+':result = x + y;break;
case'-':result = x - y;break;
case'*':result = x * y;break;
case'/':result = x / y;break;
}
return result;
}
int createnumber()
{
return rand() % 100+1;
}
int createnumber2()
{
return rand() % 20+1;
}
char createnumberop()
{
int op;
op=rand() % 4+1;
switch(op)
{
case 1:return'+';
case 2:return'-';
case 3:return'*';
case 4:return'/';
}
return 0;
}
void exercises(int n)
{
int i,right=0,wrong=0;
float a,b,c,answer,result1,result2;
char op,op2;
srand(time(NULL));
for(i=0;i<n;i++)
{
a=(float)createnumber();
b=(float)createnumber();
c=(float)createnumber();
op=createnumberop();
op2=createnumberop();
result1=calculate2(calculate(a,op,b),op2,c);
result2=calculate(a,op,calculate2(b,op2,c));
if(result1 < 0 || result2 <0)
{
i--;
continue;
}
else{
printf("%.f %c %.f %c %.f = ",a,op,b,op2,c);
scanf("%f",&answer);
if((op=='+' || op=='-') && (op2=='*' || op2=='/'))
{
if((int)(100.0*answer+0.5)/100.0==(int)(100.0*result2+0.5)/100.0 && result2 >=0)
{
printf("\n【回答正確!】\n\n");
right++;
}
else
{
printf("\n【回答錯誤!答案是:%.2f】\n\n",(int)(100.0*result2+0.5)/100.0);
wrong++;
}
}
else
{
if((int)(100.0*answer+0.5)/100.0==(int)(100.0*result1+0.5)/100.0 && result1 >=0)
{
printf("\n【回答正確!】\n\n");
right++;
}
else
{printf("\n【回答錯誤!答案是:%.2f】\n\n",(int)(100.0*result1+0.5)/100.0);
wrong++;
}
}
}
printf("\n你答對了%d題,答錯了%d題\n\n",right,wrong);
}
}
double gongbeishu(double b,double d)
{
double i,max;
max=b>d?b:d;
for(i=max;;i++)
if((int)(i)%(int)(b)==0 && (int)(i)%(int)(d)==0)
break;
return i;
}
double gongyueshu(double a,double c)
{
double i,min;
min=a<c?a:c;
for(i=2;i<=min;i++)
if((int)(a)%(int)(i)==0 && (int)(c)%(int)(i)==0)
break;
if(i>min)
i=1;
return i;
}
int main()
{
int n;
printf("\n——————————————四則運算-------------------------------------------\n");
printf("\n\n| 歡迎進入四則運算小程序! |\n");
printf("\n——————————————---------------------------------------------------\n");
while(1)
{
do{
printf("\n請輸入四則運算的數目:");
scanf("%d",&n);
if(n<=0)
printf("數目有誤,請重新輸入!\n");
if(n>5)
printf("最多不能超過5個題目,請重新輸入!\n");
}while(n<=0 || n>5);
exercises(n);
}
}
五、運行結果截圖
六、感想
我并沒有結對,自己的基礎不好,不想拖累別人。這個作業我做得很簡單,主要的問題就在于計算上,其他基本沒有什么問題。
轉載于:https://www.cnblogs.com/lianglin918/p/9843232.html
總結
以上是生活随笔為你收集整理的结对项目-四则运算 “软件”之升级版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件工程学习笔记——软件工程基本原理
- 下一篇: JZOJ5922. 【NOIP2018模