个人项目(四则运算)

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:");
}

  

posted on 2017-09-15 17:18  CCY0  阅读(125)  评论(0编辑  收藏  举报

导航