laobingajiaxi 2019-11-06 20:49 采纳率: 0%
浏览 484

四则运算 求助求助求助

设计一个智力开发软件,要求进行4则运算的测试,分别包括2个数的相加(可以设置两个10以内的数相加、2个100以内的数相加)、相减(可以设置两个10以内的数相减、2个100以内的数相减,注意可以设置结果是否允许为负)、相加相减混合运算(加与减的符号通过随机数产生、比如随机数为偶数取加号、否则取减号)、相乘(可以设置两个10以内的数相乘、1个100以内的数与一个10以内的数相乘),可以设置一共测试多少题,根据使用人给的答案给出判断,最后给出测试成绩。
注意所有的数字都是通过随机数产生出来的
菜单可以是下面这样的:
1、测试
2、设置
3、当前设置
0、退出
首次未经设置进入1,系统进入一个默认的测试(10题2个10以内数的加、或减的运算),如果先进行设置,则按设置的题型、题数进行测试。
进入2,系统进入下一个菜单可以这样
1、设置测试题目数
2、设置题型
3、退出
这时如果选1、系统会提示:
请选择你需要测试的题目数:
1、10题
2、20题
0、退出
程序可以按菜单选择
如果选择设置选择提型,系统进入下一个菜单可以这样
1、10以内的数相加
2、100以内的数相加
3、10以内的数相减
4、10以内的数相减(容许结果为负)
5、100以内的数相减
6、100以内的数相减(容许结果为负)
7、相加相减混合运算
8、相加相减混合运算(容许结果为负)
9、10以内的数相乘
10、100以内的数与10以内的数相乘
0、退出
注意:
1、当前设置菜单就是显示当前的设置是什么题型、多少测试题目
2、保证2个数相减大于等于0,可以在产生第二个随机数时限制,比如第一个数为20,则让第二个产生的范围为0-20
3、测试的实现是判断系统产生的2个随机数通过运算得到的结果与用户输入的结果进行比较,相符正确,否则错误,最后显示本次测试的正确率

  • 写回答

1条回答 默认 最新

  • Neyleer 2019-11-20 19:28
    关注

    #include
    #include
    #include
    int timushu = 10;
    int TiXing;
    int suiji(int n) {
    int a = rand() % n + 1;
    return a;
    }
    void f1() {
    int sum=0;
    for (int flag = 1; flag <= timushu; flag++) {
    int a = suiji(10);
    int b = suiji(10);
    printf("%d + %d= ", a, b);
    int c = a + b;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    printf("%d道题目中做对了%d道题目,", timushu, sum);
    }
    void f2() {
    int sum=0;
    for (int flag = 1; flag <= timushu; flag++) {
    int a = suiji(100);
    int b = suiji(100);
    printf("%d + %d= ", a, b);
    int c = a + b;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    printf("%d道题目中做对了%d道题目,", timushu, sum);
    }
    void f3() {
    int sum=0;
    for (int flag = 1; flag <= timushu; flag++) {
    int a = suiji(10);
    int b = suiji(10);
    if (a > b) {
    printf("%d - %d= ", a, b);
    int c = a - b;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    else {
    printf("%d - %d= ", b, a);
    int c = b - a;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    }
    printf("%d道题目中做对了%d道题目,", timushu, sum);
    }
    void f4() {
    int sum=0;
    for (int flag = 1; flag <= timushu; flag++) {
    int a = suiji(10);
    int b = suiji(10);
    printf("%d - %d= ", a, b);
    int c = a - b;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    printf("%d道题目中做对了%d道题目,", timushu, sum);
    }
    void f5() {
    int sum=0;
    for (int flag = 1; flag <= timushu; flag++) {
    int a = suiji(100);
    int b = suiji(100);
    if (a > b) {
    printf("%d - %d= ", a, b);
    int c = a - b;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    else {
    printf("%d - %d= ", b, a);
    int c = b - a;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    }
    printf("%d道题目中做对了%d道题目,", timushu, sum);
    }
    void f6() {
    int sum=0;
    for (int flag = 1; flag <= timushu; flag++) {
    int a = suiji(100);
    int b = suiji(100);
    printf("%d - %d= ", a, b);
    int c = a - b;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    printf("%d道题目中做对了%d道题目,", timushu, sum);
    }
    void f7() {
    int sum=0;
    for (int flag = 1; flag <= timushu; flag++) {
    int a = suiji(100);
    int b = suiji(100);
    int i = suiji(10);
    if (i % 2 == 0) {
    if (a > b) {
    printf("%d - %d= ", a, b);
    int c = a - b;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    else {
    printf("%d - %d= ", b, a);
    int c = b - a;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    }
    else {
    printf("%d + %d= ", a, b);
    int c = a + b;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    }
    printf("%d道题目中做对了%d道题目,", timushu, sum);
    }
    void f8() {
    int sum=0;
    for (int flag = 1; flag <= timushu; flag++) {
    int a = suiji(100);
    int b = suiji(100);
    int i = suiji(10);
    if (i % 2 == 0) {
    printf("%d - %d= ", a, b);
    int c = a - b;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    else {
    printf("%d + %d= ", a, b);
    int c = a + b;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    }
    printf("%d道题目中做对了%d道题目,", timushu, sum);
    }
    void f9() {
    int sum=0;
    for (int flag = 1; flag <= timushu; flag++) {
    int a = suiji(10);
    int b = suiji(10);
    printf("%d * %d= ", a, b);
    int c = a * b;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    printf("%d道题目中做对了%d道题目,", timushu, sum);
    }
    void f10() {
    int sum=0;
    for (int flag = 1; flag <= timushu; flag++) {
    int a = suiji(10);
    int b = suiji(10);
    printf("%d * %d= ", a, b);
    int c = a * b;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    printf("%d道题目中做对了%d道题目,",timushu,sum);
    }
    void diaoyong(int n) {
    switch (n)
    {
    case 1:f1(); break;
    case 2:f2(); break;
    case 3:f3(); break;
    case 4:f4(); break;
    case 5:f5(); break;
    case 6:f6(); break;
    case 7:f7(); break;
    case 8:f8(); break;
    case 9:f9(); break;
    case 10:f10(); break;
    case 0:; break;
    }
    }
    int Tixing() {
    int n;
    printf("请选择题目类型:\n1、10以内数相加\n2、100以内数相加\n3、10以内数相减\n4、10以内数相减(容许结果为负)\n5、100以内数相减\n6、100以内数相减(容许结果为负)\n7、相加相减混合运算\n8、相加相减混合运算(容许结果为负)9、10以内数相乘\n10、100以内的数与10以内的数相乘\n0、退出");
    scanf("%d", &n);
    switch (n)
    {
    case 1:return 1;
    case 2:return 2;
    case 3:return 3;
    case 4:return 4;
    case 5:return 5;
    case 6:return 6;
    case 7:return 7;
    case 8:return 8;
    case 9:return 9;
    case 10:return 10;
    case 0:;break;
    }
    }
    void Shumu() {
    int t;
    printf("1、10道题\n2、20道题\n0、退出");
    scanf("%d", &t);
    switch (t)
    {
    case 1:timushu = 10; break;
    case 2:timushu = 20; break;
    case 0:; break;
    }
    }
    void Set() {
    int k;
    printf("1、设置测试题目数\n2、设置题型\n0、退出");
    scanf("%d",&k);
    switch (k)
    {
    case 1:Shumu(); break;
    case 2:TiXing=Tixing(); break;
    case 0:; break;
    }
    }
    void Tixingchakan(int k) {
    switch (k)
    {
    case 1:printf("10以内的数相加\n"); break;
    case 2:printf("100以内的数相加\n"); break;
    case 3:printf("10以内的数相减\n"); break;
    case 4:printf("10以内的数相减(可为负)\n"); break;
    case 5:printf("100以内的数相减\n"); break;
    case 6:printf("100以内的数相减(可为负)\n"); break;
    case 7:printf("相加相减混合运算\n"); break;
    case 8:printf("相加相减混合运算(可为负)\n"); break;
    case 9:printf("10以内的数相乘\n"); break;
    case 10:printf("100以内的数与10以内的数相乘\n"); break;
    }
    }
    int Moreng() {
    int sum=0;
    for (int flag = 1; flag <= 10; flag++) {
    int a = suiji(10);
    int b = suiji(10);
    int k = suiji(10);
    if (k % 2 == 0) {
    printf("%d + %d= ", a, b);
    int c = a + b;
    int n;
    scanf("%d", &n);
    if (n == c) { sum++; }
    }
    else
    {
    printf("%d - %d= ", a, b);
    int c = a - b;
    int n;
    scanf("%d", &n);
    if (n == c) sum++;
    }
    }
    return sum;
    }
    int main() {
    int m,n=1,k=0;
    srand((unsigned int)time(0));
    printf("*************************************************\n");
    printf("*************************************************\n");
    while (n != 0) {
    printf("********************请选择菜单*******************\n\n");
    printf(" 1、测试 2、设置 \n");
    printf(" 3、当前设置 0、退出 \n");
    scanf("%d", &m);
    switch (m)
    {
    case 1:if (k == 0) {
    int j=Moreng(); printf("10道题做对了%d道题\n",j);
    }
    else {
    diaoyong(TiXing);
    }break;
    case 2:Set(); k++; break;
    case 3:printf("当前测试题目数量为%d,测试的题型是:\n", timushu); Tixingchakan(TiXing); break;
    case 0:--n; break;
    }
    }

    评论

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名