四则运算题目生成程序(基于控制台)
题目描述:
看了大家对于本课程的目标和规划,很多同学都希望能提高自己的实践能力,没有捷径可走,就是练习、练习再练习!那么就从第一个个人项目开始吧,用一周的时间完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序
从《构建之法》第一章的 “程序” 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 “软件”,满足以下需求:
- 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
- 运算符为 +, −, ×, ÷
- 并且要求能处理用户的输入,并判断对错,打分统计正确率。
- 要求能处理用户输入的真分数, 如 1/2, 5/12 等
使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目
Myapp.exe -n 10
需求分析:
1.四则运算
2.生成分数运算
3.用户自定义题目数量
4.判断答案是否正确
5.给出正确率
设计实现:
确地题目数量,给出运算式子,给出答案判断,在报出正确率
#include<iostream> #include<stdlib.h> #include<conio.h> #include<time.h> using namespace std; void accuracy(int n, int count){ float m = count * 100 / n; cout << "正确率:" << m << "%" << endl; } void integer(int n,int result[]){ int count=0; srand(time(NULL)); for (int i = 0; i < n; i++){ int a = (int)rand() % 100; int b = (int)rand() % 100; int c = (int)rand() % 100 / 20; switch (c) { case 0: int Answers; cout << a << "+" << b << "=" << endl; result[i] = a + b; cin >> Answers; if (result[i] == Answers) { cout << "Yes" << endl; count++; } else cout << "wrong" << endl; cout << "right Answer:" << result[i] << endl; break; case 1: int temp; if (a < b){ temp = a; a = b; b = temp; } cout << a << "-" << b << "=" << endl; result[i] = a - b; cin >> Answers; if (result[i] == Answers) { cout << "Yes" << endl; count++; } else cout << "wrong" << endl; cout << "right Answer:" << result[i] << endl; break; case 2: cout << a << "*" << b << "=" << endl; result[i] = a * b; cin >> Answers; if (result[i] == Answers) { cout << "Yes" << endl; count++; } else cout << "wrong" << endl; cout << "right Answer:" << result[i] << endl; break; case 3: cout << a << "/" << b << "=" << endl; result[i] = a / b; cin >> Answers; if (result[i] == Answers) { cout << "Yes" << endl; count++; } else cout << "wrong" << endl; cout << "right Answer:" << result[i] << endl; break; } } accuracy(n, count); } int main(){ int n; char m; int result[1000]; cout << "请输入想要的题目数量:" << endl; cin >> n; integer(n, result); cout << "欢迎使用(输入任意键退出)" << endl; cin >> m; }
实验测试:
PSP:
总结:
在编程中自己想的时候觉得可以运行,但在实际编程中总会出现出现一些问题,需要去查资料才能解决,感觉自己编程能力还是要多多练习.