zoukankan      html  css  js  c++  java
  • 初步实现出题软件

    相同部分

    设计思路
    首先看到题目嘛最初写了一个类似1+1= 或者1-1= 的随机生成算式的代码:

    
        int a,b,c,s,s1;
        srand(time(NULL));
        a=rand()%9+1;
        b=rand()%9+1;
        c=rand()%4+1;
        switch(c)
        {
        case 1:s=a+b;printf("%d+%d=",a,b);break;
        case 2:s=a-b;printf("%d-%d=",a,b);break;
        case 3:s=a * b;printf("%d*%d=",a,b);break;
        case 4:s=a;printf("%d/%d=",a*b,b);break;
        }  
        scanf("%d",&s1);
        if(s==s1)printf("回答正确!
    ");
        else printf("回答错误!答案是: %d
    ",s);
    

    要求是要混合运算,最初的设想肯定是行不通的。
    但是,原理是一样的,都是利用rand() 来生成随机数。给符号编号14,然后随机生成14,用switch语句选择出一个符号,
    由于是混合运算,我的做法是定义一个数组,然后把符号数字排好存进去。这个时候就有难点了,看之前的简单运算,好像计算结果跟着随机出来的算式一起。
    然而混合运算,排列组合有好多种情况,计算如果跟着随机一起出来貌似很麻烦(我是没什么好想法,如果有好的意见可以评论区)。
    所以,我这里就有个想法,把生成的算式用计算器算出结果,然后对比答案是否正确。因为我之前写过计算器的代码所以比较方便。
    原理是用后序表达式来计算生成的算式。因此,我也顺带在里面加了一个计算器的功能。不过,我这里有几个解决难点的做法有点不好。
    第一,真分数我做不到直接用排列组合的方式弄出,我的思路是重新定义一个真分数的生成函数,然后调用。但是最好的方法应该是函数重载吧。
    第二,除号块是一大难点,毕竟随机出来的,无法确定结果,题目却要求整数结果,我的解决方案就是每次结果都要进行一次判断是否为整数,然后不是整数进行重新随机,这样导致的结果就是除号出现的几率不会很大。

    思路也就这些了吧,具体可以看我的代码。

    代码规范:

    函数 含义
    check() 计算结果
    judge() 判断结果是否为整数
    Fraction() 随机生成真分数
    Rand() 随机生成混合算式
    randNum() 随机数字
    randSym() 随机数字(1~4)
    symbol() 找出对应符号

    程序实现和结果测试的截图:







    github的提交链接:https://github.com/NSDie/Operations

    提交日志截图:


    分工

    • 031602438 负责 随机生成题目 以及计算;
    • 031602317 负责 统计、翻译、界面美化。

    协作证据截图




    差异部分

    1. 合作过程

    由于各自都要满自己的事情,所以做这个作业也是有点烦,每次都是在半夜用qq催来催去,然后第二天不是我出去有事就是队友出去有事,不过还好题目不是很难。
    然后每次写完自己的事,上传,跟队友说一声有新任务了,大概就是这样的吧。在合作过程中,除了代码还有就是github的协作功能弄了半天才弄好。

    2. 合作体会

    由于语言的差异,队友不擅长c++嘛,但是题目又要要求c++最好,所以只能把代码写的c和c++混合,能让队友看懂,必要时还要给他解释一下什么意思。但是在合作过程也感觉非常开心,偶尔会发生一些很有趣的事情。不过我最大的体会就是活到老,学到老。在和搭档合作的过程中一起思考,一起讨论,一起学习git的协作功能。
    虽然感觉有点累,但是这些足以抚慰我了。

  • 相关阅读:
    python-day3-内置函数与字符字节之间的转换
    python-day3-之函数
    鸿蒙的多媒体及Menu组件及小程序的多媒体组件
    鸿蒙 移植 树莓派(下)修改源码
    鸿蒙 移植 树莓派(上)搭建环境下载源码
    鸿蒙 移植 树莓派(中)添加单板
    鸿蒙的横向滚动菜单和分组Group列表菜单和fetch请求加载聚合数据
    鸿蒙的fetch请求加载聚合数据的前期准备工作-手动配置网络权限
    鸿蒙内核源码分析(何为任务篇) | 任务的五脏六腑都是些啥 ?
    鸿蒙的远程交互组件应用及微信小程序的远程交互组件应用
  • 原文地址:https://www.cnblogs.com/yyf031602438/p/6395829.html
Copyright © 2011-2022 走看看