JAVA课程设计任务书 - 科学计算器

JAVA课程设计任务书 - 科学计算器
JAVA课程设计任务书 - 科学计算器

《高级语言程序设计(2)》课程设计报告

专业:班级:学号:姓名:

完成日期: 指导教师:

1、程序设计说明书

【设计题目】科学计算器

【问题描述】本程序为设计一个科学计算器,用于进行数值计算。可以进行数据的加减乘除,对数等计算。

【软件功能】

1 图形界面:应用AWT和Swing设计工作界面,按下数字时显示数字,按下“=”时显示结果。

2 计算器基本功能:加减乘除四则运算,倒数,开平方等。

3 附加运算功能:三角函数,对数,阶乘,度转化为弧度等。

4 计算器的存储功能:清除中间结果,使用中间结果,存储中间结果及累加中间结果

5 用不同颜色进行分区

【算法思想】

本程序设计一个主类和四个内部类。通过在主类中调用四个类来实现程序的各个功能。

【类的设计】

1主类SmartCalculator类,继承了JFrame类

○1成员变量

tf是JTextField对象,单行文本框,用来显示数据。

panel1,panel2,panel3,panel4是JPanel对象,用来盛放按钮。Panel1盛放“←”,“CE”,“C”按钮,Panel2盛放功能区按钮,Panel3盛放记忆区按钮,Panel4盛放面板Panel1和Panel2

isResult,flag是布尔型变量

result是double型变量,存储结果

SpecialNumActionListener是SpecialNum类的对象,监听特殊数字按钮

df是DecimalFormat类的对象,控制输出格式

○2方法

SmartCauculator是构造方法,完成面板的布局并调用init方法

init方法调用addButton方法向面板中增加按钮

addButtion方法统一设置按钮的使用方式,参数包括panel,name,action,color,每次完成向面板添加按钮,设置名字,添加键盘监听器和设置按钮颜色

getResult方法实现四则运算,并输出

main方法,程序入口

2内部类FunctionSigns,继承接口ActionListener,实现接口的actionProform抽象方法,完成开平方,求对数等操作

3内部类ClearArea,继承接口ActionListener,实现接口的actionProform抽象方法,对清除区三个按钮“←”,“CE”,“C”进行监听,实现删除功能。

4内部类SpecialNum,继承接口ActionListener,实现接口的actionProform抽象方法,对π,e,及数字键监听

5 Dot对小数点进行监听

【用户界面】

【模块划分及调用关系】

程序分为五个模块,在主类中对剩余四个模块进行调用【模块流程图】

ClearArea 流程图

【运行说明】

程序运行后会弹出计算器界面,用户使用鼠标点击按钮就可以进行数据计算。

2、 程序上机调试报告

【语法错误及其排除】

在使用if ()else if ()嵌套语句时经常出现语法错误,在查阅书籍后排除

【算法错误及其排除】

在对抽象方法actionPerformed 进行现实时总出现错误,最后排除。

3、 程序测试结果

【测试数据】

计算36+47,99÷3,输出π,e 的值,将180度转换成弧度,

【输出结果】

【收获及体会】

从本次课程设计的完成中,首先我发现了我有很多不足的地方,最突出的是所学的东西太少了,根本满足不了平时编写程序的需要。此外,了解了课程设计的要求与方法,学会了程序设计基本步骤。同时,使我感觉到,一个优秀的程序,不仅仅是可以运行的,更应该具较高的效率,合理的结构,良好的可读性和一定的容错性。除此之外,一个程序的成功完成需要严谨的务实态度。认真的态度是课程设计取得成功的一项非常重要的保证。在以后的学习中,我将虚心向学力争编写出更有意义的程序。

4、 源程序代码(Java 语言,要求有尽可能多的注释语句)

package 课程设计之计算器;

import java.awt.*;

import java.awt.event.*;

import java.text.DecimalFormat;

import javax.swing.*;

public class SmartCalculator extends JFrame{ /**

*

*/

private static final long serialVersionUID = 1L;

private JTextField tf;

private JPanel panel1,panel2,panel3,panel4;

private String back;

private boolean isResult=true,flag=false;

private String operator="=";

private double result=0;

private SpecialNum SpecialNumActionListener;

private DecimalFormat df;

public SmartCalculator(){

super("科学计算器");//设置标题栏

df=new DecimalFormat("#.####");//保留四位小数

this.setLayout(new BorderLayout(10,5));//边界布局

panel1=new JPanel(new GridLayout(1,3,10,10));//1行3列

panel2=new JPanel(new GridLayout(5,6,5,5));//5行6列,水平间隔和竖直间隔都设为5

panel3=new JPanel(new GridLayout(5,1,5,5));//5行1列,水平间隔和竖直间隔都设为5

panel4=new JPanel(new BorderLayout());//边界布局

SpecialNumActionListener=new SpecialNum();//实现对特殊数字的监听

tf= new JTextField(); //文本区域,即计算器的显示区域

tf.setEditable(true); //文本区域可编辑,^C复制结果

tf.setBackground(Color.WHITE); //文本区域背景色为白

tf.setHorizontalAlignment(JTextField.RIGHT);//文字右对齐

tf.setText("0");

tf.setBorder(BorderFactory.createLineBorder(Color.RED

) );

tf.setEditable(false); //设为不可编辑

init(); //调用init方法初始化计算器

}

/**

*初始化界面

*/

private void init(){

addButton(panel1,"←",new ClearArea(),Color.BLACK);

//黑色

addButton(panel1,"CE",new ClearArea(),Color.BLACK);

addButton(panel1,"C",new ClearArea(),Color.BLACK);

addButton(panel2,"1/x",new

FunctionSigns(),Color.magenta);//洋红色

addButton(panel2,"log",new

FunctionSigns(),Color.magenta);

addButton(panel2,"7",SpecialNumActionListener,Color.b lue);//蓝色

addButton(panel2,"8",SpecialNumActionListener,Color.b lue);

addButton(panel2,"9",SpecialNumActionListener,Color.b lue);

addButton(panel2,"÷",new

FunctionSigns(),Color.BLACK);

addButton(panel2,"n!",new

FunctionSigns(),Color.magenta);

addButton(panel2,"sqrt",new

FunctionSigns(),Color.magenta);

addButton(panel2,"4",SpecialNumActionListener,Color.b lue);

addButton(panel2,"5",SpecialNumActionListener,Color.b lue);

addButton(panel2,"6",SpecialNumActionListener,Color.b lue);

addButton(panel2,"×",new

FunctionSigns(),Color.BLACK);

addButton(panel2,"sin",new

FunctionSigns(),Color.magenta);

addButton(panel2,"x^2",new

FunctionSigns(),Color.magenta);

addButton(panel2,"1",SpecialNumActionListener,Color.b lue);

addButton(panel2,"2",SpecialNumActionListener,Color.b lue);

addButton(panel2,"3",SpecialNumActionListener,Color.b lue);

addButton(panel2,"-",new

FunctionSigns(),Color.BLACK);

addButton(panel2,"cos",new

FunctionSigns(),Color.magenta);

addButton(panel2,"x^3",new

FunctionSigns(),Color.magenta);

addButton(panel2,"0",SpecialNumActionListener,Color.b lue);

addButton(panel2,"-/+",new ClearArea(),Color.blue);

addButton(panel2,".",new Dot(),Color.blue);

addButton(panel2,"+",new

FunctionSigns(),Color.BLACK);

addButton(panel2,"tan",new

FunctionSigns(),Color.magenta);

addButton(panel2,"%",new

FunctionSigns(),Color.magenta);

addButton(panel2,"π",SpecialNumActionListener,Color.g ray);//灰色

addButton(panel2,"e",SpecialNumActionListener,Color.g ray);

addButton(panel2,"度变弧度",new

FunctionSigns(),Color.gray);

addButton(panel2,"=",new

FunctionSigns(),Color.BLACK);

JButton btns=new JButton("记忆区");

btns.setBorder(BorderFactory.createLoweredBevelBorder ());//凹入斜面效果

btns.setEnabled(false); //按钮不可操作

btns.setPreferredSize(new Dimension(20,20));

panel3.add(btns); //加入按钮

addButton(panel3,"MC",null,Color.BLACK);

addButton(panel3,"MR",null,Color.BLACK);

addButton(panel3,"MS",null,Color.BLACK);

addButton(panel3,"M+",null,Color.BLACK);

panel4.add(panel1,BorderLayout.NORTH);

panel4.add(panel2,BorderLayout.CENTER);

this.add(tf,BorderLayout.NORTH);

this.add(panel3,BorderLayout.WEST);

this.add(panel4);

pack();

this.setResizable(false); //窗口不可改变大小

this.setLocation(300,200); //窗口定位this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ /关闭按钮

}

/**

* 统一设置按钮的使用方式,参数包括panel,name,action,color

*/

private void addButton(JPanel panel,String

name,ActionListener action,Color color){

JButton bt=new JButton(name);

panel.add(bt); //向面板添加按钮bt.addActionListener(action); //增加监听事件

bt.setForeground(color); //设置文字颜色

}

/**

* 四则运算,参数X表示用户输入数字

*/

private void getResult(double x){

if(operator=="+"){result+=x;}

else if(operator=="-"){result-=x;}

else if(operator=="×"){result*=x;}

else if(operator=="÷"){result/=x;}

else if(operator=="="){result=x;}

tf.setText(df.format(result));

}

/**

* 函数区运算符号事件监听

*/

class FunctionSigns implements ActionListener{ public void actionPerformed(ActionEvent e){ /*用ActionEvent对象的getActionCommand()方法

* 取得与引发事件对象相关的字符串

*/

String str=e.getActionCommand(); //求平方根

if(str.equals("sqrt")){

double i=Double.parseDouble(tf.getText());

if(i>=0){

/*

* String.valueof() 转换为字符串

* df.format()按要求保留四位小数

* Math.sqrt()求算数术平方根

*/

tf.setText(String.valueOf(df.format(Math.sqrt(i))));

}

else{

tf.setText("负数不能开平方根");

}

}

else if(str.equals("log")){ // 求常用对数

double i=Double.parseDouble(tf.getText());

if(i>0){

tf.setText(String.valueOf(df.format(Math.log(i))));

}else{

tf.setText("负数不能求对数");

}

}

else if(str.equals("%")){ //求百分比tf.setText(df.format(Double.parseDouble(tf.getText())/1 00));

}

else if(str.equals("1/x")){ //求倒数if(Double.parseDouble(tf.getText())==0){

tf.setText("除数不能为零");

}else{

tf.setText(df.format(1/Double.parseDouble(tf.getText()) ));

}

}

else if(str.equals("sin")){ //求正弦函数double i=Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(Math.sin(i))));

}

else if(str.equals("cos")){ //求余弦函数double i=Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(Math.cos(i))));

}

else if(str.equals("tan")){ //求正切函数double i=Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(Math.tan(i))));

}

else if(str.equals("n!")){ //求阶乘double i=Double.parseDouble(tf.getText());

if((i%2==0)||(i%2==1)) //判断为整数放进行阶乘操作

{

int j=(int)i; //强制类型转换

int result=1;

for(int k=1;k<=j;k++)

result*=k;

tf.setText(String.valueOf(result));

}

else{tf.setText("无法进行阶乘");}

}

else if(str.equals("x^2")){ //求平方double i=Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(i*i)));

}

else if(str.equals("x^3")){ //求立方

double i=Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(i*i*i)));

}

/**度变弧度---将角度转换成弧度

*/

else if(str.equals("度变弧度")){

double i=Double.parseDouble(tf.getText());

tf.setText(String.valueOf(df.format(i/180*Math.PI)));

}

else{

if(flag){

isResult=false;

}

if(isResult){

operator=str;

}else{

getResult(Double.parseDouble(tf.getText()));

operator=str;

isResult=true;

}

}

}

}

/**

* 清除区三个按钮的事件监听

*/

class ClearArea implements ActionListener{

public void actionPerformed(ActionEvent e){

String str=e.getActionCommand();

if(str=="C"){

tf.setText("0");

isResult=true;

result=0;

}else if(str=="-/+"){

double

i=(-1)*Double.parseDouble(tf.getText().trim());

tf.setText(df.format(i));

}else if(str=="←"){

if(Double.parseDouble(tf.getText())>0){

if(tf.getText().length()>1){

tf.setText(tf.getText().substring(0,tf.getText().length ()-1));

}else{

tf.setText("0");

isResult=true;

}

}

}else if(str=="CE"){

tf.setText("0");

isResult=true;

}

}

}

/*

* 特殊数字去两个按钮的事件监听

*/

class SpecialNum implements ActionListener{ public void actionPerformed(ActionEvent e){

String str=e.getActionCommand();

if(isResult){

tf.setText("");

isResult=false;

}

if(str=="π")

{

tf.setText(String.valueOf(Math.PI));

}

else if(str=="e")

{

tf.setText(String.valueOf(Math.E));

}

else{

tf.setText(tf.getText().trim()+str);

if(tf.getText().equals("0")){

tf.setText("0");

isResult=true;

flag=true;

}

}

}

}

/*

* 小数点的事件监听

*/

class Dot implements ActionListener{

public void actionPerformed(ActionEvent e) { isResult=false;

if(tf.getText().trim().indexOf(".")==-1){ tf.setText(tf.getText()+".");

}

}

}

/*

* main方法

*/

public static void main(String args[]){ new SmartCalculator().setVisible(true);

}

public String getBack() {

return back;

}

public void setBack(String back) {

this.back = back;

}

}

JAVA课程设计任务书 - 科学计算器

《高级语言程序设计(2)》课程设计报告 专业:班级:学号:姓名: 完成日期: 指导教师: 1、程序设计说明书 【设计题目】科学计算器 【问题描述】本程序为设计一个科学计算器,用于进行数值计算。可以进行数据的加减乘除,对数等计算。 【软件功能】 1 图形界面:应用AWT和Swing设计工作界面,按下数字时显示数字,按下“=”时显示结果。 2 计算器基本功能:加减乘除四则运算,倒数,开平方等。 3 附加运算功能:三角函数,对数,阶乘,度转化为弧度等。 4 计算器的存储功能:清除中间结果,使用中间结果,存储中间结果及累加中间结果 5 用不同颜色进行分区 【算法思想】 本程序设计一个主类和四个内部类。通过在主类中调用四个类来实现程序的各个功能。 【类的设计】 1主类SmartCalculator类,继承了JFrame类 ○1成员变量 tf是JTextField对象,单行文本框,用来显示数据。 panel1,panel2,panel3,panel4是JPanel对象,用来盛放按钮。Panel1盛放“←”,“CE”,“C”按钮,Panel2盛放功能区按钮,Panel3盛放记忆区按钮,Panel4盛放面板Panel1和Panel2 isResult,flag是布尔型变量 result是double型变量,存储结果 SpecialNumActionListener是SpecialNum类的对象,监听特殊数字按钮 df是DecimalFormat类的对象,控制输出格式 ○2方法 SmartCauculator是构造方法,完成面板的布局并调用init方法 init方法调用addButton方法向面板中增加按钮 addButtion方法统一设置按钮的使用方式,参数包括panel,name,action,color,每次完成向面板添加按钮,设置名字,添加键盘监听器和设置按钮颜色 getResult方法实现四则运算,并输出 main方法,程序入口 2内部类FunctionSigns,继承接口ActionListener,实现接口的actionProform抽象方法,完成开平方,求对数等操作 3内部类ClearArea,继承接口ActionListener,实现接口的actionProform抽象方法,对清除区三个按钮“←”,“CE”,“C”进行监听,实现删除功能。 4内部类SpecialNum,继承接口ActionListener,实现接口的actionProform抽象方法,对π,e,及数字键监听 5 Dot对小数点进行监听 【用户界面】

计算器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分别存储在数组中,最后运算时,可以一一取出来进行运算。 ⑸利用按钮设计计算器的各个运算符和操作符,通过按钮的事件处理实现按钮计算功能。 ⑹利用文本框显示操作数和运算结果。

简单计算器c++课程设计

简单计算器 1 基本功能描述 简单计算器包括双目运算符和单目运算符。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦、阶乘、对数、开方、倒数等运算。可对输入任意操作数包含小数和整数及正数和负数进行以上的所有运算并能连续运算。出现错误会给出提示,同时包含清除、退格、退出功能以及有与所有按钮相对应的菜单项。 2 设计思路 如图1,是输入数据子函数的流程图。打开计算器程序,输入数据,判断此次输入之前是否有数字输入,如果有,则在之前输入的数字字符后加上现有的数字字符;如果没有,则直接使编辑框显示所输入的数字字符。判断是否继续键入数字,如果是,则继续进行前面的判断,如果否,则用UpdateData(FALSE)刷新显示。 如图2,是整个计算器的流程图。对于输入的算式,判断运算符是双目运算符还是单目运算符。如果是双目运算符,则把操作数存入数组a[z+2]中,把运算符存入b[z+1]中;如果是单目运算符,则把字符串转化为可计算的数字,再进行计算。下面判断运算符是否合法,如果合法,则将结果存入a[0],不合法,则弹出对话框,提示错误。结束程序。

输入一个数字 在之前输入的数字字符后面加上现在的数字字符。 Eg :m_str+=”9”。 直接使编辑框显示所输入的数字字符。 Eg :m_str=”9”。 pass3=1表示已有数字输入 开始 之前是否有数字输入? pass3==1? 继续键入数字? 用UpdateData(FALSE)刷新显示 图1 输入数据子函数流程图 Y N Y N

输入开始 双目运算符 是否每一个操作数都存入a[]数组? 把操作数存入a[z+2],把运算符存入b[z+1]。 单目运算符 将字符串转换 为可计算的数进行运算 运算是否合法? 将结果存入a[0] 弹出对话框提示错误 结束Y Y N N 图2 简单计算器总流程图

编写一个计算器程序课程设计报告 范例

《金融IT 入门-程序设计》 课程设计报告 中国地质大学长城学院 XX 系 2017年 月 3 日 目录 一.总体概述: 二.设计目标: 三.程序流程图: 四.程序代码: 五.设计 体会: 题目: 用Python 编写简易计算器程序 学 号: 专业: 班级: 姓名: 指导教师: 2016-2017学年 第二学期

一、设计内容 1.课程设计目的: 1)掌握Java语言的程序设计方法; 2)理论联系实际,进一步提高学生的软件开发技术; 3)培养学生分析、解决问题的能力; 4)提高学生实践论文撰写能力。 2.课程设计任务: 1)设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算); 2)有求倒数、退格和清零功能。 3.创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。图形界面采用继承windowadapter类,采取调用类方法来注册监听! 4.设计要求: 1)设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。

2)课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 3)认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。 二、原理与分析 1.开发的技术及功能 本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算,还有求倒数、退格和清零功能。 2.设计思路 设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦(cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以及对e的指数运算(exp),并且还能进行连续运算。总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。 3.设计效果图 设计时先在设计界面中添加按钮等控件,后在按钮的actionPerformed事件中添加代码完成其功能其中调用了Java类中的Math函数库以及各种字符串操作。设计的界面如下: 图一计算器运行界面 三、设计过程 1.程序思路: 1)本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout 边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p 加入到”Center”区域。包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加到面板中同时注册按钮事件监听器。如: Button b=new Button(); (事件监听器); 2)事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完

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 代码设 计 .....................................................................

计算器设计的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)参考文献:

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 源程序清单...................................... 错误!未定义书签。

android简单计算器课程设计.

摘要 Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。并且具有很强的使用性。 关键字:Android Java基础计算器

目录 第1章开发工具与环境 (1) 1.1 Android平台 (1) 1.2 Java开发环境 (1) 1.3 Eclipse (1) 1.4 Android程序基础—Android应用程序的构成 (2) 第2章系统分析与设计 (4) 2.1系统的可行性分析 (4) 2.2 系统的需求分析 (4) 2.3 系统的优势 (4) 2.4 系统的流程图 (5) 第3章系统详细设计 (6) 3.1 动作Activity (6) 3.2 布局文件XML (6) 3.3 Activity的详细设计 (7) 3.2 布局文件XML的详细设计 (21) 3.2 系统的运行结果 (24) 结论 (25) 参考文献 (26)

第1章开发工具与环境 1.1 Android平台 1.谷歌与开放手机联盟合作开发了Android, 这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。 2.Android是一个真正意义上的开放性移动设备综合平台。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 3.所有的Android应用之间是完全平等的。 4.所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于应用和硬件资源间进行通讯的API。撇开这个核心引擎,Android的所有其他的东西都是“应用”。 5.Android打破了应用之间的界限,比如开发人员可以把Web上的数据与本地的联系人,日历,位置信息结合起来,为用户创造全新的用户体验。 1.2 Java开发环境 Java技术包含了一个编程语言及一个平台。Java编程语言具有很多特性,如面向对象、跨平台、分布式、多线程、解释性等等。Java编程语言起源于Sun公司的一个叫“Green”的项目,目的是开发嵌入式家用电器的分布式系统,使电气更加智能化。1996年1月发布了JDK1.1版本,一门新语言自此走向世界。之后,1998年12月发布了1.2版本,2002年2月发布1.4版本,2004年10月发布1.5版本(5.0),2006年12月发布1.6(6.0)版本,这是目前的最新版本。Java1.2版本是一个重要的版本,基于该版本,Sun将Java技术分为J2SE、J2ME、J2EE,其中J2SE为创建和运行Java程序提供了最基本的环境,J2ME与J2EE 建立在J2SE的基础上,J2ME为嵌入式应用(如运行在手机里的Java程序)提供开发与运行环境,J2EE为分布式的企业应用提供开发与运行环境。 1.3 Eclipse

课程设计任务书

电子技术课程设计任务书 项目1交通灯控制设计 一、设计目的 根据常用的电子技术知识,以及可获得技术书籍与电子文档,初步形成电子设计过程中收集、阅读及应用技术资料的能力;熟悉电子系统设计的一般流程;掌握分析电路原理、工程计算及对主要技术性能进行测试的常见方法;使学生学会使用电路仿真分析软件(Multisim)在计算机上进行电路设计与分析的方法。要求学生所选课题必须在计算机上通过虚拟设计确定设计方案,通过虚拟仿真建立系统,完成设计要求。 二、任务与要求 设计一个十字路口控制交通秩序的交通灯,满足以下条件: 显示顺序为其中一组方向是绿、黄、红;另一方向是红、绿、黄。设臵一组数码管以倒计时的方式显示语序通行或禁止通行时间,其中支通道绿灯的时间是20s,另一个方向上主通道的绿灯亮的时间是30s,黄灯亮的时间都是5s. 选做:当任何一个方向出现特殊情况,按下手动开关,其中一个方向通行,倒计时停止,当特殊情况结束后,按下自动控制开关恢复正常状态。 三、课程设计报告要求 1、任务说明 2、目录 3、正文 (1)总体方案框图设计 (2)单元电路具体设计 (3)计算器件参数值 (4)选择相关元器件 (5)画出总体设计电路图 (6)利用Multisim软件调试,对调试过程中出现的问题给出定性的的分析,最终能实现预计的效果。 4、课程设计的收获及体会 5、参考文献 四、评分标准

五、任务安排 六、所需调试工具 Multisim软件。

项目2用移位寄存器实现彩灯控制 一、设计目的 根据常用的电子技术知识,以及可获得技术书籍与电子文档,初步形成电子设计过程中收集、阅读及应用技术资料的能力;熟悉电子系统设计的一般流程;掌握分析电路原理、工程计算及对主要技术性能进行测试的常见方法;使学生学会使用电路仿真分析软件(Multisim)在计算机上进行电路设计与分析的方法。要求学生所选课题必须在计算机上通过虚拟设计确定设计方案,通过虚拟仿真建立系统,完成设计要求。 二、任务与要求 采用移位寄存器设计一个彩灯循环控制器,要求有两种变化花样。 三、课程设计报告要求 1、任务说明 2、目录 3、正文 (1)总体方案框图设计 (2)单元电路具体设计 (3)计算器件参数值 (4)选择相关元器件 (5)画出总体设计电路图 (6)利用Multisim软件调试,对调试过程中出现的问题给出定性的的分析,最终能实现预计的效果。 4、课程设计的收获及体会 5、参考文献 四、评分标准 五、任务安排

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

简易计算器课程设计

评阅教师评语:课程设计成绩 考勤成绩 实做成绩 报告成绩 总评成绩指导教师签名: 课程设计报告 论文题目基于ARM的简易计算器设计 学院(系):电子信息与自动化学院 班级:测控技术与仪器 学生姓名:同组同学: 学号:学号: 指导教师:杨泽林王先全杨继森鲁进时间:从2013年 6 月10 日到2013年 6 月28 日 1

目录 1、封面—————————————————————P1 2、目录—————————————————————P2 3、前言—————————————————————P3 4、关键字————————————————————P3 5、原理与总体方案————————————————P3 6、硬件设计———————————————————P6 7、调试—————————————————————P10 8、测试与分析——————————————————P11 9、总结—————————————————————P13

10、附件—————————————————————P14 前言 近几年,随着大规模集成电路的发展,各种便携式嵌入式设备,具有十分广阔的市场前景。嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。在嵌入式系统中,数据和命令通过网络接口或串行口经过ARM程序处理后,或显示在LCD上,或传输到远端PC上。 本文通过周立功的LPC2106芯片完成的简易计算器,正是对嵌入式应用的学习和探索。 一、摘要: 计算器一般是指“电子计算器”,是能进行数学运算的手持机器,拥有集成电路芯片。对于嵌入式系统,以其占用资源少、专用性强,在汽车电子、航空和工控领域得到了广泛地应用。本设计就是先通过C语言进行相应程序的编写然后在ADS中进行运行最后导入PROTUES进行仿真。最后利用ARM中的LPC2106芯片来控制液晶显示器和4X4矩阵式键盘,从而实现简单的加、减、乘、除等四则运算功能。 关键字:中断,扫描,仿真,计算 二、原理与总体方案: 主程序在初始化后调用键盘程序,再判断返回的值。若为数字0—9,则根据按键的次数进行保存和显示处理。若为功能键,则先判断上次的功能键,根据代号执行不同功能,并将按键次数清零。程序中键盘部分使用行列式扫描原理,若无键按下则调用动态显示程序,并继续检测键盘;若有键按下则得其键值,并通过查表转换为数字0—9和功能键与清零键的代号。最后将计算结果拆分成个、十、百位,再返回主程序继续检测键盘并显示;若为清零键,则返回主程序的最开始。 电路设计与原理:通过LPC2106芯片进行相应的设置来控制LCD显示器。 而通过对键盘上的值进行扫描,把相应的键值通过MM74C922芯片进行运算从而

硬件课程设计简易计算器设计

中国矿业大学徐海学院 单片机课程设计 姓名:XXX学号: 22090XXX 专业:计算机09-4班 题目:硬件课程设计 专题:简易计算器设计 指导教师: XXX 设计地点:嘉园时间: 2011-12-23 20011年12月

单片机课程设计任务书 专业年级计算机09-4 学号22090XXX 学生姓名XXX 任务下达日期:2011年12 月15日 设计日期:2011 年12 月15 日至2011 年12 月23日 设计题目:硬件课程设计 设计专题题目:简易计算器设计 设计主要内容和要求: 摘要: 利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个计算器。 主要能实现 1.加法:能够计算四位以内的数的加法。 2减法:能计算四位数以内的减法。 3乘法:能够计算两位数以内的乘法。 4除法:能够计算四位数的乘法 5有清零功能,能随时对运算结果和数字输入进行清零。 关键词:单片机; 计算器 ; 加减乘除 指导教师签字:

目录 1 系统概述 (1) 1.1硬件知识概述 (1) 1.1.1 单片机 (1) 1.1.2 C语言 (1) 1.1.3 ISP (1) 1.2设计基本思想 (1) 2硬件电路设计 (2) 2.1 单片机最小系统 (2) 2.2键盘接口电路 (2) 2.3数码管显示电路 (3) 3 软件设计 (4) 3.1 复位电路 (4) 4.系统调试 (5) 4.1 软件流程图 (5) 4.1.1系统软件系统流程图 (5) 5.结束语 (6) 参考文献 (7) 附录 (8)

1 系统概述 1.1硬件知识概述 1.1.1 单片机 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 1.1.2 C语言 C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。 1.1.3 ISP ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP 方式擦除或再编程。本次课程设计便使用ISP 方式,直接将编写好的程序下载到连接好的单片机中进行调试 1.2设计基本思想 利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个计算器,用四位一体数码管显示计算数值及结果。要求用Protel 画出系统的电路原理图,绘出程序流程图,并给出程序清单。 主要能实现 1.加法:能够计算四位以内的数的加法。 2减法:能计算四位数以内的减法。 3乘法:能够计算两位数以内的乘法。 4除法:能够计算四位数的乘法 5有清零功能,能随时对运算结果和数字输入进行清零。

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 功能需求 在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。在该系统中不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。除此之外还可以进行三角函数、指数、对数、平方等运算。人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。

最新单片机简易计算器课程设计

单片机简易计算器课 程设计

引言 说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 本任务是个简易的两位数的四则运算,程序都是根据教材内和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。本任务重在设计构思与团队合作,使得我们用专业知识、专业技能分析和解决问题全面系统的锻炼。 随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将更强。在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其MCS –51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、 NEC、Atmel、AMD、华邦等,这些公司都在保持与80C51单片机兼容的基础上改善了80C51的许多特性。这样,80C51就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为80C51系列。80C51单片机已成为单片机发展的主流。专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,80C51可能最终形成事实上的标准MCU芯片。 事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台

程序设计课程设计计算器设计

枣庄学院 信息科学与工程学院课程设计任务书题目:迷你计算器的设计与实现 学号:200912210140 姓名:王晓杰 专业:计算机科学与技术 课程:程序设计方法学 指导教师:刘梦琳职称讲师 完成时间:20 11 年6月----20 11 年7 月 枣庄学院信息科学与工程学院制 2011年6 月20日

课程设计任务书及成绩评定 课程设计的任务和具体要求 1、课程设计教学基本内容 高级语言课程设计不仅是对程序设计能力的综合锻炼,更是对团队合作、软件开发与项目管理过程的训练。因此,课程设计根据题目的难度由小组合作完成,每个小组1-4人。整个课程设计分为以下几个阶段进行:选题与开题、系统设计、系统编码实现、系统测试、撰写课程设计报告、系统评价与验收。 2、课程设计教学的要求 参加本课程设计的学生,应当认真完成本课程设计的全部过程。并以最终课程设计成果来证明其独立完成各种实际任务的能力。从而反映出理解和运用本课程知识的水平和能力。 指导教师签字:日期: 指导教师评语 成绩:指导教师签字:日期:

课程设计所需软件、硬件等 系统:Windows XP VisualBasic 6.0 语言:C/C++ java 课程设计进度计划 起止日期工作内容备注 自11年6月到11年7 月 收集资料 程序设计 撰写论文 经过该实践环节, 培养学生的探索精神和 新能力 参考文献、资料索引 序号文献、资料名称编著者出版单位 [1] 《VA大学实用教程实验指导》耿祥义子工业出版社 [2] 《程峰等译,JAVA2核心技术》邓欧鑫机械工业出版社 [3] 《JAVA语言入门》王克宏清华大学出版社 [4] 《JAVA2核心技术》朱志等编著机械工业出版 [5] 《JAVA 1.1使用大全》旭日工作室编著工业出版社 [6] 《JAVA语言Applet编程技术》王克宏清华大学出版社

计算器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 计算器运行界面

相关文档
最新文档