资源描述:
《java面向对象程序设计—课程设计论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《Java面向对象程序设计》课程报告课程设计题目:计算器计算器第12页共12页一.设计的内容要求参考Windows附件中的计算器,使用Java语言设计并实现一个简单的计算器。(界面使用AWT或SWING)二.设计思想2.1根据图形用户界面设计方法设计计算器版面。①容器类(窗口--Window类,面板--Panel类),框架类--Frame,Button类,Label类,TextField类等类的构造方法,菜单(菜单栏、菜单项)的建立于应用。②事件处理机制:监听器类WinClose(),actionPerformed()。2.2计算器计算功能实现,即按钮监听器的
2、实现自定义变量:x,y为操作数,op为操作符。根据单击按钮不同进行不同的操作,详见处理按钮单击事件方法actionPerformed(ActionEvente)(计算功能算法)流程图。第12页共12页三.详细设计3.1calculator()函数(计算器版面设计)流程图:开始新建计算器窗口f新建菜单创建菜单项并添加至菜单新建并设置文本行textp新建并设置缓存区mcache新建并设置计算器上button并注册监听器新建面板p0p1p2p3将textp添加至p0,并设置p0大小将”backspace””CE””C”添加至p1,并设置p1大小及布局将”MC””MR
3、””MS””M+”添加至p2,并设置p2大小及布局将其他button添加至p3,并设置p3大小及布局将面板p0p1p2p3添加至f第12页共12页设置窗口f的属性为f注册事件监听器Winclose结束3.2处理按钮单击事件方法actionPerformed(ActionEvente)(计算器计算功能算法)流程图:开始Textp.setText(“0”Str.setLength(0)YN单击”CE”单击”C”Textp.setText(“0”Str.setLength(0)NY单击”+/-“将textp中数据正负变号单击”+”将textp中数据赋给x,str.s
4、etLength(0)y=0,op=0NYNY单击”-“将textp中数据赋给x,str.setLength(0)y=0,op=1将textp中数据赋给x,str.setLength(0)y=0,op=2单击”*”NYNY第12页共12页Y单击”%”NNNNYYY将textp中数据乘以0.01y=0单击”1/x”textp中数据为0给textp赋”除数不能为0”将textp中数据取倒数str.setLength(0);y=0单击”0”textp中数据为0NNNYYY在textp中数据后加”0”,并赋值给y单击”backspace”textp中数据为0str长度
5、为1去掉textp数据的最后一位,并将str的长度减1将textp赋0,str.setLength(0)N第12页共12页将textp中数据赋给yNY单击”1”~”9”将单击数字插入到textp中数据后,并将textp中数据赋给y将textp赋0,并str.stelength(0);结束第四部分运行效果图4.1运行初始图:4.2计算功能测试图:-2+21.4第12页共12页五.代码实现importjava.awt.*;importjava.awt.event.*;publicclassMycounter{publicstaticvoidmain(Stringa
6、rgn[]){newMyFrame().launchFrame();}}classMyFrameextendsFrame{Buttonbtn[];Buttonbtn_add,btn_sub,btn_mul,btn_div,btn_dot,btn_cr,btn_as,btn_eq,btn_sq,btn_bs;TextFieldtf;Panelp;BooleanisDot,operated,equaled;doublestoredNumber;charlastOperator;publicvoidlaunchFrame(){btn=newButton[10];fo
7、r(inti=0;i<10;i++){btn[i]=newButton(""+i);}isDot=false;operated=false;equaled=false;storedNumber=0;lastOperator='?';btn_add=newButton("+");第12页共12页btn_sub=newButton("-");btn_mul=newButton("*");btn_div=newButton("/");btn_dot=newButton(".");btn_cr=newButton("cr");btn_as=newButton("±")
8、;btn_sq=newButton("