教小学生算术

到百度贴吧首页
新闻   网页   贴吧   知道   MP3   图片   视频   百科
    吧内搜索 | 帮助
  • 共有26篇贴子

教小学生算术

221.11.46.*

1楼

#include <stdio.h>      /*  调用库函数  */
#include <stdlib.h>           /*  调用库函数   */
int Tha;                           /*  变量 表示第一个运算数   */
int Thb;          /*   第二个运算数  */
int Tresult;      /*  正确答案   */
int Qcount;      /*   题目的个数  */
int Upnum;      /*  升级的分数   */
int Tscore;      /*  当前得分   */
char op;      /*   运算符号  */

TestTen()      /*  出第一个级别题的函数    */
{
   int Userda;      /*  用户给出的答案   */
   int temp;      /*   临时变量,用于交换两个变量得值  */

   op=random(4)+1;      /*  产生一个1-4之间的随机数,用于表示+ ,- , * , /   */



   switch(op)      /*  判断运算符是什么   */
      {
        case 1:        /*  加 的情况   */
           { Tha=random(10);      /*   产生一个0-9之间的随机数  放在第一个运算数 Tha中  */
             Thb=random(10);      /*   产生一个0-9之间的随机数  放在第二个运算数 Thb中     */
             Tresult=Tha+Thb;break;      /*  计算出正确答案 放在 Tresult中    */
            }
        case 2:        /*  减 的情况   */
           { Tha=random(10);
             Thb=random(10);
             if(Tha<Thb)      /*  减不能的负  所以第一个运算数要比第二个大,如果小,则交换两变量的值   */
                {temp=Tha;Tha=Thb;Thb=temp;}   /*  交换 */
             Tresult=Tha-Thb;break;          /*  计算出正确答案 放在 Tresult中    */
   }
case 3:       /*   乘 的情况  */
           { Tha=random(10);
             Thb=random(10);
             Tresult=Tha*Thb;break;
           }
        case 4:        /* 除 的情况    */
          {do         /*  循环     保证可以除尽      */
            { do            /*  循环保证 除数不为 0 */
                {Tha=random(10);
                 Thb=random(10);

                 if(Tha<Thb)
                 {temp=Tha;Tha=Thb;Thb=temp;}

       }while(Thb==0) ;           /*  当除数0 的时候继续产生新的随机数   */
     }while((Tha%Thb)!=0);             /*  当不能整除的时候继续产生新的随机数   */
             Tresult=Tha/Thb;
             break;
           }
        }


     switch(op)            /*  根据 op的值决定输出 问题    */
       {
 case 1: {printf("\n%d  +  %d  = ",Tha,Thb);break;}   
 case 2: {printf("\n%d  -  %d  = ",Tha,Thb);break;}
 case 3: {printf("\n%d  X  %d  = ",Tha,Thb);break;}
 case 4: {printf("\n%d  /  %d  = ",Tha,Thb);}
       }



     scanf("%d",&Userda);         /*  用户输入答案   */

     while(Userda!=Tresult)            /*    判断答案是否正确  */
       { if(Tscore>=10)                      /*   不正确减分  */
             Tscore=Tscore-10;     
         printf("\nWrong! Now Your Score: %d",Tscore);            /*  输出错误信息和 当前分数    */
 /*if(Tscore<Upnum)
      return; */
         printf("\n Input The Answer Again:     ");                     /*    提示重新输入 */
         scanf("%d",&Userda);                                            /*   用户输入答案  */
      }

       Tscore=Tscore+10;                                 /*   答对了 加分  */
       printf("\n Right! Now Your Score: %d",Tscore);                    /*     */

221.11.46.*

2楼



}



TestHun()   /*出第二个级别题的函数*/
{
   int Userda;
   int temp;

   op=random(4)+1;



   switch (op)
      {
        case 1:
           { Tha=random(90)+10;          /*  产生 10-99 之间的随机数,即两位数   */
             Thb=random(90)+10;
             Tresult=Tha+Thb;break;
            }
        case 2:
           { Tha=random(90)+10;
             Thb=random(90)+10;
             if(Tha<Thb)
                {temp=Tha;Tha=Thb;Thb=temp;}
             Tresult=Tha-Thb;break;
   }
case 3:
           { Tha=random(90)+10;
             Thb=random(90)+10;
             Tresult=Tha*Thb;break;
           }
        case 4:
          {do
            { do
                {Tha=random(90)+10;
                 Thb=random(90)+10;

                 if(Tha<Thb)
                 {temp=Tha;Tha=Thb;Thb=temp;}

               }while (Thb==0) ;
             }while ((Tha%Thb)!=0);
             Tresult=Tha/Thb;
             break;
           }
        }


     switch(op)
       {
 case 1: {printf("\n%d  +  %d  = ",Tha,Thb);break;}
 case 2: {printf("\n%d  -  %d  = ",Tha,Thb);break;}
 case 3: {printf("\n%d  X  %d  = ",Tha,Thb);break;}
 case 4: {printf("\n%d  /  %d  = ",Tha,Thb);}
       }


     scanf("%d",&Userda);

     while(Userda!=Tresult)
       { if(Tscore>=10)
             Tscore=Tscore-10;
         printf("\nWrong! Now Your Score: %d",Tscore);
 if(Tscore<Upnum)                          /*   如果分数小于设定的分数则直接推出函数   */
      return;
         printf("\n Input The Answer Again:   ");
         scanf("%d",&Userda);
      }

       Tscore=Tscore+10;
       printf("\n Right! Now Your Score: %d",Tscore);




}


main()
  {
    int Leiji=0;                       /*  变量  , 存储 累计答题数目   */
    randomize();                             /*  保证每次运行程序 产生的随机数序列不相同的语句  */
    clrscr();                                     /*  清屏 : 清除屏幕上上次运行的内容,重新开始运行程序    */
    clrscr();
    printf("\nTEST START:-------------------------------------");
    printf("\n Please Input Question Count:  ");         /*  提示信息 :输入问题个数    */
    scanf("%d",&Qcount);             /*  用户输入问题个数   */

    do
     {printf("\n Please Input UpLevel Score(Times of 10 (Sheng ji de fen shu;))  : ");        
                                                                 /*  提示信息 :输入升级分数(10的倍数 )  */
      scanf("%d",&Upnum);           /*  用户输入升级分数    */
     if(Upnum<10)                   /*   如果用户输入的升级分数<10  */
         printf("\n Must > = 10 ! ");
     else if(Upnum%10!=0)         /*   如果用户输入的升级分数不是10的倍数 :即 整除10 不等于0  */       
        printf("\n Must Some Times of 10!(10 de bei shu!)");             /*     */ 
     else break;
     }while(1);                      /*  不满足条件永远循环   */ 

     printf("\n--------------------------------------------------------");
     printf("\n--------------------------------------------------------");

221.11.46.*

3楼

     printf("\nTest Start:");
     printf("\n--------------------------------------------------------");
     printf("\n----------------------------------");
     printf("\n Lever   1   Start :");

Begin1:

      printf("\n----------------------");
      printf("\n Question: %d",Leiji+1);                        /*  输出 题号    */ 
      TestTen();
      Leiji++;

     if(Leiji==Qcount)                         /*   如果做题个数 和 事先设定好的问题个数相同 则结束答题!   */ 
{   printf("\n--------------------------------------------------------");
           printf("\n--------------------------------------------------------\n");
         printf("\n Test Over!!!\n");
 printf("\n--------------------------------------------------------");
         printf("\n Your Final Score: %d",Tscore);
         if(Tscore>=Upnum)
           printf("\n Your Final Level:     LEVEL 2");
         else
           printf("\n Your Final Level:     LEVEL 1");
        goto LastLine;
        }
     if(Tscore<Upnum)              /*   分数 小于 升级分数  */ 
         goto Begin1;                 /*  转向到 Begin1 继续作题   */
     printf("\n Up To Advance Level!\n Lever2 Start :---------");                 /*  达到升级分数 升级到 Level2   */ 


Begin2:

      printf("\n----------------------");
      printf("\n Question: %d",Leiji+1);

    TestHun();
    Leiji++;

     if(Leiji==Qcount)
{   printf("\n--------------------------------------------------------");
           printf("\n--------------------------------------------------------\n");
         printf("\n Test Over!!!\n");
 printf("\n--------------------------------------------------------");
         printf("\n Your Final Score: %d",Tscore);
         if(Tscore>=Upnum)
           printf("\n Your Final Level:     LEVEL 2");
         else
           printf("\n Your Final Level:     LEVEL 1");
        goto LastLine;
        }

      if(Tscore<Upnum)
        {printf("\nDown To Normal Level! Lever1 : -------");                    /*  从Level2答题过程中分数小于升级分数 降级到Level 1  继续答题   */ 
         goto Begin1;}
      else
         goto Begin2;

LastLine:
   printf("\n------------------------------------------------") ;
   getchar();getchar();    /* 等待用户输入回车结束程序运行 */
}


221.11.46.*

4楼

可以做1位,2位数的加,减,乘,除运算,其中减法不能的负数,除法要能出尽。屏幕上随机出现两个数,提示小学生给出答案,答错了要重新输入,直到答对为止。要统计给分,累积达到一定分数后可以晋级,即从1位晋级到2位,同样也可以降级。
221.11.46.*

5楼

那位大虾帮忙看一下 我做的有什么错的地方或不好的地方帮忙指出

6楼

太麻烦...
只是为了界面?

221.11.46.*

7楼

界面 是有点不太好看 运行的时候 题一多 就不给题了
221.208.28.*

8楼

刚开始的原形~还算不错

9楼

长了
不想看

202.200.118.*

10楼

请你运行一下你的程序,它有一个错误。
218.75.124.*

11楼

我运行了有7个错误啊
222.18.176.*

12楼

<stdlib.h> 哪个函数的库函数?
211.142.244.*

13楼

<stdlib.h> 
 是重复的命令 晕·!!!!

14楼

好帖子 死顶, C程序就该这么写, 大量注释 一看就懂;
211.90.208.*

15楼

VC 错误消息,贴出来看看吧,谁有解决方法?
在TC2中运行良好


Linking...
int.obj : error LNK2001: unresolved external symbol _random
int.obj : error LNK2001: unresolved external symbol _clrscr
int.obj : error LNK2001: unresolved external symbol _randomize
Debug/int.exe : fatal error LNK1120: 3 unresolved externals
Ö´ÐРlink.exe Ê±³ö´í.

int.exe - 1 error(s), 0 warning(s)

16楼

\Documents and Settings\Hw\桌面\Cpp2.cpp(16) : error C2065: 'random' : undeclared identifier
C:\Documents and Settings\Hw\桌面\Cpp2.cpp(159) : error C2065: 'randomize' : undeclared identifier
C:\Documents and Settings\Hw\桌面\Cpp2.cpp(160) : error C2065: 'clrscr' : undeclared identifier
Error executing cl.exe.
在VC中运行成这样了

220.175.170.*

17楼

长啊
218.28.89.*

18楼

很难呀看不懂
218.25.58.*

19楼

Begin 是什么语句 ?????

20楼

挺好,支持!

21楼

标号,像书签一样

22楼

标号,像书签一样
124.115.223.*

23楼

谢谢了,我考试全靠你了
124.114.203.*

24楼

谁有教小学生学英语的代码?帮帮忙
221.11.46.*

25楼

那一个错误要怎么改?

26楼

别的没看。。。教小学生学算术。。。可是你的printf语句里写的都是英文,小学生看的懂吗,该成中文吧。。。

发表回复

内 容:
用户名:
  
©2010 Baidu 贴吧协议  意见反馈