JAVA课程设计计算器

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《JAVA程序设计》课程设计任务书一、课程设计的目的1、培养学生面向对象编程的思想;2、使学生熟悉JAVA语言的使用;3、培养学生JAVA编程的思想和方法;4、使学生掌握JAVA编程调试的基本技能;5、培养学生分析、解决问题的能力。二、课程设计内容与要求1、内容一:1简单计算器[题目描述]使用Java的GUI图形用户界面编程设计并编写一个计算器程序,用户可以通过鼠标或者键盘操作输入参加运算的数值和运算符,要求能进行加、减、乘、除等混合运算。[基本要求]实现加、减、乘、除的双目单类别的基础运算;[实现提示]GUI编程Component的事件响应。参考界面《JAVA程序设计》课程设计一、系统中所使用的数据对象及说明1、Calculator类属性属性名称类型描述JmbJMenuBar菜单栏Jm1jm2jm3JMenu菜单JmiJMenuItem菜单项fJFrame实例化对象Panel11JPanel输入面板CommandsPanelJPanel运算符面板calckeysPanelJPanel数字面板showlineJTextField数据输出框backspaceJButton退格键CEJButton清空CJButton删除1/XJButton取余daoJButton取倒数addJButton数字相加jianJButton数字相减chengJButton数字相乘quzhengJButton数字相除dianJButton点符号dengJButton等于号zeroJButton一oneJButton二twoJButton三threeJButton四fourJButton五fiveJButton六sixJButton七sevenJButton八eightJButton九num1String保存第一个运算数字operatorString保存运算符号方法方法名称功能Calculator计算器布局Add添加组件、面板addMouseListener添加鼠标监听事件setJMenuBar设置菜单二、系统功能结构及相关算法描述1、系统功能结构系统功能结构图2、相关算法流程图(1)加减法流程计算器标题栏菜单栏文本框按键标题:计算器编辑复制粘贴查看标准型科学型数学分组帮助帮助主题关于计算器文本框1-9、BackspaceCE、C+、-、*、/%、^、.、1/x=Mun1是否存在YN(2)乘除法流程Mun1是否存在执行乘、除法运算得出SYN(3)乘方取余法流程三、系统运行结果(截图)1、主菜单将S添加到show文本框Mun1是否存在执行乘方、取余法运算得出S将S添加到show文本框YN四、课程设计总结通过此次课程设计,使我更加扎实的掌握了有关JAVA图形界面布局等方面的知识,虽然在设计过程中也遇到了很多问题,但经过一次又一次的思考,一遍又一遍检查和反复修改终于找到了原因所在,也暴露了前期我在这方面的知识欠缺。课程设计是一种实践活动,不但可以提升专业知识和专业能力,也培养了我们独立思考,动手操作的能力,使我对抽象的知识有了具体的认识。这对于我们的将来也有很大的帮助。此次课程设计也让我明白没有最完善的程序代码,只有不断地改善才能使程序变得更完美,同时也增强了我对JAVA的兴趣,相信继续保持下去对JAVA的理解一定会更上一层楼。附录:程序源码importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing.JPanel;importjavax.swing.JSeparator;importjavax.swing.JTextField;publicclassCalculatorextendsJFrameimplementsActionListener{JMenuBarjmb;JMenujm1,jm2,jm3;JMenuItemjmi;/**计算器上的键的显示名字*/privatefinalString[]KEYS={7,8,9,/,sqrt,4,5,6,*,%,1,2,3,-,1/x,0,+/-,.,+,=};/**计算器上的功能键的显示名字*/privatefinalString[]COMMAND={Backspace,CE,C};/**计算器上键的按钮*/privateJButtonkeys[]=newJButton[KEYS.length];/**计算器上的功能键的按钮*/privateJButtoncommands[]=newJButton[COMMAND.length];/**计算器左边的M的按钮*//**计算结果文本框*/privateJTextFieldresultText=newJTextField(0);//标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字privatebooleanfirstDigit=true;//计算的中间结果。privatedoubleresultNum=0.0;//当前运算的运算符privateStringoperator==;//操作是否合法privatebooleanoperateValidFlag=true;/***构造函数*/publicCalculator(){super();JMenuBarjmb=newJMenuBar();this.setJMenuBar(jmb);JMenujm=newJMenu(编辑(E));jmb.add(jm);jmi=newJMenuItem(复制(c)Ctrl+c);jm.add(jmi);jmi=newJMenuItem(粘贴(p)Ctrl+v);jm.add(jmi);jm2=newJMenu(查看(v));jmb.add(jm2);jmi=newJMenuItem(标准型(T));jm2.add(jmi);jmi=newJMenuItem(科学型(S));jm2.add(jmi);jm2.add(newJSeparator());jmi=newJMenuItem(数学分组(I));jm2.add(jmi);jm3=newJMenu(帮助(H));jmb.add(jm3);jmi=newJMenuItem(帮助主题(H));jm3.add(jmi);jm3.add(newJSeparator());jmi=newJMenuItem(关于计算器(A));jm3.add(jmi);//初始化计算器init();//设置计算器的背景颜色this.setBackground(Color.LIGHT_GRAY);this.setTitle(计算器);//在屏幕(500,300)坐标处显示计算器this.setLocation(500,300);//不许修改计算器的大小this.setResizable(false);//使计算器中各组件大小合适this.pack();}/***初始化计算器*/privatevoidinit(){//文本框中的内容采用右对齐方式resultText.setHorizontalAlignment(JTextField.RIGHT);//不允许修改结果文本框resultText.setEditable(false);//设置文本框背景颜色为白色resultText.setBackground(Color.WHITE);//初始化计算器上键的按钮,将键放在一个面板内JPanelcalckeysPanel=newJPanel();//用网格布局器,4行,5列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素calckeysPanel.setLayout(newGridLayout(4,5,3,3));for(inti=0;iKEYS.length;i++){keys[i]=newJButton(KEYS[i]);calckeysPanel.add(keys[i]);keys[i].setForeground(Color.blue);}//运算符键用红色标示,其他键用蓝色表示keys[3].setForeground(Color.red);keys[8].setForeground(Color.red);keys[13].setForeground(Color.red);keys[18].setForeground(Color.red);keys[19].setForeground(Color.red);//初始化功能键,都用红色标示。将功能键放在一个面板内JPanelcommandsPanel=newJPanel();//用网格布局器,1行,3列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素commandsPanel.setLayout(newGridLayout(1,3,3,3));for(inti=0;iCOMMAND.length;i++){commands[i]=newJButton(COMMAND[i]);commandsPanel.add(commands[i]);commands[i].setForeground(Color.red);}//下面进行计算器的整体布局,将calckeys和command面板放在计算器的中下部//新建一个大的面板,将上面建立的command和calckeys面板放在该面板内JPanelpanel1=newJPanel();//面板采用边界布局管理器,面板里组件之间的水平和垂直方向上间隔都为3象素panel1.setLayout(newBorderLayout(3,3));panel1.add(North,commandsPanel);panel1.add(Center,calckeysPanel);//建立一个面板放文本框JPaneltop=newJPanel();top.setLayout(newBorderLayout());top.add(Center,resultText);//整体布局getContentPane().setLayout(newBorderLayout(3,5));getContentPane().add(North,top);getContentPane().add(Center,panel1);//为各按钮添加事件监听器//都使用同一个事件监听器,即本对象。本类的声明中有implementsActionListenerfor(inti=0;iKEYS.length;i++){keys[i].addActionListener(this);}for(inti=0;iCOMMAND.length;i++){commands[i].addActionListener(this);}}/***处理事件*/publicvoidactionPerformed(ActionEvente){//获取事件源的标签Stringlabel=e.getActionCommand();if(label.equals(COMMAND[0])){//用户按了Backspace键handleBackspace();}elseif(label.equals(COMMAND[1])){//用户按了CE键resultText.setText(0);}elseif(label.equals(COMMAND[2])){//用户按了C键handleC();}elseif(0123456789..indexOf(label)=0){//用户按了数

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功