Java课程设计报告-计算器.docx
Java课程设计报告-计算器 Java课程设计报告-计算器 第一部分设计的内容要求 1.1 Windows自带计算器版面设计 1.2计算器计算功能算法实现 第二部分设计思想 2.1根据图形用户界面设计方法设计计算器版面。 容器类(窗口-Window类,面板-Panel类),框架类-Frame, Button类,Label类,TextField类等类的构造方法,菜单(菜单栏、菜单项)的建立于应用。 事件处理机制:监听器类WinClose(),actionPerformed()。 2.2计算器计算功能实现,即按钮监听器的实现 自定义变量:x,y为操作数,op为操作符。根据单击按钮不同进行不同的操作,详见处理按钮单击事件方法actionPerformed (ActionEvent e)(计算功能算法)流程图。 第三部分详细设计 3.2处理按钮单击事件方法actionPerformed(ActionEvent e)(计算器计算功能算法)流程图: 第四部分运行效果图4.1运行初始图: 4.2 计算功能测试图: -1+23.4 4.2 数学分组功能测试图: 第五部分心得与体会 5.1 Java是一门实践性很强的编程语言,每学习到一个新的知识点应当及时动手编写程序,提高动手能力,加深对语言的理解。 5.2 根据Java图形用户界面设计方法设计计算器版面有很多种设计方法,学习过程中应灵活变通,使版面的设计更简单易懂。 5.3 本次设计的计算器还有不足之处,首先还没有实现科学型的计算功能,其次还没有键盘输入功能,因此还应继续努力,更加完善计算器的功能。 第六部分附录 6.1计算器计算功能算法(按钮"="): if(e.getSource()=b26) / "=" str.setLength(0); switch(op) case 0 : if(flag=1) textp.setText(String.valueOf(x+y); else str.setLength(0); str.append(x+y); fun(); break; case 1 : if(flag=1) textp.setText(String.valueOf(x-y); else str.setLength(0); str.append(x-y); fun(); break; case 2 : if(flag=1) textp.setText(String.valueOf(x*y); else str.setLength(0); str.append(x*y); fun(); break; case 3 : if(y=0) textp.setText("除数不能为零"); str.setLength(0); y=0; else if(flag=1) textp.setText(String.valueOf(x/y); else str.setLength(0); str.append(x/y); fun(); break; 6.2 fun()函数(数学分组功能) public void fun() flag=0; int t=0; StringBuffer temp; String sstr=str.toString(); if(sstr.trim().indexOf("-")=1) temp=new StringBuffer(str.substring(1); t=1; else temp=new StringBuffer(str.substring(0); if(sstr.trim().indexOf(".")=-1) int j=temp.length(); for(int i=j;i>3;) temp.insert(i-3,","); i=i-3; if(t=0) textp.setText(temp.toString(); else textp.setText('-'+temp.toString(); else int i=sstr.indexOf('.'); StringBuffer s1=new StringBuffer(sstr.substring(0,i); StringBuffer s2=new StringBuffer(sstr.substring(i+1); for(int j=s1.length();j>3;) s1.insert(j-3,","); j=j-3; if(t=0) textp.setText(s1.toString()+'.'+s2.toString(); else textp.setText('-'+s1.toString()+'.'+s2.toString(); 爱人者,人恒爱之;敬人者,人恒敬之;宽以济猛,猛以济宽,政是以和。将军额上能跑马,宰相肚里能撑船。