• 四则运算


    思路:这是一个有35道运算题的学习系统,先设计系统的界面,然后再编写出题的代码,之后再依次编写训练、评分的代码。这是一个很有挑战性的程序,一开始很苦恼,借鉴了一些网络上的代码,得到了同学的帮助,最终我们编好了这个代码。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
    #include <conio.h>
    #define N 35
    typedef struct _ti {
        int a, b;
        int op;
        int result;
        int input;
        int rw;
    }ti;
    ti timu[N];
    int fen;
    int flag;
    int mulu()
    {
        int z;
        while(1) {
            printf(" 三相之力之四则运算系统 ");
            printf("1随机出题 ");
            printf("2开始训练 ");
            printf("3训练评分 ");
            printf("4显示批改的试卷 ");
            printf("5退出系统 ");
            printf("请选择:");
          
            scanf("%d", &z);
            while(getchar() != ' ');
              
            if(z< 1 || z > 5)
                printf("选择有误!请重新输入. ");
            else
                break;
        }
        return z;
    }
    void chuti()
    {
        int i, f;
        printf("确认随机出%d道题吗?(y确认):", N);
        if(getchar() != 'y')
            return;
        for(i = 0, f = 1; i < N; f ? i++ : 0) {
            timu[i].a = rand() % 100+1;
            timu[i].b = rand() % 100+1;
            timu[i].op = rand() % 4;
            if(timu[i].b == 0 && timu[i].op == 3) {
                f = 0;
                continue;
            }
            else
                f = 1;
            switch(timu[i].op) {
            case 0: timu[i].result = timu[i].a + timu[i].b; continue;
            case 1: timu[i].result = timu[i].a - timu[i].b; continue;
            case 2: timu[i].result = timu[i].a * timu[i].b; continue;
            case 3: timu[i].result = timu[i].a / timu[i].b; continue;
            }
        }
        printf("出题完毕! ");
        flag = 1;
    }
    void xunlian()
    {
        int i, f, n;
        char op[] = "+-*/";
        if(!flag) {
            printf("还未出题! ");
            return;
        }
        printf("确认开始练习吗?(y确认):");
        if(getchar() != 'y')
            return;
        fen = 0;
        for(i = 0, f = 1; i < N; f ? ++i : 0) {
            printf("题目%d: %d %c %d = ", i+1, timu[i].a, op[timu[i].op], timu[i].b);
            if(!scanf("%d", &n)) {
                printf("输入有误!请重试. ");
                f = 0;
            } else {
                timu[i].input = n;
                timu[i].rw = (n == timu[i].result ? (fen += 10, 1) : 0);
                f = 1;
            }
        }
        printf("练习完毕! ");
    }
    void pingfen()
    {
        char* a[] = {"棒棒哒", "很棒", "不错呀", "还需努力偶"};
        char** p;
        int n;
        p = a + 3;
        n = fen / 10;
          
        if(n >= 6)p--;
        if(n >= 8)p--;
        if(n == 10)p--;
          
        printf("您测试的总分为 %s:%d分 ", *p, fen);
    }
    void shijuan()
    {
        int i;
        char op[] = "+-*/";
        for(i = 0; i < N; ++i){
            printf("%d %c %d = %d %s", timu[i].a, op[timu[i].op],
            timu[i].b, timu[i].input, timu[i].rw ? "√": "×");
            if(!timu[i].rw)
                printf(" 正确答案: %d", timu[i].result);
            putchar(' ');
        }
    }
    int main()
    {
        int i;
        srand(time(0));
        void (*f[])() = {chuti,xunlian, pingfen, shijuan};
        while((i = mulu()) != 5) {
            f[i-1]();
            printf("按任意键继续...");
            getch();
        }
        printf("欢迎下一次使用");
        return 0;
    }
    运行结果
    总结:这是我们小组成员共同努力的结果,我们团结一致完成了这个小程序
  • 相关阅读:
    TPL中的异常
    异步接口
    TPL高级探秘
    TPL应用:HttpClient
    WLS_Oracle Weblogic部署应用程序(案例)
    WLS_Oracle Weblogic服务器生命周期(案例)
    WLS_Oracle Weblogic使用WLST工具(案例)
    WLS_Oracle Weblogic MSI和创建被管理服务器(概念)
    WLS_Oracle Weblogic配置文件(案例)
    WLS_Oracle Weblogic目录结构(案例)
  • 原文地址:https://www.cnblogs.com/ljw199106m/p/9919596.html
Copyright © 2020-2023  润新知