java课程设计科学计算器Word文档下载推荐.docx
- 文档编号:21571808
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:29
- 大小:76.44KB
java课程设计科学计算器Word文档下载推荐.docx
《java课程设计科学计算器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《java课程设计科学计算器Word文档下载推荐.docx(29页珍藏版)》请在冰豆网上搜索。
触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。
⑷、计算器完成的是一个数学表达式,如:
3+2,所以可以采用一个数组来存储数字或字符,如3,+,2分别存储在数组中,最后运算时,可以一一取出来进行运算。
⑸、利用按钮设计计算器的各个运算符和操作符,通过按钮的事件处理实现按钮计算功能。
⑹、利用文本框显示操作数和运算结果。
4详细设计
4.1功能实现:
①加减乘除求余以及指数运算
②其他运算
Ⅰ、求平方根
Ⅱ、对数运算
Ⅲ、余弦运算
Ⅳ、正切运算
Ⅴ、e的指数运算
Ⅵ、倒数运算
③主要方法说明
publiccos(doublex)//求x的余弦函数
publictan(doublex)//求x的正切函数
publicsqrt(doublex)//求x的平方根
publiclog(doublex)//求x的自然对数运算
publicexp(doublex)//求e的x次幂
publicpow(doublea,doubleb)//求a的b次幂
publicdaoshu(doublex)//求x的倒数
④程序流程图
4.4程序设计过程
设计过程:
(1)确定计算器函数功能和界面布局;
(2)设置框架,注册监听事件,编写方法;
(3)调试运行;
(4)改写应用程序,生成APPLET
5系统调试
5.1运行调试
计算器界面如下:
经过调试后运行,计算器界面与windows自带的计算器风格基本一致实现了预期的效果;
输入数据进行验证,各项函数功能实现均正常。
6参考文献
[1]丁振凡《Java语言使用教程》.北京邮件大学出版社,2006.9
[2]丁振凡《Java语言使用教程实验指导》.北京邮件大学出版社,2006.9
[3]BruceEckel《Java编程思想》.机械工业出版社2007.6
[4]耿祥义《JAVA2实用教程》.清华大学出版社2009.5
附录
程序代码如下:
Appalication如下:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing.event.*;
importjava.lang.*;
importjava.text.*;
importjava.math.BigInteger;
publicclassCalculatorimplementsActionListener
{
//动作监听接口
JFrameframe;
//框架
JTextFieldtextShow;
//文本行
JPanelpanel,panel1,panel2,panel3;
//面板
JButtonbuttonBk,buttonCe,buttonC;
JButtonbutton[];
JButtonDot,AddAndSub,Add,Sub,Mul,Div,Mod,Sqrt,Dao,Equal,zhengxian,yuxian,jiecheng,duishu;
JMenuBarmainMenu;
//主菜单,子菜单,菜单项
JMenueditMenu,viewMenu;
JMenuItemcopyItem,pasteItem,tItem,sItem;
DecimalFormatprec;
//用于设置数据输出精度49,67
booleanclickable;
//用于控制当前能否按键
doublevard,result;
//用来保存double型数据的中间值(vard)和最后结果(result)
intkey=-1,prekey=-1;
//key用来保存当前进行何种运算,prekey用来保存前次进行何种运算
Stringcopy;
//做复制,粘贴用
//构造函数
publicCalculator()
{
clickable=true;
result=0;
frame=newJFrame("
计算器—应用非师范"
);
prec=newDecimalFormat("
0.######"
//设置数据输出精度(对于double型值)
textShow=newJTextField(15);
textShow.setText("
"
textShow.setHorizontalAlignment(textShow.RIGHT);
textShow.setEditable(false);
textShow.setBackground(newColor(255,255,255));
panel=newJPanel();
frame.getContentPane().add(panel);
panel1=newJPanel();
panel2=newJPanel();
panel.setLayout(newBorderLayout());
//菜单设置
mainMenu=newJMenuBar();
editMenu=newJMenu("
编辑(E)"
viewMenu=newJMenu("
查看(V)"
copyItem=newJMenuItem("
复制(C)Ctrl+C"
copyItem.addActionListener(this);
pasteItem=newJMenuItem("
粘贴(P)Ctrl+V"
pasteItem.addActionListener(this);
editMenu.add(copyItem);
editMenu.add(pasteItem);
tItem=newJMenuItem("
★精简型科学计算器"
tItem.addActionListener(this);
sItem=newJMenuItem("
☆开发团队"
sItem.addActionListener(this);
viewMenu.add(tItem);
viewMenu.add(sItem);
mainMenu.add(editMenu);
mainMenu.add(viewMenu);
panel.add(mainMenu,BorderLayout.NORTH);
panel.add(textShow,BorderLayout.CENTER);
panel.add(panel1,BorderLayout.SOUTH);
panel1.setLayout(newBorderLayout());
buttonBk=newJButton("
Backspace"
buttonBk.setForeground(newColor(255,0,0));
buttonCe=newJButton("
CE"
buttonCe.setForeground(newColor(255,0,0));
buttonC=newJButton("
C"
buttonC.setForeground(newColor(255,0,0));
buttonBk.addActionListener(this);
buttonCe.addActionListener(this);
buttonC.addActionListener(this);
panel1.add(panel2,BorderLayout.NORTH);
panel2.setLayout(newFlowLayout(FlowLayout.RIGHT));
panel2.add(buttonBk);
panel2.add(buttonCe);
panel2.add(buttonC);
panel3=newJPanel();
panel1.add(panel3,BorderLayout.CENTER);
button=newJButton[14];
for(inti=0;
i<
button.length;
i++)
button[i]=newJButton(Integer.toString(i));
button[i].setForeground(newColor(22,22,255));
}
Dot=newJButton("
."
Dot.setForeground(newColor(0,0,255));
AddAndSub=newJButton("
+/-"
AddAndSub.setForeground(newColor(0,0,255));
Add=newJButton("
+"
Add.setForeground(newColor(0,0,255));
Sub=newJButton("
-"
Sub.setForeground(newColor(0,0,255));
Mul=newJButton("
*"
Mul.setForeground(newColor(0,0,255));
Div=newJButton("
/"
Div.setForeground(newColor(0,0,255));
Mod=newJButton("
%"
Mod.setForeground(newColor(0,0,255));
Sqrt=newJButton("
sqrt"
Sqrt.setForeground(newColor(0,0,255));
Dao=newJButton("
1/x"
Dao.setForeground(newColor(0,0,255));
Equal=newJButton("
="
Equal.setForeground(newColor(0,0,255));
jiecheng=newJButton("
n!
jiecheng.setForeground(newColor(0,0,255));
zhengxian=newJButton("
sin"
zhengxian.setForeground(newColor(0,0,255));
yuxian=newJButton("
cos"
yuxian.setForeground(newColor(0,0,255));
duishu=newJButton("
log"
duishu.setForeground(newColor(0,0,255));
//将所有行为与监听绑定
panel3.setLayout(newGridLayout(4,6,6,6));
//
panel3.add(button[7]);
button[7].addActionListener(this);
panel3.add(button[8]);
button[8].addActionListener(this);
panel3.add(button[9]);
button[9].addActionListener(this);
panel3.add(Div);
Div.addActionListener(this);
panel3.add(Sqrt);
Sqrt.addActionListener(this);
panel3.add(zhengxian);
zhengxian.addActionListener(this);
panel3.add(button[4]);
button[4].addActionListener(this);
panel3.add(button[5]);
button[5].addActionListener(this);
panel3.add(button[6]);
button[6].addActionListener(this);
panel3.add(Mul);
Mul.addActionListener(this);
panel3.add(Mod);
Mod.addActionListener(this);
panel3.add(yuxian);
yuxian.addActionListener(this);
panel3.add(button[1]);
button[1].addActionListener(this);
panel3.add(button[2]);
button[2].addActionListener(this);
panel3.add(button[3]);
button[3].addActionListener(this);
panel3.add(Sub);
Sub.addActionListener(this);
panel3.add(Dao);
Dao.addActionListener(this);
panel3.add(jiecheng);
jiecheng.addActionListener(this);
panel3.add(button[0]);
button[0].addActionListener(this);
panel3.add(AddAndSub);
AddAndSub.addActionListener(this);
panel3.add(Dot);
Dot.addActionListener(this);
panel3.add(Add);
Add.addActionListener(this);
panel3.add(Equal);
Equal.addActionListener(this);
panel3.add(duishu);
duishu.addActionListener(this);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.pack();
frame.show();
//设置各个按钮的动作
publicstaticintcalc(intn)
{
intret=1;
//BigInteger.ONE;
for(Integeri=2;
i<
=n;
i++)
ret=ret*i;
//.multiply(newBigInteger(i.toString()));
}
returnret;
publicvoidactionPerformed(ActionEventevent)
booleansign=false;
//判断是否是double型数参与运算,是为true,不是为false
Objecttemp=event.getSource();
try{
//如果按下数字按钮,将按下的按钮代表的数据插入的当前文本框字符串之后
=9;
if(temp==button[i]&
&
clickable==true)
textShow.setText(textShow.getText()+Integer.toString(i));
//按下'
.'
按钮时,判断当前文本框内字符串中含不含'
,如果已含,则不允许再插入'
if(temp==Dot&
clickable==true){
booleanisDot=false;
if(textShow.getText().length()==0)
isDot=true;
textShow.getText().length();
if('
==textShow.getText().charAt(i)){
break;
if(isDot==false)
textShow.setText(textShow.getText()+"
if((temp==Add||temp==Sub||temp==Mul||
temp==Div)&
//'
+'
操作
if(temp==Add){
switch(prekey){
case0:
result+=Double.parseDouble(textShow.getText());
case1:
result-=Double.parseDouble(textShow.getText());
case2:
result*=Double.parseDouble(textShow.getText());
case3:
if(Double.parseDouble(textShow.getText())==0){
除数不能为零"
clickable=false;
else
result/=Double.parseDouble(textShow.getText());
default:
result=Double.parseDouble(textShow.getText());
prekey=key=0;
-'
if(temp==Sub){
result-=Double.pa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java课程设计 科学计算器 java 课程设计 科学 计算器