a.需求分析:

  自动生成小学四则运算题目的命令行 “软件”,满足以下需求:   

  1. 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
  2. 运算符为 +, −, ×, ÷
  3. 并且要求能处理用户的输入,并判断对错,打分统计正确率。
  4. 要求能处理用户输入的真分数, 如 1/2, 5/12 等
  5. 使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目
    Myapp.exe -n 10

b.功能设计:

  生成整数四则运算和分数四则运算,并判断对错,打分统计正确率

c.设计实现:

  分函数zs()主要负责整数四则运算,随机产生两个随机数和随机运算符并计算;分函数gys是求最大公约数函数;分函数fs()主要负责分数四则运算随机产生两个随机数和随机运算符并调用第三个分函数gys()进行计算;主函数main()主要实现随机调用两个分函数zs()和fs()并统计正确率

d.代码说明:

#include "stdio.h"

#include "stdlib.h"

#include "time.h"
#include "string.h"
int gcd(int x,int y)
{
    int r;
    r=x%y;
    while(r!=0)
    {
        x=y;
        y=r;
        r=x%y;
    }
    return y;
}
int zhengshu(){
    int left,mid,right,result,int_number;
    srand((unsigned)time(NULL));
    left=rand()%10;
    mid=rand()%4;
    right=rand()%10;
    printf("%d",left);
    switch(mid)
    {
        case(0):result=left+right;
        printf(" + ");break;
        case(1):result=left-right; 
        printf(" - ");break;
        case(2):result=left*right;
        printf(" ×");break;
        case(3):result=left/right;
        printf(" ÷");break;
    }
    printf("%d =",right);
    scanf("%d",&int_number);
    if(int_number == result)
        {
            printf("回答正确!    下一题:\n");
            score=score+1; 
        }
    else{
            printf("回答错误!    下一题:\n");
        }
}
int fenshu(){
    int left_x,left_y,mid,right_x,right_y,x,y,GYS,int_number1,int_number2;
    srand((unsigned)time(NULL));
    do{
    left_x=rand()%10+1;
    left_y=rand()%10+1;
    mid=rand()%4;
    right_x=rand()%10+1;
    right_y=rand()%10+1;
    }while(!(left_x<left_y&&right_x<right_y));
    printf("%d/%d",left_x,left_y);
        switch(mid)
        {
            case(0):x=left_x*right_y+left_y*right_x;
                    y=left_y*right_y;
            printf(" + ");break;
            case(1):x=left_x*right_y-left_y*right_x;
                    y=left_y*right_y;  
            printf(" - ");break;
            case(2):x=left_x*right_x;
                    y=left_y*right_y;
            printf(" ×");break;
            case(3):x=left_x*right_y;
                    y=left_y*right_x;
            printf(" ÷");break;
        }
        printf("%d/%d =",right_x,right_y);
    GYS=gcd(x,y);
    x=x/GYS;
    y=y/GYS;
    scanf("%d/%d",&int_number1,&int_number2);
    if(int_number1==x&&int_number2==y)
    {
        printf("回答正确!    下一题:\n");
        score=score+1; 
    }
    else{
        printf("回答错误!    下一题:\n");
    }
}
int main(){
    int h,count;
int score=0;
    printf("请输入题目数?");
    scanf("%d",&count);
    for(int i=0;i<count;i++)
    {
        h=rand()%2;
        if(h==0)
        {zs();}
        else
        {fs();}
    }
    printf("正确率为:%lf",score*1.0/count);
}

转载于:https://www.cnblogs.com/Xshopping/p/6516924.html

个人作业1:小学四则运算——基于控制台相关推荐

  1. 高级软件工程2017第2次作业—— 个人项目:四则运算题目生成程序(基于控制台)...

    Deadline:2017-09-27(周三) 21:00pm (注:以下内容参考 福大软工作业 和集大个人作业 ) 0.前言 很多童鞋在本课程的目标和规划中,都表示希望能提高自己的实践能力. Pra ...

  2. 个人作业1——四则运算题目生成程序(基于控制台)

    题目描述: 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 除 ...

  3. 四则运算题目生成程序(基于控制台)

    基于控制台的四则运算 代码地址 a.需求分析 运算符为 +, −, ×, ÷ 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24 要求能处理用户输入的真分数, ...

  4. 结对项目——自动生成小学四则运算题目的命令行程序(基于Python)

    这个作业属于课程 软件工程 这个作业的要求在哪里 结对项目 这个作业的目标是 实现一个自动生成小学四则运算题目的命令行程序 成员 3118005408 方俊涛 .3118005409 冯宇航 GitH ...

  5. 作业五—个人项目-小学四则运算 “软件”之升级版1

    作业五-个人项目-小学四则运算 "软件"之升级版 作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/21 ...

  6. 作业四 | 个人项目-小学四则运算 “软件”之初版

    作业要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186 GitHub远程仓库的地址https://github.com/ ...

  7. 第四次作业:个人项目-小学四则运算 “软件”之初版

    本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186 远程github库:https://github.com/h ...

  8. java实现四则运算应用(基于控制台)

    项目地址:https://gitee.com/wxrqforever/object_oriented_exp1.git 一.需求分析: 一个基于控制台的四则运算系统,要能实现生成并计算含有真,假分数, ...

  9. 2016012101小学四则运算练习软件项目报告

    2016012101小学四则运算练习软件项目报告 Coding.net源码仓库地址:https://git.coding.net/naiteu/sgwq.git 一.需求分析 1,程序可以接收一个参数 ...

最新文章

  1. python自学书籍推荐豆瓣-入门python有什么好的书籍推荐?
  2. android 关闭多点触控_Cocos Creator关闭多点触摸的问题
  3. spring mvc DispatcherServlet详解之interceptor和filter的区别
  4. find_path、find_library备忘录
  5. 用计算机写作ppt文库,计算机专业英语Unit 19 计算机专业英语写作.pptx
  6. 丹琦女神的对比学习新SOTA,在中文表现如何?我们补充实验后,惊了!
  7. 在linux上安装svn
  8. C++解析char *p与char p[]
  9. 深度学习(DL)-1.3 浅层神经网络 (Shallow neural networks)
  10. Cortex-M0芯片GPIO详解
  11. volatile(防止编译器对代码进行优化,常用于多线程环境中)
  12. Jupyter Notebook简洁教程
  13. RTX3090ti和rtx2080ti参数对比
  14. 数据结构之2-3-4树与2-3树
  15. C语言字符和数字相互转换(适用于0-9这10个数字)
  16. 【分享程序员的生活】在国企里面当程序猿是一种怎样的体验!!??
  17. 清华大学计算机复试录取率,清华考研非985不要吗 复试淘汰率高不高
  18. 魔力宝贝服务器修改技能经验,【石器时代】 GM添加、命令使用、经验及倍数设置、宠添加、查找及修改【附图】...
  19. (附源码)ssm学生管理系统 毕业设计 141543
  20. Android必知必会-自定义Scrollbar样式

热门文章

  1. php mysql函数未定义,PHP MySQLi未定义的方法错误
  2. android json转db,Android Room:将json结果转换为db对象的有效方法
  3. 码云nacos下载_nacos安装,配置以及持久化
  4. java 字符处理_Java字符串处理实用代码
  5. mysql h 127.0.0.1_MySQL 连接时尽量使用 127.0.0.1 而不是 localhost
  6. css表示第一个元素和最后一个元素,CSS第一个和最后一个子元素
  7. 华为机考HJ13句子逆序C语言弱智解法
  8. 使用OpenCV和Python高效计算视频的总帧数
  9. Springboot的部分依赖及作用
  10. PyTorch框架:(3)使用PyTorch框架构构建神经网络分类任务