个人作业1——四则运算题目生成程序(基于控制台)

题目描述:

看了大家对于本课程的目标和规划,很多同学都希望能提高自己的实践能力,没有捷径可走,就是练习、练习再练习!那么就从第一个个人项目开始吧,用一周的时间完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序

从《构建之法》第一章的 “程序” 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 “软件”,满足以下需求:

1.除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
2.运算符为 +, −, ×, ÷
3.并且要求能处理用户的输入,并判断对错,打分统计正确率。
4.要求能处理用户输入的真分数, 如 1/2, 5/12 等
5.使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目
Myapp.exe -n 10

个人软件过程:

a.需求分析

1.除了整数以外,还要支持真分数的四则运算
2.能处理用户的输入,并判断对错,打分统计正确率。
3.使用 -n 参数控制生成题目的个数

b.功能设计

1.只能支持整数的四则运算(但是除法是浮点数)

2.能够判断错对,退出运算后会统计正确率

3.对输入值判断,是否继续进行运算

c.设计实现

使用c语言进行编程,对于” +, -, *, /”四则运算中的每个运算,随机生成两个随机数进行加减乘除操作,在代码开头定义right和wrong来统计正确数和错题数,然后用正确数目除以正确数和错题数的和可以得到正确率。由于小学涉及小数的除法,所以除法运算可使用浮点型来进行运算。

d.代码说明

main函数为主界面,从这里通过输入的数字进行加减乘除四则运算的选择,每次运算后可以选择继续运算或结束查看正确率(每次运算判断对错,用right和wrong计数),加减乘除所对应的的函数在附带的码市上

1、每次运算判断对错,用right和wrong计数

float right = 0;
float wrong = 0;

2、减法的函数:当出现随机数相减为负数时,将减数与被减数的位置互换,显示在界面上

void sub()
{
    int a, b, c, temp;
    a = rand() % 100;
    b = rand() % 100;
    if (a<b)
    {
        temp = a;
        a = b;
        b = temp;
    }
    printf("\t\t请回答:\n\t\t\t %d - %d = ", a, b);
    scanf("%d", &c);
    if (a - b == c)
    {
        printf("\t\t回答正确!\n");
        right++;
    }
    else
    {
        printf("\t\t回答错误!\n");
        wrong++;
    }
}

3、浮点数的除法运算

void div()
{
    float a, b, c;
    a = rand() % 100;
    b = rand() % 100;
    printf("\t\t请回答:\n\t\t\t %.2f / %.2f = ", a, b);
    scanf("%f", &c);
    if (a / b == c)
    {
        printf("\t\t回答正确!\n");
        right++;
    }
    else
    {
        printf("\t\t回答错误!\n");
        wrong++;
    }
}

e.测试运行

展示PSP

码市链接:

https://coding.net/u/vvian/p/test/git

小结:

从这次作业的过程中,我愈发觉得自己的编程能力不是差的一点点,而且我确实对编程很不感兴趣,每次课程设计对我都是一种折磨,但是又不得不做。虽然编程很难,做的过程中也有很多问题,人也烦躁,但是呢,每次还是会尽力去做到老师要求的。

posted @ 2017-03-06 21:40  vv度  阅读(422)  评论(8编辑  收藏  举报