枣庄学院信息科学与工程学院课程设计任务书题目:迷你计算器的设计与实现学号:200912210140姓名:王晓杰专业:计算机科学与技术课程:程序设计方法学指导教师:刘梦琳职称讲师完成时间:20 11 年6月----20 11 年7 月枣庄学院信息科学与工程学院制2011年6 月20日课程设计任务书及成绩评定课程设计的任务和具体要求1、课程设计教学基本内容高级语言课程设计不仅是对程序设计能力的综合锻炼,更是对团队合作、软件开发与项目管理过程的训练。
因此,课程设计根据题目的难度由小组合作完成,每个小组1-4人。
整个课程设计分为以下几个阶段进行:选题与开题、系统设计、系统编码实现、系统测试、撰写课程设计报告、系统评价与验收。
2、课程设计教学的要求参加本课程设计的学生,应当认真完成本课程设计的全部过程。
并以最终课程设计成果来证明其独立完成各种实际任务的能力。
从而反映出理解和运用本课程知识的水平和能力。
指导教师签字:日期:指导教师评语成绩:指导教师签字:日期:课程设计所需软件、硬件等系统:Windows XP VisualBasic 6.0语言:C/C++ java课程设计进度计划起止日期工作内容备注自11年6月到11年7月收集资料程序设计撰写论文经过该实践环节,培养学生的探索精神和新能力参考文献、资料索引序号文献、资料名称编著者出版单位[1] 《VA大学实用教程实验指导》耿祥义子工业出版社[2] 《程峰等译,JAVA2核心技术》邓欧鑫机械工业出版社[3] 《JAVA语言入门》王克宏清华大学出版社[4] 《JAVA2核心技术》朱志等编著机械工业出版[5] 《JAVA 1.1使用大全》旭日工作室编著工业出版社[6] 《JAVA语言Applet编程技术》王克宏清华大学出版社目录前言 (4)摘要 (5)关键字 (5)正文 (6)1.需求分析 (6)1.1.基本需求 (6)1.2特殊需求 (6)1.3课程设计的实验环境 (6)2. 系统总体设计 (6)3.详细设计 (7)3.1面板设计 (7)3.2设置各个按钮行为 (8)3. 2. 1 数字按钮功能的实现 (8)3.2.2 操作符(+—*/=)按钮功能实现 (8)3.2.3记忆功能按钮的实现 (9)3.2.4 撤销清除按钮的实现 (9)4.系统测试 (9)总结 (11)参考文献 (11)附录Ⅰ: (11)前言在面对对象方法中,对象和传递消息分别表现事物及事物间相互联系的概念。
类和继承是是适应人们一般思维方式的描述范式。
方法是允许作用于该类对象上的各种操作。
这种对象、类、消息和方法的程序设计范式的基本点在于对象的封装性和类的继承性。
通过封装能将对象的定义和对象的实现分开,通过继承能体现类与类之间的关系,以及由此带来的动态联编和实体的多态性,从而构成了面向对象的基本特征。
面向对象设计是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在“对象”概念基础上的方法学。
对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。
而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。
所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。
按照Bjarne STroustRUP的说法,面向对象的编程范式:l 决定你要的类;2 给每个类提供完整的一组操作;3 明确地使用继承来表现共同点。
由这个定义,我们可以看出:面向对象设计就是“根据需求决定所需的类、类的操作以及类之间关联的过程。
本次面向对象设计采用JAVA实现迷你计算器的实现。
摘要利用面向对象分析方法设计的思想,结合面向对象语言JAVA,设计迷你计算器设计,划分模块,模块的逐一实现,定义和使用类,并掌握类的继承,抽象,多态,使用JAVA接口,从内库中导入和继承,并实现接口。
JAVA swing/awt设计面板和按钮的绑定和实现,利用自定义函数完成辅助功能。
关键字JAVA,面向对象设计,模块,系统测试,迷你计算器正文1.需求分析1.1.基本需求主要支持的数字:0、1、2、3、4、5、6、7、8、9,主要支持的算子:+、-、*、/、%、sqrt 。
支持错误提示。
要求提供图形化操作界面。
1.2特殊需求具备记忆数据,取记忆,清记忆,复制,粘贴等功能。
1.3课程设计的实验环境硬件要求能运行Windows 9.X 操作系统的微机系统。
JAVA 程序设计语言及相应的集成开发环境,J2SDK 和NETbeans 开发工具。
2. 系统总体设计该程序实现对用户输入数据,显示数据,在选择运算符号,并且进行计算,最后显示计算结果。
系统模块划分如下图2.1:本计算器提供给用户的界面分为三个,分别是标准型,科学性以及统计型,三个界面分别实现普通功能,统计功能和科学计算功能。
用户可使用快捷键或界面操作实现三个界面的切换。
由于时间的关系,代码设计单纯的实现了标准型,其他各部分未编码实现。
此次提供的可视化界面清晰明了,标准型迷你计算器数字按钮功能的实现gongn操作符(+—*/=)按钮功能实现面板设计记忆功能按钮的实现设置各个按钮行为撤销清除按钮的实现图表 2.1界面如图2.1.1:此界面风格简洁,对于一般运算均能胜任。
所以此界面为程序默认第一界面。
此处提供一般四则运算按键以及记忆功能按键和推格键,以为用户基本运算所用。
3.详细设计3.1面板设计利用Java GUI布局,使用其中的Swing:导入swing:import javax.swing.*;JFrame frame // JFrame是带有标题和边框的顶层窗口。
JTextField textAnswer; //JTextField 是一个轻量级组件,它允许编辑单行文本。
JPanel panel, panel1, panel2, panel3;// JPanel 是一般轻量级容器。
JMenuBar mainMenu;// 菜单栏的实现。
将 JMenu 对象添加到菜单栏以构造菜单。
JTextField textMemory;// JTextField 是一个轻量级组件,它允许编辑单行文本。
JLabel labelMemSpace; // JLabel用于短文本字符串或图像或二者的显示区。
标签不对输入事件作出反应。
JButton buttonBk, buttonCe, buttonC;// JButton "push" 按钮的实现。
通过 Action 可配置按钮,并进行一定程度的控制。
JMenu editMenu, viewMenu, helpMenu;// JMenu菜单的该实现是一个包含JMenuItem 的弹出窗口,用户选择 JMenuBar 上的项时会显示该 JMenuItem。
JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup, topHelp, aboutCal;// 菜单中的项的实现。
菜单项本质上是位于列表中的按钮。
当用户选择“按钮”时,则执行与菜单项关联的操作。
3.2设置各个按钮行为3.2.1 数字按钮功能的实现主要支持的数字:0、1、2、3、4、5、6、7、8、93.2.2 操作符(+—*/=)按钮功能实现主要支持的算子:+、-、*、/、%、sqrt。
支持错误提示。
要求提供图形化操作界面。
例如'+'操作:if (temp == buttonAdd) {switch (prekey) {case 0:answerd += Double.parseDouble(textAnswer.getText());break;case 1:answerd -= Double.parseDouble(textAnswer.getText());break;case 2:answerd *= Double.parseDouble(textAnswer.getText());break;case 3:if (Double.parseDouble(textAnswer.getText()) == 0) { textAnswer.setText("除数不能为零");clickable = false;}elseanswerd /= Double.parseDouble(textAnswer.getText());break;default:answerd = Double.parseDouble(textAnswer.getText());}textAnswer.setText("");prekey = key = 0;}3.2.3记忆功能按钮的实现具备记忆数据,取记忆,清记忆,复制,粘贴等功能。
'MC'的操作,将内存清0'MS'的操作,将当前文本框内容保存入内存,显示'M'‘MR'的操作,将存储器中的信息输出'M+'的功能,将当前文本框里的数据和存储器中数据相加后,再存入存储器3.2.4 撤销清除按钮的实现按下'Backspace'键,利用循环将当前字符串中的最后一个字母删除;按下'CE'按钮,将当前文本框内数据清除;按下'C'按钮,文本框内数据清除,同时var,answer清0。
4.系统测试1)连续输入运算符输入中如果有操作非法,比如按下两次'+',捕获异常catch (Exception e) {textAnswer.setText("操作非法");clickable = false;}2)做除法运算时除数不为“0”3)开根号运算"负数不能开根号"4)程序正常的响应按钮事件,输入的数值长度受变量length的限定,进行混合四则运算的时候,结果如果不是很大,可以正常显示,当结果太大的时候,有可能超出可能表示的最大值,(结果溢出),本次设计精度采用float浮点数(floating point number),占用4byte ,范围:3.4e + / - 38 (7 个数字(7digits))满足一般使用。
总结我选择了设计一个简单的计算器,在刚开始选择这个程序,还有一点的茫然,因为有四种运算,在设计上有点麻烦,但既然选择这个题目,就要把它做好,然后就开始写自己的设计思路,这样一步步的就感觉有一点的信心了。
通过了这几天的课程设计,对于我这个编程新手来说,还的确有些困难.不过有志者事竟成。
首先,我需要了解一些基本的术语。