zoukankan      html  css  js  c++  java
  • 个人项目(四则运算)

    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)(英语/汉语):
    ");
        printf("0----English/英语
    1----Chinese/汉语
    ");
        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("
     quotient= ");
            scanf("%d",&e);
    	    printf("
     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("
     quotient= ");
            scanf("%d",&e);
    	    printf("
     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("
    ");
            }	
    printf("
    ");
    }
    printf("grade: %d 
    ",grade);
    }
    else 
    printf("input 0 or 1/只能输入0或者1:");
    }
    

      

  • 相关阅读:
    使用dfs求解全排列
    并查集
    Best Cow Line
    Saruman's Army
    Fence Repair
    Laking Counting
    淘宝商品定向爬取
    爬取股票信息
    python中的正则表达式的使用

  • 原文地址:https://www.cnblogs.com/Ci0Yu/p/7527432.html
Copyright © 2011-2022 走看看