java程序设计报告.docx
《java程序设计报告.docx》由会员分享,可在线阅读,更多相关《java程序设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
java程序设计报告
程序设计
课程设计报告
设计题目:
计算器模拟程序
专业班级:
信管
学号:
姓名:
指导教师:
郭春燕
时间:
2011.06.13-2011.06.24
摘要
计算器模拟程序课程项目是在JAVA学习过程一项要的内容,它涵盖了对JAVA内容学习的考察,同时通过实验项目,也加强了学生的动手能力。
进一步加深对Java语言的理解和掌握,把自己所学的理论知识运用到实际应用中去。
计算器模拟程序是一个小的计算算程序,包括日常我们用到的一些计算方法。
主要研究的是加法、减法、乘法、出发、三角函数、阶乘、以及次方等。
采用的是JAVA语言进行编写,引用JAVA自带数据库中swt包与math包中的一些构造类与函数类,然后自己构造板块和模型,从而完成自己的程序设计项目。
目录
一、课题概述3
1、课题任务3
2、课题目的3
3、课题要求4
二、设计思路及采取的方案4
1、总体设计思想4
2、实验方案4
三、实验结果16
四、总结体会16
1、遇到的难题16
2、一些应用中的技巧17
3、心得体会与收获17
一、课题概述
1、课题任务
自主设计与编写一个计算机模拟程序,实现一个简单的计算器程序,能够进行简单的数据运算。
(1)通过实践,进一步对JAVA程序语言的熟练;
(2)自主的设计,加强了学生的设计与动脑的过程;
(3)编写java源程序;
(4)完成程序设计课程设计报告;
2、课题目的
1、复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;
2、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力;
3、培养学生在项目开发中创新意识及能力;
4、通过编写一个基于JAVA的应用系统综合实例,来掌握Java语言编程技巧,熟练运用各部分知识。
3、课题要求
课程设计必须自己独立完成,严禁抄袭他人;
界面模拟Windows中的计算器程序。
实现基本数学运算、函数等功能:
加、减、乘、除、阶乘、正弦、余弦和指数运算;
(3)实现要点:
添加相关组件并进行按钮事件处理;
(4)界面要求:
用图形界面实现。
简单界面可参考图1。
图1
二、设计思路及采取的方案
1、总体设计思想
(1)在设计计算器之前构造好计算器的版块与模型;
(2)通过Calculator构造方法,设计好窗口的框架(面板,按钮,背景颜色,大小,并把相应的按钮添加监视器);
(3)编写主函数,创建计算器对象;
(4)编写加减乘除,三角函数,阶乘,次方等计算方法。
2、实验方案
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.lang.Math.*;
publicclassCalculatorextendsFrameimplementsActionListener
{
String[]label={"1","2","3","+","sin","CE","4","5","6","-","cos","<--","7","8","9","*","y^x","1/x","0","+/-",".","/","n!
","="};
Button[]button;
Panelp1;
JTextFieldtext1;
StringBufferstr=newStringBuffer();
inta,b=0;
doublex=0,y=0;
booleanappend=false;
publicCalculator()//旆?
{
text1=newJTextField("0.",20);
text1.setHorizontalAlignment(JTextField.RIGHT);
text1.setEditable(false);
button=newButton[label.length];
p1=newPanel();
p1.setLayout(newGridLayout(4,6,1,1));//校校式
for(inti=0;i{
button[i]=newButton(label[i]);//驯签诎钮
button[i].setForeground(Color.blue);//钮色
button[i].addActionListener(this);//每钮蛹
p1.add(button[i]);//钮拥签
}
Frameframe=newFrame("熊氏计算器");
//默贸杀呓绮?
frame.setLayout(newBorderLayout());
frame.add(BorderLayout.NORTH,text1);
frame.add(BorderLayout.CENTER,p1);
frame.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEventeve){System.exit(0);}});//录
frame.setSize(350,250);
frame.setLocation(200,200);
frame.setVisible(true);
}
publicstaticvoidmain(Stringargs[])
{
Calculatorxiong=newCalculator();
}
publicvoidactionPerformed(ActionEvente)
{
Strings=e.getActionCommand();//硕氐址
if(s.equals("+"))//鍔犳硶
{
str.setLength(0);
if(b==0)
{
a=b=1;
y=0;
text1.setText(""+x);
}
else
{
b=a;
a=1;
switch(b)
{
case1:
x+=y;
text1.setText(""+x);
break;
case2:
x-=y;
text1.setText(""+x);
break;
case3:
x*=y;
text1.setText(""+x);
break;
case4:
x/=y;
text1.setText(""+x);
break;
}
}
}
elseif(s.equals("-"))//鍑忔硶
{
str.setLength(0);
if(b==0)
{
a=b=2;
text1.setText(""+x);
}
else
{
b=a;
a=2;
switch(b)
{
case1:
x=x+y;
text1.setText(""+x);
break;
case2:
x=x-y;
text1.setText(""+x);
break;
case3:
x=x*y;
text1.setText(""+x);
break;
case4:
x=x/y;
text1.setText(""+x);
break;
}
}
}
elseif(s.equals("*"))//涔樻硶
{
str.setLength(0);
if(b==0)
{
a=b=3;
text1.setText(""+x);
}
else
{
b=a;
a=3;
switch(b)
{
case1:
x=x+y;
text1.setText(""+x);
break;
case2:
x=x-y;
text1.setText(""+x);
break;
case3:
x=x*y;
text1.setText(""+x);
break;
case4:
x=x/y;
text1.setText(""+x);
break;
}
}
}
elseif(s.equals("/"))//闄ゆ硶
{
str.setLength(0);
if(b==0)
{
a=b=4;
text1.setText(""+x);
}
else
{
b=a;
a=4;
switch(b)
{
case1:
x=x+y;
text1.setText(""+x);
break;
case2:
x=x-y;
text1.setText(""+x);
break;
case3:
x=x*y;
text1.setText(""+x);
break;
case4:
x=x/y;
text1.setText(""+x);
break;
}
}
}
elseif(s.equals("."))//灏忔暟鐐?
{
append=true;
if(text1.getText().trim().indexOf('.')!
=-1);
else
{
if(text1.getText().trim().equals("0"))
{
str.setLength(0);
text1.setText((str.append("0"+s)).toString());
}
else
{
text1.setText((str.append(s)).toString());
}
}
}
elseif(s.equals("0"))//鎸夐敭0
{
if(text1.getText().trim().equals("0.")){}
else
{
text1.setText(str.append(s).toString());
y=Double.parseDouble(text1.getText().trim());
}
}
elseif(s.equals("sin"))//姝e鸡
{
Stringtemp=text1.getText().trim();
doubledtemp=Double.parseDouble(temp);
text1.setText(""+Math.sin(dtemp));
}
elseif(s.equals("cos"))//浣欏鸡
{
Stringtemp=text1.getText().trim();
doubledtemp=Double.parseDouble(temp);
text1.s