个人项目(四则运算)
1、代码来源:http://wenwen.sogou.com/z/q710937394.htm
2、Windows平台、采用C语言、采用VC6.0运行环境
3、代码没有Bug
4、代码修改和功能添加:
关于代码修改方面: 由于之前作者的程序在用户答案的判断上,代码有些不必要,而进行了;原修改删除了不必要的代码;作者对于除法的运算只能够实现判断整数部分是否正确,而不能够准确判断,所以我就让用户分别输入商和余数,对于商和余数的判断是要满足两者都已经化为最简,最终就可以正确的判断用户的答案。
关于功能方面:实现了可以让用户选择汉语或者英语、实现了整数和真分数的四则运算、实现了分数计算、实现了正确错误的提示。
Github地址:https://github.com/Yu0Ci/Project/blob/master/软件工程作业1.cpp
5、代码:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
void main()
{
//整数四则运算
int a1,b1,a2,b2,c,d1,d2,e,e1,x,y,i,choice,grade=0;
int answer[100];
printf("the Choice of Language (English/Chinese)(英语/汉语):\n");
printf("0----English/英语\n1----Chinese/汉语\n");
printf("Please input you choice/请输入你的选择:");
scanf("%d",&choice);
if(choice==0||choice==1)
{
srand((unsigned)time(NULL));
for(int j=0;j<10;j++)
{
a1=rand()%10;
b1=rand()%10;
a2=rand()%10;
b2=rand()%10;
c=rand()%9;
//真分数
if(c>4)
{
if(a2==0)
a2+=1;
if(b2==0)
b2+=1;
if(a1>a2)
{
d1=a1;a1=a2;a2=d1;
}
if(b1>b2)
{
d1=b1;b1=b2;b2=d1;
}
}
switch(c)
{
case 0:printf("%d+%d=",a1,b1);
answer[c]=a1+b1;
break;
case 1:if(a1<b1)
{
d1=a1;a1=b1;b1=d1;
}
printf("%d-%d=",a1,b1);
answer[c]=a1-b1;
break;
case 2:printf("%d*%d=",a1,b1);
answer[c]=a1*b1;
break;
case 3:if(a1==0) a1+=1;
printf("%d^%d=",a1,b1);
if(b1==0)
a1=1;
d1=a1;
for( i=1;i<b1;i++)
{a1=a1*d1;}
answer[c]=a1;
break;
case 4:if(b1==0)
b1+=1;
printf("%d/%d=",a1,b1);
x=a1;
y=b1;
break;
case 5:printf("%d/%d+%d/%d=",a1,a2,b1,b2);
x=a1*b2+a2*b1;
y=b2*a2;
break;
case 6:y=a2*b2;
d1=a1*b2;
d2=a2*b1;
if(d1<d2)
{
printf("%d/%d-%d/%d=",b1,b2,a1,a2);
x=d2-d1;
}
else
{
printf("%d/%d-%d/%d=",a1,a2,b1,b2);
x=d1-d2;
}
break;
case 7:printf("%d/%d*%d/%d=",a1,a2,b1,b2);
x=a1*b1;
break;
case 8:if(b2==0)
b2+=1;
printf("(%d/%d)/(%d/%d)=",a1,a2,b1,b2);
x=a1*b2;
y=a2*b1;
break;
}
switch(choice)
{//英语
case 0:
if(c<4)
{
scanf("%d",&e);
if(e==answer[c])
{
grade+=1;
printf("You are right");
}
else
printf("You are wrong");
}
else
{
printf("\n quotient= ");
scanf("%d",&e);
printf("\n remainder=");
scanf("%d",&e1);
for(i=9;i>1;i++)
{
if((x%i==0)&&(y%i==0))
{ x=x/i;y=y/i;}
}
if( (e==x/y)&&(e1==x%y))
{
grade+=1;
printf("You are right");
}
else
printf("You are wrong");
}
break;
//汉语
case 1:
if(c<4)
{
scanf("%d",&e);
if(e==answer[c])
{
grade+=1;
printf("你答对了");
}
else
printf("继续加油");
}
else
{
printf("\n quotient= ");
scanf("%d",&e);
printf("\n remainder=");
scanf("%d",&e1);
for(i=9;i>1;i++)
{
if((x%i==0)&&(y%i==0))
{ x=x/i;y=y/i;}
}
if( (e==x/y)&&(e1==x%y))
{
grade+=1;
printf("你答对了");
}
else
printf("继续加油");
}
break;
default:printf("\n");
}
printf("\n");
}
printf("grade: %d \n",grade);
}
else
printf("input 0 or 1/只能输入0或者1:");
}
浙公网安备 33010602011771号