zoukankan      html  css  js  c++  java
  • 四则运算团队博客

    题目:二柱子将做好的项目交给了老师,几天后又得到了新的需求:

    作业要求1、实现在线答题。

                  2、答题结束后,可以判断对错。

                  3、并将错题的结果保存起来。

    出现的问题:

    1、对于系统的分类一开始没有考虑全面,在经过一次一次的使用之后才使程序比较完善。

    2、程序较长出现了思路断裂的情况。

    源代码

     #define _CRT_SECURE_NO_DEPRECATE
    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
    #define N 20
    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 s;
    while (1) {
    printf("1)开始考试 ");
    printf("2)显示答案 ");
    printf("3)退出系统 ");
    scanf("%d", &s);
    while (getchar() != ' ');

    if (s < 1 || s > 5)
    printf("选择有误!请重新输入. ");
    else
    break;
    }
    return s;
    }

    void kaoshi()
    {
    int i, f;
    for (i = 0, f = 1; i < N; f ? i++ : 0) {
    timu[i].a = rand() % 200-100 + 1;
    timu[i].b = rand() % 200-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; break;
    case 1: timu[i].result = timu[i].a - timu[i].b; break;
    case 2: timu[i].result = timu[i].a * timu[i].b; break;
    case 3: timu[i].result = timu[i].a / timu[i].b; break;
    }
    }
    int n;
    char op[] = "+-*/";
    if (!flag) {}
    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("练习完毕! ");
    char* a[] = { "S", "A", "B", "F" };
    char** p;
    p = a + 3;
    n = fen / 1;

    if (n >= 12)p--;
    if (n >= 16)p--;
    if (n == 20)p--;

    printf("你上次测试的总分为 %s:%d分 ", *p, fen);
    }

    void shijuan()
    {
    int i;
    FILE *fp;
    fp = fopen("上一次答题的答案.txt", "w");
    if (fp == NULL)
    printf("不能打开文件 ");
    char op[] = "+-*/";
    printf("可在TXT中查看并保存最近一次的答案 ");
    for (i = 0; i < N; ++i){
    printf(" 第%d题:",i);
    fprintf(fp, " 第%d题:", i+1);
    printf("%d %c %d = %d %s", timu[i].a, op[timu[i].op],
    timu[i].b, timu[i].input, timu[i].rw ? "√" : "×");
    fprintf(fp, "%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);
    fprintf(fp, " 正确答案: %d", timu[i].result);
    putchar(' ');

    }

    }
    int main()
    {
    int i;
    srand(time(0));
    void(*f[])() = { kaoshi, shijuan };
    while ((i = mulu()) != 3) {
    f[i - 1]();
    printf("按任意键继续...");
    system("pause");
    }
    return 0;
    }

     

    团队成员;吕浩宇,王超群

  • 相关阅读:
    Ant学习实例
    ant 使用指南
    tomcat配置管理用户名密码
    纯JAVA驱动:sqlserver版本不同,驱动与连接也有所区别
    STRUTS2获得session和request
    SSH整合,"sessionFactory " or "hibernateTemplate " is required异常
    tmp
    让Tomcat支持中文文件名
    postgreSQL初步使用总结
    postgreSQL9.1忘记postgres用户密码怎么办
  • 原文地址:https://www.cnblogs.com/7777qi/p/9917784.html
Copyright © 2011-2022 走看看