• 四则运算个人项目 最终版


    基本要求

    将10-20道四则运算题目写入文档,程序读取并输出题目,同时计算出正确结果。使用者对每道题目计算答案,答对进行提示,答错输出正确结果。分别记录回答正确、错误的数目并输出。


    1.加减乘除四种运算全部出现

    2.算式中要出现括号

    3.出现真分数和假分数的运算

    4.最少出现一个长度为10的四则运算(10个数字的混合运算)
     

    加分项:

    按照实现下列功能的数量和完成情况,进行相应加分

    1.实现四则运算算式的自动生成
    2.把程序变成一个网页程序
    3.把程序变成一个Windows/Mac/Linux 电脑图形界面的程序
    4.把程序变成一个智能手机程序
     
     

    主要实现

    1、struct number

    为了实现分数运算,我定义了一个number的结构体,其种包含变量分子和分母,在运算中将所有数字转为分数(整数为分母=1的分数)。如图所示:

    2、int op 

    判断运算符号,以实现相应的数值运算。功能简单,截图省略。

    3、int GCD

    计算最大公约数,分数约分是调用。如图所示:

    4、int read

    本函数完成读取文件里题目中的数字的功能,功能比较简单,截图省略。

    5、void transform

    完成功能:中缀表达式转换成等价的后缀表达式。

    遵循原则如左图所示、举例如右图所示:

      

    本函数代码段过长,截图省略。

    6、void calculate

    完成后缀表达式的计算的功能,主要依据如图所示:

    本函数代码段过长,截图省略。

    7、int correct

    比对用户输入的答案与程序计算的答案,判对错,分别记录对错个数。

    功能简单,截图省略。

     

    运行与测试

    测试内容与题号

    加法:2、6、7、9、12、15

    减法:1、3、5、8、13

    乘法:5、13

    除法:1、2、3、4、5、7、10、11、14、15

    括号运算:3、5、7、13

    分数与约分运算:2、3、5、11、14、15

    负数运算:8、13

    题干长度:5

    答案长度:10

    答案判对:1、2、4、5、6、7、8

    答案判错并给出正确答案:3、9、10、11、12、13、14、15

    总结与提高

      本次个人项目完成比较顺利。主要思想基于大二学习的数据结构课程中的一次上机实验。那次只是完成整数的四则运算,这次个人项目与之相比,需增加如下功能:增加分数运算;增加四则运算题数;键盘输入答案;判断运算对错。

      起初改为分数运算时,必须先后分别输入分子分母,即使答案为整数也必须输入分子,再输入分母为1,对用户来说输入过于繁琐。后来改为用户可以随意输入整数或分数,程序判断用户输入的答案是否有分数线,有则为分数,否则为分母为1的分数,即整数。这样简便了用户的输入方式,使得程序更加人性化。

      本次个人项目虽然顺利完成,但我没能增加随机生成的功能,也没有给程序绘制图形界面,只有vs的窗口演示。主要是因为自己拖延症大发,拖到要验收程序的时候才匆匆赶着写代码,所以只完成的项目的基本要求,没有做加分项目,这是本次项目的一大遗憾!!以后一定要早早动手,不能再犯拖延症!这样才能使自己的程序尽善尽美!

      

       最后,感谢老师们和助教学长的耐心指导和讲解!祝周末愉快~

  • 相关阅读:
    LightOJ 1341 Aladdin and the Flying Carpet 数学
    NOIP2013 花匠 DP 线段树优化
    LightOJ 1370 Bi-shoe and Phi-shoe 欧拉函数+线段树
    BZOJ2818: Gcd 欧拉函数求前缀和
    SPOJ3267 D-query 离线+树状数组 在线主席树
    BZOJ 2588: Spoj 10628. Count on a tree 主席树+lca
    拓展欧几里得算法
    POJ1845Sumdiv(求所有因子和 + 唯一分解定理)
    UVA1635 Irrelevant Elements(唯一分解定理 + 组合数递推)
    codeforce 626E(二分)
  • 原文地址:https://www.cnblogs.com/xaq0325/p/5271088.html
Copyright © 2020-2023  润新知