JAVA课程设计报告.docx

上传人:b****5 文档编号:7636372 上传时间:2023-01-25 格式:DOCX 页数:32 大小:246.76KB
下载 相关 举报
JAVA课程设计报告.docx_第1页
第1页 / 共32页
JAVA课程设计报告.docx_第2页
第2页 / 共32页
JAVA课程设计报告.docx_第3页
第3页 / 共32页
JAVA课程设计报告.docx_第4页
第4页 / 共32页
JAVA课程设计报告.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

JAVA课程设计报告.docx

《JAVA课程设计报告.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计报告.docx(32页珍藏版)》请在冰豆网上搜索。

JAVA课程设计报告.docx

JAVA课程设计报告

安阳工学院计算机学院JAVA课程设计报告

计算器程序设计

专业班级:

09计科软件工程

(2)班

学生姓名:

学生学号:

摘要

近年来随着计算机和网络在社会领域的发展,java的应用正在不断地走向深入,java语言的优良特性使得java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。

Java对对象技术的全面支持和java平台内嵌的API能缩短应用系统的开发时间并降低成本。

Java编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和多平台之间传递信息的低成本方式。

特别是java企业应用编程接口为企业计算及电子商务应用系统提供了有关技术和丰富的类库。

本次设计是通过java编程技术来设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算,该计算器可以实现加减乘除的简单运算,也可以实现一些简单的扩展运算。

关键词:

Java计算器编程

1.选题目的与系统概述

1.1课程设计目的

1.掌握JAVA语言编程的基础知识并能熟练运用。

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

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

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

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

1.2系统概述

1.2.1系统目标

一个简单的计算器程序。

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

1.2.2主体功能

1.按下数字键在文本框上会显示数字,这是计算器最基本的功能。

2.在任何时候按下“+-”键,计算器文本框上的数字置反。

3.上面一个文本框显输入的数字及运算结果。

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

1.2.3开发环境

JCreatorJDK1.6

2.系统可行性分析及相关技术背景分析

2.1系统可行性分析

计算器应用程序的开发使得简单的算术运算从传统的珠算等繁琐的计算工具及方式中得到解放,避免了繁复的手工运算,提高了日常生活中和算术有关的事件的经办效率,降低了人工处理产生的错误,同时也把自动化与高科技融入日常生活,使得社会人可以切身体验高科技带来的便捷。

目前,随着时代的进步,生活步调的加快及计算器本身的实用价值和快捷与轻巧外形使得计算器可以迅速普及。

因此,计算器应用程序的可行性前景乐观。

2.2相关技术背景分析

2.2.1Java语言

Java是JamesGosling领导的小组在SunMicrosystems公司开发的。

是1991年为嵌入式消费类电子产品而设计的。

1995年更名为Java,并重新设计,用于开发Internet应用程序。

Java具有简单的、面向对象的、分布式的、解释型的、健壮的、安全的、机构中立的、可移植的、高性能的、多线程的和动态的特性。

Java是功能齐全的程序设计语言,可以开发可靠的、要求严格的应用程序。

它不仅用于Web程序设计,而且用于在服务器、台式机和移动设备上开发跨平台的独立应用程序。

2.2.2图形用户界面的设计与实现

图形用户接口(GUI)用于开发桌面应用程序。

Java的GUI工具包有Awt、Swing、Swt。

AWT容易发生与平台特性相关的故障,随着java2的发行,AWT的用户界面组件被更稳定、通用和灵活的库取代,该库称为Swing组件库。

Swing是java基础类的一部分,Swing提供许多比Awt更好的屏幕显示元素。

它们用纯java写成,不需要操作系统本身所带视窗工具包的原生资源来生成。

SwingAPI的大部分是AWT的补充扩展而不是直接的替代。

在本程序的设计过程中还是用到Swing和awt两个包。

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

3.系统设计与关键技术

3.1系统的功能模块划分

1.主界面模块

2.事件相应模块

3.2系统流程图

3.3关键技术

界面设计要求用GUI,界面设计中用到Swing组件的TestField和Button,用到awt中的BorderLayout和GridLayout布局管理方式。

界面如图:

类publicCalculation():

完成计算器界面设计,并且将每个组件都添加事件响应。

方法publicvoidactionPerformed(ActionEvente):

当按下了控制按钮,根据搜索控制开关来确定能否继续添加,各个相应的处理机制。

4.系统操作实施方法与测试

4.1系统操作实施方法

4.1.1创建面板

publicclassCalculationextendsJFrameimplementsActionListener{

JTextFieldjtf1;

Stringstr="";

Stringstr1="";

Stringstr2="";

JButtonjtf2;

inta=0;

Stringstr3="";

4.1.2计算器界面

publicCalculation(){

setTitle("计算器");

JPaneljp1=newJPanel();

JPaneljp2=newJPanel();

jp2.setLayout(null);

jp2.setLayout(newFlowLayout(FlowLayout.RIGHT,15,5));//第二行设计变化

JPaneljp3=newJPanel();

jp3.setLayout(newGridLayout(4,6,5,5));//第二行整体之下变化行列

//JPaneljp4=newJPanel();

//jp4.setLayout(newGridLayout(2,10,5,5));

jtf1=newJTextField(35);

jtf1.setEnabled(true);

jtf1.setCaretColor(Color.blue);

//jtf1.setDocument(newNumberDocument());

jtf1.setHorizontalAlignment(SwingConstants.LEFT);

jp1.add(jtf1);

add(jp1,BorderLayout.NORTH);

jtf2=newJButton("");

jtf2.setBackground(newColor(38,217,199));

jtf2.setEnabled(true);

4.1.3添加按钮

4.1.4主程序

publicstaticvoidmain(String[]args)throwsClassNotFoundException,InstantiationException,IllegalAccessException,UnsupportedLookAndFeelException{

Calculationcalculation=newCalculation();//

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());//设置计算器面板风格

//SwingUtilities.updateComponentTreeUI(calculation);

calculation.pack();

calculation.setVisible(true);

4.2系统测试

四则运算加法(+)

四则运算减法(-)

四则运算乘法(*)

四则运算除法(/)

特殊运算符

关系式:

12*3=msce12*3=m+mr

12*3计算过程属于基本运算过程略

(1)由结果=36开始测试

(2)Ms:

将当前窗口数据写入“寄数器”

(3)Ce:

清除当前数据(4)12*3计算过程属于基本运算过程略,由结果=36开始测试;M+:

将当前窗口数据与“寄数器”内的数据相加后再存入“寄数器”

(5)MR:

读出“寄数器”内数据到窗口

(6)MC:

清除“寄数器”内的数据

求平方根运算

对数据进行求平方根

对数据求倒对数据进行百倍扩大运算

4.3测试结果:

可以完成基本运算功能。

5.总结

此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式。

在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。

最大的收获是在弯完成过程中培养的解决问题的能力,在做项目时必然会遇到困难,会有不会的东西,重要的不是现在会不会,而是遇到问题知道如何找到解决的途径。

还使我对所学知识能够融会贯通,又不断丰富了新知识。

Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。

附录:

packagepag;

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

//创建面板

publicclassCalculationextendsJFrameimplementsActionListener{

JTextFieldjtf1;

Stringstr="";

Stringstr1="";

Stringstr2="";

JButtonjtf2;

inta=0;

Stringstr3="";

//计算器界面

publicCalculation(){

setTitle("计算器");

JPaneljp1=newJPanel();

JPaneljp2=newJPanel();

jp2.setLayout(null);

jp2.setLayout(newFlowLayout(FlowLayout.RIGHT,15,5));//第二行设计变化

JPaneljp3=newJPanel();

jp3.setLayout(newGridLayout(4,6,5,5));//第二行整体之下变化行列

//JPaneljp4=newJPanel();

//jp4.setLayout(newGridLayout(2,10,5,5));

jtf1=newJTextField(35);

jtf1.setEnabled(true);

jtf1.setCaretColor(Color.blue);

//jtf1.setDocument(newNumberDocument());

jtf1.setHorizontalAlignment(SwingConstants.LEFT);

jp1.add(jtf1);

add(jp1,BorderLayout.NORTH);

jtf2=newJButton("");

jtf2.setBackground(newColor(38,217,199));

jtf2.setEnabled(true);

//添加按钮

JButtonjb1=newJButton("Backspace");

jb1.setForeground(Color.magenta);

jb1.addActionListener(this);

JButtonjb2=newJButton("CE");

jb2.setForeground(Color.magenta);

jb2.addActionListener(this);

JButtonjb3=newJButton("C");

jb3.addActionListener(this);

jb3.setForeground(Color.magenta);

jp2.add(jtf2);

jp2.add(jb1);

jp2.add(jb2);

jp2.add(jb3);

add(jp2,BorderLayout.CENTER);//jp4.add(jp2);

JButtonjb4=newJButton("MC");

jb4.addActionListener(this);

jb4.setForeground(Color.magenta);

JButtonjb5=newJButton("7");

jb5.addActionListener(this);

JButtonjb6=newJButton("8");

jb6.addActionListener(this);

JButtonjb7=newJButton("9");

jb7.addActionListener(this);

JButtonjb8=newJButton("/");

jb8.addActionListener(this);

JButtonjb9=newJButton("sqrt");

jb9.addActionListener(this);

JButtonjb10=newJButton("MR");

jb10.addActionListener(this);

jb10.setForeground(Color.magenta);

JButtonjb11=newJButton("4");

jb11.addActionListener(this);

JButtonjb12=newJButton("5");

jb12.addActionListener(this);

JButtonjb13=newJButton("6");

jb13.addActionListener(this);

JButtonjb14=newJButton("*");

jb14.addActionListener(this);

JButtonjb15=newJButton("%");

jb15.addActionListener(this);

jb15.addActionListener(this);

JButtonjb16=newJButton("MS");

jb16.addActionListener(this);

jb16.setForeground(Color.magenta);

JButtonjb17=newJButton("1");

jb17.addActionListener(this);

JButtonjb18=newJButton("2");

jb18.addActionListener(this);

JButtonjb19=newJButton("3");

jb19.addActionListener(this);

JButtonjb20=newJButton("-");

jb20.addActionListener(this);

JButtonjb21=newJButton("1/x");

jb21.addActionListener(this);

JButtonjb22=newJButton("M+");

jb22.addActionListener(this);

jb22.setForeground(Color.magenta);

JButtonjb23=newJButton("0");

jb23.addActionListener(this);

JButtonjb24=newJButton("+/-");

jb24.addActionListener(this);

JButtonjb25=newJButton(".");

jb25.addActionListener(this);

JButtonjb26=newJButton("+");

jb26.addActionListener(this);

JButtonjb27=newJButton("=");

jb27.addActionListener(this);

jp3.add(jb4);

jp3.add(jb5);

jp3.add(jb6);

jp3.add(jb7);

jp3.add(jb8);

jp3.add(jb9);

jp3.add(jb10);

jp3.add(jb11);

jp3.add(jb12);

jp3.add(jb13);

jp3.add(jb14);

jp3.add(jb15);

jp3.add(jb16);

jp3.add(jb17);

jp3.add(jb18);

jp3.add(jb19);

jp3.add(jb20);

jp3.add(jb21);

jp3.add(jb22);

jp3.add(jb23);

jp3.add(jb24);

jp3.add(jb25);

jp3.add(jb26);

jp3.add(jb27);

//jp4.add(jp3);

add(jp3,BorderLayout.SOUTH);

}

//主程序main

publicstaticvoidmain(String[]args)throwsClassNotFoundException,InstantiationException,IllegalAccessException,UnsupportedLookAndFeelException{

Calculationcalculation=newCalculation();

//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());//设置计算器面板风格

//SwingUtilities.updateComponentTreeUI(calculation);

calculation.pack();

calculation.setVisible(true);

}

//方法

publicvoidactionPerformed(ActionEvente){

if(e.getSource()instanceofJButton){

if(e.getActionCommand().equals("C")){

str="";

jtf1.setText(str);

jtf1.setHorizontalAlignment(SwingConstants.LEFT);

}

}

if(e.getSource()instanceofJButton){

if(e.getActionCommand().equals("CE")){

str="";

jtf1.setText(str);

jtf1.setHorizontalAlignment(SwingConstants.LEFT);

}

}

if(e.getSource()instanceofJButton){

if(e.getActionCommand().equals("1/x")){

doublec=1/Double.parseDouble(jtf1.getText());

jtf1.setText(String.valueOf(c));

jtf1.setHorizontalAlignment(SwingConstants.LEFT);

}

}

if(e.getSource()instanceofJButton){

if(e.getActionCommand().equals("%")){

doublec=Double.parseDouble(jtf1.getText().trim())*10;

jtf1.setText(String.valueOf(c));

jtf1.setHorizontalAlignment(SwingConstants.LEFT);

}

}

if(e.getSource()instanceofJButton){

if(e.getActionCommand().equals("sqrt")){

doublec=Math.sqrt(Double.parseDouble(jtf1.getText()));

jtf1.setText(String.valueOf(c));

jtf1.setHorizontalAlignment(SwingConstants.LEFT);

}

}

if(e.getSource()instanceofJButton){

if(e.getActionCommand().equals("+/-")){

doublec=-Double.parseDouble(jtf1.getText());

jtf1.setText(String.valueOf(c));

jtf1.setHorizontalAlignment(SwingConstants.LEFT);

}

}

if(e.getSource()instanceofJButton){

if(e.getActionCommand().equa

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1