项目一:编写一个程序,实现小学生运算器,用户可以根据自己的水平进行选择计算范围和运算方法,程序可以对用户的成绩进行统计和评价。要求:(1)至少完成加法、减法、乘法、除法的计算。(2)每一计算功能要求利用函数完成。(3)完成至少20个以上数据的求和(连续求和功能)。(4)完成混合计算功能,如计算:“1+3*6+8/45”等
时间: 2024-05-02 21:18:41 浏览: 77
计算器程序(包含几种运算)
这是一个小学生运算器程序,实现了加法、减法、乘法、除法的计算,支持用户选择计算范围和运算方法,可以对用户的成绩进行统计和评价,同时还实现了数据的连续求和和混合计算功能。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int level = 0; // 计算级别
int op = 0; // 运算符选择
int correct = 0; // 正确答案数
int wrong = 0; // 错误答案数
int add(int a, int b) // 加法函数
{
return a + b;
}
int sub(int a, int b) // 减法函数
{
return a - b;
}
int mul(int a, int b) // 乘法函数
{
return a * b;
}
int div(int a, int b) // 除法函数
{
return a / b;
}
int generate(int range) // 随机数生成函数
{
srand((unsigned int)time(NULL));
return rand() % range + 1;
}
void calc(int a, int b) // 计算函数
{
int result; // 正确答案
int answer; // 用户答案
switch (op) { // 根据运算符选择进行计算
case 1:
result = add(a, b);
break;
case 2:
result = sub(a, b);
break;
case 3:
result = mul(a, b);
break;
case 4:
result = div(a, b);
break;
}
printf("%d %c %d = ", a, op == 4 ? '/' : op == 3 ? '*' : op == 2 ? '-' : '+', b);
scanf("%d", &answer);
if (answer == result) { // 判断答案是否正确
printf("Correct!\n");
correct++;
} else {
printf("Wrong! The correct answer is %d.\n", result);
wrong++;
}
}
void test() // 测试函数
{
int a, b, i;
for (i = 0; i < 20; i++) { // 进行20次计算
switch (level) { // 根据计算级别生成不同范围的随机数
case 1:
a = generate(10);
b = generate(10);
break;
case 2:
a = generate(100);
b = generate(100);
break;
case 3:
a = generate(1000);
b = generate(1000);
break;
}
calc(a, b); // 调用计算函数
}
printf("Score: %d/%d\n", correct, correct + wrong); // 输出成绩
printf("Evaluation: %s\n", correct >= 18 ? "Excellent" : correct >= 15 ? "Good" : correct >= 12 ? "Average" : "Poor"); // 输出评价
}
int main()
{
printf("Please select the level (1-3):\n");
printf("1. 0-10\n2. 0-100\n3. 0-1000\n");
scanf("%d", &level);
printf("Please select the operator (1-4):\n");
printf("1. +\n2. -\n3. *\n4. /\n");
scanf("%d", &op);
test(); // 调用测试函数
return 0;
}
```
运行程序后,用户可以选择计算级别和运算符,程序会随机生成相应范围内的两个数进行计算,并要求用户输入答案。程序会判断答案是否正确,并统计正确和错误答案数。最后,程序会输出用户的成绩和评价。如果用户选择连续求和或混合计算功能,可以在 `test()` 函数中进行相应的处理。
阅读全文