JAVA计算器课程设计.docx
学号:201601190220160119202016()118992016011916课程设计(题目)计算机设计学生姓名:吕鹏唐家豪陈鹏宇徐澎年级:16计克机课程名称:面对对象程序设计()任课老师:侯鲤东北师范高校信科学院2017年6月目录题目描述关键问题总结附录题目描述我们设计了能计算数学表达式的计算器,其功能如卜.:/有图形界而,界面可以参考自带的计算器程序(科学型)。/由用户点击界面输入一个简洁的四则运算表达式,求出其if兑结果后显示。/表达式中应支持常用的数学函数,如确定值0、取整0、三角函数、倒数(D、平方根、平方、立方、对数O等(其他可以自行确定是否支持)。/表达式应支持括号操作。关键问题一、在界面模块中,用户界面包括俎件,程序中运用的大多是组件.组件:(I)运用了面板按钮:如=(7,8*,9,*,r,*,5*,*,6*,*,T,"2T."r.*<T,0.",”=");(2)包括了的托付M务模型,该程序还定义了单击犷务类(0)(3)还有事务监听器,里面彳!"事分处埋方法:如:O退格将最终一个字符酬掉.二、在核心售法根块中;1.1程序运用了网格布局器.如:(4,5,3,3);(4行,5列的网格,网格之间的水平方向间隔为3个象索,垂直方向间隔为3个象素)1. 2计算器的整个程序包括类和类:在中行设计计算器页面布用和颜色的成员方法,1.3 程序的返回值为布尔型<和>.1.4 函数实现了的了的调用()(1=0;10:1():三、总结在此次作业中,我们对语言的她本学问点又来了更多的了解,例如继承、图形布局等。*一个计算叁,与附件自带计算叁的标准版功跳、界面相仿.但还不支持0操作./*计算上的的星示名字*/(=("7","8","9","","xa2m,"4","5","6","%","",1","2",m3","1","","0",x3",/*计算Q上的功能的显示名字*/(-("","","C";/*计算左边的M的显示名字*/UM="""!;/*计算上健的按钮*/(-(J;/*计算上的功的按钮*/=(;/*计算5左边的M的按钮/m);/*计算结果文本据*/=("0");标记用户按的是否是整个表达式的第一个敷字,*弁是运算符后的第一个敷字=;计算的中间结果.=0.0;当苜运年的运算符=,=,;操作是否合法0.0;* 构造函数* /O(0;初始化计算暑0;”计算的#最色0;(”科学计算参“);在屏幕(500,300)坐标处显示计算(500,300);不许修改计算IB的大小0;使计算O中各坦件大小合适0;)/* 初始化计算一* /O<文本棺中的内容采纳右对齐方式0;不允许修改结果文本据0;设文本格IrM色为白色();初始化计算暮上的按钮,格健放在一个面板内=0;用网格布局器,5行,5列的网格,网格之间的水平方向间为4个象素,垂直方向间隔为4个象素(5,5,4,4);(i-O;i<)i)=(til);(til);i)0;运算符使用红色标示,其他用货色表示30;(4】0;5();9();(10)();(110;(15(>16();117)();(19)0;(20(>21();22();(23();(24(>25();26();(27();(28)();29();初始化功能,都用缸色标示=():用网格布局,1行,3列的网格,网格之间的水平方向间为3个象素,亶方向间隔为3个象素(1,3,4,4);(i=O;i<)i=(i);(til);i)0;初始化Mt,用缸色标示,将M健放在一个板内();用网格布局管理妻,5行,1列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象索(5,1,4,4);(i-O;i<)mi=(MIi);11>(i0;Tifi进行计算的整体布局,将和板放在计算的中部,格文本程放在北部,将板放在计算号的西部.新建一个大的板,将上面建立的和板放在该面板内1 =0;板采纳边界布局管理叁,板里组件之间的水平和直方向上间隔都为4*1(4,4);K"",);K"",);建立f.板放文本相=0:(0);签体布局()(3,5);()"",);0("-,1);0);为各按钮净加,务侦听器都运用同一个*侦听叁,即本对象.本类的声明中有(i=0;i<)il();)(i=0;i<)1 0;)(i-0;i<)«1();/*处理务歌的彼=();(HOl)(用户按了“健0;)(1)用户按了("0")(2)用户按了,(:“O;)(Mm)(用户按了”1();>(M2)>(用户按了0;>(M3)>(用户按了”1健0;)(M4)用户按了0;)("0123456789."()>=0)(用户按了数字值或者小敷点健0;0;用户按了运算符0;*处理被按下的”*/0(0;1=();(i>0)退格,格文本量就一个字符去掉(O,i-1);(O0)(假如文本没有了内容,用初始化计算基的各料值显示新的文本0;*处理数字按下的核0(入的第一个敷字0;)("")(0("")<0)(入的是小散点,并且之前没有小敷点,剜带小数点酎在结果文本相的后面)(".")(假如入的不是小敏点,则带数字附在结果文本根的后面(0+);)以后入的确定不是第一个数字了/*处理C健被投下的事务初始化计第0的各料值("0");*处理运Ir符横按下的除法运算假如当前结果文本樨中的值等于O(00.0)(,作不合法=;(除敷不能为零”);(0;(T)倒数运算(0.0)(操作不合法;(,零没有倒数“);(=1/;)("+")加法运算0;("-">)(减法运算0;("*")集法垢算*=();)("")平方根运算-0;>("*")取余运算0;("")正数负数运算=*(-1);("三m)IK值运算=();("xa2")(甲方运算("xa3")(立方运算- (,3);("->)(需定值运算- ();("->)(取整运算- ();("")<正弦通数运算=();("")(余弦画数运算=();("")正弦画敷运算=();("")(以。为底的对数运算-();("")以10为底的对数运算=10();O(双精度吊点数的运算t1三O;t2=-tl;(t20)(<tl);(0);送,符智于用户按的树H=f* 处SHt被按下的本务* /O(清等各种值-0;("0");=f/* 处理按下的,#* /O(存俗器读出=;(O);/* 处理投下的#* /O(存入存传器=0;* 处31被按下的*务* /O(放在内存中并加上0;("0");,«* 从结果文本相中获得数字*/0(=0;=()();(H