1、 JAVA 语言课程设计报告语言课程设计报告 题题 目:目:带函数功能和数制转换功能的计算器带函数功能和数制转换功能的计算器制作制作 设设 计计 者者: 专业班级:专业班级: 学学 号:号: 指导教师:指导教师: 2011 年 12 月 12 日 1、系统需求分析、系统需求分析 1.11.1 系统名称:系统名称: 带函数功能和数制转换功能的计算器 1.21.2 系统介绍系统介绍 制作一个计算器,主要有以下功能: 1.可以连续输入运算, 对于输入的表达式能够按算符优先级进行处理。 如输入 2+3*2 时输出为 8, 而不是 10。 2.可以处理含括号的表达式,Sin、Cos、Tan、平方、倒数、
2、开方等操作可以与表达式结合进行 运算,不用单独运算。 3.科学计数法表示,当输入值或者计算结果超过一定范围时会自动以科学计数法表示。 4.增加了科学计算器的一些设施,如清空,求平方,求根号,求倒数,求三角函数,正负值, 显示括号嵌套层数等。 5.错误提示,除数为 0,应算超过范围等在下方将有文字提示,并将当前结果置零。 6.支持小数点,支持正负运算。 1.31.3 开发背景开发背景 计算器作为计算工具被应用于方方面面,为人类的计算提供了便利。原来的计算器有很多不完 善的地方,比如说三角函数和错误提示,本计算器制作期间考虑到这些点,将很多东西融入了这个 小软件,给运算和使用提供了更多的功能。 1
3、.41.4 系统面向的用户人群系统面向的用户人群 本计算器为计算量中等,对函数要求不太高的人群所开发。适合于简单计算数据, 不适合科研工作。 1.51.5 开发环境开发环境 Eclipse 2.系统设计系统设计 2.12.1 总体设计总体设计 本程序在设计时, 参照了 Windows 自带的科学计算器的界面设计和功能模式。 在界 面上与其非常相似。利用 Eclipse 编程环境,通过对按钮和菜单添加监听,并重载 actionPerformed 函数实现相应事件的响当当应。 程序的内核采用栈来处理,从而不仅可以处理表达式,而且可以按优先级来计算。 同时还可以将 Sin、Cos、Tan、平方、倒数
4、、开方等操作与表达式结合进行运算,在算 符优先级的比较方面,本程序抛弃了传统的建立一个二维数组的方式来查询比较算符优 先级,而是设一个 ENUM 类型的变量,将优先级别小的操作符放在前面,优先级别大 的操作符放在后面,如: privateenumOperatorOpNone,OpLeft,OpAdd,OpSub,OpMul,OpDiv,OpRight,分别代表等 号、左括号、加、减、乘、除、右括号。比较优先级时只要通过比较 Operator 成员的 ordinal方法反回值就可以了, 如: this.m_Operator.ordinal() this.o_Stack.peek().ordinal() if(this.m_Operator=Operator.OpLeft) this.o_Stack.push(this.m_Operator); else this.o_Stack.push(this.m_Operator); this.m_Stack.push(this.m_Operand); else this.m_S