




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 面向对象课程设计 选题名称: 简单计算器的设计与实现 姓 名: 严超 学 号: 110912128 专业班级: 网络工程 网络091 系 (院): 计算机工程学院 设计时间: 2011.6.132011.6.24 设计地点: 软件实验室、教室 成绩:指导教师评语: 签名: 年 月 日面向对象课程设计报告 第 20 页,共 20 页1课程设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力。熟练运用GUI标准组件和布局管理器,正确合理地利用常用AWT和Swing组件进行图形界面的设计;理解Java的事件处理机制,正确运用Java的事件处理机制及事件委托模型,编写图形界面组件的事件处理程序;理解Java多线程机制,掌握线程使用方法。2课程设计任务与要求:课程设计可选用NetBeans、Eclipse、JBuilder等作为开发平台以提高开发效率,尽可能熟练掌握其中一种集成开发环境。建议采用UML建模技术进行系统的分析设计,在Visio中画出系统用例图和类图,并将UML图复制到设计报告中。通过这次设计,要求掌握以下内容:1) 面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用2) 类、包、接口的定义与使用3) 常用工具类与算法的实现(数组、向量、字符串、链表)4) Java常用标准GUI组件及其事件处理5) Java的异常处理机制6) Java的数据库连接技术7) Java的多线程技术与动画制作Java的网络编程3课程设计说明书一、需求分析现在生活中,银行、超市、酒店等只要与买卖有关的行业甚至可以说任何行业都离不开计算器,连我们学习中也不可避免的用到计算器,在此设计一个简单计算器提供简单的加、减、乘、除运算。二、概要设计计算器的实现主要包含图形界面的排版和计算方法图形界面:1.定义一些按钮和文本框并初始化 2.将这些按钮和文本框进行排版、美化 3.为按钮注册事件监听器 4.设计计算方法 5.进行最后整合定义文本框、按钮 文本框、按钮初始化初始化按钮添加界面排版、美化按钮响应加减计 算计算方法乘除计算结果三、详细设计1.加载工具包2. public void init()/初始化按钮、文本框并进行界面排版 1).定义界面中的数字按钮和文本框 2).按钮出事初始化并确定其值,确定文本框大小3).将界面进行排版、美化4).按钮响应 3. public void actionPerformed(ActionEvent e)/动作事件,各按钮响应;判断是什么运算 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课程设计成果/对界面进行初始化、排版、美化 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 JButton(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(/); bequals =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); pane4.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(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 actionPerformed(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=multiply; 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) 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 Double(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(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语言进行面向对象设计的基本方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年铜川社区笔试真题及答案
- 引导信贷资金投向消费领域的策略及实施路径
- 钢结构安装现场管理与协调方案
- 小学音乐教师招聘考试试题及答案
- DB65T 4376-2021 甜菜孢囊线虫病鉴定和监测技术规程
- 语文综合实践活动:培养团队精神和合作意识教学设计-2025-2026学年中职语文职业模块 服务类语文版
- 第三节 室内乐说课稿-2025-2026学年中职音乐第三单元 璀璨的器乐高教版(公共艺术·音乐篇·第二版)
- DB65T 4508-2022 驴鲜精人工授精技术规程
- 1.4 什么是人工智能说课稿-2023-2024学年小学信息技术(信息科技)小学版(2024)人工智能通识(清华大学版)
- 出租车考试题及答案
- 人教版(2024)八年级上册英语Unit 3 Same or Different 教案
- 2025新版一级建造师《水利水电工程管理与实务》考点速记手册
- 脑卒中的康复护理医学课件
- 【MOOC】《电路实验》(东南大学)章节中国大学慕课答案
- Q∕GDW 12130-2021 敏感用户接入电网电能质量技术规范
- 2019年广东公务员考试行测真题及答案(县级)
- 电工常用工具(课堂PPT)
- 虹桥高铁外墙顾问建议ppt课件
- (高清版)外墙外保温工程技术标准JGJ144-2019
- 陕西省素质教育督导评估316指标体系(初中)
- 卫生统计学选择题(方积乾)
评论
0/150
提交评论