第1页
华东交通大学课程设计报告
三、设计思路
本应用程序继承自框架类(Frame)此程序使用Frame布局管理器,BorderLayout,将单行文本框加入到“North”区域,包含各种按钮的面板Panelp加入到”Center”区域。包含各种按钮的面板Panelp采用4行5列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中。同时注册按钮事件监听器。如:Buttonb=newButton();b.addActionListener(事件监听器);事件监听器中的事件处理方法voidactionPerformed(ActionEventevt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”1/x”)、退格按钮事件(”退格”)、清零按钮事件(“C”)。在事件处理。触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。计算器完成的是一个数学表达式,如:3+2,所以可以采用一个链表(LinkedList类)来存储数字或字符,如3,+,2分别存储在链表中,最后运算时,可以一一取出来进行运算。
第2页
华东交通大学课程设计报告
设计流程图:
声明布局
网格布局
实例化布局
实例化按钮
数字按钮
功能按钮
编辑菜单
实例化面板
添加各个组件
构造监听器
主函数
结束
第3页
华东交通大学课程设计报告
四、详细设计
1.类设计1.类设计
在该程序中主要定义了一个Counter公有类,在其中定义一些事件和函数,其结构如下:publicclassCounterextendsFrame{通过按钮、标签等各种控件设计各操作窗口的界面;PublicCounter(){}//构造函数addWindowListener(newWindowAdapter(){//匿名类关闭窗口publicvoidwindowClosing(WindowEvente1){}}classBtimplementsActionListener{//构造监听器publicvoidactionPerformed(ActionEvente2){}}publicstaticvoidmain(Stringargs[]){newCounter();}}
1.主要功能实现1.主要功能实现主要功能该程序可以实现简单计算器的基本操作,包括加减乘除运算,用户可以在运行界面的显示屏中输入要计算的数值。该计算器除了一些基本的运算外,还可以实现开方、取余、求倒数等一些附加功能.
第4页
华东交通大学课程设计报告
加法运算的实现:加法运算的实现:b25=newButton("+");b25.setForeground(Color.red);b25.addActionListener(newBt());p3.add(b25);p3.setBounds(60,125,250,150);elseif(e2.getSource()==b25)//单击加号按钮获得x的值和z的值并清空y的值{x=Double.parseDouble(tf1.getText().trim());str.setLength(0);//清空缓冲区以便接收新的另一个运算数y=0d;z=0;}运行结果截图:
第5页
华东交通大学课程设计报告
结果:12+18=30
第6页
华东交通大学课程设计报告
减法运算的实现:法运算的实现:b20=newButton("-");b20.setForeground(Color.red);b20.addActionListener(newBt());p3.add(b20);elseif(e2.getSource()==b20)//单击减号按钮获得x的值和z的值并清空y的值{x=Double.parseDouble(tf1.getText().trim());str.setLength(0);y=0d;z=1;}