程序设计课程设计报告设计题目:计算器模拟程序专业班级:信管学号:姓名:指导教师:郭春燕时间:2011.06.13-2011.06.24程序设计课程设计报告-1-摘要计算器模拟程序课程项目是在JAVA学习过程一项要的内容,它涵盖了对JAVA内容学习的考察,同时通过实验项目,也加强了学生的动手能力。进一步加深对Java语言的理解和掌握,把自己所学的理论知识运用到实际应用中去。计算器模拟程序是一个小的计算算程序,包括日常我们用到的一些计算方法。主要研究的是加法、减法、乘法、出发、三角函数、阶乘、以及次方等。采用的是JAVA语言进行编写,引用JAVA自带数据库中swt包与math包中的一些构造类与函数类,然后自己构造板块和模型,从而完成自己的程序设计项目。程序设计课程设计报告-2-目录一、课题概述..............................................................................................................................-3-1、课题任务........................................................................................................................-3-2、课题目的........................................................................................................................-3-3、课题要求........................................................................................................................-3-二、设计思路及采取的方案......................................................................................................-4-1、总体设计思想................................................................................................................-4-2、实验方案........................................................................................................................-4-三、实验结果............................................................................................................................-16-四、总结体会............................................................................................................................-16-1、遇到的难题..................................................................................................................-16-2、一些应用中的技巧......................................................................................................-16-3、心得体会与收获..........................................................................................................-17-程序设计课程设计报告-3-一、课题概述1、课题任务自主设计与编写一个计算机模拟程序,实现一个简单的计算器程序,能够进行简单的数据运算。(1)通过实践,进一步对JAVA程序语言的熟练;(2)自主的设计,加强了学生的设计与动脑的过程;(3)编写java源程序;(4)完成程序设计课程设计报告;2、课题目的1、复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;3、培养学生在项目开发中创新意识及能力;4、通过编写一个基于JAVA的应用系统综合实例,来掌握Java语言编程技巧,熟练运用各部分知识。3、课题要求课程设计必须自己独立完成,严禁抄袭他人;界面模拟Windows中的计算器程序。实现基本数学运算、函数等功能:加、减、乘、除、阶乘、正弦、余弦和指数运算;(3)实现要点:添加相关组件并进行按钮事件处理;(4)界面要求:用图形界面实现。简单界面可参考图1。程序设计课程设计报告-4-图1二、设计思路及采取的方案1、总体设计思想(1)在设计计算器之前构造好计算器的版块与模型;(2)通过Calculator构造方法,设计好窗口的框架(面板,按钮,背景颜色,大小,并把相应的按钮添加监视器);(3)编写主函数,创建计算器对象;(4)编写加减乘除,三角函数,阶乘,次方等计算方法。2、实验方案importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.lang.Math.*;publicclassCalculatorextendsFrameimplementsActionListener{String[]label={1,2,3,+,sin,CE,4,5,6,-,cos,--,7,8,9,*,y^x,1/x,0,+/-,.,/,n!,=};Button[]button;Panelp1;程序设计课程设计报告-5-JTextFieldtext1;StringBufferstr=newStringBuffer();inta,b=0;doublex=0,y=0;booleanappend=false;publicCalculator()//旆?{text1=newJTextField(0.,20);text1.setHorizontalAlignment(JTextField.RIGHT);text1.setEditable(false);button=newButton[label.length];p1=newPanel();p1.setLayout(newGridLayout(4,6,1,1));//校校式for(inti=0;ibutton.length;i++){button[i]=newButton(label[i]);//驯签诎钮button[i].setForeground(Color.blue);//钮色button[i].addActionListener(this);//每钮蛹p1.add(button[i]);//钮拥签}Frameframe=newFrame(熊氏计算器);//默贸杀呓绮?frame.setLayout(newBorderLayout());frame.add(BorderLayout.NORTH,text1);frame.add(BorderLayout.CENTER,p1);frame.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEventeve){System.exit(0);}});//录frame.setSize(350,250);frame.setLocation(200,200);frame.setVisible(true);程序设计课程设计报告-6-}publicstaticvoidmain(Stringargs[]){Calculatorxiong=newCalculator();}publicvoidactionPerformed(ActionEvente){Strings=e.getActionCommand();//硕氐址if(s.equals(+))//鍔犳硶{str.setLength(0);if(b==0){a=b=1;y=0;text1.setText(+x);}else{b=a;a=1;switch(b){程序设计课程设计报告-7-case1:x+=y;text1.setText(+x);break;case2:x-=y;text1.setText(+x);break;case3:x*=y;text1.setText(+x);break;case4:x/=y;text1.setText(+x);break;}}}elseif(s.equals(-))//鍑忔硶{str.setLength(0);if(b==0){a=b=2;text1.setText(+x);}else{b=a;程序设计课程设计报告-8-a=2;switch(b){case1:x=x+y;text1.setText(+x);break;case2:x=x-y;text1.setText(+x);break;case3:x=x*y;text1.setText(+x);break;case4:x=x/y;text1.setText(+x);break;}}}elseif(s.equals(*))//涔樻硶{str.setLength(0);if(b==0){a=b=3;text1.setText(+x);}程序设计课程设计报告-9-else{b=a;a=3;switch(b){case1:x=x+y;text1.setText(+x);break;case2:x=x-y;text1.setText(+x);break;case3:x=x*y;text1.setText(+x);break;case4:x=x/y;text1.setText(+x);break;}}}elseif(s.equals(/))//闄ゆ硶{str.setLength(0);if(b==0){程序设计课程设计报告-10-a=b=4;text1.setText(+x);}else{b=a;a=4;switch(b){case1:x=x+y;text1.setText(+x);break;case2:x=x-y;text1.setText(+x);break;case3:x=x*y;text1.setText(+x);break;case4:x=x/y;text1.setText(+x);break;}}}elseif(s.equals(.))//灏忔暟鐐?程序设计课程设计报告-11-{append=true;if(text1.getText().trim().indexOf('.')!=-1);else{if(text1.getText().trim().equals(0)){str.setLength(0);text1.setText((str.append(0+s)).toString());}else{text1.setText((str.append(s)).toString());}}}elseif(s.equals(