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


    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;

        }

    }

  • 相关阅读:
    8行代码批量下载GitHub上的图片
    python经典面试算法题1.1:如何实现链表的逆序
    pandas处理excel的常用方法技巧(上)
    numpy---python数据分析
    python、C++经典算法题:打印100以内的素数
    Java中数组、集合、链表、队列的数据结构和优缺点和他们之间的区别
    Hystrix
    Java中的static关键字解析
    Spring Boot
    Springcloud和Dubbo的区别。Eureka和Ribbon和Hystrix和zuul
  • 原文地址:https://www.cnblogs.com/520z/p/7598277.html
Copyright © 2020-2023  润新知