Java课程设计保存过程的计算器

合集下载

java计算器课程设计

java计算器课程设计
2.探索并实现用户自定义函数的功能,拓展计算器的灵活性;
3.通过线程控制,实现计算器的异步计算功能,如后台计算与进度显示;
4.介绍网络编程的基础,探讨如何实现网络分布式计算器;
5.结合数据库知识,设计并实现计算器的历史记录管理功能;
6.分析并讨论计算器在性能优化方面的策略,如减少重复计算、缓存结果等;
7.鼓励学生进行创新设计,如结合人工智能技术,实现智能计算器功能。
5、教学内容
《Java计算器课程设计》在课程的最后阶段,将重点攻克以下教学内容:
1.代码重构,优化已有计算器项目的结构,提高代码可读性和可维护性;
2.实施单元测试,确保各个模块功能的正确性和稳定性;
3.介绍软件发布流程,包括版本控制、构建和打包等;
5.使用switch-case语句实现基本的运算操作(加、减、乘、除);
6.异常处理,避免除数为0等运行错误;
7.使用循环结构,实现计算器的重复使用功能。
2、教学内容
《Java计算器课程设计》紧接着上一部分,进一步深化以下教学内容:
1.引入函数的概念,将计算功能模块化;
2.设计并实现自定义函数,如加法、减法、乘法、除法运算;
5.探讨设计模式在计算器中的应用,如工厂模式创建运算对象;
6.整合所学知识,实现一个具有图形用户界面的计算器应用程序;
7.强调代码规范和注释的编写,培养学生的良好编程习惯。
4、教学内容
《Java计算器课ຫໍສະໝຸດ 设计》在高阶层次上,将以下教学内容融入课程:
1.引导学生运用事件处理机制,增强图形用户界面的交互性;
3.理解并应用变量的作用域,区分局部变量与全局变量;
4.掌握并能运用Java中的数据类型转换;
5.实现用户界面优化,包括但不限于菜单显示、错误提示、运算结果展示;

Java课程设计待选题目

Java课程设计待选题目

五、待选题目:(不能重复选择即选过的题目别的组不能再选)1、Java桌面应用和信息管理系统(1)学生毕业论文管理系统(2人)(2)固定资产管理系统(2人)(3)企业人事管理系统(2人)(4)酒店管理系统(2人)(5)小区物业管理系统(2人)(6)标准化考试系统(2人)(7)学生学籍管理系统(2人)(8)日历记事本系统(1人)(9)中国象棋对弈系统(1人)(10)扫雷游戏(1人)(11)走迷宫游戏(1人)(12)8皇后问题演示系统(1人)(13)保存计算过程的计算器(1人)(14)骑士游历演示系统(1人)(15)俄罗斯方块游戏(2人)(16)人事管理系统(2人)(17)学生信息管理系统(2人)(18)超市管理系统(2人)(19)高考管理系统(2人)(20)雇员管理系统(2人)(21)运动会成绩管理系统(2人)(22)图书管理系统(2人)(23)网络聊天程序(2人)(24)文档编辑器(至少具有记事本功能)(1人)(25)Java媒体播放器的设计与实现(2人)(26)拼图游戏(1人)(27)进销存管理系统(2人)(28)企业内部通信系统(2人)(29)网络斗地主(1人)(30)“连连看”游戏(1人)(31)网络五子棋(1人)(32)实验教学管理系统(2人)(33)OA办公系统(2人)(34)基于多线程的端口扫描器(1人)(35)资产管理系统(2人)参考资料:[1]耿祥义,张跃平.《Java课程设计》.清华大学出版社,2006年。

[2]黄晓东.《Java课程设计案例精编》.中国水利水电出版社,2007年。

[3]袁然,郑自国,邹丰义.《java案例开发集锦》,电子工业出版社,2005年。

[4]黄明等编著,Java系统设计与开发实例(第二版).机械工业出版社,2005年[5]苗春义等编著Java项目开发全程实录清华大学出版社。

[6]其它参考资料可参看或其它网站。

[7]周亚辉,Java数据库系统项目开发实践,科学出版社。

Java课程设计报告计算器

Java课程设计报告计算器

Java课程设计报告-计算器第一部分设计的内容要求1.1 Windows自带计算器版面设计1.2计算器计算功能算法实现第二部分设计思想2.1根据图形用户界面设计方法设计计算器版面。

①容器类(窗口--Window类,面板--Panel类),框架类--Frame,Button类,Label类,TextField类等类的构造方法,菜单(菜单栏、菜单项)的建立于应用。

②事件处理机制:监听器类WinClose(),actionPerformed()。

2.2计算器计算功能实现,即按钮监听器的实现自定义变量:x,y为操作数,op为操作符。

根据单击按钮不同进行不同的操作,详见处理按钮单击事件方法actionPerformed(ActionEvent e)(计算功能算法)流程图。

第三部分详细设计3.2处理按钮单击事件方法actionPerformed(ActionEvent e)(计算器计算功能算法)流程图:第四部分运行效果图4.1运行初始图:4.2 计算功能测试图:-1+23.4 将textp中数据赋给yN Y单击”1”~”9”将单击数字插入到textp中数据后,并将textp中数据赋给y 将textp赋0,并str.stelength(0);结束4.2 数学分组功能测试图:第五部分心得与体会5.1 Java是一门实践性很强的编程语言,每学习到一个新的知识点应当及时动手编写程序,提高动手能力,加深对语言的理解。

5.2 根据Java图形用户界面设计方法设计计算器版面有很多种设计方法,学习过程中应灵活变通,使版面的设计更简单易懂。

5.3 本次设计的计算器还有不足之处,首先还没有实现科学型的计算功能,其次还没有键盘输入功能,因此还应继续努力,更加完善计算器的功能。

第六部分附录6.1计算器计算功能算法(按钮"="):if(e.getSource()==b26) // "="{str.setLength(0);switch(op){case 0 :if(flag==1)textp.setText(String.valueOf(x+y));else{str.setLength(0);str.append(x+y);fun();}break;case 1 :if(flag==1)textp.setText(String.valueOf(x-y)); else{str.setLength(0);str.append(x-y);fun();}break;case 2 :if(flag==1)textp.setText(String.valueOf(x*y)); else{str.setLength(0);str.append(x*y);fun();}break;case 3 :if(y==0){textp.setText("除数不能为零");str.setLength(0);y=0;}else{if(flag==1)textp.setText(String.valueOf(x/y)); else{str.setLength(0);str.append(x/y);fun();}}break;}}6.2 fun()函数(数学分组功能)public void fun(){flag=0;int t=0;StringBuffer temp;String sstr=str.toString();if(sstr.trim().indexOf("-")==1){temp=new StringBuffer(str.substring(1));t=1;}elsetemp=new StringBuffer(str.substring(0));if(sstr.trim().indexOf(".")==-1){int j=temp.length();for(int i=j;i>3;){temp.insert(i-3,",");i=i-3;}if(t==0)textp.setText(temp.toString());elsetextp.setText('-'+temp.toString());}else{int i=sstr.indexOf('.');StringBuffer s1=new StringBuffer(sstr.substring(0,i));StringBuffer s2=new StringBuffer(sstr.substring(i+1));for(int j=s1.length();j>3;){s1.insert(j-3,",");j=j-3;}if(t==0)textp.setText(s1.toString()+'.'+s2.toString());elsetextp.setText('-'+s1.toString()+'.'+s2.toString());}}。

java课程设计报告计算器

java课程设计报告计算器

目录一、课程设计目的 (2)二、课程设计任务 (2)2.1、设计任务 (2)2.2、课程设计要求: (2)2.3、需求分析 (2)三、开发工具与平台 (3)3.1、开发工具 (3)3.2、开发平台 (3)四、设计思路 (4)4.1、界面设计 (4)4.2.1、逻辑设计 (4)4.2.2、程序流程图 (5)4.2.3、主要代码展示及说明 (5)4.3、程序测试 (10)五、实验小结 (11)六、附录(程序代码) (12)一、课程设计目的1、熟练掌握java面向对象编程。

2、选择合适的数据结构实现需求。

3、熟练使用各种控制结构。

4、GUI组件、事件处理技术。

二、课程设计任务2.1、设计任务设计一个简易的计算器,可以进行四则运算:加、减、乘、除等(限于十进制下)程序要求:(1)应具有相应的界面,可参考Windows操作系统自带的计算器界面。

(2)操作符号定为:“+”,“-”,“*”,“/”,“+/-”等。

(按国际惯例设计)(3)用户通过点击程序界面上按钮,实现数字、运算符的输入操作。

(4)以上部分为必须完成的内容。

选作部分:(1)具有操作符号“1/x”,“sqrt”(开方),“.”(小数功能)等。

2.2、课程设计要求:(1)应用自己所学课程知识完成对计算器的基本任务。

(2)查阅相关资料,学习和掌握项目中涉及的新知识,提高自学能力。

(3)通过应用java程序编写计算器来提升自己对简单的图形界面有一定的掌握和了解。

2.3、需求分析1.设计的计算器可以完成加法、减法、乘法、除法的简单运算。

2.实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。

3.添加小数点功能,用以实现浮点型数据的计算。

4.使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相关的计算。

三、开发工具与平台3.1、开发工具Microsoft Windows 7旗舰版3.2、开发平台JDK1.6.0-02 和UE编译器四、设计思路4.1、界面设计:(如图3-1)图3-14.2.1、逻辑设计:(1)根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个文本框,20个按钮,总体界面用BorderLayout布局,文本框放置在最NORTH,然后0到9以及+,-,*,/等按钮放置到一个面板Panel中,完成界面设计。

JAVA课程设计简单的计算器(含代码)

JAVA课程设计简单的计算器(含代码)

Java程序课程设计任务书一、主要任务与目标1. 掌握java语言2. 创建一个简单的计算器,具有简单人机交互界面,易于操作,便于进行数据之间的简单运算。

二、具体要求(包括技术要求等):1)能够实现基本的加、减、乘、除四则运算及开方,乘方运算;2)如输入数据时,出现错误,可以修改;3)运算结果能正确显示;可以清零;4)拥有登陆注册功能;5)可以查看历史记录;学习并掌握以下技术:Java、awt,swing等熟练使用以下开发工具:Jdk,JCreate 等实现计算器的上述的功能。

三、计划进度1.12月28日—12月29日:搜集资料、查阅文献,确定选题2.12月30日--12月31日:需求分析,系统设计,系统功能模块完善3.1月1日--1月3日:编程实现系统、系统测试与修改4.1月4日-- 1月6日:课程设计报告撰写5.1月7日-- 1月8日:课程设计报告答辩四、主要参考文献[1] 耿祥义,张跃平.java大学实用教程(第二版).电子工业出版社.2008年5月目录JA V A程序课程设计任务书 (I)目录 (II)第1章引言 (1)1.1课程设计内容 (1)1.2任务分工 (1)第2章计算器定义 (2)2.1计算器登陆注册界面概述 (2)2.1.1 计算器功能概述 (2)2.1.2 计算结果的储存与查看功能概述 (2)2.2本章小结 (2)第3章计算器的具体实现 (3)3.1界面设计 (3)3.1.1用户登陆界面图 (3)3.1.3 计算器主界面 (8)3.2计算功能实现 (9)3.4本章小结 (14)第4章结束语 (14)致谢 (15)参考文献 (15)附录源代码 (15)/****************引用数据包里的类与方法******************************/ (15)第1章引言1.1 课程设计内容这是我组设计的计算器会有一些独特的功能,本项目用到了Java中的GUI界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个功能:(1)数据计算处理功能点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除四则运算及三角函数,开方,乘方运算;如果输入有误时可以按C撤销后重新输入新数据,有储存修改键;(2)查询功能查询功能可以迅速方便地查找到相应时段的执行的操作及结果。

java课程设计--计算器(带源码)

java课程设计--计算器(带源码)
p2.add(b6);
b6.addActionListener(this);
p2.add(b14);
b14.addActionListener(this);
p2.add(b7);
b7.addActionListener(this);
p2.add(b8);
b8.addActionListener(this);
5.实验方法与步骤:
程序源码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.util.*;
publicclassCalculatorimplementsActionListener {
JButtonb1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,
sum=sum* d;
tf.setText(String.valueOf(sum));
}elseif(("/").equals((String)stElement())) {
sum=sum/ d;
tf.setText(String.valueOf(sum));
}elseif(("=").equals((String)stElement())) {
}
if(e.getActionCommand() =="x")//乘号的实现;
{
if(("+").equals((String)stElement())
|| ("-").equals((String)stElement())

Java课程设计-保存计算过程地计算器

Java课程设计-保存计算过程地计算器

图3 计算器主界面(2)各种运算界面,如图4所示。

图4 运算界面(3)计算器显示框清零操作,如图5所示。

图5 清零操作(4)保存计算过程,如图6所示。

图6 保存计算过程(5)查看保存后文件,如图7所示。

图7 保存文件
(6)点击“清除”按钮,清除计算过程区内容,清除内容后,界面返回程序主界面,计算过程显示区重新显示新的计算过程。

当输入数据有误时,程序会运行出错。

(1)当程序进行除法运算除数为零时,程序运行错误,如图8所示。

图8 除数为零错误
(2)当程序进行求算术平方根运算根号下为负数时,程序运行错误,如图9所示。

图9 根号下为负数错误
(3)当程序进行对数运算底数为非正数时,程序运行错误,如图10所示。

图10 底数为非正数错误
4.设计体会
在这两周的Java课程设计中,我学到了很多很多,感受也是颇多。

越来越发现实践的重要性。

首先在做这次课程设计的时候,遇到了很多问题,这些问题让我改掉了自。

JAVA保存计算过程的计算器课程设计报告

JAVA保存计算过程的计算器课程设计报告

JAVA保存计算过程的计算器课程设计报告保存计算过程的java计算器目录1 概述 01.1 课程设计目的 01.2 课程设计内容 02 系统需求分析 02.1 系统目标 02.2 主体功能 02.3 开发环境 03 系统概要设计 03.1 系统的功能模块划分 03.2 系统流程图 04系统详细设计 (1)5 测试 (5)5.1 测试方案 (5)5.2 测试结果 (5)6 小结 (5)参考文献 (7)附录 (8)附录1 源程序清单 (8)1 概述1.1 课程设计目的1.掌握JAVA语言编程的基础知识并能熟练运用。

2.熟悉类声明与对象的使用。

3.理解委托时间处理模型。

4.了解JAVA语言的图形用户界面JAVAS WING的设计知识。

5.运用JAVA SWING编写简单计算器程序,并实现其功能。

1.2 课程设计内容设计GUI界面的计算机程序,用户可以通过鼠标依次输入参加计算的数值,进行加,减,乘,除,等混合运算。

2 系统需求分析2.1 系统目标一个简单的计算器程序。

用户可以利用鼠标点击数值或操作符按键完成计算的输入,计算的结果将被显示在窗口上部的文本框中。

2.2 主体功能1.按下数字键在文本框上会显示数字,这是计算器最基本的功能2.在任何时候按下“+-”键,计算器文本框上的数字置反3.上面一个文本框显示计算过程,下面一个文本框显示输入的数字4.当按下的运算符号时前面已经按下过运算符号时,下面一个文本框显示上一个运算符号以及两个数之间的运算结果。

5. 按下清除“C”键,数据被全部清除。

2.3 开发环境JDK3 系统概要设计3.1 系统的功能模块划分1.主界面模块2.事件相应模块3.2 系统流程图4系统详细设计1.主界面模块详细设计顶层容器:ComputerPad类实现主窗口,顶层容器中包含了1个panel容器,1个resultshow文本框,1个process文本框。

各组件作用:其中panel容器用于放数字按钮,小数点,运算符按钮,清零按钮,正负转换按钮以及退格按钮。

java课程设计 科学计算器

java课程设计  科学计算器

目录1 课设任务及要求 (1)1.1课设任务: (1)1。

2创新要求: (1)1.3设计要求 (1)2 需求分析 (2)2。

1 设计背景 (2)2.2 开发的技术及功能 (2)3 设计思路 (3)4 详细设计 (4)4。

1功能实现: (4)4。

4 程序设计过程 (6)5 系统调试 (6)5.1 运行调试 (6)6 参考文献 (7)附录 (8)1 课设任务及要求1。

1课设任务:⑴、设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算);⑵、有求倒数、退格和清零功能。

1.2创新要求:能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算.1.3设计要求①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。

且有小数点、正负号、求倒数、退格和清零功能。

②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。

③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

2 需求分析2.1 设计背景设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。

但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦(cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以及对e的指数运算(exp),并且还能进行连续运算.总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的.2.2 开发的技术及功能本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。

保存计算过程的计算器

保存计算过程的计算器

CalculatorWindow.java的关键代码
CalculatorWindow.java的关键代码
handleDigit=new HandleDigit(list,resultShow,showComputerProcess); for(int i=0;i<=9;i++){ numberButton[i]=new NumberButton(i); numberButton[i].setFont (newFont("Arial",Font.BOLD,20)); numberButton[i].addActionListener(handleDigit); //为数字按钮添加监视器。 }
• UML图
HandleDigit类的关键代码
• • • • • • • • • • • • • • • • • • • public void actionPerformed(ActionEvent e){ NumberButton b=(NumberButton)e.getSource(); if(list.size()==0) { int number=b.getNumber(); list.add(""+number); resultShow.setText(""+number); showComputerProcess.setText(""+list.get(0)); } 。。。。。。 else if(list.size()==3) { int number=b.getNumber(); String num=list.getLast(); String s=num.concat(""+number); list.set(2,s); resultShow.setText(s); showComputerProcess.setText(""+list.get(0)+""+list.get(1)+ ""+list.get(2)); } 该对象是数字的按钮监听器,当用户单击数字时,handleDigit对象将调用HandleDigit类实 现的ActionListener接口中的actionPerformed(ActionEvent)方法。

Java课程设计任务书

Java课程设计任务书

JAVA课程设计任务书
一、课程设计总体要求:
1、课程设计题目要求:
从下面12个具有一定代表性的课程设计中选择一个,每个课程设计题目要有理论分析,又有具体步骤,使用掌握的Java面向对象的设计思想,完成本次课程设计任务。

各个课程设计题目互相独立,同学们根据布置的课程设计作业来开发一个软件,也可以参考这些课程设计题目设计类似的软件。

要求课程设计完成后可以运行演示。

2、课程设计报告要求:
在课程设计报告中要包含以下内容:课程总体需求描述、设计要求、总体设计、详细设计、代码调试、软件发布与测试和课程设计作业等。

课程设计报告与课程设计源代码打包命名方式为:学号+姓名(2009XXX)。

3、严禁抄袭。

二、课程设计选题:
题目1、记忆测试系统
题目2、保存计算过程的计算器
题目3、Hannoi塔
题目4、动物换位
题目5、走迷宫
题目6、魔板游戏
题目7、扫雷游戏
题目8、中国象棋打谱系统
题目9、日历记事本
题目10、基于数据结构的学籍管理系统题目11、标准化考试系统
题目12、数据库通用查询系统
附录:JAVA课程设计选题表:。

Java课程设计——保存过程的计算器

Java课程设计——保存过程的计算器

Java课程设计报告保存计算过程的计算器的设计专业计算科学与技术(网络技术)学生姓名___________________________________班级_______________________________________学号_____________________ 1 _______________指导教师____________________________________完成日期___________________________________目录1设计要求 (1)2总体设计 (1)2.1CalculatorWi ndow 类设计 (2)2.2NumberButton 类设计 (2)2.3Operati on Butt on 类设计 (2)2.4Han dleDigit 类设计 (2)2.5Han dleOperatio n 类设计 (2)2.6HandleDot 类设计 (3)2.7Han dleEquality 类设计 (3)2.8Han dleSi n 类设计 (3)2.9HandleBack 类设计 (3)2.10Han dleClear 类设计 (3)2.11HandlePOrN 类设计 (3)3详细设计 (3)3.1CalculatorWi ndow 类 (3)3.2NumberButton 类 (9)3.3Operati on Butt on 类 (10)3.4Han dleDigit 类 (11)3.5Han dleOperatio n 类 (13)3.6HandleDot 类 (16)3.7HandlePOrN 类 (18)3.8Han dleEquality 类 (19)3.9Han dleSin 类 (22)3.10HandleBack 类 (24)3.11Han dleClear 类 (26)4代码调试问题 (28)5软件发布 (28)6程序运行效果 (28)7设计心得 (30)保存过程的计算器的设计1设计要求Win dows 2000/XP系统中的“计算器”是一个方便实用的计算机工具,但是没有提供显示计算过程的功能。

Java课程设计(计算器)

Java课程设计(计算器)
面设计
界面布局:简洁明了,易于操作 输入框:用于输入数字和运算符号 计算按钮:用于执行计算操作
结果显示框:用于显示计算结果 历史记录框:用于查看历史计算记录 帮助按钮:用于查看帮助信息或联系客服
功能需求优先级
基本运算功能:加、 减、乘、除
科学计算功能:平方、 开方、三角函数等
错误处理:处 理用户输入错 误,如输入非
数字字符等
功能扩展:支 持更多运算符 号和功能,如 平方、开方等
代码优化:提 高代码可读性 和可维护性, 减少代码冗余
和错误
测试与调试
单元测试:对每个功能模块进行独立测试,确保其正确性 集成测试:将各个功能模块组合起来进行测试,确保整体功能的正确性 边界值测试:对输入和输出边界值进行测试,确保程序在边界条件下的稳定性
Part Five
总结与展望
项目总结
项目目标:设计并实现一个计算器 项目成果:实现了加减乘除、平方根、正弦余弦等计算功能 项目难点:处理用户输入和错误处理 项目改进:优化界面设计,增加更多计算功能,提高用户体验
项目亮点与不足
● 项目亮点: - 界面设计简洁明了,易于操作 - 代码结构清晰,易于维护和扩展 - 功能齐全,满足日常 计算需求 - 性能稳定,响应速度快
实际应用价值
提高编程能力: 通过设计计算 器,可以提升 Java编程技能
理解算法原理: 通过设计计算 器,可以深入 理解算法原理
和实现方法
提高问题解决 能力:通过设 计计算器,可 以提升解决实 际问题的能力
提升团队协作 能力:通过设 计计算器,可 以提升团队协 作和沟通能力
THANKS
汇报人:
Java课程设计(计算器)
,a click to unlimited possibilities

JAVA课程设计报告-保存计算过程的计算器

JAVA课程设计报告-保存计算过程的计算器

编号:《面向对象程序设计(JAVA)》课程设计(论文)档案题目:保存计算过程的计算器学院:信息学院专业:姓名:学号:班级:指导教师:职称:讲师完成日期:2013年12月《面向对象程序设计(JAVA)》课程设计(论文)题目:保存计算过程的计算器学院:信息学院专业:姓名:学号:班级:指导教师:职称:讲师完成日期:2013年12月摘要当下计算机技术发展迅捷,人们已经不能满足于采用人工进行大量的计算,计算器快速的计算速度和稳定的准确率很好的满足了用户的需要,然而Windows自带的计算器所提供的功能已经无法满足人民日益增长的需求,保存计算过程的计算器更是能够让用户随时随地的查找以前的计算过程,能够提供给用户更加好的体验感受。

基于上面的几点因素,保存计算过程的计算器正是在这样的需求之下应运而生的,目的旨在帮助用户快速准确的得到计算结果。

本次实验课题使用了JAVA语言,开发平台选用Eclipse这个开源的编译软件,主要原因就是其强大的跨平台能力与超过C++语言MFC所提供的包含框架界面设计功能。

由于其是面向对象的语言,所以整个代码看上去尽然有序,更加健壮、易读。

对于程序本身,由于时间有限只能做出简易的计算功能,旨在实现保存计算过程这一目标,更加多的科学计算器功能可以通过模块的方式进行快速集成,体现出了面向对象的模块化设计的特性。

【关键字】保存计算过程,计算器,JAVA语言,Eclipse,模块化AbstractWith the rapid development of puter technology nowadays, people are not satisfied with the manually way that conduct a large number of calculations any more. puters, which have the high speed of the calculation and stable accuracy, meet user’s needs well. However, the functions of Window’s own calculator have been unable to meet the growing needs of people. But the calculator saving the calculation procedure enables users to search the procedure at any time and no matter where they are and it provides the users with a better and totally new experience.Taking all the facts above into consideration, the calculator that saving the calculation procedure works, in such a condition. It aims at helping the users to get the calculation results as quickly as possible. For this experimental subject, JAVA language has been used.Also used Eclipse software. The main reason of it is that it has quite a powerful ability of cross platform. Besides, the function of framework interface designation surpasses the C++ MFC’s. Since it is an object-oriented language, the whole codes seem more orderly, stronger and easier to read.As for the process itself, only the simple calculations can be made due to the limited time. Nevertheless, to make the calculation procedure saved, more and more scientific calculator functions can be quickly integrated through the way of module which reflects the features of object-oriented modular design.【Key words】Save putational process;Calculator;JAVA language;Eclipse;Modularization目录前言11 需求分析11.1设计目的11.2程序需求分析11.3系统目标21.4主要设计思想21.5开发环境配置22 程序设计32.1概要设计3 2.2详细设计52.3设计小结73 代码编写83.1导入包83.2各模块代码84 测试与调试11 4.1主界面测试12 4.2计算操作12 4.3清零操作12 4.4保存操作134.5清除操作135 软件发布14总结与体会15参考文献15致谢16附录16前言在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有一个计算器就会显得很麻烦。

Java课程设计-保存计算过程的计算器

Java课程设计-保存计算过程的计算器

图3 计算器主界面(2)各种运算界面,如图4所示。


图4 运算界面(3)计算器显示框清零操作,如图5所示。

图5 清零操作(4)保存计算过程,如图6所示。

图6 保存计算过程(5)查看保存后文件,如图7所示。


图7 保存文件
(6)点击“清除”按钮,清除计算过程区内容,清除内容后,界面返回程序主界面,计算过程显示区重新显示新的计算过程。

当输入数据有误时,程序会运行出错。

(1)当程序进行除法运算除数为零时,程序运行错误,如图8所示。

图8 除数为零错误
(2)当程序进行求算术平方根运算根号下为负数时,程序运行错误,如图9所示。


图9 根号下为负数错误
(3)当程序进行对数运算底数为非正数时,程序运行错误,如图10所示。

图10 底数为非正数错误
4.设计体会
在这两周的Java课程设计中,我学到了很多很多,感受也是颇多。

越来越发现实践的重要性。

首先在做这次课程设计的时候,遇到了很多问题,这些问题让我改掉了自。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java课程设计报告保存计算过程的计算器的设计专业计算科学与技术(网络技术)学生姓名班级学号 1指导教师完成日期目录1设计要求 (1)2总体设计 (1)2.1 CalculatorWindow类设计 (2)2.2 NumberButton类设计 (2)2.3 OperationButton类设计 (2)2.4 HandleDigit类设计 (2)2.5 HandleOperation类设计 (2)2.6 HandleDot类设计 (3)2.7 HandleEquality类设计 (3)2.8 HandleSin类设计 (3)2.9 HandleBack类设计 (3)2.10 HandleClear类设计 (3)2.11 HandlePOrN类设计 (3)3详细设计 (3)3.1CalculatorWindow类 (3)3.2NumberButton类 (9)3.3 OperationButton类 (10)3.4 HandleDigit类 (11)3.5 HandleOperation类 (13)3.6 HandleDot类 (16)3.7 HandlePOrN类 (18)3.8 HandleEquality类 (19)3.9 HandleSin类 (22)3.10 HandleBack类 (24)3.11 HandleClear类 (26)4代码调试问题 (28)5软件发布 (28)6程序运行效果 (28)7设计心得 (30)保存过程的计算器的设计1 设计要求Windows 2000/XP系统中的“计算器”是一个方便实用的计算机工具,但是没有提供显示计算过程的功能。

本计算器所遵循的计算规则与Windows 2000/XP系统中的“计算器”相同,出了具有普通的计算功能外,还具有现实计算过程,保存计算过程的功能。

(1)单击“计算器”上的数字按钮(0、1、2、3、4、5、6、7、8、9)可以设置参与计算的运算数。

(2)单击“计算器”上的运算符按钮(+、-、*、/)可以选择运算符号。

(3)单击“计算器”上的函数按钮可以显示相应的函数值。

(4)单击“计算器”上的“=”按钮显示计算结果。

(5)在一个文本框中显示当前的计算过程,在一个文本区中显示以往的计算过程和发生计算时的系统时间。

(6)单击“保存”按钮可以将文本区中的全部计算过程保存到文件;单击“复制”按钮可以将文本区中选中的文本复制到剪贴板;单击“清除”按钮可以清楚文本区中的全部内容。

2 总体设计在设计计算器时,可以编写11个Java源文件:CalculatorWindow.java、NumberButton.java、OperationButton.java、HandleDigit.java、HandleOperation.java、HandleDot.java、HandleEquality.java、HandleSin.java、HandleBack.java、HandleClear.java、HandlePOrN.java。

计算器除了上述的11个Java源文件给出的类外,还需要Java提供的一些重要的类,入JButton、JTextField、JTextArea和LinkedList等。

图2.1 类之间的组合关系2.1 CalculatorWindow类设计CalculatorWindow类负责创建计算器的主窗口,该类含有Main方法,计算器从该类开始执行。

CalculatorWindow有十四种类型的对象,分别是LinkedList<String>、NumberButton、OperationButton、JButton、JTextField、JTextArea、HandleDigit、HandleOperation、HandleDot、HandleEquality、HandleSin、HandleBack、HandleClear、HandlePOrN对象。

CalcuatorWindow类创建的窗口以及其中的主要成员如图2.2所示。

CalculatorWindow类的主要成员的作用将在后面的详细设计中阐述。

图2.2 CalculatorWindow窗口及主要的对象成员2.2 NumberButton类设计NumberButton类创建的对象是主类CalculatorWindow窗口中的一个“数字”按钮。

NumberButton类有一个int类型的成员number,标明所创建的按钮所含有的数字。

NumberButton所创建的10个按钮被添加到CalcuatorWindow窗口中。

2.3 OperationButton类设计OperationButton类创建的对象是主类CalculatorWindow窗口中的一个“运算符”按钮。

OperationButton类有一个String类型的成员operateSign,用于标明所创建的按钮所含有的运算符号。

OperationButton所创建的4个按钮被添加到CalculatorWindow窗口中。

2.4 HandleDigit类设计HandleDigit类创建的对象负责处理ActionEvent事件。

当用户单击“数字”按钮时,HandleDigit类所创建的对象负责处理和数字有关的计算过程。

2.5 HandleOperation类设计HandleOperation类创建的对象负责处理ActionEvent事件,当用户单击“运算符”按钮时,HandleOperation类所创建的对象负责处理和运算符有关的计算过程。

2.6 HandleDot类设计HandleDot类创建的对象负责处理ActionEvent事件,当用户单击“.”按钮(小数点)时,HandleDot类所创建的对象负责处理小数点。

2.7 HandleEquality类设计HandleEquality类创建的对象负责处理ActionEvent事件。

当用户单击“=”按钮时,HandleEquality类所创建的对象计算有关数据。

2.8 HandleSin类设计HandleSin类创建的对象负责处理ActionEvent事件。

当用户单击“sin”按钮(正弦三角函数)时,HandleSin类所创建的对象负责处理正弦三角函数的值。

2.9 HandleBack类设计HandleBack类创建的对象负责处理ActionEvent事件。

当用户单击“退格”按钮时,HandleBack类所创建的对象负责计算正弦三晋函数的值。

2.10 HandleClear类设计HandleClear所创建的对象负责处理ActionEvent事件。

当用户成功单击C按钮(清零)时,HandleClear类所创建的对象负责清除有关的计算结果。

2.11 HandlePOrN类设计HandlePOrN类创建的对象负责处理ActionEvent事件。

当用户单击“+/-”(正负)按钮时,HandlePOrN类所创建的对象负责处理数字的正负转换。

3详细设计3.1CalculatorWindow类1、效果图CalculatorWindow创建的窗口效果如图3.1所示。

图3.1 CalculatorWindow创建的窗口2、UML图CalculatorWindow类是javax.swing包中JFrame的一个子类,并实现了4、代码(CalculatorWindow.java)import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import java.util.LinkedList;import java.io.*;public class CalculatorWindow extends JFrame implements ActionListener {NumberButton numberButton[];OperationButton operationButton[];JButton Flex, zhengfu, Backspace, Equals, Zero, sin;JTextField resultShow; //显示计算结果JTextField showComputerProcess; //显示当前计算过程JTextArea saveComputerProcess; //显示计算步骤JButton saveButton, copyButton, clearButton;LinkedList<String> list; //链表用来存放第一个运算数、运算符号和第二个运算数 HandleDigit handleDigit; //负责处理ActionEvent事件HandleOperation handleOperation;HandleBack handleBack;HandleClear handleClear;HandleEquality handleEquality;HandleDot handleDot;HandlePOrN handlePOrN;HandleSin handleSin;public CalculatorWindow() {setTitle("计算器计算机112班程逸群");JPanel panelLeft, panelRight;list = new LinkedList<String>();resultShow = new JTextField(10);resultShow.setHorizontalAlignment(JTextField.RIGHT);resultShow.setForeground(Color.blue);resultShow.setFont(new Font("TimesRoman", Font.BOLD, 16));resultShow.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));resultShow.setEditable(false);resultShow.setBackground(Color.white);showComputerProcess = new JTextField();showComputerProcess.setHorizontalAlignment(JTextField.CENTER);showComputerProcess.setFont(new Font("Arial", Font.BOLD, 16));showComputerProcess.setBackground(Color.cyan);showComputerProcess.setEditable(false);saveComputerProcess = new JTextArea();saveComputerProcess.setEditable(false);saveComputerProcess.setFont(new Font("宋体", Font.PLAIN, 16));numberButton = new NumberButton[10];handleDigit = new HandleDigit(list, resultShow, showComputerProcess); for (int i = 0; i <= 9; i++) {numberButton[i] = new NumberButton(i);numberButton[i].setFont(new Font("Arial", Font.BOLD, 20));numberButton[i].addActionListener(handleDigit);}operationButton = new OperationButton[4];handleOperation = new HandleOperation(list, resultShow,showComputerProcess, saveComputerProcess);String yunsuan[] = {"+", "-", "*", "/"};for (int i = 0; i < 4; i++) {operationButton[i] = new OperationButton(yunsuan[i]);operationButton[i].setFont(new Font("Arial", Font.BOLD, 20));operationButton[i].addActionListener(handleOperation);}Flex = new JButton(".");handleDot = new HandleDot(list, resultShow, showComputerProcess);Flex.addActionListener(handleDot);zhengfu = new JButton("+/-");handlePOrN = new HandlePOrN(list, resultShow, showComputerProcess); zhengfu.addActionListener(handlePOrN);Equals = new JButton("=");handleEquality = new HandleEquality(list, resultShow,showComputerProcess, saveComputerProcess);Equals.addActionListener(handleEquality);sin = new JButton("sin");handleSin = new HandleSin(list, resultShow,showComputerProcess, saveComputerProcess);sin.addActionListener(handleSin);Backspace = new JButton("退格");handleBack = new HandleBack(list, resultShow, showComputerProcess); Backspace.addActionListener(handleBack);Zero = new JButton("C");handleClear = new HandleClear(list, resultShow, showComputerProcess); Zero.addActionListener(handleClear);Zero.setForeground(Color.red);Backspace.setForeground(Color.red);Equals.setForeground(Color.red);sin.setForeground(Color.blue);zhengfu.setForeground(Color.blue);Flex.setForeground(Color.blue);panelLeft = new JPanel();panelRight = new JPanel();panelLeft.setLayout(new BorderLayout());JPanel centerInLeft = new JPanel();panelLeft.add(resultShow, BorderLayout.NORTH);panelLeft.add(centerInLeft, BorderLayout.CENTER);centerInLeft.setLayout(new GridLayout(4, 5));centerInLeft.add(numberButton[1]);centerInLeft.add(numberButton[2]);centerInLeft.add(numberButton[3]);centerInLeft.add(operationButton[0]);centerInLeft.add(Zero);centerInLeft.add(numberButton[4]);centerInLeft.add(numberButton[5]);centerInLeft.add(numberButton[6]);centerInLeft.add(operationButton[1]);centerInLeft.add(Backspace);centerInLeft.add(numberButton[7]);centerInLeft.add(numberButton[8]);centerInLeft.add(numberButton[9]);centerInLeft.add(operationButton[2]);centerInLeft.add(sin);centerInLeft.add(numberButton[0]);centerInLeft.add(zhengfu);centerInLeft.add(Flex);centerInLeft.add(operationButton[3]);centerInLeft.add(Equals);panelRight.setLayout(new BorderLayout());panelRight.add(showComputerProcess, BorderLayout.NORTH);saveButton = new JButton("保存");copyButton = new JButton("复制");clearButton = new JButton("清除");saveButton.setToolTipText("保存计算过程到文件");copyButton.setToolTipText("复制选中的计算过程");clearButton.setToolTipText("清除计算过程");saveButton.addActionListener(this);copyButton.addActionListener(this);clearButton.addActionListener(this);panelRight.add(new JScrollPane(saveComputerProcess), BorderLayout.CENTER);JPanel southInPanelRight = new JPanel();southInPanelRight.add(saveButton);southInPanelRight.add(copyButton);southInPanelRight.add(clearButton);panelRight.add(southInPanelRight, BorderLayout.SOUTH);JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, panelLeft, panelRight);add(split, BorderLayout.CENTER);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);setBounds(100, 50, 528, 258);validate();}public void actionPerformed(ActionEvent e) {if (e.getSource() == copyButton) {saveComputerProcess.copy();}if (e.getSource() == clearButton) {saveComputerProcess.setText(null);}if (e.getSource() == saveButton) {J chooser = new J();int state = chooser.showSaveDialog(null);= chooser.getSelectedFile();if ( null && state == J) {try {String content = saveComputerProcess.getText();StringReader read = new StringReader(content);BufferedReader in = new BufferedReader(read);outOne = new (file);BufferedWriter out = new BufferedWriter(outOne);String str = null;while ((str = in.readLine()) != null) {out.write(str);out.newLine();}in.close();out.close();} catch (IOException e1) {}}}}public static void main(String args[]) {new CalculatorWindow();}}3.2NumberButton类1、效果图NumberButton创建的数字按钮效果如图3.3所示。

相关文档
最新文档