090214JAVA课程设计.docx
《090214JAVA课程设计.docx》由会员分享,可在线阅读,更多相关《090214JAVA课程设计.docx(16页珍藏版)》请在冰豆网上搜索。
090214JAVA课程设计
JAVA课程设计
题目:
java计算器课程设计
学院:
理学院
班级:
09-2
学生姓名:
李微
学生学号:
14
指导教师:
张太发
2012年6月4日
课程设计任务书
姓名
李微
班级
09-2
学号
14
设计题目
Java计算器课程设计
理论要点
了解Java语言的使用,Java语言的开发环境,熟练掌握JDK的环境变量的设置,JDK_API_1_6_zh_CN的使用和查找,使用JDK来查找和使用各项接口、类、对象,继承类等的功能。
和使用方法;使用继承、类、抽象等方法实现该程序。
使用importjava.awt.*;创建用户界面和绘制图形图像的所有类;importjava.awt.event.*;提供处理由AWT组件所激发的各类事件的接口和类等方法。
设计目标
系统设计要实用,编程简练,可用,功能全面要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式
研究方法步骤
1、分析题目2、查找数据及收集资料3、确定思路4、编写程序
5、调试程序6、设计报告
预期结果
使该程序显示GUI用户界面,能实现整数的加、减、乘、除四则运算。
计划与进步的安排
第一天:
分析题目,确定需要查询的数据
第二天:
去图书馆或者边度文档收集资料
第三天:
整理资料,选出对自己有用的资料
第四天:
确定大致思路。
列出编程提纲
第五天:
编写程序第六天:
调试程序
第七天:
设计报告,做最后的检查
摘要
现代科学技术的发展,改变了人类的生活,作为新世纪的大学生,应该站在时代发展的前沿,掌握现代科学技术知识,以适应社会的发展,能够独立完成面临的任务,作一名有创新意识的新型人才。
Java语言的学习热潮并没有因为时间的推移而消退,相反,由于计算机技术的发展所带来的新应用的出现,Java越来越流行,这种情况是以往程序设计语言在其生存周期内所不多见的。
Java语言之所以这样长盛不衰,一是因为其众多的技术特点与现今的应用十分合拍,可以覆盖大部分的需求;二是因为SUN公司不断推出新的版本,完善Java自身的功能。
有了这两点,Java语言成为程序员首选的程序设计开发工具就在情理之中了。
随着人们物质生活水平的日益提高,人民对高质量的计算提出了更高的要求,当今,是云计算的生活和物联网发展和使用阶段,计算性能的高低和计算的效率直接影响到人们生活与各大高校人才的培养质量。
基于此,采用面向对象的程序设计方法,UML为建模语言,JAVA为前台开发工具,ORACLE为后台数据库,开发了一个为人们生活带来便利的计算器,主要完成对数据的高效计算。
有助于实现计算的信息化、规范化和科学化,使需要计算的人员能够及时、准确地计算所要计算的结果。
该系统的主要功能是实现正负数加、减、乘、除法的四则运算。
各程序模块均不同程度低显示了其主要功能。
关键词科学技术,计算器,云计算,Oracle
目录
摘要I
主体内容-1-
需求分析:
-1-
程序分析流程图:
-1-
各模块的功能及程序说明:
-3-
源程序:
-3-
操作方法:
-8-
实验结果(包括数据输入和输出结果):
-9-
设计体会:
-10-
(1)对实验原理有更深的理解-10-
(2)对该理论在实践中的应用有深刻的理解-11-
(3)激发了学习的积极性-11-
(4)理解了该知识点以及学科之间的融合渗透-11-
(5)程序所要求的功能-12-
(6)程序设计过程中的不足-12-
总结:
-12-
主体内容
需求分析:
随着人们物质生活水平的日益提高,人民对高质量的计算提出了更高的要求,当今,是云计算的生活和物联网发展和使用阶段,计算性能的高低和计算的效率直接影响到人们生活与各大高校人才的培养质量。
基于此,采用面向对象的程序设计方法,UML为建模语言,JAVA为前台开发工具,ORACLE为后台数据库,开发了一个为人们生活带来便利的计算器,主要完成对数据的高效计算。
有助于实现计算的信息化、规范化和科学化,使需要计算的人员能够及时、准确地计算所要计算的结果。
该系统的主要功能是实现正负数加、减、乘、除法的四则运算。
各程序模块均不同程度低显示了其主要功能。
计算器是一种很常用的计算工具,它在计算方面、日常生活中给我们提供
很大的方便,在编辑此程序时,除了包括常用的加法运算算法、减法运算算法、
乘法运算算法、除法运算算法等四大模块之外。
还特意添加了正负数的四则混
合运算,给本系统增加了一个亮点。
其次本程序对其它算法也有很高的要求,
对编程过程中所用到的接口、抽象、对象、类等方法和过程提出较高的要求,
同时对编程过程中所编写的实验代码也不同程度的提出了很高的要求,所以在
编程的过程中难免遇到了一些困难,所以在完成本次系统的过程中过程中充满
了挑战与机遇。
程序分析流程图:
计算器模拟程序流程图
输入数字
否
是
否
否
各模块的功能及程序说明:
用于创建用户界面和绘制图形图像的所有类的模块。
使用和定义import
java.awt.*;通过这个工具类来调用创建用户界面和绘制图像的函数。
import
java.awt.event.*;该语句提供处理由AWT组件所激发的各类事件的接口和
类。
(classCalculatorextendsFrame//Calculator类继承Frame类)
设置窗口类的模块,包括窗口的长、宽尺寸、打开、关闭等功能。
class
CalculatorPanelextendsPanel函数模块//CalculatorPanel类继承Panel
类,实现计算器的加、减、乘、除等的运算功能,implements函数程序模块
的引用和使用。
程序启动判断模块,start,启动监视器。
最后一个模块,以
publicvoidcalculator(doublex)等语句完成的函数模块的返回运算结果。
源程序:
//这个是名为Calculator.java的java源文件
//一个简单计算器,javaapplication程序,支持对于整数的+、-、*、/等基本运算。
//特点,代码短,但仍然能实现基本的功能
//引入整个程序所应用的包
importjavax.swing.*;//类javax.中的静态变量一个Swing组件
importjava.awt.*;
importjava.awt.event.*;
//定义窗口JB类继承Jframe(窗口的公共类),并添加2个事件接口
//ActionListener监听器接口,MouseListener鼠标事件接口
classJBextendsJFrameimplementsActionListener,MouseListener
{
//创建相关的对象并定义私有变量
privatedoublen=0;
privatedoublem1=0,m2=0;
privateintflag=0;
JTextFieldt1;
JLabell1;
//创建按扭树组
JButtonb[]=newJButton[16];
Strings[]={"0","1","2","3",
"4","5","6","7",
"8","9","+","-",
"*","/","C","="
};
JB()
{
//设置窗口大小
setSize(400,300);
//获得容器对象
Containerc=getContentPane();
//设置为网格布局,5行4列
c.setLayout(newGridLayout(5,4,10,10));
//标签组件,显示计算器名字
l1=newJLabel("微微神算");
//把l1添加到容器中
c.add(l1);
//添加空标签对象
c.add(newJLabel());
c.add(newJLabel());
//文本框组件,显示运算数据
t1=newJTextField("0");
c.add(t1);
//创建16个按钮组件
inti;
for(i=0;i<16;i++)
{
b[i]=newJButton(s[i]);
c.add(b[i]);
//注册b[i]事件为this监听器对象
b[i].addActionListener(this);
}
//设置可见性
setVisible(true);
//窗口关闭时退出程序
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//以下是实现接口类的6个抽象方法
publicvoidmousePressed(MouseEvente){}
publicvoidmouseReleased(MouseEvente){}
publicvoidmouseEntered(MouseEvente){}
publicvoidmouseExited(MouseEvente){}
publicvoidmouseClicked(MouseEvente){}
publicvoidactionPerformed(ActionEvente)
{
//显示输入的数据的过程及结果
Stringstr="";
inti;
for(i=0;i<=9;i++)
if(e.getSource()==b[i])
{
n=n*10+i;
str=String.valueOf(n);
t1.setText(str);
}
for(i=10;i<=13;i++)
//依次寻找与所事件匹配的的运算符是那种
if(e.getSource()==b[i])
{
m1=Double.parseDouble(t1.getText());
/*如果连续2次或以上点击运算符而没有按“C”或“=”键,则计算
并保存到m2*/
if(flag==10)
m2=m1+m2;
elseif(flag==11)
m2=m2-m1;
elseif(flag==12)
m2=m2*m1;
elseif(flag==13)
m2=m2/m1;
else
m2=m1;
//如果没有连续的运算符运算,就保存当前数据到m2
if(i==10)
//记录运算符
flag=10;
elseif(i==11)
flag=11;
elseif(i==12)
flag=12;
else
flag=13;
str=String.valueOf(m2);
//显示连续的运算过程
t1.setText(str);
//n还原0,记录下次输入数据
n=0;
//如果找到了匹配的运算符并完成运算和记录就退出寻找过程
break;
}
if(e.getSource()==b[15])
{
//如果事件是"="
m1=Double.parseDouble(t1.getText());
//判断运算符,并作计算,显示运算结果
if(flag==10)
m2=m1+m2;
elseif(flag==11)
m2=m2-m1;
elseif(flag==12)
m2=m2*m1;
elseif(flag==13)
m2=m2/m1;
str=String.valueOf(m2);
//显示运算结果
t1.setText(str);
//n还原0,记录下次输入数据
n=0;
//flag还原0,表明没有未处理的运算符
flag=0;
}
if(e.getSource()==b[14])
{
//如果事件是"C"即作清楚,各变量还原0
m1=0;
m2=0;
flag=0;
n=0;
t1.setText("0");
}
}
}
/*
*主类
*/
publicclassCalculator
{
publicstaticvoidmain(String[]args)
{
JBmy=newJB();
}
}
操作方法:
在使用之前,先应该按下'C'键,确保在每一次计算之前都应该清零,以免上一次的操作影响这一次.之后按照键盘中的数字进行操作。
实验结果(包括数据输入和输出结果):
例如:
30x365=?
设计体会:
课堂上也有部分知识不太清楚,于是我又不得不边学边用,时刻巩固所学知识,这也是我作本次课程设计的另一大收获。
通过本次课程设计可以得出以下一些体会:
(1)对实验原理有更深的理解
通过《Java程序设计》课程设计,掌握了什么是Java程序设计基
础的几大要点,Java2程序程序工作的基本过程及其各阶段的基本任
务,熟悉了编译程序总流程框图,了解了程序的生成过程、构造工具及
其相关的技术对课本上的知识有了更深的理解,课本上的知识是机械的,
表面的。
通过把该算法的内容,算法的执行顺序在计算机上实现,把原
来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。
(2)对该理论在实践中的应用有深刻的理解
通过把该算法的内容,算法的执行顺序在计算机上实现,知道和理
解了计算器程序从理论到现实在计算机中是怎样执行的,对java理论
在实践中的应用有深刻的理解。
(3)激发了学习的积极性
通过该课程设计,全面系统的理解了Java程序构造的一般原理和
基本实现方法。
把死板的课本知识变得生动有趣,激发了学习的积极性。
把学过的计Java语言的知识强化,能够把课堂上学的知识通过自己设
计的程序表示出来,加深了对理论知识的理解。
以前对与计算机操作系
统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认
识了Java语言,在这次课程设计中,我就是按照实验指导的思想来完
成。
加深了理解文件系统的内部功能及内部实现,培养实践动手能力和
程序开发能力的目的。
(4)理解了该知识点以及学科之间的融合渗透
本次课程设计程序部分是用Java语言编写的,把《计算机操作
系统》、《编译原理》、《C++语言》等学科联系起来,把各个学科
之间的知识融合起来,把各门课程的知识联系起来,对计算机整体的
认识更加深刻。
使我加深了对《计算机操作系统》、《编译原理》、
《C++语言》课程的认识。
(5)程序所要求的功能
本程序是计算器模拟程序,目标是完成加、减、乘、除四则运算,
先后使用了调用Java软件包中的部分函数和方法,Java中的各种类。
创建对象、for循环、switch、case循环、函数的抛出异常、继承、接
口等各种函数。
尽可能的使用了各种方法嵌入到函数之中。
完成程序
的最终目的;完善该课程设计。
(6)程序设计过程中的不足
首先,从我自身而言:
在程序的书写及执行过程中存在着一些问
题,自身的原因是对Java各种函数及其方法使用不够熟练,影响了
程序设计的总体的进度。
自身在程序设计过程中体现出不够细心,
Java是严格区分大小写一门计算机语言,在大小写这个问题上调试程
序的时候提示“找不到符号”等错误,但是经慢慢的寻找,多次调试
终于把该程序调试运行成功。
相信在以后的学习过程中会更加的完善
和改进。
在今后的学习中叶需要加强这方面的知识。
其次,从程序本身而言:
该程序虽然使用方便,但是该程序在使
用过程中不具备自动清零的功能,无论是手动操作还所显示的窗口都
不具有此项功能;该程序无法对复杂的运算进行计算功能,也不具备
四则混合运算的功能。
总结:
通过对本次课程设计的学习,使我更进一步加深了对Java语言
程序设计基础的掌握,从中学习到做事要持之以恒,无论是对学习还
是生活我都要有一颗细心的心,真正的领悟到细节决定成败的道理!
!
总体来说整个设计我基本上还满意,也都是严格按照课程设计的要求
来做。
但基于水平有限,难免会有错误,还望老师批评指正。
希望在
今后的学习之中,老师多指教,由此我可用更好地了解到自己的不足,
以便课后加以弥补。
在此,感谢不已!
!
谢谢!
!
课程设计评阅书
课程设计报告评语:
(评阅意见主要对设计任务的合理性、规范性和正确性以及设计报告书的完整性、规范性和通顺性等方面作出评价)
报告成绩:
答辩记录与评语:
答辩成绩:
课程设计总成绩:
教师签名:
年月日