您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > Java课程设计报告-计算器
第1页共10页Java课程设计报告-计算器第一部分设计的内容要求1.1Windows自带计算器版面设计1.2计算器计算功能算法实现第二部分设计思想2.1根据图形用户界面设计方法设计计算器版面。①容器类(窗口--Window类,面板--Panel类),框架类--Frame,Button类,Label类,TextField类等类的构造方法,菜单(菜单栏、菜单项)的建立于应用。②事件处理机制:监听器类WinClose(),actionPerformed()。2.2计算器计算功能实现,即按钮监听器的实现自定义变量:x,y为操作数,op为操作符。根据单击按钮不同进行不同的操作,详见处理按钮单击事件方法actionPerformed(ActionEvente)(计算功能算法)流程图。第2页共10页第三部分详细设计3.1calculator()函数(计算器版面设计)流程图:开始新建计算器窗口f新建菜单创建菜单项并添加至菜单新建并设置文本行textp新建并设置缓存区mcache新建并设置计算器上button并注册监听器新建面板p0p1p2p3将textp添加至p0,并设置p0大小将”backspace””CE””C”添加至p1,并设置p1大小及布局将”MC””MR””MS””M+”添加至p2,并设置p2大小及布局将其他button添加至p3,并设置p3大小及布局将面板p0p1p2p3添加至f第3页共10页3.2处理按钮单击事件方法actionPerformed(ActionEvente)(计算器计算功能算法)流程图:开始Textp.setText(“0”Str.setLength(0)YN单击”CE”单击”C”Textp.setText(“0”Str.setLength(0)NY单击”+/-“将textp中数据正负变号单击”+”将textp中数据赋给x,str.setLength(0)y=0,op=0NYNY单击”-“将textp中数据赋给x,str.setLength(0)y=0,op=1将textp中数据赋给x,str.setLength(0)y=0,op=2单击”*”NYNY设置窗口f的属性为f注册事件监听器Winclose结束第4页共10页单击”%”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长度为1去掉textp数据的最后一位,并将str的长度减1将textp赋0,str.setLength(0)NY第5页共10页第四部分运行效果图4.1运行初始图:4.2计算功能测试图:-1+23.4将textp中数据赋给yNY单击”1”~”9”将单击数字插入到textp中数据后,并将textp中数据赋给y将textp赋0,并str.stelength(0);结束第6页共10页4.2数学分组功能测试图:第五部分心得与体会5.1Java是一门实践性很强的编程语言,每学习到一个新的知识点应当及时动手编写程序,提高动手能力,加深对语言的理解。5.2根据Java图形用户界面设计方法设计计算器版面有很多种设计方法,学习过程中应灵活变通,使版面的设计更简单易懂。5.3本次设计的计算器还有不足之处,首先还没有实现科学型的计算功能,其次还没有键盘输入功能,因此还应继续努力,更加完善计算器的功能。第7页共10页第六部分附录6.1计算器计算功能算法(按钮=):第8页共10页if(e.getSource()==b26)//={str.setLength(0);switch(op){case0:if(flag==1)textp.setText(String.valueOf(x+y));else{str.setLength(0);str.append(x+y);fun();}break;case1:if(flag==1)textp.setText(String.valueOf(x-y));else{str.setLength(0);str.append(x-y);fun();}break;case2:if(flag==1)textp.setText(String.valueOf(x*y));else{str.setLength(0);str.append(x*y);fun();}break;case3:if(y==0){textp.setText(除数不能为零);str.setLength(0);y=0;}else第9页共10页{if(flag==1)textp.setText(String.valueOf(x/y));else{str.setLength(0);str.append(x/y);fun();}}break;}}6.2fun()函数(数学分组功能)publicvoidfun(){flag=0;intt=0;StringBuffertemp;Stringsstr=str.toString();if(sstr.trim().indexOf(-)==1){temp=newStringBuffer(str.substring(1));t=1;}elsetemp=newStringBuffer(str.substring(0));if(sstr.trim().indexOf(.)==-1){intj=temp.length();for(inti=j;i3;){temp.insert(i-3,,);i=i-3;}if(t==0)textp.setText(temp.toString());elsetextp.setText('-'+temp.toString());}else第10页共10页{inti=sstr.indexOf('.');StringBuffers1=newStringBuffer(sstr.substring(0,i));StringBuffers2=newStringBuffer(sstr.substring(i+1));for(intj=s1.length();j3;){s1.insert(j-3,,);j=j-3;}if(t==0)textp.setText(s1.toString()+'.'+s2.toString());elsetextp.setText('-'+s1.toString()+'.'+s2.toString());}}
本文标题:Java课程设计报告-计算器
链接地址:https://www.777doc.com/doc-6087357 .html