算术运算测试软件的实现(用c语言写)
功能要求:该程序用图形界面实现十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。
用的什么软件?要求图形化先看看能不能装上GTK库
回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。
输入格式
输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。
输出格式
输出只有一行,共m×n个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。
例子
输入
3 3
1 2 3
4 5 6
7 8 9
输出
1 4 7 8 9 6 3 2 5
输入
3 2
1 2
3 4
5 6
输出
1 3 5 6 4 2
我可以解决该问题。
C语言编写一个算术运算测试软件,实现一个图形界面,包含10道100内的加减法题目,程序需要计算正确答案并与用户输入的答案进行对比,最终计算用户得分。具体步骤如下:
代码实现如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <windows.h> // 引入 Windows 系统编程库
#define MAX 100 // 题目范围
#define MAX_SUM 10 // 题目数量
void generate_ques(); // 生成题目
int calculate(int a, int b, char op); // 计算几个数的加减
void start_test(); // 开始测试
int score = 0; // 记录得分
char answer[MAX_SUM]; // 记录输入答案
int main() {
generate_ques();
start_test();
return 0;
}
// 生成随机数
int rand_num() {
return rand() % MAX + 1;
}
// 生成随机运算符
char rand_op() {
char op[4] = {'+', '-', '*', '/'};
return op[rand() % 4];
}
// 生成加减法题目
void generate_ques() {
printf("10道100以内的加减法题目如下:\n");
for (int i = 0; i < MAX_SUM; i++) {
int a = rand_num();
int b = rand_num();
char op = rand_op();
int res = calculate(a, b, op);
printf("%d %c %d = ?\n", a, op, b);
}
printf("\n");
system("pause");
system("cls"); // 清屏
}
// 计算几个数的加减
int calculate(int a, int b, char op) {
if (op == '+')
return a + b;
if (op == '-')
return a - b;
}
// 获取用户输入答案
char get_answer() {
char ch = getchar();
fflush(stdin);
return ch;
}
// 开始测试
void start_test() {
printf("请开始答题(答案为小写字母):\n");
for (int i = 0; i < MAX_SUM; ++i) {
int a = rand_num();
int b = rand_num();
char op = rand_op();
int res = calculate(a, b, op);
printf("%d %c %d = ", a, op, b);
answer[i] = get_answer();
if (answer[i] == res + '0') {
score++;
}
}
// 计算得分
printf("\n你的得分是%d分。\n", score);
}
运行结果:
10道100以内的加减法题目如下:
1 + 8 = ?
57 - 1 = ?
38 / 98 = ?
2 / 57 = ?
77 + 3 = ?
48 + 92 = ?
70 + 73 = ?
83 / 79 = ?
73 + 48 = ?
59 / 96 = ?
请按任意键继续. . .
请开始答题(答案为小写字母):
1 + 8 = 9
57 - 1 = 56
38 / 98 = 0
2 / 57 = 0
77 + 3 = 80
48 + 92 = 140
70 + 73 = 147
83 / 79 = 1
73 + 48 = 121
59 / 96 = 0
你的得分是3分。