JAVA课程设计报告 心得体会——计算器、文本编辑器

JAVA课程设计报告 心得体会——计算器、文本编辑器
JAVA课程设计报告 心得体会——计算器、文本编辑器

用Java设计计算器calculator

内容提要:在本文构造实现了一个计算器擦亮calculator,主要内容包括:calculator的功能需求分析;calculator的基本设计思路和类的划分;calculator的具体实现。

关键字:Java、计算器calculator

引言:设计实现一个Java应用程序的过程如下:

(1)功能需求分析;

(2)设计和类划分;

(3)代码编写实现。

本文就按照这个步骤来实现计算器calculator的制作。

正文:

1.calculator功能需求分析

作为计算器,至少应该具备以下几点功能:

(1)计算器要有GUI界面。

(2)能运算小数,并且不会产生精度损失。

(3)用户可以输入所需计算的数值,可以进行加、减、乘、除四种最基本的运算和混合运算。

(4)允许正负数间的运算。

(5)可以求一个数值的平方及倒数,可以进行阶乘运算。

(6)有菜单栏选项。

具体的功能需求和界面我们可以模仿微软公司出品的windowsXP中自带的计算器。如图一:

图一windows XP 中的计算器界面图

2.calculator基本设计思路和类划分

基于第1节中提出对于calculator功能需求的分析,对这个应用程序设计划分类如下:(1)calculator:这个类的功能是实现一个框架

(2)calculatorFrame:这个类作为主类,实现主要功能:运算,按钮排布,菜单,颜色设置,文本显示

3.calculator的具体实现

3.1 calculator类的设计

calculator用来定义一个计算器的框架

1.主要方法

下面以表格的形式列出calculator类至少应该具有的方法和功能描述(如表一所示)。

3.2 calculatorFrame类的设计

calculatorFrame类实现整体功能,包括窗体的初始化、各种用户事件监听和响应(菜单、运算、结果显示等等)。

1.父类和主要接口

设计calculator整体窗口特性继承自JFrame类。

为了对用户命令做出响应(如帮助菜单栏弹出窗口),calculatorFrame类必须能够监听到用户的命令,因此设计calculatorFrame类实现ActionListener接口。

2.主要方法

下面以表格的形式列出calculatorFrame类至少应该具有的方法和功能描述(如表二所示)。

3.基本效果

图二为calculator的基本效果图。

4.代码分析

calculator.java代码如下:

//calculator.java

/*

*文件名:calculator.java

*说明:calculatorFrame主类,实现主要功能*/

//导入AWT包

import java.awt.*;

import java.awt.event.*;

//导入SWING包

import javax.swing.*;

import javax.swing.event.*;

class calculator

{

public static void main(String[] args)

{

calculatorFrame frame = new calculatorFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.show();

}

}

//主类calculatorFrame

class calculatorFrame extends JFrame

implements ActionListener

{

public calculatorFrame()

{

//设置框架主题及大小

setTitle("计算器");

setSize(300,235);

//将面板置于框架中

Container contentPane = getContentPane();

setResizable(false);

//创建按钮面板

JPanel buttonPanel = new JPanel();

//创建数字键“1”

b11=new JButton ("1");

//设置颜色

b11.setForeground(Color. BLUE);

//创建事件监听器

b11.addActionListener(this);

b12=new JButton ("2");

b12.setForeground(Color. BLUE);

b12.addActionListener(this);

b13=new JButton ("3");

b13.setForeground(Color. BLUE);

b13.addActionListener(this);

b6=new JButton ("4");

b6.setForeground(Color. BLUE);

b6.addActionListener(this);

b7=new JButton ("5");

b7.setForeground(Color. BLUE);

b7.addActionListener(this);

b8=new JButton ("6");

b8.setForeground(Color. BLUE);

b8.addActionListener(this);

b1=new JButton ("7");

b1.setForeground(Color. BLUE);

b1.addActionListener(this);

b2=new JButton ("8");

b2.setForeground(Color. BLUE);

b2.addActionListener(this);

b3=new JButton ("9");

b3.setForeground(Color. BLUE);

b3.addActionListener(this);

b16=new JButton ("0");

b16.setForeground(Color. BLUE);

b16.addActionListener(this);

b17=new JButton ("+/-");

b17.setForeground(Color. BLUE);

b17.addActionListener(this);

b4=new JButton ("+");

b4.addActionListener(this);

b9=new JButton ("-");

b9.addActionListener(this);

b14=new JButton ("*");

b14.addActionListener(this);

b19=new JButton ("/");

b19.addActionListener(this);

b5=new JButton ("1/x");

b5.setForeground(Color. YELLOW); b5.addActionListener(this);

b20=new JButton ("=");

b20.setForeground(Color. YELLOW); b20.addActionListener(this);

//”.”显示不清晰,故采用“。”代替b18=new JButton ("。");

b18.setForeground(Color. BLUE);

b18.addActionListener(this);

b10=new JButton ("x^2");

b10.setForeground(Color. YELLOW);

b10.addActionListener(this);

b15=new JButton ("n!");

b15.setForeground(Color. YELLOW);

b15.addActionListener(this);

buttonPanel.add(b1);

buttonPanel.add(b2);

buttonPanel.add(b3);

buttonPanel.add(b4);

buttonPanel.add(b5);

buttonPanel.add(b6);

buttonPanel.add(b7);

buttonPanel.add(b8);

buttonPanel.add(b9);

buttonPanel.add(b10);

buttonPanel.add(b11);

buttonPanel.add(b12);

buttonPanel.add(b13);

buttonPanel.add(b14);

buttonPanel.add(b15);

buttonPanel.add(b16);

buttonPanel.add(b17);

buttonPanel.add(b18);

buttonPanel.add(b19);

buttonPanel.add(b20);

//对按钮面板1进行排版,四行五列

buttonPanel.setLayout(new GridLayout(4,5));

//建立容纳文本框的面板

JPanel textPanel = new JPanel();

addT ext = new JTextField("0" , 20);

addT ext.addActionListener(this);

//文本框从右端开始显示

addT ext.setHorizontalAlignment(JTextField.RIGHT);

textPanel.add(addText);

//创建按钮面板2

JPanel buttonPanel2=new JPanel();

b21=new JButton ("DEL ");

b21.addActionListener(this);

b21.setForeground(Color. RED);

b22=new JButton ("CE");

b22.addActionListener(this);

b22.setForeground(Color. RED);

b23=new JButton ("C");

b23.addActionListener(this);

b23.setForeground(Color. RED);

buttonPanel2.add(b21);

buttonPanel2.add(b22);

buttonPanel2.add(b23);

buttonPanel2.setLayout(new GridLayout(1,5));

//创建菜单栏,并将菜单栏加入到框架中

JMenuBar menuBar=new JMenuBar();

setJMenuBar(menuBar);

//创建“帮助(H)”菜单

JMenu helpMenu=new JMenu("帮助(H)");

helpMenu.setForeground(Color. BLUE);

//设置菜单的快捷键

helpMenu.setMnemonic('H');

menuBar.add(helpMenu);

JMenuItem copyrightItem = new JMenuItem("版权", 'b');

copyrightItem.addActionListener(this);

JMenuItem explainItem=new JMenuItem("说明",'a');

explainItem.addActionListener(this);

//将菜单项添加到“帮助”菜单中

helpMenu.add(copyrightItem);

helpMenu.add(explainItem);

//设置面板布局

contentPane.add(buttonPanel, BorderLayout.SOUTH);

contentPane.add(buttonPanel2, BorderLayout.CENTER);

contentPane.add(textPanel, BorderLayout.NORTH);

}

//设置用户点击菜单项和按钮时的响应动作

public void actionPerformed(ActionEvent e)

{

if (e.getActionCommand()=="版权")

{

int selection=JOptionPane.showConfirmDialog(

calculatorFrame.this,

"制作人:20095409 金华日,20095403 章旭,20095397 李伏俊","版权", JOptionPane.DEFAULT_OPTION);

}

if(e.getActionCommand()=="说明")

{

int selection=JOptionPane.showConfirmDialog( calculatorFrame.this,

"此计算器可进行多种常规运算,欢迎大家使用。","帮助",

JOptionPane.DEFAULT_OPTION);

}

if((addText.getText()).equals("0"))

{

addT ext.setText(" ");

}

if(e.getSource()==b16)

{c+="0";

addText.setT ext(""+c);}

if(e.getSource()==b11)

{c+="1";

addText.setText(""+c);}

if(e.getSource()==b12)

{c+="2";

addText.setT ext(""+c);}

if(e.getSource()==b13)

{c+="3";

addText.setText(""+c);}

if(e.getSource()==b6)

{c+="4";

addText.setT ext(""+c);}

if(e.getSource()==b7)

{c+="5";

addText.setT ext(""+c);}

if(e.getSource()==b8)

{c+="6";

addText.setT ext(""+c);}

if(e.getSource()==b1)

{c+="7";

addText.setT ext(""+c);}

if(e.getSource()==b2)

{ c+="8";

addText.setText(""+c);}

if(e.getSource()==b3)

{ c+="9";

addText.setText(""+c);}

if(e.getSource()==b18)

{

boolean clickable=true;

for (int i = 0; i < addText.getText().length(); i++)

if ('.' == addText.getText().charAt(i))

{

clickable=false;

break;

}

if(clickable)

{c+=".";

}

addText.setText(c);

}

//平方

if(e.getSource()==b10)

{

nu =Double.parseDouble(addT ext.getText());

num=nu*nu;

addT ext.setText(String.valueOf(num));

c="";

}

//倒数

if(e.getSource()==b5)

{ nu =Double.parseDouble(addText.getText());

if(addT ext.getText().charAt(0)=='0'&&addT ext.getText().length()==1) addText.setText("除数不能为0");

else

num=1/nu;

addText.setText(String.valueOf(num));

c="";

}

//阶乘

if(e.getSource()==b15)

{ c="";num=1;

nu =Double.parseDouble(addText.getText());

for (int n=1;n<=nu;n++)

{

num=num*n;

addT ext.setText(String.valueOf(num));

}

}

//响应“+/-”按钮

if(e.getSource()==b17)

{ String s=addText.getText();

if(addT ext.getText().charAt(0)=='-')

{

addText .setText("");

for (int i=1;i

{ char q=s.charAt(i);

addText.setText(addT ext.getText()+q);

}

}

else

addT ext.setText("-"+s);

}

//将文本框清零

if(e.getActionCommand()=="CE")

{addText.setT ext("0");

c="";

}

if(e.getActionCommand()=="C")

{addText.setT ext("0");

c="";

}

//删除文本框中的最后一位数

if (e.getSource()==b21)

{

String g=addText.getT ext();

addT ext.setText("");

for (int i=0;i

{

char c=g.charAt(i);

addT ext.setText(addText.getText()+ c);

}

}

//响应“+”“-”“*”“/”按钮

if(e.getSource()==b4)

{f='+';

nu =Double.parseDouble(addText.getText());

c="";

}

if(e.getSource()==b9)

{f='-';

nu =Double.parseDouble(addT ext.getText());

c="";

}

if(e.getSource()==b14)

{f='*';

nu =Double.parseDouble(addText.getText());

c="";

}

if(e.getSource()==b19)

{f='/';

nu =Double.parseDouble(addT ext.getText());

c="";

}

//进行运算,并将结果显示在文本框内

if(e.getSource()==b20)

{

nu2 =Double.parseDouble(addT ext.getText());

if(f=='+')

{num=nu+nu2;

addT ext.setText(String.valueOf(num));

c="";}

if(f=='-')

{num=nu-nu2;

addText.setText(String.valueOf(num));

c="";}

if(f=='*')

{num=nu*nu2;

addText.setText(String.valueOf(num));

c="";}

if(f=='/')

{num=nu/nu2;

addText.setT ext(String.valueOf(num));

c="";}

}

}

//定义各个变量类型

public JTextField addT ext;

public JButton b1;

public JButton b2;

public JButton b3;

public JButton b4;

public JButton b5;

public JButton b6;

public JButton b7;

public JButton b8;

public JButton b9;

public JButton b10;

public JButton b11;

public JButton b12;

public JButton b13;

public JButton b14;

public JButton b15;

public JButton b16;

public JButton b17;

public JButton b18;

public JButton b19;

public JButton b20;

public JButton b21;

public JButton b22;

public JButton b23;

public double num,nu,nu2;

public char f;

String c="";

}

5.心得体会

Java监听器是Java功能实现的重要组成部分,监听器中的接口也是很重要的一个环节。两个类中的两个类似的功能,调用他们的类动态的决定一种实现,那他们提供一个抽象父类,子类分别实现父类所定义的方法。问题的出现:Java是一种单继承的语言,一般情况下,哪个具体类可能已经有了一个超类,解决是给它的父类加父类,或者给它父类的父类加父类,直到移动到类等级结构的最顶端。这样一来,对一个具体类的可插入性的设计,就变成了对整个等级结构中所有类的修改。

在本次实验计算器中每个按钮功能的实现都离不开监听器,监听器的接口以及实现将是java程序的主要内容。计算器菜单栏的实现就是监听器的具体表现,当监听器发现“版权”指令时(e.getActionCommand()=="版权"),监听器就会做出反应,弹出一个对话框,显示“制作人:20095409 金华日,20095403 章旭,20095397 李伏

俊","版权"”,如果监听器接到指令(e.getSource()==b16)时,就会执行下面的功能(c+="0";addText.setText(""+c);),就是在文本框中输出数字“0”。if(e.getActionCommand()=="CE"){addText.setText("0"); c="";}当监听器接到指令“CE”时,就会自动清除文本框中的内容,初始文本框为“0”。当监听器收到指令为“DEL”时(if(e.getSource()==b21){String g=addText.getText();addText.setText("");for(inti=0;i

在刚开始实验的时候,按键总是没反应,后来才知道是没有安装监听器的原因,加上监听器后又出现问题了,还是没反应,原因是没有让监听器实现其反应,即actionPerformed这个方法的实现。总之,本次实验就是这样一步步摸索出来的,哪里出现问题,就在哪里寻找原因,还好总算把实验做出来了。

JAVA编程文本编辑器—editor

一、实验目的:

本课程设计旨在加深学生对课堂讲授内容的理解,使学生掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习Java高级应用及今后从事专业工作打下基础。

二、实验要求:

(1)问题描述准确、规范;

(2)程序结构合理,调试数据准确、有代表性;

(3)界面布局整齐,人机交互方便;

(4)输出结果正确;

(5)正确撰写实验报告。

三、实验内容:

(1)用Java编写文本编辑器,综合掌握Java编程技巧及Java开发环境;

(2)要求该记事本可以设置文本的字体、大小、颜色等基本参数;

(3)可以读取计算机中TXT文件,可以生成一个新的TXT文件。

四、实验步骤:

(1)上机实验之前,学生应当为课程设计的内容作好充分准备。对每次上机需要完成的任务

进行认真的分析,画出程序流程图,手工写出符合任务要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。

(2)按照实验目的和实验内容进行上机操作。录入程序,编译调试,反复修改,直到使程序

正常运行,得出正确的输出结果为止。

(3)根据实验结果,写出实验报告。实验报告应当包括:实验内容,程序流程图,类结构,

程序清单,运行结果,以及通过上机取得的经验。

图2-1文本编辑器的界面效果图

图2-2字体大小及格式处理后的效果图

Java编程文本编辑器就是微软记事本的“缩略版”,为什么这么说呢,文本编辑器的功能之一就是实现文本的录入,像记事本一样写入字体,以及字体的颜色、大小和字型的改变,最主要的功能就是实现TXT文件的生成,即生成文件的格式是TXT格式。当然不单单只有这些功能,本编辑器还能实现文件的打开和保存等功能。

在本次实验中按钮功能的实现必须依靠监听器的功能,菜单栏中“文件”的功能就包括本地文件的打开和保存,当监听器接受到“文件——打开”这个指令时,就会弹出一个如图2—4的对话框,列出本地的文件菜单。当监听器接到“格式——颜色——RED”这个指令时,就会改变文本编辑区的文字颜色,由原来的黑色变为红色。但是这是有缺点的,文字颜色的改变是所有文字颜色的改变,而不能改变其中的某些文字,所有的字体、字型的改变都是整体性的改变,不能局部发生变化,这也是我们在实验中唯一没有做好的一部分,也是所有同学都没法解决的问题,就是微软的记事本也没有解决这个问题。我想在以后的学习中,随着能力的改变,一定会解决类似的问题,争取把实验做得更好。

七、附件:

(1)程序流程图:

引入各种图形所需要的包;

编写公共类edit,定义各种变量;

编写textFrame类;

添加菜单栏,并向各菜单添加菜单项及子

菜单;

添加带滚动条的文本域及工具栏;

为各菜单及工具添加事件监听器;

(2)程序清单:

//editor.java

//引入图形界面所需要的包

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.event.*;

//创建窗口

public class editor

{

public static void main (String[] args)

{

textFrame frame=new textFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.show();

}

}

class textFrame extends JFrame implements ActionListener

{

public textFrame()

{

//设置窗口标题及大小

setTitle("记事本");

setSize(600,540);

//添加菜单

JMenuBar menubar =new JMenuBar();

setJMenuBar(menubar);

//新建文件菜单

fileMenu =new JMenu("文件(F)");

fileMenu.setForeground(Color. BLUE);//设置菜单颜色

fileMenu.setMnemonic('F');//设置快捷键

//创建文件下的各菜单项并添加事件监听器

openitem=new JMenuItem("打开");

openitem.addActionListener(this);

saveitem=new JMenuItem("保存");

saveitem.addActionListener(this);

//添加菜单项

fileMenu.add(openitem);

fileMenu.add(saveitem);

//新建格式菜单

JMenu styleMenu =new JMenu("格式(S)"); styleMenu.setForeground(Color. BLUE); styleMenu.setMnemonic('S');

//新建格式菜单下的子菜单

JMenu colorMenu=new JMenu("颜色"); JMenu fontMenu=new JMenu("字体"); styleMenu.add(colorMenu);

//创建颜色菜单项并添加事件监听器bitem=new JMenuItem("BLUE");

bitem.addActionListener(this);

bitem.setForeground(Color. BLUE);

blitem=new JMenuItem("BLACK");

blitem.addActionListener(this);

blitem.setForeground(Color. BLACK);

ritem=new JMenuItem("RED");

ritem.addActionListener(this);

ritem.setForeground(Color. RED);

gitem=new JMenuItem("GREEN");

gitem.addActionListener(this);

gitem.setForeground(Color. GREEN);

//添加菜单项

colorMenu.add(bitem);

colorMenu.add(blitem);

colorMenu.add(ritem);

colorMenu.add(gitem);

styleMenu.add(new JMenuItem("_____")); styleMenu.add(fontMenu);

//创建并添加形体菜单项并添加事件监听器songitem=new JMenuItem("宋体"); songitem.addActionListener(this);

huaitem=new JMenuItem("华文行楷"); huaitem.addActionListener(this);

liitem=new JMenuItem("隶书");

liitem.addActionListener(this); fontMenu.add(songitem);

fontMenu.add(huaitem);

fontMenu.add(liitem);

fontMenu.add(new JMenuItem("_____"));

//创建复选菜单并添加事件监听器

bolditem=new JCheckBoxMenuItem("加粗"); bolditem.addActionListener(this);

italicitem=new JCheckBoxMenuItem("倾斜"); italicitem.addActionListener(this); fontMenu.add(bolditem);

fontMenu.add(italicitem);

//新建帮助菜单并设置颜色及快捷键

JMenu helpMenu=new JMenu("帮助(H)"); helpMenu.setForeground(Color. BLUE); helpMenu.setMnemonic('H');

//创建帮助菜单项并添加事件监听器copyrightitem = new JMenuItem("版权", 'b'); copyrightitem.addActionListener(this); explainitem=new JMenuItem("说明",'a'); explainitem.addActionListener(this); helpMenu.add(copyrightitem);

helpMenu.add(explainitem);

//添加各菜单

menubar.add(fileMenu);

menubar.add(styleMenu);

menubar.add(helpMenu);

Container contentPane=getContentPane();

//新建文本面板

JPanel TextPanel=new JPanel();

//设置文本域大小

text=new JTextArea(27,80);

//设置初始字体

text.setFont(new Font("宋体",Font.PLAIN,13));

//为文本域添加滚动条

JScrollPane scrollpane=new JScrollPane (text); TextPanel.add(scrollpane);

contentPane.add(TextPanel,BorderLayout.SOUTH); //新建工具面板

JPanel toolPanel=new JPanel();

//创建标签

JLabel l=new JLabel("字体大小");

//新建组合框

sizeBox= new JComboBox();

//创建用来存放字体大小的数组并进行初始化a=new int [16];

for(int i=0;i<=15;i++)

{ a[i]=(i+5)*2;

sizeBox.addItem(""+a[i]);

}

//为组合框添加并实现事件监听器

sizeBox.addItemListener(

new ItemListener()

{

public void itemStateChanged(ItemEvent event)

{

if( event.getStateChange() == ItemEvent.SELECTED)

{

text.setFont( new Font( text.getFont().getName(),

text.getFont().getStyle(), a[sizeBox.getSelectedIndex()] ) );

}

}

}

);

toolPanel.add(l);

toolPanel.add(sizeBox);

contentPane.add(toolPanel,BorderLayout.NORTH);

}

//实现事件监听器

public void actionPerformed(ActionEvent e)

{

Object s=e.getSource();

//实现版权菜单项

if (s==copyrightitem)

{

int selection=JOptionPane.showConfirmDialog(

textFrame.this,

"制作人:20095409 金华日,20095403 章旭,20095397 李伏俊","版权", JOptionPane.DEFAULT_OPTION);

}

//实现说明菜单项

if(s==explainitem)

{

int selection=JOptionPane.showConfirmDialog(

textFrame.this,

"该记事本为527组原创,版权所有,翻版必究。","说明",

JOptionPane.DEFAULT_OPTION);

}

//定义形体变量

int fontStyle=0;

if(bolditem.isSelected())

fontStyle+=Font.BOLD;

if(italicitem.isSelected())

fontStyle+=Font.ITALIC;

计算器java课程设计(完整版)

《面向对象程序设计》课程设计报告 课程设计题目:计算器 学生姓名:李婉如 专业:信息管理与信息系统 班级:1424603 指导教师:司红伟 2016年 5 月 25 日

一、课设任务及要求 1)课设任务: ⑴设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运 算(可以进行浮点数和负数的运算)。 ⑵有求倒数、退格和清零功能。 2)创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。 3)设计要求 ①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。 ②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 ③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、设计思路 ⑴本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout 边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p加入到”Center”区域。包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加到面板中同时注册按钮事件监听器。如: Button b=new Button(); b.addActionListener(事件监听器); ⑵事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”求倒”)、退格按钮事件(”退格”)、清除按钮事件(“C”) 、正切(tan)、余弦(cos),以及求平方根(sqrt)、指数(pow)、对e的指数(exp)、对数运算(log)。 ⑶在事件处理,触发按钮事件时,先判断是或是数字是或是“-/+”是或是“.”,是的话就将负号“-”、数字、小数点“.”分别写入文本框并存放在sum中,然后判断是或是“退格”、“求倒”等,是的话进行相应的处理,都不是的话则跳到doOperation()执行运算同时将运算符存放在preOperater中。触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。 ⑷计算器完成的是一个数学表达式,如:3+2,所以可以采用一个数组来存储数字或字符,如3,+,2分别存储在数组中,最后运算时,可以一一取出来进行运算。 ⑸利用按钮设计计算器的各个运算符和操作符,通过按钮的事件处理实现按钮计算功能。 ⑹利用文本框显示操作数和运算结果。

简易计算器的设计与实现

沈阳航空航天大学 课程设计报告 课程设计名称:单片机系统综合课程设计课程设计题目:简易计算器的设计与实现 院(系): 专业: 班级: 学号: 姓名: 指导教师: 完成日期:

沈阳航空航天大学课程设计报告 目录 第1章总体设计方案 (1) 1.1设计内容 (1) 1.2设计原理 (1) 1.3设计思路 (2) 1.4实验环境 (2) 第2章详细设计方案 (3) 2.1硬件电路设计 (3) 2.2主程序设计 (7) 2.2功能模块的设计与实现 (8) 第3章结果测试及分析 (11) 3.1结果测试 (11) 3.2结果分析 (11) 参考文献 (12) 附录1 元件清单 (13) 附录2 总电路图 (14) 附录3 程序代码 (15)

第1章总体设计方案 1.1 设计内容 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除1位无符号数字的简单四则运算,并在6位8段数码管上显示相应的结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的8751单片机,输入采用4×4矩阵键盘。显示采用6位8段共阳极数码管动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,最终选用汇编语言进行编程,并用protel99se涉及硬件电路。 1.2 设计原理 在该课程设计中,主要用到一个8751芯片和串接的共阳数码管,和一组阵列式键盘。作为该设计的主要部分,下面将对它们的原理及功能做详细介绍和说明。 1)提出方案 以8751为核心,和数码管以及键盘用实验箱上已有的器件实现计算器的功能。 2) 总体方案实现 (1)要解决键值得读入。先向键盘的全部列线送低电平,在检测键盘的行线,如果有一行为低电平,说明可能有按键按下,则程序转入抖动检测---就是延时10ms再读键盘的行线,如读得的数据与第一次的相同,说明真的有按键按下,程序转入确认哪一键按下的程序,该程序是依次向键盘的列线送低电平,然后读键盘的行线,如果读的值与第一次相同就停止读,此时就会的到键盘的行码与列码

java课程设计 计算器[1]解析

JA V A程序设计期末结课大作业 姓名张可新 学号(20123259) 班级信工1202 题目 java课程设计++计算器 成绩汇总 考核内容成绩 程序实现的功能(10分) 程序类图结构(10分) 方法间调用关系(10分) 程序代码(40分) 程序代码注释(10分) 运行结果(10分) 总结体会(10分) 总成绩 阅卷人

目录 一、课程设计任务及要求 (3) 二、需求分析 (3) 三、设计思路 (3) 四、详细设计 (4) 五、运行调试与分析讨论 (9) 六、设计体会与小结 (11) 七、参考文献 (12) 八、附录 (13)

1. 一、课程设计任务及要求 设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算。通过对计算器的编辑来检测和提升自己的java编程能力,并最终完成课程设计报告! 二、需求分析 2.设计的计算器可以完成加法、减法、乘法、除法的简单运算。 3.实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。 4.添加小数点功能,用以实现浮点型数据的计算。 5.使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相关的计算 三、设计思路 1.界面设计:(如图3-1) 图3-1 2.设计思路: (1)根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个

文本框,20个按钮,总体界面用BorderLayout布局,文本框放置在 最NORTH,然后0到9以及+,-,*,/等按钮放置到一个面板Panel 中,完成界面设计。 (2)设计计算流程,首先点击数字按钮时,将按钮数值添加到文本框当中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之 前保存的字符串与新的数值拼接起来,再添加到文本框当中,直到 点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量 中,然后重置文本框内容,将运算符号显示到文本框中,随后输入 第二个计算数据时,用同样的办法保存数据,最后通过控制“=”运 算符先将字符串数据转化成双精度类型,然后计算出结果并显示到 文本框当中。 (3)基本运算设计完成以后则开始考虑其他个别功能的实现,例如倒数、清零、退格等功能的实现,清零直接重置文本框内容,退格功能则 采用substring函数截取字符串长度。 四、详细设计 1.程序流程图: 2.主要代码展示及说明:

JAVA实现计算器课程设计

JAVA实现计算器课程设计 计算机科学系 计应0701班 指导老师:刘其昌 设计人员:陈秀桃 设计日期:2009年11月10日——2009年12月20日 计算器的设计 目录 第一章绪 论 ..................................................................... .. (2)

1.1 开发环 境 ..................................................................... . (2) 1.2 基本功能介 绍 ..................................................................... ......... 2 第二章系统设 计 ..................................................................... (3) 2.1 系统流程 图 ..................................................................... . (3) 2.2 系统功能框 图 ..................................................................... (3) 2.3 需求分 析 ..................................................................... ................ 4 第三章软件设 计 ..................................................................... (5) 3.1 界面设 计 ..................................................................... . (5) 3.2 代码设 计 .....................................................................

LABVIEW计算器设计报告

虚拟仪器大作业——模拟计算器 班级:电1004 姓名: 学号:20102389

一、设计思想: .创建3个字符串显示控件num1,num2,num3,其中: 1、第一个输入数据存储在num1中 2、第二个输入数据存入num2中 3、将其赋给 num3,并使num2为空,以便输入的数据存入num2 4、所有的运算是在num1和 num3间进行 5、运算结果都赋给result,同时赋给num1,用于下一次的运算 .创建4个布尔开关按钮change,change1,change2,change3,其中: 1、Change的真假用来判断是第一个数据还是第二个数据 2、change1的功能是在输入=,运算完后,不需要初始化即可进行下一次运算 3、change2用来去掉数据小数末尾的0 4、change3用来保证backspace键仅对输入的数据有效,对运算结果无效 .创建2个数值显示控件type1,type2,并分别在其后面板的属性——数据类型——表示法中选择U8其中: 1、type1用来存储运算符号 2、type2用来保证连续“+、-、*、/”的正确性 3、所有的运算结果都赋给result 4、result经过去零处理后得到result1,将数据显示在前面板上。 二、实现过程 1、面板按键的设计及感应 首先,在前面板上建立一个簇 然后在簇中再建立布尔量,复制20个以满足键的需求(0--9十个数字键,一个小数点键,一个等号键,四则运算键,一个开方键,一个平方键,一个倒数键,一个反号键,一个清零键及一个退出键并注意按键的顺序)。 将按键给值并作适当的美化处理

在后面板中通过将簇中元素按产生的顺序组成一个一维数组,这样就实现了每个键与数字(0--20)之间的对应。每次按下一个键时,通过 查找出对应的键并把结果(对应的数字)连接到一个case结构,然后执行对应case结构中的程序,至此就完成了对一个键的感应过程。 2、数字的键入(0~8键入1~9数字) 由于第一个输入和第二个输入所存放的地方不同(第一个存于num1,第二个存于num2→mun3再清空num2),所以有必要对此分开处理。创建2分支(真、假)的case结构。 用change控制分支的选择:在处创建局部变量并转换为读入。由于数字的键入是数据输入,change3用来保证backspace键仅对输入的数据有

Java带计算过程的计算器课程设计报告

保存计算过程的计算器 Java程序设计课程设计报告保存计算过程的计算器 目录 1 概述.............................................. 错误!未定义书签。 1.1 课程设计目的............................... 错误!未定义书签。 1.2 课程设计内容............................... 错误!未定义书签。 2 系统需求分析.......................................... 错误!未定义书签。 2.1 系统目标................................... 错误!未定义书签。 2.2 主体功能................................... 错误!未定义书签。 2.3 开发环境................................... 错误!未定义书签。 3 系统概要设计.......................................... 错误!未定义书签。 3.1 系统的功能模块划分......................... 错误!未定义书签。 3.2 系统流程图................................. 错误!未定义书签。4系统详细设计........................................... 错误!未定义书签。 5 测试.................................................. 错误!未定义书签。 5.1 测试方案................................... 错误!未定义书签。 5.2 测试结果................................... 错误!未定义书签。 6 小结.................................................. 错误!未定义书签。参考文献................................................ 错误!未定义书签。附录................................................ 错误!未定义书签。 附录1 源程序清单...................................... 错误!未定义书签。

简单计算器设计报告

简单计算器设计报告 045 一、基本功能描述 通过文本编辑框实现基本整数的加减乘除运算 二、设计思路 如下图是整个程序进行的流程图,基本方法是在ItemText文本编辑框输入字符,程序对字符进行判断,若输入不是数字则提示错误。输入正常时,通过下拉框ComboBox_InsertString 选择相应运算符。点击等号IDC_OK,即可得出运算结果。操作简便,算法简单。 三、软件设计 1、设计步骤 打开Microsoft Visual C++ 6.0,在文件中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名zhoutong及其所在位置,点击确定 1

将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成 MFC AppWizard就建立了一个基于对话窗口的程序框架

四、主要程序分析 1、字符判定函数 BOOL IsInt(TCHAR*str) { int i=atoi(str); TCHAR strtemp[256]; wsprintf(strtemp,"%i",i); if(strcmp(str,strtemp)!=0) { return FALSE; } Else { return TRUE; } } 该函数通过atoi把文本编辑框读取的字符转换为数字,再通过wsprintf把转换数字转换为字符,通过strcmp比较原字符和转换得来的字符。如相同返回true,不通则返回false. 3、运算符选择程序 BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) { HWND hwndComboOP=GetDlgItem(hwnd,IDC_COMBOOP); ComboBox_InsertString(hwndComboOP,-1,TEXT("+")); ComboBox_InsertString(hwndComboOP,-1,TEXT("-")); ComboBox_InsertString(hwndComboOP,-1,TEXT("*")); ComboBox_InsertString(hwndComboOP,-1,TEXT("/")); return TRUE; } 3

java课程设计计算器3科学计算器

import javax.swing.*;// 把 javax包里面的swing包里面的所有东西引进来 import java.awt.*;// 导入awt包里的所有java类 import java.awt.event.*;//导入包event import java.text.DecimalFormat;// 处理文本、日期、数字和消息的类和接口 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Point2D; public class biaozhunjisuanqi extends JFrame implements ActionListener {// public代表该类公有 //class声明一个类 // biaozhunjisuanqi为类名 // extends 是继承类 //implements代表实现接口 //窗体名称biaozhunjisuanqi继承JFrame类和ActionListener接口,并实现public void actionPerformed(ActionEvent e){}方法 private static final long serialVersionUID = 1L;// serialVersionUID相当于java类的身份证, 默认为1L, serialVersionUID作用是序列化时保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性 private JPanel jContentPane = null; // 创建面板对象, null代表为这些变量赋初值为空,即不分配内存空间,变量不指向任何地址。private是访问控制符,代表这些变量的访问级别为私有,私有级别只能在当前类中进行访问, 这些(JPanel 、JTextArea 、JPanel、 JButton )是java中AWT(包)中的类,用能进行桌面级应用程序的开发,就像平时用的word,上面有各种文本框,菜单栏,工具栏按钮等等,这些都是对象 private JPanel jPanel= null; //JPanel 作为一个容器,可以包容一些组件,然后将这个 JPanel

java课程设计 计算器实际与实现

《面向对象程序设计》 课程设计报告 题目: 计算器设计与实现 专业: 班级: 姓名: 指导教师: 成绩: xx 201x 年 x 月xx 日 xxxxxx

目录 1 设计内容及要求 (1) 1.1设计内容 (1) 1.2设计任务及具体要求 (1) 2 概要设计 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 设计过程 (2) 3.2系统功能模块 (3) 4 设计结果与分析 (4) 4.1功能模块的划分 (4) 4.2功能模块的实现 (4) 小结 (10) 5 参考文献 (11)

1 设计内容及要求 1.1设计内容 该程序是一个图形界面的简单Java计算器,具有良好的界面,使用人员能快捷简单的进行操作。即时准确地获得需要的计算结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,等) 1.2设计任务及具体要求 计算器的设计与实现,使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。在日常生活中经常需要用到计算器,比如科学计算、数字计算、会计业务甚至是日常生活中的一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。 2 概要设计 2.1 功能需求 在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。在该系统中不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。除此之外还可以进行三角函数、指数、对数、平方等运算。人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。

计算器设计的java课程设计报告

】 · ( 华东交通大学课程设计 课 程: Java 程序设计 题 目: 计算器设计 年 级: 2010级 专 业: 信息一班 * 学 号: 姓 名: 组 员: 指导教师: 课程设计题目:计算器设计

课程设计(论文)任务书 基础学院信息与计算科学专业2010—1 班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自2013 年 6 月23日起至2013 年6月27日止。 三、课程设计(论文) 地点: 计算机中心 · 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握系统各功能模块的基本工作原理; (2)掌握Java的基本编程原理和基本的编程方法; (3)使学生学会系统调试; (4)培养学生分析、解决问题的能力; (5)提高学生的软件文档写作能力和团队合作精神。 2.课程设计的任务及要求 ' 1)基本要求: (1)分析系统各功能模块的工作原理; (2)提出系统的设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写设计论文; > (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; [ 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献:

C++简单计算器课程设计报告

武汉理工大学《专业课程设计2》课程设计说明书 目录 1 基本功能描述 (1) 2 设计思路 (1) 3 软件设计 (4) 3.1 设计步骤 (4) 4 结论与心得体会 (12) 7 附:设计中的关键源代码 (14) 7.2 测试结果 (15)

简单计算器 1 基本功能描述 简单计算器包括双目运算和单目运算功能。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,阶乘,对数,开方,倒数等运算。可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。出现错误会给出相应提示,同时包含清除,退格,退出功能以及有与所有按钮相对应的菜单项。 2 设计思路 如图是整个计算器的流程图,打开计算器程序,输入数据,调用输入数据子程序。子程序开始时m_num为零。按下数字按钮后,判断m_num的正负号,对其进行相关处理,然后在判断是否有小数点,处理后输出结果。 回到总流程图中,输完第一个操作数后,若按下双目运算符,则把m_num存入num2,按下输入第二个操作数并算出结果。若按下的是单目运算符,则直接对其处理得出结果。若按下清零,则m_num等于0.在运算中还要判断运算是否合法,以及结果是否超出显示范围,以做出相关提示,按下清零。算出后把结果保存至num2。若需用算出的结果继续运算则回到输入完第一个操作数后,若不需要则判断试否需要开始新一轮的运算,不需要则结束。

输入数据子函数 N 图1 输入数据子函数流程图

图2 简单计算器总流程图

3 软件设计 3.1 设计步骤 打开Microsoft Visual C++ 6.0,在文件中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名09107xuzhujie及其所在位置,点击确定,如图3所示。 图3 新建MFC AppWizard[exe]工程 将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成,如图4所示。

计算器java课程设计(完整版)

目录 一、课设任务及要求 (1) 二、需求分析 (2) 三、设计思路 (3) 四、详细设计 (4) 五、运行调试与分析讨论 (14) 六、设计体会与小结 (18) 七、参考文献 (19)

一、课设任务及要求 1)课设任务: ⑴、设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算); ⑵、有求倒数、退格和清零功能。 2)创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。 3)设计要求 ①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。 ②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 ③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、需求分析 ⑴、开发的技术及功能 本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算,还有求倒数、退格和清零功能。 ⑵设计思路 设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦(cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以及对e的指数运算(exp),并且还能进行连续运算。总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。 ⑶设计效果图 设计时先在设计界面中添加按钮等控件,后在按钮的actionPerformed 事件中添加代码完成其功能其中调用了Java类中的Math函数库以及各种字符串操作。设计的界面如下: 图1 计算器运行界面

简易计算器设计实验报告

简易计算器设计实验报告 一.设计任务及要求 1.1实验任务: 根据计算器的原理设计一个具有加减乘除功能的简易计算器。如:5+3*4/8=4。 1.2 实验基本要求: (1)实现最大输入两位十进制数字的四则运算(加减乘除)。 (2)能够实现多次连算(无优先级,从左到右计算结果)。 如:12+34*56-78/90+9=36 (3)最大长度以数码管最大个数为限,溢出报警。 二.实验设计方案 (1)用QuartusII的原理图输入来完成系统的顶层设计。 (2)用VHDL编写以及直接拖模块来各功能模块。 (3)通过2个脉冲分别实现个位数和十位数的输入。 (4)通过选择每次的输出数值,将输出值反馈到运算输入端 (4)通过除法运算实现十六进制到十进制的转换输出。 其具体实现流程图如下:

三系统硬件设计 FPGA: EP2C5T144C8目标板及相应外围硬件电路。(从略) 四系统软件设计 1.数据输入模块 原理:用VHDL创建模块,通过两个脉冲分别对两个数码管进行输入控制,再通过相应运算模块将两个独立数据转化成两位十进制数字。 2.运算模块 原理:用VHDL创建模块,四种运算同步运行,通过按键加、减、乘、除选择输出对应的计算结果,当按键等号来时,将所得结果反馈给运算模块输入端。具体实现代码见附录二。 3.输出模块 原理:用VHDL创建模块,通过按键等号来控制显示运算对象还是运算结果,当等号按下时,输出计算结果,否则显示当前输入的数据,并且通过除法模块将十六进制转化为十进制。当输出结果溢出是LED0亮,同时数码管显示都为零。部分实现见附录二。 五实验调试 输入数据12,再按加法键,输入第二个数字25,按等号键,数码管显示37;按灭加法、等号键,输入第二个数据2,依次按等号键,减法键,数码管显示35;同上,按灭减法键、等号键,输入第三个数据7,依次按等号键,除法键,数码管显示5;按灭除法键、等号键,输入第四个数据99,依次按等号键,乘法键,数码管显示495,按灭乘法键、等号键,当前显示为99,依次按等号键、乘法键,数码管显示49005,同上进行若干次之后,结果溢出,LED0亮,同时数码管显示都为零。当输出为负数时,LED0灯变亮,同时数码管显示都为零。六实验结论 本实验基本实现了计算器的加减乘法运算功能,但是存在一个突出的缺陷,就是当输出结果时,必须先按等号键导通数据反馈,再按运算键选择输出结果。这与实际应用的计算器存在很大的差距。但是,本设计可以通过等号键实现运算对象和运算结果之间的切换。

JAVA课程设计计算器

《JAVA程序设计》课程设计任务书 一、课程设计的目的 1、培养学生面向对象编程的思想; 2、使学生熟悉JAVA语言的使用; 3、培养学生JAVA编程的思想和方法; 4、使学生掌握JAVA编程调试的基本技能; 5、培养学生分析、解决问题的能力。 二、课程设计内容与要求 1、内容一: 1简单计算器 [题目描述] 使用Java的GUI图形用户界面编程设计并编写一个计算器程序,用户可以通过鼠标或者键盘操作输入参加运算的数值和运算符,要求能进行加、减、乘、除等混合运算。 [基本要求] 实现加、减、乘、除的双目单类别的基础运算; [实现提示] GUI编程Component的事件响应。 参考界面 《JAVA程序设计》课程设计

一、系统中所使用的数据对象及说明 1、Calculator类 属性 属性名称类型描述 Jmb JMenuBar 菜单栏Jm1 jm2 jm3 JMenu 菜单Jmi JMenuItem 菜单项 f JFrame 实例化对象Panel1 1 JPanel 输入面板CommandsPanel JPanel 运算符面板calckeysPanel JPanel 数字面板showline JT extField 数据输出框backspace JButton 退格键CE JButton 清空 C JButton 删除 1/X JButton 取余 dao JButton 取倒数 add JButton 数字相加 jian JButton 数字相减cheng JButton 数字相乘quzheng JButton 数字相除dian JButton 点符号

deng JButton 等于号 zero JButton 一 one JButton 二 two JButton 三 three JButton 四 four JButton 五 five JButton 六 six JButton 七 seven JButton 八 eight JButton 九 num1 String 保存第一个运算数字operator String 保存运算符号 方法 方法名称功能 Calculator 计算器布局 Add 添加组件、面板addMouseListener 添加鼠标监听事件setJMenuBar 设置菜单 二、系统功能结构及相关算法描述 1、系统功能结构

java课程设计报告_简单图形界面计算器的设计

Java 课程设计 简单图形界面计算器的设计 课程名称 Java程序设计 选题名称简单图形界面计算器的设计 专业 班级 姓名 学号 指导教师 简单图形界面计算器的设计

一、设计任务与目标 本次java程序设计我的设计任务是设计一个图形界面(GUI)的计算器应用程序并且能够完成简单的算术运算。本次任务的基本要求是这个计算器应用程序可以完成十进制的加、减、乘、除、求倒、取余、开方运算,且有小数点、正负号、退格和清零功能。而我要在此基础上添加一项千位符分隔符的功能,即以三位为一级,在输入的一串数字中每三位加入一个逗号,这项功能国际通用,并已经成为惯例,会计记账都用这种方法便于账目核算与管理。 GUI计算器设计的具体目标: 1.完成十进制的加、减、乘、除、求倒、取余和开方运算; 2.有小数点和正负号加入运算; 3.有退格、复位和清零的功能; 4.有千位符分隔符的功能,即在输入的一串数字中每三位加入一个逗号。 二、方案设计与论证 1.设计目标的总体分析 (1)设计目标的需求分析:计算器是现在一个普遍应用的工具,能够解决许多人工所无法计算的数据,节省大量宝贵的时间。 (2)设计目标的功能分析:实现计算器系统的功能,主要有两个功能模块:输入和输出。 (3)设计原则:基于计算器系统要具有适用性广、操作简便等特点,本系统预计要达到以下几个目标:①满足以上的基本功能要求;②能够在常见的计算机及其操作系统上运行。 2.设计的基本思路 利用GUI的界面设计,将整个大设计分为三块,分别是数据的输入,运算符

功能符的控制和数据的输入输出显示。利用Swing控件,数据的输入由0~9这10个按钮来表示,用“+”、“-”、“*”、“/”、“1/x”、“%”、“sqrt”这7个按钮来表示加、减、乘、除、求倒、取余、开方运算,用“.”和“±”这2个按钮来表示小数点和正负号,用“Back”、“CE”和“C”这3个按钮来表示退格、复位和清零的功能,数据的输入输出显示由文本字段来表示。将计算器的总体界面设计好后,再将代码分别写入不同的按钮的源程序中。 我要完成的一项改进,即添加一个拥有千位符分隔符功能的按钮,按下这个按钮能够在输入的一串数字中每三位加入一个逗号并且显示出来。我要在之前的界面设计的基础上多添加一个按钮“$”来表示千位符分隔符,并且将功能代码写入这个按钮的源程序中。 三、程序流程图,程序清单与调用关系 1. 程序流程图:

java课程设计报告计算器

java课程设计报告 计算器 1 2020年4月19日

目录 一、课程设计目的 (5) 二、课程设计任务.................................................................................................... .. (2) 2.1、设计任务 (5) 2.2、课程设计要求: (6) 2.3、需求分析 (6) 三、开发工具与平台.................................................................................................... (3) 3.1、开发工具 (7) 3.2、开发平台 (7) 2 2020年4月19日

四、设计思路.................................................................................................... . (4) 4.1、界面设计.................................................................................................... . (4) 4.2.1、逻辑设计 (8) 4.2.2、程序流程图.................................................................................................... . (5) 4.2.3、主要代码展示及说明 (5) 4.3、程序测试 (18) 五、实验小结 (20) 3 2020年4月19日

单片机简易计算器课程设计报告书

课程设计 题目名称简易计算器设计 课程名称单片机原理及应用 学生姓名 班级学号 2018年 6 月20日

目录 一设计目的 (2) 二总体设计及功能介绍 (2) 三硬件仿真图 (3) 四主程序流程图 (4) 五程序源代码 (4) 六课程设计体会 (17)

一设计目的 本设计是基于51系列单片机来进行的简单数字计算器设计,可以完成计算器的键盘输入,进行加、减、乘、除六位整数数围的基本四则运算,并在LED上显示相应的结果。软件方面使用C语言编程,并用PROTUES仿真。 二总体设计及功能介绍 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机,实现对计算器的设计。具体设计及功能如下: 由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LED 显示数据和结果; 另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘; 执行过程:开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。

三硬件仿真图 硬件部分比较简单,当键盘按键按下时它的那一行、那一列的端口为低电平。因此,只要扫描行、列端口是否都为低电平就可以确定是哪个键被按下。

四主程序流程图 程序的主要思想是:将按键抽象为字符,然后就是对字符的处理。将操作数分别转化为字符串存储,操作符存储为字符形式。然后调用compute()函数进行计算并返回结果。具体程序及看注释还有流程图 五程序源代码 #include #include #include/* isdigit()函数 */ #include/* atoi()函数 */ #define uchar unsigned char #define uint unsigned int

java课程设计模拟科学计算器

JAVA课程设计说明书 题目:模拟科学计算器 姓名: 学号: 班级:网络工程11-2 山东科技大学 2013年11月7日

目录 1 课设任务及要求 (3) 1.1课设任务 (3) 1.2设计要求 (3) 2 需求分析 (2) 2.1 设计背景 (2) 2.2 需求获取 (3) 2.3 程序功能图 (4) 3 设计思路 (4) 3.1 界面布局 (4) 3.2 类的定义 (5) 3.3变量的定义 (5) 4 详细设计 (6) 4.1整体概述 (6) 4.2 误操作处理 (7) 4.3流程图和结构图 (8) 5 系统调试 (11) 5.1 程序界面 (11) 5.2 运行界面 (11) 6 心得与体会 (15) 7 参考文献 (16) 8 附录 (16)

1 课设任务及要求 1.1课设任务: 要求:界面模拟Windows中的计算器程序。 实现基本数学运算、函数等功能:加、减、乘、除、阶乘、正弦、余弦和指数运算。 实现要点:添加相关组件并进行按钮事件处理。 要求提交Application和Applet两个版本的程序。 1.2设计要求 ①设计的java计算器应用程序可以完成加法、减法、乘法、除法和取余运算,和cos,sin,tan等三角函数功能以及阶乘和指数等运算,且有小数点、正负号、求倒数、退格和清零功能。具体可参考windows附件下的计算器 ②课程设计使用Eclipse4.2等作为程序编译和运行测试的开发平台,采用JDK-7u25作为java开发环境,使用Microsoft Office Visio 2007作为绘图工具。

③认真按时完成课程设计报告,制作演讲PPT,积极报名上讲台向大家演示和讲解自己的程序。提交打印版的报告以及电子版的原稿和Application和Applet两个版本的程序代码。 2 需求分析 2.1 设计背景 本程序是老师提供的几个课程设计题目中比较中等的题目。要求实现模拟的科学计算器功能,主要包括加减乘除四则运算和阶乘,三角函数以及指数的运算。具体的功能我参考了Windows7下的计算机小程序,并根据其界面设计了java小程序界面,根据其功能对自己设计的计算器小程序进行了功能的适当增加与修改。在实现了课程设计题目要求的基础上,自己又增添了对数函数,幂函数,三角函数,取余等我们常用到的功能比较简单的函数。由于本函数涉及的函数以及按键数目较多,故没有采用面向对象的设计方法,没有对每个功能封装成函数调用,而是针对每个按键的动作事件直接采用了算法的编写。最终实现了全部的功能,但是由于时间有限,许多功能没有坐到很到位的优化,或许还存在着许多了漏洞,欢迎老师和同学的批评指正,我一定会

相关文档
最新文档