c语言学习15四则运算

四则运算练习

需求:进入一个界面选择+-*/                                       printf

选择运算法则(如果选择错误,提示重新选择)        switch  case   defult

显示100以内两个随机数,输入运算结果                 rand

系统显示正确答案,并且判断正确错误

要求:封装函数

分析:

 int main(void)

{

        //界面程序-----界面函数

        //输入和识别程序-----按键识别函数

        //随机数程序----产生随机数函数

        //系统计算并且对比答案----对比答案函数

}

①界面函数

需求+ - * / 0

#include

#include

#include

#include

#include

int main(void)

{

        while(1)

        {

                show();

                key_scan();

        }

}

void show(void)

{

        system("cls");

         printf("************************\n");

         printf("         四则运算          \n");

         printf("************************\n");

         printf("   [+]  [-]  [*]  [/]  [0]     \n");

        printf("************************\n");

        printf("******请选择**********");

}

②按键选择和识别函数

需求:用户输入(gatch)

        输入识别并提示选择是什么运算

分析key_scan()无参无返回值

void key_scan(void)

{

        char key;

STAR:

                key=getch();

                switch(key)

                {

                       // case '+':运算规则函数('+');break; 

                        case '+':printf("您选择的是减法运算!\n");rules('+');break;

                        case '-':printf("您选择的是减法运算!\n");break; 

                        case '*':printf("您选择的是乘法运算!\n");break; 

                        case '/':printf("您选择的是除法运算!\n");break; 

                        case '0':printf("正在推出程序\n");break; 

                       default:printf("输入有误,请重新输入\n");goto STAR;break; 

                }

        

}

加法功能函数

{

获取随机数

把随机数显示给用户看

并且提示用户输入答案

系统运算正确答案

并且根用户的答案比较

判断正确答案

}

减法功能函数

{

获取随机数

把随机数显示给用户看

并且提示用户输入答案

系统运算正确答案

并且根用户的答案比较

判断正确答案

}

乘法功能函数

{

获取随机数

把随机数显示给用户看

并且提示用户输入答案

系统运算正确答案

并且根用户的答案比较

判断正确答案

}

除法功能函数

{

获取随机数

把随机数显示给用户看

并且提示用户输入答案

系统运算正确答案

并且根用户的答案比较

判断正确答案

}

运算规则函数(运算符参数)

{

获取随机数

把随机数显示给用户看

并且提示用户输入答案

        如果传递参数是+

        {

                系统运算正确答案+

        }

  如果传递参数是-

        {

                系统运算正确答案-

        }

如果传递参数是*

        {

                系统运算正确答案*

        }

如果传递参数是/

        {

                系统运算正确答案/

        }

并且根用户的答案比较

判断正确答案

}

void rules(char ru)

{

        int data1,data2;

        int user_data;

        int sys_data

        /*获取随机数函数*/

STAR_2:

data1=get_randdata();

data2=get_randdata();

//针对除法不能出现小数结果,出现要重新获取随机数

if(ru=='/')

{

        if(data1%data2!=0)

        {

                //重新获取

goto STAR_2;

        }

}

          /*用户输入答案*/

printf("请计算%d %c %d=?",data1,ru,data2);

printf("请输入您的答案");

scanf("%d",&user_data)

  /*系统运算答案并且对比答案*/

    switch(ru)

                {

                        case '+':sys_data=data1+data2;break;

                        case '-':sys_data=data1-data2;break; 

                        case '*':sys_data=data1*data2;break; 

                        case '/':sys_data=data1/data2;break; 

                }

if(sys_data==user_data)

{

printf("恭喜答对了,正确答案是:%d",sys_data);

}

else

{

printf("恭喜答错了,正确答案是:%d",sys_data);

}

/*问用户是否继续,继续按[y],推出按任意键*/

        if(gatch()!='y')

        {

                        exit(1);结束程序函数

        }

}

④产生随机数函数

        需求:产生两个100以内的随机数

        分析:

                调用系统的随机数函数

                产生随机数函数

                #include

             #include

        srand((unsigned)time(NULL));//用时间做种子,每次产生的随机数不一样

        for(i=0;i<50;i++)

        {

                number=rand()%101;//rand电脑生成一堆数据,根据时间抽取一段数字

        }

return number;

get_randdata产生100以内的随机数

局部变量在函数结束时空间自动释放,如果用static 修饰空间不会释放

int get_randdata(void)

{

int number;

static  int flag=1;

if(flag==1)

{

        srand((unsigned)time(NULL));

        flag=0;//标志位思想

}

        

        number=rand()%101;

return number;

}

你可能感兴趣的:(c语言学习15四则运算)