个人项目(四则运算程序)总结

一. 基本要求
    将10-20道四则运算题目写入文档,程序读取并输出题目,同时计算出正确结果。使用者对每道题目计算答案,答对进行提示,答错输出正确结果。分别记录回答正确、错误的数目并输出。
四则运算题目基本要求:
1.加减乘除四种运算全部出现
3.算式中要出现括号
2.出现真分数和假分数的运算
4.最少出现一个长度为10的四则运算(10个数字的混合运算)
 
二.算式处理流程
    传统的四则运算表达式(加、减、乘、除、括号)计算的算法分为两个步骤:1.将中缀表达式转为后缀表达式 2.进行后缀表达式的求值。其中中缀转后缀的操作需要一个线性数据结构“栈”的支持。
    由于大二下“数据结构”课程中布置过表达式求值的任务,这次个人项目的完成可以在其基础上修改完成。在那时完成作业时,我并没有将输入的中缀表达式转化为后缀表达式,而是用两个栈分别存储操作数和运算符,并且比较当前运算符的优先级与运算符栈顶符号的优先级,然后进行相应的操作(严蔚敏版《数据结构》)。
    考虑到需要完成真分数和假分数的运算,我定义了一个分数类(fraction),属性包括分子和分母两个整型数。操作数栈即为一个数据类型为分数类的栈。
   
图1-表达式计算处理基本流程图
    
三. 程序整体流程

 

图2-程序整体流程图

四.困难与挑战

     由于进行运算操作的数据类型都是分数类,在修改完代码后发现括号和‘/’并不能总是很协调地在一起出现。在添加若干个条件判断后,这类问题得以解决。如果采用常规的中缀转后缀、后缀求值的方法进行计算的话,也许就不会产生这类的问题。

五.反思

    由于时间限制,这次个人项目并没有实现表达式自动生成和图形界面的功能。希望在以后的项目中能够多动手、多尝试,敢于实现新的功能,在基本功能上有所突破和创新。

 

   
 
posted @ 2016-03-19 23:09  13070013  阅读(831)  评论(1编辑  收藏  举报