JAVA程序设计报告 (1).doc

上传人:wj 文档编号:147505 上传时间:2023-04-28 格式:DOC 页数:13 大小:117.50KB
下载 相关 举报
JAVA程序设计报告 (1).doc_第1页
第1页 / 共13页
JAVA程序设计报告 (1).doc_第2页
第2页 / 共13页
JAVA程序设计报告 (1).doc_第3页
第3页 / 共13页
JAVA程序设计报告 (1).doc_第4页
第4页 / 共13页
JAVA程序设计报告 (1).doc_第5页
第5页 / 共13页
JAVA程序设计报告 (1).doc_第6页
第6页 / 共13页
JAVA程序设计报告 (1).doc_第7页
第7页 / 共13页
JAVA程序设计报告 (1).doc_第8页
第8页 / 共13页
JAVA程序设计报告 (1).doc_第9页
第9页 / 共13页
JAVA程序设计报告 (1).doc_第10页
第10页 / 共13页
JAVA程序设计报告 (1).doc_第11页
第11页 / 共13页
JAVA程序设计报告 (1).doc_第12页
第12页 / 共13页
JAVA程序设计报告 (1).doc_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

JAVA程序设计报告 (1).doc

《JAVA程序设计报告 (1).doc》由会员分享,可在线阅读,更多相关《JAVA程序设计报告 (1).doc(13页珍藏版)》请在冰点文库上搜索。

JAVA程序设计报告 (1).doc

JAVA语言课程设计

湖南理工学院南湖学院机电系

课程设计

课程名称:

Java程序设计

课题名称:

计算器系统设计

姓名:

周敏

学号:

24092401630

班级:

南湖学院机电系09级计算机班

2011年

13

一.引言……………………………………………………………3

1.JAVA用户界面概述……………………………………………………………………3

二.设计内容………………………………………………………3

三.设计过程………………………………………………………4

1.JAVA界面设计的描述……………………………………………………………4

2.程序中的类设计……………………………………………………………………4

3.系统知识点……………………………………………………………………………4

4.简要流程的设计………………………………………………………………………5

四.代码实现……………………………………………………6

五.实验结果………………………………………………………12

六.实验总结………………………………………………………12

计算器的设计与实现

一.引言

1.JAVA用户界面概述

图形用户界面(GraphicsUserInterface,缩写GUI)是指以图形的显示方式与用户实现交互操作的应用程序界面,设计具有GUI特征的应用程序被称为GUI应用程序设计。

Java提供了十分完善的图形用户界面功能,使得软件开发人员可以轻松地开发出功能强大、界面友善、安全可靠的应用城建,充分体现了Java语言的时代感与面向对象程序设计的优越性。

在Java语言中,为GUI应用程序设计提供了强大的功能,其相关的类主要封装在两包(java.awt和javax.swing)中,其中包含了实现图形用户界面的所有基本元素,这些基本元素主要包括容器、组件、绘图工具与布局管理器等。

组件是与用户实现交互操作的部件,容器是包容组件的部件,布局管理器是管理组件在容器中布局的部件,绘图工具是绘制图形的部件。

java.awt是java1.1用来建立GUI的图形包,这里的“awt”是抽象窗口工具包。

JAVA设计用户界面需要以下四个基本步骤:

(1).创建和设置组件,

(2).将组件加入到容器中,(3).布局组件,(4).处理有组建产生的事件。

随着科学技术和社会经济的不断发展,日常生活中我们必须和计算不停地打交道,这就对个人的计算能力有了很高的要求,有时候难免会出错,所以就需要一种机器去代替繁琐的计算过程并且能快速得出正确的结果。

计算器的出现解决了这种问题。

现在计算机已经成为我们工作学习和生活中不可缺少的工具。

在学习了Java语言之后,我使用Java语言编写一个简单的计算器,可以实现简单的运算功能,满足日常基本的工作学习和娱乐需要。

二.设计内容

该程序是一个图形界面的简单的java计算器,使用人员能快捷简单地进行操作即时准确地获得需要的计算的结果,对人们的生活有一定的帮助。

可以进行简单的四则运算(加、减、乘、除,以及求倒数,正弦,余弦,正切等等一些基本的功能),有退格功能,归零功能。

三.设计过程

1.界面的设计的描述

界面布局:

创建二个面板,一个面板先将所有按钮:

所有数字键和运算符键等放在面板上,采用网格布局,具体设计为5行,5列的网格,25个格子用来放置一些功能键和数字键。

第二个面板放置显示结果。

然后,对以上两个面板,采用BorderLayout布局,将按键面板放在计算机的中部,将文本框放在计算器界面的上部。

2.程序中的类的设计

本程序设计了三个类,一个是控制界面布局的面板容器类,其中,包含两个以内部类形式定义的监听器类;一个是外层窗口类;另一个是检测使用情况的测试类。

3.系统知识点:

在程序中需要使用的包:

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

外层窗口类:

JFrame类是Java类库提供的顶层窗口类,定义其子类的时候根据需要给予相应的设置或者重新定义。

在外层窗口类中可以设置窗口的大小setSize(X,X);窗口是否可见setVisible(X);窗口是否可以调节setResizable(X);设置窗口标题栏显示的内容setTitle();设置在桌面上显示的位置setLocation(X,Y)。

面板容器类:

JLable显示结果标签。

Jpanel面板容器用来放置一些组件;

Booleanstart判断是否为数字的开始;

lastCommand保存“=”“+”“-”“*”等命令。

GridLayout(intxinty)创建X行X列的网格布局管理器。

创建按钮Button并使用add()方法加入面板中并为其注册监听器。

ActionListener监听类接口当单击数字键或者功能键后,系统将调用下面的两个成员方法

InsertAction内部类,其中定义了成员方法actionPerformed(ActionEventevent)进行监听数字,实现拼接数字的功能。

CommandAction内部类,其中定义了成员方法actionPerformed(ActionEventevent)监听一些功能按钮,实现计算、初始化数值的功能。

publicvoidcalculate(doublex){……}主要用于功能符号(如“+”“-”“sin”“1/x”)的运算.如sin、cos、tin等直接调用了math中的方法。

display.setText(""+result)显示运算后的结果。

测试类

publicclassTestCalculatorClass{……}中的方法用测试程序的结果。

4.简要的设计流程

创建窗口

构造计算器界面结构

对各个按钮添加事件监听器ActionListener以及事件处理

输出显示区域

功能键按钮(网)

数字符号及运算符按钮(网)

数字键按钮事件处理

运算符键按钮事件处理

功能键按钮事件处理

完成java源代码编写

调试修改程序,完善模拟计算器功能

(边)

(边)

四.代码实现

外层窗口类代码:

importjava.awt.*;

importjavax.swing.*;

publicclassCalculatorFrameClassextendsJFrame{//顶层容器类

publicCalculatorFrameClass(){

setTitle("Calculator周敏制作");//标题

ContainercontentPane=getContentPane();

CalculatorPanelClasspanel=newCalculatorPanelClass();

contentPane.add(panel);//将面板加入容器

setSize(600,400);//面板大小

setLocation(300,200);//桌面位置

setBackground(Color.black);//背景颜色

setVisible(true);//窗口可见

setResizable(false);//窗口不可调节

}

}

面板类代码:

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjava.awt.Color.*;

publicclassCalculatorPanelClassextendsJPanel{

//计算器界面类

privateJLabeldisplay; //显示结果标签

privateJPanelpanel;//面板

privatedoubleresult;//结果

privateStringlastCommand;//保存运算符号

privatebooleanstart;//判断是否数字的开始

publicCalculatorPanelClass(){//面板设计

setLayout(newBorderLayout());

result=0;

lastCommand="=";

start=true;

display=newJLabel("0",SwingConstants.RIGHT);

display.setForeground(Color.black); //设置前景颜色

display.setBorder(BorderFactory.createCompoundBorder(

BorderFactory.createLineBorder(Color.black),

BorderFactory.createEmptyBorder(5,5,5,5)));

add(display,BorderLayout.NORTH);

ActionListenerinsert=newInsertAction();//监听器

ActionListenercommand=newCommandAction();

JButtonzhengxian,yuxian,zhengqie,kaipingfang,zhengfuhao,daoshu,tuige,qingling;

zhengfuhao=newJButton("+/-");

tuige=newJButton("Backspace");

qingling=newJButton("C");

zhengxian=newJButton("sin");

yuxian=newJButton("cos");

zhengqie=newJButton("tin");

kaipingfang=newJButton("%");

daoshu=newJButton("1/x");

daoshu.setForeground(Color.BLUE);

kaipingfang.setForeground(Color.BLUE);

zhengqie.setForeground(Color.BLUE);

yuxian.setForeground(Color.BLUE);

zhengxian.setForeground(Color.BLUE);

qingling.setForeground(Color.BLUE);

tuige.setForeground(Color.BLUE);

zhengfuhao.setForeground(Color.BLUE);

panel=newJPanel();

panel.setLayout(newGridLayout(5,5)); //计算器按钮

addButton("sin",command);

addButton("cos",command);

addButton("tan",command);

addButton("Backspace",command);

addButton("C",command);

addButton("7",insert);

addButton("8",insert);

addButton("9",insert);

addButton("/",command);

addButton("%",command);

addButton("4",insert);

addButton("5",insert);

addButton("6",insert);

addButton("*",command);

addButton("1/x",command);

addButton("1",insert);

addButton("2",insert);

addButton("3",insert);

addButton("-",command);

addButton("log",command);

addButton("0",insert);

addButton("+/-",command);

addButton(".",insert);

addButton("=",command);

addButton("+",command);

add(panel,BorderLayout.CENTER);

}

privatevoidaddButton(Stringlabel,ActionListenerlistener){

//按钮注册监听器

JButtonbutton=newJButton(label);

button.addActionListener(listener);

panel.add(button);

}

privateclassInsertActionimplementsActionListener{

//数字按钮监听器类

publicvoidactionPerformed(ActionEventevent){

//拼接数字的功能

Stringinput=event.getActionCommand();

if(start)

{

display.setText("");

start=false;

}

display.setText(display.getText()+input);

}

}

privateclassCommandActionimplementsActionListener{

//功能按钮监听器类

publicvoidactionPerformed(ActionEventevt){

//计算、重新初始化数值等操作

Stringcommand=evt.getActionCommand();

Stringinput=evt.getActionCommand();

if(start)

{

display.setText("");

start=false;

if(input.equals("+/-"))//+/-键操作

display.setText(display.getText()+"-");

}

if(!

input.equals("+/-"))

{

Stringstr=display.getText();

if(input.equals("Backspace"))//退格键的实现方法

{

if(str.length()>0)

display.setText(str.substring(0,str.length()-1));

}

elseif(input.equals("C"))//清零键的实现方法

{

display.setText("0");

start=true;

}

}

if(start)

{

lastCommand=command;

}

else

{

calculate(Double.parseDouble(display.getText()));

lastCommand=command;

start=true;

}

}

}

publicvoidcalculate(doublex){ //基本运算方法

doubled=0;//计算

if(lastCommand.equals("+"))

{

result+=x;

}

elseif(lastCommand.equals("-"))

{

result-=x;

}

elseif(lastCommand.equals("*"))

{

result*=x;

}

elseif(lastCommand.equals("/"))

{

result/=x;

}

elseif(lastCommand.equals("%"))

{

result=0.01*x;

}

elseif(lastCommand.equals("="))

{

result=x;

}

elseif(lastCommand.equals("log"))

{

result=Math.log(x);//调用math中的方法

}

elseif(lastCommand.equals("1/x"))

{

result=(1/x);

}

elseif(lastCommand.equals("tan"))

{

result=Math.tan(x);

}

elseif(lastCommand.equals("cos"))

{

result=Math.cos(x);

}

elseif(lastCommand.equals("sin"))

{

result=Math.sin(x);

}

display.setText(""+result);//显示结果

}

测试类:

importjavax.swing.*;

publicclassTestCalculatorClass{

publicstaticvoidmain(String[]args){

CalculatorFrameClassframe=newCalculatorFrameClass();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

五.实验结果:

运行调试调试后得到如下结果图,并且能准确的计算。

六.实验总结

这个计算器实现了一些简单的运算,但是和windows自带计算器相比还有很大的的差距。

通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在查找资料和自己的思考下还是很好的完成了。

这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。

通过对此课题的开发,使我对JAVA编程有了更深的理解,体会到理论和实践的重要性。

由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。

当程序运行结束看到弹出的计算器的界面时,感到很欣慰,虽然只是一个小小的东西,但却是自己起步的成就,对JAVA的学习有了一定的兴趣。

也通过这次的程序设计感觉到自己平时对于编程实际操作的贫乏,没有把书本上的知识真正的掌握牢固。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2