《简单计算器的设计与实现.doc》由会员分享,可在线阅读,更多相关《简单计算器的设计与实现.doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除 淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 面向对象课程设计 选题名称: 简单计算器的设计与实现 姓 名: 严超 学 号: 110912128 专业班级: 网络工程 网络091 系 (院): 计算机工程学院 设计时间: 2011.6.132011.6.24 设计地点: 软件实验室、教室 成绩:指导教师评语: 签名: 年 月 日【精品文档】第 19 页1课程设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知
2、识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力。熟练运用GUI标准组件和布局管理器,正确合理地利用常用AWT和Swing组件进行图形界面的设计;理解Java的事件处理机制,正确运用Java的事件处理机制及事件委托模型,编写图形界面组件的事件处理程序;理解Java多线程机制,掌握线程使用方法。2课程设计任务与要求:课程设计可选用NetBeans、Eclipse、JBuilder等作为开发平台以提高开发效率,尽可能熟练掌握其中一种集成开发环境。建议采用UML建模技术进行系统的分析设计,在Visio中画出系统用例图和类图,并将UML图复
3、制到设计报告中。通过这次设计,要求掌握以下内容:1) 面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用2) 类、包、接口的定义与使用3) 常用工具类与算法的实现(数组、向量、字符串、链表)4) Java常用标准GUI组件及其事件处理5) Java的异常处理机制6) Java的数据库连接技术7) Java的多线程技术与动画制作Java的网络编程3课程设计说明书一、需求分析现在生活中,银行、超市、酒店等只要与买卖有关的行业甚至可以说任何行业都离不开计算器,连我们学习中也不可避免的用到计算器,在此设计一个简单计算器提供简单的加、减、乘、除运算。二、概要设计计算器的实现主要包含图形界面的
4、排版和计算方法图形界面:1.定义一些按钮和文本框并初始化 2.将这些按钮和文本框进行排版、美化 3.为按钮注册事件监听器 4.设计计算方法 5.进行最后整合定义文本框、按钮 文本框、按钮初始化初始化按钮添加界面排版、美化按钮响应加减计 算计算方法乘除计算结果三、详细设计1.加载工具包2. public void init()/初始化按钮、文本框并进行界面排版 1).定义界面中的数字按钮和文本框 2).按钮出事初始化并确定其值,确定文本框大小3).将界面进行排版、美化4).按钮响应 3. public void actionPerformed(ActionEvent e)/动作事件,各按钮响应;
5、判断是什么运算 if()/判断它是不是加法运算 else if(operator=bsubtract)判断它是不是减法运算 else if(operator=bmultiply)判断它是不是乘法运算 else if(operator=bdivision)判断它是不是除法运算 else if(operator=bdelete) 判断它是不是清零 else if(operator=bequals) 判断它是不是求值4. public String result()通过前面的判断进行求值5. public class Calculator/计算调用函数,将代码进行整合形成完整的程序4课程设计成果/对
6、界面进行初始化、排版、美化 frame =new JFrame(欢迎使用计算器);/初始化框架,设置标题 text =new JTextField(18);/文本框长度 text.setHorizontalAlignment(JTextField.RIGHT);/文本框里显示数据是从右到左 text.setEditable(false);/文本框不可以编辑 text.setText(0);/文本框初始值为0 text.setForeground(Color.blue);/框架颜色设为蓝色 container =frame.getContentPane();/取得内容面板 b0 =new JBu
7、tton(0);/设置按钮的值 b1 =new JButton(1); b2 =new JButton(2); b3 =new JButton(3); b4 =new JButton(4); b5 =new JButton(5); b6 =new JButton(6); b7 =new JButton(7); b8 =new JButton(8); b9 =new JButton(9); badd =new JButton(+); bsubtract =new JButton(-); bmultiply =new JButton(*); bdivision =new JButton(/); b
8、equals =new JButton(=); bdelete =new JButton(c);/清零 bdian=new JButton(.); pane=new JPanel(); pane1 =new JPanel(); pane2 =new JPanel(); pane3 =new JPanel(); pane4 =new JPanel(); pane1.setLayout(new GridLayout(1,4);/面板布局,1行4列 pane2.setLayout(new GridLayout(1,4); pane3.setLayout(new GridLayout(1,4); pa
9、ne4.setLayout(new GridLayout(1,5); /设计界面,将其美化 pane.add(text); pane1.add(b7); pane1.add(b8); pane1.add(b9); pane1.add(badd); pane2.add(b4); pane2.add(b5); pane2.add(b6); pane2.add(bsubtract); pane3.add(b1); pane3.add(b2); pane3.add(b3); pane3.add(bmultiply); pane4.add(b0); pane4.add(bdian); pane4.add
10、(bdelete); pane4.add(bequals); pane4.add(bdivision); container.setLayout(new GridLayout(5,1);/将下面5个组件添加到界面中 container.add(pane); container.add(pane1); container.add(pane2); container.add(pane3); container.add(pane4)/监听事件处理,判断运算是属于“+,-,/,*”中的哪个 ActionListener a =new ActionListener() public void actio
11、nPerformed(ActionEvent e)/动作事件,各按钮响应 JButton operator=(JButton)e.getSource(); if(operator=badd)/判断它是不是加法运算 operation=add; firstNum =text.getText(); flag=1; else if(operator=bsubtract)/判断它是不是减法运算 operation=subtract; firstNum =text.getText(); flag=1; else if(operator=bmultiply)/判断它是不是乘法运算 operation=mu
12、ltiply; firstNum =text.getText(); flag=1; else if(operator=bdivision)/判断它是不是除法运算 operation=division; firstNum =text.getText(); flag=1; else if(operator=bdelete) text.setText(0);/清零 flag=1; else if(operator=bequals) secondNum =text.getText(); text.setText(result();/调用result()函数 flag=1; else if(flag=0
13、) String str =text.getText(); if(str.length()=28)/文本框最长显示28 else if(new Double(str).doubleValue()=0) text.setText(operator.getActionCommand(); else text.setText(str+operator.getActionCommand(); else text.setText(operator.getActionCommand(); flag=0; ;/计算方法public String result() double num1 =(new Doub
14、le(firstNum).doubleValue(); double num2 =(new Double(secondNum).doubleValue(); if(operation.equals(add) return (+(num1+num2); else if(operation.equals(subtract) return(+(num1-num2); else if(operation.equals(multiply) return(+(num1*num2); else if(operation.equals(division) return(+(num1/num2); return
15、(0); 以下是程序运算运行界面如图1图1加法运算:计算45+5运行过程如图2和图3图2图3计算结果如图4图4运算后清零,如图5图5减法运算:计算42.5-8运行过程如图6和图7图6图7计算结果如图8图8乘法运算:计算25.2*2运行过程如图9和图10图9图10计算结果如图11图11除法运算:计算25/5运行过程如图12和图13图12图13计算结果如图14图145.课程设计心得这次的课程设计做的是计算器的设计与实现,一开始拿到这个题目时先大致的把计算器所需要的都罗列出来。想了想程序大致需要三个部分,首先,就是计算器的图形界面,然后就是它的计算方法的判断,最后就是求计算结果。然后按照这个大体方向把每一步都具体化就得到了完整的程序,其中遇到的一些困难在同学的帮助下基本都解决了。通过这次的课程设计能让我对GUI标准组件更加理解,能更熟练的运用GUI标准组件和布局管理器,正确合理地利用常用AWT和Swing组件进行图形界面的设计。通过这次实践加深了我对面向对象程序设计的理论、方法和基础知识的理解,能更轻松的掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力。同时这也是检验自己在这学期里对java这门课程学习情况,看看自己到底学会了哪些,还有哪些没有掌握牢固,以便以后更有目的地的学习。参考资料:实验指导书