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