软件工程个人项目:一个能自动生成小学四则运算的程序

1.代码来源:一位远在他乡勤奋的见习程序员

 2.编译环境  vs 2013 运行环境windos 10   语言 c

3.无bug

4.function improvement:功能相对于小学运算程度来说已经足够了,暂时不需要做其它的扩展。

5.implementation: 可实现

6.github:https://github.com/Z1026395125/Helloworld1

代码:#include <stdio.h>

#include <ctype.h>

#include <time.h>

#include <stdlib.h>

#include <windows.h>

#define IDNO_LENGTH 6

#define CALC_KIND 4

 

char getSignal();

int getResult(int,int,char);

void takeTest();

void falsePrint(int);

void correctPrint(int);

 //main函数

void main()

{

    while(1)

    {

        takeTest();

    }

    }

 //获取随机运算符

char getSignal()

{

    char signal[CALC_KIND]={'+','-','*','/'};

    srand((unsigned)time(NULL));

    return signal[rand()%4];

}

 //获取随机数

int random(double start, double end)

{

    return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0));

}

 //运算

int getResult(int num1,int num2,char signal)

{

    int res;

    switch(signal)

    {

    case '+':

        res=num1+num2;break;

    case '-':

        res=num1-num2;break;

    case '*':

        res=num1*num2;break;

    case '/':

        res=num1/num2;break;

    default:

        res=0;

        printf("运算符不符合规则\n");

    }

    return res;

}

 

//列出题目

void takeTest()

{

    int giveRes;

    int num1;

    int num2;

    char signal;

    int printFlag;

   srand((unsigned)time(NULL));

    signal=getSignal();

    num1=random(0,100);

    num2=random(1,100);

 

    if(signal=='-')

    {

        if(num1<num2)

        {

            int temp;

            temp=num1;

            num1=num2;

            num2=temp;

        }

    }

  if(signal=='/')

    {

        if(num2==0)

        {

            int temp;

            temp=num1;

            num1=num2;

            num2=temp;

        }

    }

    printf("%d%c%d=",num1,signal,num2);

    scanf("%d",&giveRes);

    fflush(stdin);

 

    if(getResult(num1,num2,signal)==giveRes)

    {

        printFlag=random(1,5);

        correctPrint(printFlag);

    }

    else

    {

        printFlag=random(1,4);

        falsePrint(printFlag);

        printf("正确答案:%d\n",getResult(num1,num2,signal));

    }

}

 //回答正确打印信息

void correctPrint(int num)

{

    switch(num)

    {

    case 1:

        printf("You're right!\n");break;

    case 2:

        printf("It's OK!\n");break;

    case 3:

        printf("Correct!\n");break;

    case 4:

        printf("Perfect!\n");break;

    case 5:

        printf("Good!\n");break;

    default:

        printf("Powerful!\n");break;

    }

}

 //回答错误打印信息

void falsePrint(int num)

{

    switch(num)

    {

    case 1:

        printf("You're lost!");break;

    case 2:

        printf("Failure!");break;

    case 3:

        printf("Come on!");break;

    case 4:

        printf("It's wrong!");break;

    default:

        printf("Incorrect!");break;

    }

}

转载于:https://www.cnblogs.com/520z/p/7598277.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值