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

合集下载

大学java课程设计实验报告--计算器

大学java课程设计实验报告--计算器

JAVA课程设计报告组员信息:第(二)组计算器的实现问题问题描述:制作一个计算器基本要求:要求实现类似Windows操作系统里面的标准计算器。

在此基础上实现部分科学性的功能。

测试数据:分别对加、减、乘、除和sin、cos、tan函数进行测试算法思想:使用String定义的数组a[25]对每个按钮进行按钮赋值,创建一个Panel进行字符和数字的存放,调用addActionListener()对各个时间进行监听。

调用系统库函数对数值进行运算。

模块划分:1、主函数main()创建一个计算器。

2、void actionPerformed(ActionEvent e)对鼠标点击的事件进行响应以及在文本框中的显示。

3、各Buuton对应的功能:“开方”:对输入数字开方“平方”:对输入数字平方“getResult()”:对四则运算进行分别运算操作“backspace”:取消上一次的操作“CE”:取消上一次运算的操作“C”:清空作用“sin”:对输入数据进行sin运算“cos”:对输入数据进行cos运算“tan”:对输入数据进行tan运算“+/-”:对输入的数据取反“+”,“-”,“*”,“/”:对数据进行四则运算源程序:package hechongwei;import ng.String;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.*;import ng.Math;class Calculator extends JFrame implementsActionListener {JTextField tf = new JTextField(" ");String str1 = " ", str2 = " ", str3 = " "; // str1和str2存放两个输入的数Panel pn1 = new Panel();// new 一个Panel存放符号与数字String a[] = { "平方", "开方", "backspace", "CE", "C", "7", "8", "9", "/","sin", "4", "5", "6", "*", "cos", "1", "2", "3", "-", "tan", "0","+/-", ".", "+", "="};// 用于对每个Button 进行赋值boolean frist = true;// 判断是否输入的为第一个字符int operCount = 0;int i; // 统计符号的数目String Operate = null;// 存放操作数的符号boolean error = false;double num1 = 0.0, num2 = 0.0;// 两个输入的数作运算时转化为double存放double result = 0.0;// 暂时保留计算结果public Calculator() {super("简单计算机 ");tf.setHorizontalAlignment(JTextField.RIGHT) ;// 显示框中由右想左输出tf.setEditable(false);Button b[] = new Button[25];for (i = 0; i < 5; i++) { // 将符号加到对应的Button上b[i] = new Button(String.valueOf(a[i]));pn1.add(b[i]);b[i].setActionCommand(a[i]);b[i].addActionListener(this);// 调用addActionListener()方法注册事件监听器}for (i = 5; i <= 7; i++) {b[i] = new Button(String.valueOf(a[i]));pn1.add(b[i]);b[i].setActionCommand("number");b[i].addActionListener(this);}b[8] = new Button(String.valueOf(a[8]));pn1.add(b[8]);b[8].setActionCommand("oper");b[8].addActionListener(this);b[9] = new Button(String.valueOf(a[9]));pn1.add(b[9]);b[9].setActionCommand(a[9]);b[9].addActionListener(this);for (i = 10; i <= 12; i++) {b[i] = new Button(String.valueOf(a[i]));pn1.add(b[i]);b[i].setActionCommand("number");b[i].addActionListener(this);}b[13] = new Button(String.valueOf(a[13])); pn1.add(b[13]);b[13].setActionCommand("oper");b[13].addActionListener(this);b[14] = new Button(String.valueOf(a[14])); pn1.add(b[14]);b[14].setActionCommand(a[14]);b[14].addActionListener(this);for (i = 15; i <= 17; i++) {b[i] = new Button(String.valueOf(a[i]));pn1.add(b[i]);b[i].setActionCommand("number");b[i].addActionListener(this);}b[18] = new Button(String.valueOf(a[18])); pn1.add(b[18]);b[18].setActionCommand("oper");b[18].addActionListener(this);b[19] = new Button(String.valueOf(a[19])); pn1.add(b[19]);b[19].setActionCommand(a[19]);b[19].addActionListener(this);for (i = 20; i <= 22; i++) {b[i] = new Button(a[i]);pn1.add(b[i]);b[i].setActionCommand(a[i]);b[i].addActionListener(this);}b[23] = new Button(String.valueOf(a[23])); pn1.add(b[23]);b[23].setActionCommand("oper");b[23].addActionListener(this);b[24] = new Button(String.valueOf(a[24])); pn1.add(b[24]);b[24].setActionCommand(a[24]);b[24].addActionListener(this);pn1.setLayout(new GridLayout(5, 5));add(tf, "North"); // 界面的处理add(pn1, "Center");setSize(400, 300);setVisible(true);tf.setText("0.0");addWindowListener(new WindowAdapter() { //程序结束public void windowClosing(WindowEvent e) {System.exit(1);}});}public void actionPerformed(ActionEvent e) { Button temp = (Button) e.getSource();try {if(e.getActionCommand().equals("number")) {if (frist) {str1 = str1 + temp.getLabel();tf.setText(str1); // 将输入的str1在显示框中显示} else {str2 = str2 + temp.getLabel();tf.setText(str2);// 将输入的str2在显示狂中显示}} else if(e.getActionCommand().equals("oper")) {if (str1 == " ") {operCount= 0;// 如果还没有输入数就点击运算符,执行iffrist = true;} else {operCount++;if (operCount > 1) {// 若输入的字符多余一个,则可进行运算getResult();}Operate= temp.getLabel(); // 存放加,减,乘,除等的符号frist = false;}} else if(e.getActionCommand().equals("=")) {if((str1== "") || (str2== "")) // 两个数没有输全就点击等号,执行if{operCount = 0;// 将按键计数器清零frist = true;} else {getResult();operCount = 0;}} else if(e.getActionCommand().equals("平方")) {if (str1 == " ")tf.setText("0.0");else {double d =Math.pow(Double.parseDouble(str1), 2);str1 = String.valueOf(d);tf.setText(str1);frist = false;}} else if(e.getActionCommand().equals("开方")) {if (str1 == " ")tf.setText("0.0");else {double d =Math.sqrt(Double.parseDouble(str1));str1 = String.valueOf(d);tf.setText(str1);frist = false;}} else if(e.getActionCommand().equals("sin")) {if (str1 == " ") { // 处理sin0 ,cos0等tf.setText("0.0");str1 = "0";}else {double k = Double.parseDouble(str1);k = k * Math.PI / 180;double d = Math.sin(k);str1 = String.valueOf(d);tf.setText(str1);frist = false;}} else if(e.getActionCommand().equals("cos")) {if (str1 == " ") {tf.setText("0.0");str1 = "0";} else {double k = Double.parseDouble(str1);k = k * Math.PI / 180;double d = Math.cos(k);str1 = String.valueOf(d);tf.setText(str1);frist = false;}} else if(e.getActionCommand().equals("tan")) {if (str1 == " ") {tf.setText("0.0");str1 = "0";} else {double k = Double.parseDouble(str1);k = k * Math.PI / 180;double d = Math.tan(k);str1 = String.valueOf(d);tf.setText(str1);frist = false;}} else if(e.getActionCommand().equals("C")) {operCount = 0;// 清空frist = true;str1 = " ";str2 = " ";str3 = " ";tf.setText("0.0");} else if(e.getActionCommand().equals("+/-")) {if (str1 == " ") {tf.setText("0.0");str1 = "0";} else {double k = Double.parseDouble(str1);str1 = String.valueOf(-k);tf.setText(str1);}} else if(e.getActionCommand().equals("CE")) { // 取消上一步的运算tf.setText(str1);frist = true;operCount = 0;str2 = " ";} else if(e.getActionCommand().equals("backspace")) {{// 退格String s = tf.getText();tf.setText("");char b[] = new char[20];for (int i = 0; i < s.length() - 1; i++) {char a = s.charAt(i);b[i] = a;tf.setText(tf.getText() + a);}if (operCount == 0)str1 = tf.getText();elsestr2 = tf.getText();}}} catch (Exception f) {System.out.println(f.getMessage());}}void getResult() {num1 = Double.parseDouble(str1);num2 = Double.parseDouble(str2);if (Operate.equals("+")) {result = num1 + num2;} else if (Operate.equals("-")) { result = num1 - num2;} else if (Operate.equals("*")) { result = num1 * num2;}if (Operate.equals("/")) {if (num2 == 0.0) {error = true;} else {result = num1 / num2;}}if (error) {tf.setText("error");} else {tf.setText(String.valueOf(result));str3 = str1;str1 = String.valueOf(result);str2 = " ";}}public static void main(String args[]) {new Calculator();}}程序流程:if (e.getActionCommand().equals("number"))else if (e.getActionCommand().equals("oper"))else if (e.getActionCommand().equals("="))else if (e.getActionCommand().equals("平方"))else if (e.getActionCommand().equals("开方"))else if (e.getActionCommand().equals("C")) else if (e.getActionCommand().equals("CE"))void getResult()Main()主函数流程:测试情况:图形界面示意图:测试情况测试数据:输入4 ,平方显示结果为16输入4,开方显示结果为2输入4,+,2 显示结果为6输入4,-,2 显示结果为2输入4,*,2显示结果为8输入4,/,2显示结果为2输入1,+,2, +,4,CE,+8 显示结果为11输入1,+,22,Backspace ,= 显示结果为3 输入C 显示结果为0输入30,sin 显示结果为0.5。

java课程设计报告—计算器

java课程设计报告—计算器

目录二、课程设计任务 (2)三、开发工具与平台 (3)四、设计思路 (4)、界面设计 (4)一、课程设计目的1、熟练掌握java面向对象编程。

2、选择合适的数据结构实现需求。

3、熟练使用各种控制结构。

4、GUI组件、事件处理技术。

二、课程设计任务、设计任务设计一个简易的计算器,可以进行四则运算:加、减、乘、除等(限于十进制下)程序要求:(1)应具有相应的界面,可参考Windows操作系统自带的计算器界面。

(2)操作符号定为:“+”,“-”,“*”,“/”,“+/-”等。

(按国际惯例设计)(3)用户通过点击程序界面上按钮,实现数字、运算符的输入操作。

(4)以上部分为必须完成的内容。

选作部分:(1)具有操作符号“1/x”,“sqrt”(开方),“.”(小数功能)等。

、课程设计要求:(1)应用自己所学课程知识完成对计算器的基本任务。

(2)查阅相关资料,学习和掌握项目中涉及的新知识,提高自学能力。

(3)通过应用java程序编写计算器来提升自己对简单的图形界面有一定的掌握和了解。

、需求分析1.设计的计算器可以完成加法、减法、乘法、除法的简单运算。

2.实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。

3.添加小数点功能,用以实现浮点型数据的计算。

4.使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相关的计算。

三、开发工具与平台、开发工具Microsoft Windows 7旗舰版、开发平台四、设计思路、界面设计:(如图3-1)图3-1:(1)根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个文本框,20个按钮,总体界面用BorderLayout布局,文本框放置在最NORTH,然后0到9以及+,-,*,/等按钮放置到一个面板Panel中,完成界面设计。

(2)设计计算流程,首先点击数字按钮时,将按钮数值添加到文本框当中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之前保存的字符串与新的数值拼接起来,再添加到文本框当中,直到点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量中,然后重置文本框内容,将运算符号显示到文本框中,随后输入第二个计算数据时,用同样的办法保存数据,最后通过控制“=”运算符先将字符串数据转化成双精度类型,然后计算出结果并显示到文本框当中。

java计算器课程设计

java计算器课程设计

java计算器课程设计一、课程目标知识目标:1. 让学生掌握Java编程语言的基本语法,特别是运算符、表达式和流程控制的相关知识。

2. 使学生能够理解面向对象编程的基本概念,如类的定义、对象创建和使用。

3. 让学生学会运用Java编写简单的计算器程序,实现对基本数学运算(加、减、乘、除)的支持。

技能目标:1. 培养学生运用Java编写程序解决问题的能力,特别是针对计算器功能的实现。

2. 培养学生分析问题、设计算法、编写代码、调试程序的能力。

3. 提高学生团队协作和沟通能力,通过小组合作完成复杂的计算器功能设计。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣和热情,培养其探究精神。

2. 培养学生严谨、细致、负责任的科学态度,养成良好的编程习惯。

3. 培养学生面对挑战不畏难,勇于尝试,持续改进的良好品质。

课程性质:本课程为信息技术学科的计算器编程实践课程,结合了理论知识和实际操作,注重培养学生的动手能力和实际应用能力。

学生特点:学生处于初中或高中年级,已具备一定的计算机操作能力,对编程有一定了解,但实际编程经验较少。

教学要求:结合学生特点和课程性质,课程目标应具体、可衡量,注重实践操作,使学生在完成课程学习后能够独立编写简单的计算器程序。

在教学过程中,将目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. Java基本语法:变量、数据类型、运算符、表达式。

- 课本章节:第2章 Java基本语法2. 面向对象基础:类的定义、构造方法、对象创建、成员变量和成员方法。

- 课本章节:第4章 面向对象编程基础3. 流程控制:顺序结构、选择结构、循环结构。

- 课本章节:第3章 流程控制4. 计算器功能实现:加、减、乘、除运算方法编写,异常处理。

- 课本章节:第6章 方法与递归、第7章 异常处理5. 图形用户界面设计:Swing图形界面编程,按钮、文本框组件应用。

- 课本章节:第9章 Java图形用户界面编程教学大纲:第1周:Java基本语法学习,完成相关练习题。

Java计算器课程设计报告

Java计算器课程设计报告

《Java计算器》Java课程设计报告姓名:********学号:********专业:************一.程序要实现的功能:基础功能:类似windows计算器-普通计算器所具有的,数的输入、加、减、乘、除、开根号、求倒数、退格、清空,以及数字储存器中的MR(显示)、MC (清空)、M+(相加)、MS(储存)扩展功能: 类似windows计算器-科学计算器所具有的,各种函数(包括正三角反三角函数)计算,不同进制转换,逻辑与或非等操作。

二.程序算法&功能实现(大概)以下为运算功能简易示意图:不同进制转换:此功能独立于计算器其他功能,计算器运行过程中设定一个变量carry储存当前进制转态,每次运算时先将屏幕显示的数字转化成十进制然后带入运算,对于要显示在计算器屏幕的结果也要先进行十进制转换为当前进制然后显示。

三.遇到问题及解决方案1.普通计算器到科学计算器的界面转换:科学计算器的界面显然比普通计算器界面要复杂,按钮要多,而无论怎样修改布局都无法完整得在科学计算器和普通计算器之间切换。

解决方案:将计算器的界面布局的类设为扩展JPanel的类CreateButton,该类中设置两个方法,一个方法进行科学计算器的界面布局,一个方法进行普通计算器的界面布局,两个方法依靠CreateButton类构造函数种的参数决定调用哪个方法,在主的类里面若要在科学计算器和普通计算器之间切换,只要为当前面板new一个CreateButton,并设置好参数,就可以换一个界面。

2.不同进制输入输出与运算问题:由于科学型计算器涉及不同进制的输入输出与运算,而不同的进制运算规则稍有不同,因此不同进制输入输出与运算就成了一个问题。

解决方案:设置一个全局变量表示当前进制状态,而程序运行过程处理数据都以十进制形式,也就是仅在显示时,按照当前进制状态,将十进制转化为相应进制。

3.JAVA已有的函数计算精度不够:例如sin函数计算,java对sin函数计算的参数是弧度制,但是如果用Math.sin ()计算Pi/6(即sin30度),那么结果是0.4999999999999999而不是0.5。

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

计算器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)。

java计算器设计报告

java计算器设计报告

摘要本计算器是由java语言所编程设计的标准计算器,可以进行十进制下的四则运算(加、减、乘、除)、开平方、求余、求倒数,还可以实现二进制与十进制之间的转换。

通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。

关键词: java语言,计算器,算法目录摘要 (1)1概述 (3)1.1设计目的及思路 (3)1.2功能模块设计 (3)1.3系统功能图 (3)2计算器的设计与实现 (4)2.1程序界面 (4)2.2程序源代码 (4)3计算器演示 (10)4运行调试及讨论分析 (13)5小结 (14)参考文献: (14)1概述1.1设计目的及思路通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。

利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。

给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。

除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。

至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数Integer.toBinaryString(int i)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。

当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现!1.2功能模块设计以下为标准计算器的基本功能:(1)加法两个数据进行加操作,可以为小数。

(2)减法两个数据进行减操作,可以为负数相减。

(3)乘法两个数相乘操作。

java课程设计计算器

java课程设计计算器

java课程设计 计算器一、课程目标知识目标:1. 理解Java基本语法和程序结构,掌握算术表达式的编写;2. 掌握使用Java进行数值运算的方法,理解数据类型转换规则;3. 了解简单的异常处理机制,理解其与计算器程序的关系。

技能目标:1. 能够运用所学知识,独立编写一个具备基本功能的计算器程序;2. 学会使用Java控制台输入输出,实现用户与程序的交互;3. 能够通过调试和修改代码,解决计算器程序中的常见错误。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发其主动探索和解决问题的热情;2. 培养学生的团队协作意识,使其学会在编程过程中互相帮助和分享经验;3. 培养学生的逻辑思维能力,提高其分析问题和解决问题的能力。

本课程针对具有一定Java基础的学生设计,结合计算器项目实践,旨在巩固和拓展所学知识,提高学生的编程能力和实际应用能力。

课程注重培养学生的动手实践能力,强调理论与实践相结合,使学生能够在实践中掌握Java编程技巧,培养良好的编程习惯。

通过本课程的学习,学生将能够独立完成一个简单的计算器程序,提高其在实际编程中的问题解决能力。

二、教学内容1. Java基本语法与程序结构复习(教材第3章)- 简单的变量声明与赋值- 基本算术运算符的使用- 程序的控制流程:顺序、分支(if-else)、循环(for、while)2. Java数据类型与运算(教材第4章)- 数据类型转换规则- 运算符优先级- 算术表达式编写3. Java控制台输入输出(教材第5章)- 使用Scanner类进行输入- 使用System.out.print和System.out.println进行输出4. 简单异常处理(教材第7章)- 异常的概念与分类- try-catch语句的使用- 异常处理在计算器程序中的应用5. 计算器程序设计实践- 设计计算器功能需求- 编写计算器程序代码- 调试与优化计算器程序教学内容安排与进度:第一课时:复习Java基本语法与程序结构,明确计算器项目需求第二课时:学习Java数据类型与运算,编写计算器核心算法第三课时:掌握Java控制台输入输出,实现计算器用户交互第四课时:了解简单异常处理,优化计算器程序第五课时:计算器程序设计实践,调试与改进教学内容注重理论与实践相结合,通过逐步引导,使学生能够将所学知识应用于计算器程序设计,提高编程实践能力。

Java课程设计报告计算器

Java课程设计报告计算器

Java课程设计报告-计算器第一部分设计的内容要求1.1 Windows自带计算器版面设计1.2计算器计算功能算法实现第二部分设计思想2.1根据图形用户界面设计方法设计计算器版面。

①容器类(窗口--Window类,面板--Panel类),框架类--Frame,Button类,Label类,TextField类等类的构造方法,菜单(菜单栏、菜单项)的建立于应用。

②事件处理机制:监听器类WinClose(),actionPerformed()。

2.2计算器计算功能实现,即按钮监听器的实现自定义变量:x,y为操作数,op为操作符。

根据单击按钮不同进行不同的操作,详见处理按钮单击事件方法actionPerformed(ActionEvent e)(计算功能算法)流程图。

第三部分详细设计3.2处理按钮单击事件方法actionPerformed(ActionEvent e)(计算器计算功能算法)流程图:第四部分运行效果图4.1运行初始图:4.2 计算功能测试图:-1+23.4 将textp中数据赋给yN Y单击”1”~”9”将单击数字插入到textp中数据后,并将textp中数据赋给y 将textp赋0,并str.stelength(0);结束4.2 数学分组功能测试图:第五部分心得与体会5.1 Java是一门实践性很强的编程语言,每学习到一个新的知识点应当及时动手编写程序,提高动手能力,加深对语言的理解。

5.2 根据Java图形用户界面设计方法设计计算器版面有很多种设计方法,学习过程中应灵活变通,使版面的设计更简单易懂。

5.3 本次设计的计算器还有不足之处,首先还没有实现科学型的计算功能,其次还没有键盘输入功能,因此还应继续努力,更加完善计算器的功能。

第六部分附录6.1计算器计算功能算法(按钮"="):if(e.getSource()==b26) // "="{str.setLength(0);switch(op){case 0 :if(flag==1)textp.setText(String.valueOf(x+y));else{str.setLength(0);str.append(x+y);fun();}break;case 1 :if(flag==1)textp.setText(String.valueOf(x-y)); else{str.setLength(0);str.append(x-y);fun();}break;case 2 :if(flag==1)textp.setText(String.valueOf(x*y)); else{str.setLength(0);str.append(x*y);fun();}break;case 3 :if(y==0){textp.setText("除数不能为零");str.setLength(0);y=0;}else{if(flag==1)textp.setText(String.valueOf(x/y)); else{str.setLength(0);str.append(x/y);fun();}}break;}}6.2 fun()函数(数学分组功能)public void fun(){flag=0;int t=0;StringBuffer temp;String sstr=str.toString();if(sstr.trim().indexOf("-")==1){temp=new StringBuffer(str.substring(1));t=1;}elsetemp=new StringBuffer(str.substring(0));if(sstr.trim().indexOf(".")==-1){int j=temp.length();for(int i=j;i>3;){temp.insert(i-3,",");i=i-3;}if(t==0)textp.setText(temp.toString());elsetextp.setText('-'+temp.toString());}else{int i=sstr.indexOf('.');StringBuffer s1=new StringBuffer(sstr.substring(0,i));StringBuffer s2=new StringBuffer(sstr.substring(i+1));for(int j=s1.length();j>3;){s1.insert(j-3,",");j=j-3;}if(t==0)textp.setText(s1.toString()+'.'+s2.toString());elsetextp.setText('-'+s1.toString()+'.'+s2.toString());}}。

java计算器设计报告

java计算器设计报告

设计报告课题名称:计算器设计学院:专业班级:学号:学生:指导教师:教务处年月日学生指导教师课题名称JAVA计算器课程设计设计时间设计地点设计目的图形界面设计,熟悉java.awt包中的组件,掌握图形界面设计方法,理解委托事件处理模型。

从而检测对这门课的掌握情况,有助于及时查漏补缺。

1.1功能模块设计以下为标准计算器的基本功能:(1)加法两个数据进行加操作,可以为小数。

(2)减法两个数据进行减操作,可以为负数相减。

(3)乘法两个数相乘操作。

(4)除法两个数相除操作。

(5)开平方对任意一个数进行开方运算,可以是小数。

(6)百分号对任意一个数进行百分号运算。

(7)倒数对任意一个数进行倒数运算。

1.2标准计算器界面(图1-1)图1-1 1.3系统功能图(图1-2)2标准计算器演示(1)启动计算器(图2-1)图2-1(2)加法、乘法运算分别输入9和3然后分别计算其加法、乘法运算(图2-2,图2-3)图2-2(加法运算)图2-3(乘法运算)(3)开平方运算sqrt(图2-4)图2-4(4)百分号运算%(图2-5)图2-5(5)倒数运算1/x(图2-6)图2-63程序设计过程中的问题该设计目前还不太完整全面,在测试时有以下问题:1.在进行aqrt 、%、 1/x这三个运算后再输入数据就在文本框中继续输入,不能重新输入。

需要按下清零键才可继续输入下一数据再进行运算。

2.菜单栏中虽然设计了“查看—标准型、科学型、数字分组”以及“帮助—帮助主题、关于计算器”可是其功能并没有时间。

3.该计算器设计了有关内存的操作,可是并没有达到预期中的效果。

java实验报告——简单计算器的编写五篇范文

java实验报告——简单计算器的编写五篇范文

java实验报告——简单计算器的编写五篇范文第一篇:java实验报告——简单计算器的编写JAVA实验报告——简单计算器的编写班级:学号:姓名:一、实验目的1.掌握java图形用户界面(GUI)的设计原理和程序结构2.能设计复核问题要求的图形用户界面程序3.掌握常用组件的事件接口4.应用awt和swing组件进行应用程序设计二、实验条件1.计算机一台2.java软件开发环境三、实验步骤1、编写代码:mport java.awt.*;import java.awt.event.*;import javax.swing.*;public class JCalculator extends JFrame implements ActionListener {private static final long serialVersionUID =-***457Lprivate class WindowCloser extends WindowAdapter {public void windowClosing(WindowEvent we){System.exit(0);}}int i;private final String[] str = { “7”, “8”, “9”, “/”, “4”, “5”, “6”, “*”, “1”,“2”, “3”, “-”, “.”, “0”, “=”, “+” };JButton[] buttons = new JButton[str.length]; JButton reset = new JButton(“CE”); JTextField display = new JTextField(“0”);public JCalculator(){super(“Calculator”);JPanel panel1 = new JPanel(new GridLayout(4, 4)); for(i = 0;i < str.length;i++){buttons[i] = new JButton(str[i]);panel1.add(buttons[i]);}JPanel panel2 = new JPanel(new BorderLayout()); panel2.add(“Center”, display);panel2.add(“East”, reset);getContentPane().setLayout(new BorderLayout()); getContentPane().add(“North”, panel2); getContentPane().add(“Center”, panel1);for(i = 0;i < str.length;i++)buttons[i].addActionListener(this);reset.addActionListener(this);display.addActionListener(this); addWindowListener(new WindowCloser()); setSize(800, 800);setVisible(true);pack();}public void actionPerformed(ActionEvent e){ Object target = e.getSource();String label = e.getActionCommand();if(target == reset)handleReset();else if(“0123456789.”.indexOf(label)> 0)handleNumber(label);elsehandleOperator(label);}boolean isFirstDigit = true;public void handleNumber(String key){if(isFirstDigit)display.setText(key);else if((key.equals(“.”))&&(display.getText().indexOf(“.”)< 0))display.setText(display.getText()+ “.”);else if(!key.equals(“.”))display.setText(display.getText()+ key);isFirstDigit = false;}public void handleReset(){display.setText(“0”);isFirstDigit = true;operator = “=”;}double number = 0.0;String operator = “=”;public void handleOperator(String key){if(operator.equals(“+”))number += Double.valueOf(display.getText());else if(operator.equals(“-”))number-= Double.valueOf(display.getText());else if(operator.equals(“*”))number *= Double.valueOf(display.getText());else if(operator.equals(“/”))number /= Double.valueOf(display.getText());else if(operator.equals(“=”))number = Double.valueOf(display.getText());display.setText(String.valueOf(number));operator = key;isFirstDigit = true;}public static void main(String[] args){new JCalculator();} }2、运行结果,见截图计算测试:123+456=579结果正确,程序无误。

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

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

计算器设计的java课程设计报告华东交通大学课程设计课程设计题目:计算器设计指导教师:Java程序设计信息一班课程设计(论文)任务书基础学院信息与计算科学专业 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)参考文献:(1)丁振凡.《J ava语言程序设计》清华大学出版社(2)丁振凡.《J ava语言程序设计实验指导与习题解析》清华大学出版社(3)http:/ /6)课程设计进度安排内容天数地点总体需求与分析构思及收集资料 1 图书馆各模块的编程实现,调试与修改 3 机房撰写论文与答辩 1 图书馆,机房学生签名:2013 年6 月18 日课程设计(论文)评审意见(1)态度评价(20分):优()、良()、中()、一般()、差();(2)任务难度(20分):优()、良()、中()、一般()、差();(3)设计分析(20分):优()、良()、中()、一般()、差();(4)创新性评价(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)论文格式规范性及考勤是否降等级:是()、否()评阅人签名:职称:教授2013 年6 月25日第1章系统概要 ................................................................................................................................................ - 1 -1.1系统介绍 ................................................................................................................................................ - 1 -1.2 基本功能要求 ....................................................................................................................................... - 1 -第2章设计思路与算法 .................................................................................................................................... - 2 -2.1 应用的基本工作流程 ........................................................................................................................... - 2 -2.2 类设计 ................................................................................................................................................... - 2 -2.3 应用界面的设计 ................................................................................................................................... - 3 -2.4 事件处理原理、具体设计 ................................................................................................................... - 3 -2.5 算法考虑 ............................................................................................................................................... - 4 -第3章源程序代码 ............................................................................................................................................ - 5 -第4章运行结果及分析 .................................................................................................................................. - 15 -第5章心得体会 .............................................................................................................................................. - 17 -5.1系统需要完善的地方 .......................................................................................................................... - 17 -5.2课程设计感想 ...................................................................................................................................... - 17 - 参考文献 ............................................................................................................................................................ - 17 -第2章设计思路与算法2.1 应用的基本工作流程1.打开命令提示符和记事本;2.输入源程序代码;3.保存并运行源程序;4.运行,检查是否有误;5.修改错误并再次运行;6.测试计算器的工作状况。

java课设计算器报告

java课设计算器报告

java课设计算器报告随着计算机的快速发展,计算机科学正在成为21世纪最重要的学科之一。

同时,作为计算机科学的一部分,Java语言也正在发展壮大。

因此,Java的课程也随之增加,如程序设计,软件工程,数据库,机器学习等等。

作为一名Java专业的学生,在学习课程的同时,我也做了一次课程设计,即实现一个Java算法计算器,如加,减,乘,除以及整数,小数,次方,根号等功能。

首先,我们需要完成一些准备工作,即使用Java语言实现功能。

为了实现上述功能,我们按照以下步骤进行:首先,使用if..else 语句来判断输入是操作数还是操作符;其次,使用switch语句来实现操作;最后,使用System.out.print()函数将结果显示在控制台中。

在实现完上述步骤之后,算法计算器功能就完成了,我们可以开始进行测试。

在测试过程中,我们输入各种操作数和操作符,并检查计算器是否能够正确计算出结果,并且检查算法是否能够实现各种功能,如加减乘除等。

我们最终实现了加减乘除,整数,小数,次方,根号等功能,在测试中结果都正确,证明算法可以实现预期的功能。

最后,总结一下这次实现Java算法计算器的过程:首先,我们使用if..else语句和switch语句来实现功能;其次,我们使用System.out.print()函数来显示结果;最后,在测试中结果都正确,证明算法可以实现预期的功能。

本次实验表明,当我们使用编程语言实现算法时,可以正确地实现我们预期的功能。

本次实验也使我对Java语言有了更深的理解,并且也使我对算法的原理有了更深的认识。

综上所述,我们实现的Java算法计算器可以满足本次实验的需要,具有正确的功能,并且在实验过程中,我们也对算法和Java语言都有了更深的了解。

java课程设计计算器报告书软件工程

java课程设计计算器报告书软件工程

java课程设计计算器报告书软件工程1. 背景介绍近年来,Java编程语言已经成为软件开发的焦点,Java之所以如此受欢迎,原因在于它的可移植性和平台无关性。

随着Java应用的广泛使用,Java课程设计计算器已成为很多计算机专业学生的必修课程。

Java课程设计计算器是一种基于Java语言开发的计算器软件,可用于数学计算和常规计算。

Java课程设计计算器需要进行软件工程化的设计。

2. 项目描述Java课程设计计算器是一种基于控制台应用程序的计算机软件,它具有基本的算数操作,如加、减、乘、除和幂运算符。

Java课程设计计算器还支持三角函数,指数函数,对数函数,阶乘和平方根。

用户可以使用控制台输入表达式,然后查看计算结果。

Java课程设计计算器软件工程项目的目标是基于软件工程的概念和方法,对这个简单的计算器软件进行系统化的分析、构建和测试。

3. 团队成员本项目由四名成员组成,分别是Sophia、Peter、David和Rachel。

Sophia 是项目的组长,负责项目管理和实施工作。

Peter 是项目的技术主管,负责软件建模和设计工作。

David和Rachel 则是开发团队的核心部分,负责编写代码和测试工作。

4. 系统架构设计Java课程设计计算器采用MVC 模式来设计系统架构,系统包括Model、View 和Controller 三个部分。

- Model 部分:Model 是Java代码的核心部分,实现了计算器计算功能。

Model中包括Calculation 类,可以对输入的算式进行语法分析和计算,并返回计算的结果。

Calculation 类还包括ExpressionToken 和Operator 两个子类,用于完成数学表达式的分词和计算运算符的优先级。

- View 部分:View 用于将输入的算式和计算结果输出到用户的控制台界面。

在View 部分中包括CalculatorUI 类,接收用户输入,并在控制台中显示运算结果。

java课设计算器报告

java课设计算器报告

java课设计算器报告
今天,我们取得了一个令人惊叹的成果:利用Java语言实现了简单的计算器,它可以进行多种数学运算。

本报告展示了其原理与实施过程,并讨论了开发过程中涉及到的关键思想与核心技术。

本课设计报告是针对使用Java编写的计算器的一个评估报告,以下是详细内容:
1.项目背景:由于现在计算机发展得很快,计算机语言也是随之发展起来,更多的语言可以实现各种功能,而Java语言作为编程语言被广泛应用,本次课设希望能够利用Java编写一个小型计算器。

2.功能实现:通过Java编写简单计算器,实现输入两个参数,然后进行加减乘除的计算。

3.开发过程:
(1)首先要创建一个Java程序,然后定义两个变量,用于存放输入的参数。

(2)然后为程序添加输入的函数,以获取用户输入的参数。

(3)利用if语句判断用户输入的运算符号,根据不同的运算符号,调用相应的函数进行计算。

(4)将计算结果输出,以及耗时等信息。

4.评估结果:本次使用Java实现了一个小型计算器,实现了加减乘除功能。

整个程序的开发流程非常顺利,而且具有良好的可实施性和可维护性,程序运行流畅,计算结果准确,性能极佳。

java计算器程序设计报告

java计算器程序设计报告

JAVA 课程设计之计算器设计报告含源代码|计算机数据库课程设计| 精品课程网站设计| 课程设计网报告总结心得本计算器可以进行简单的四则运算(加、减、乘、除)但仅限于十进制下,还可以进行(八进制,十进制,十六进制)之间的相互转换,八进制最多可以输入19 位数,十进制最多可以输入18 位数,十六进制最多可以输入14 位数,backspace 表示退格, clear 表示初始化,在window 下直接运行()即可,界面为灰白对称。

题目:计算器目录1.摘要2.概要设计3.详细设计4.测试分析5.参考文献一、摘要本计算器可以进行简单的四则运算(加、减、乘、除)但仅限于十进制下,还可以进行(八进制,十进制,十六进制)之间的相互转换,八进制最多可以输入19 位数,十进制最多可以输入18位数,十六进制最多可以输入14位数‘backspace表示退格,clear 表示初始化,在window 下直接运行()即可,界面为灰白对称。

二、概要设计(1) 自定义类说明***********************************************************类名: This_number_too_big **作用: 自定义的异常类,用来处理计算结果溢出**继承的父类: Exception 类**实现的接口: 没有***********************************************************class This_number_too_big extends Exception{}ength();harAt(0)=='0'&& ().length()==1)Jimportclass This_number_too_big extends Exception{};static Button btequ=new Button("=");static Button btadd=new Button("+"); static Button btsub=new Button("-");static Button btmul=new Button("*"); static Button btdev=new Button("/");static Button btA=new Button("A");static Button btB=new Button("B");static Button btC=new Button("C");static Button btD=new Button("D");static Button btE=new Button("E");static Button btF=new Button("F");static Checkbox ckb8=new Checkbox(" 八进制");static Checkbox ckb10=new Checkbox("static Checkbox ckb16=new Checkbox("static Button btc=new Button("clear"); static Button btt=new Button("backspace"); public int number=0,length=18;.");(new Font("Serief",,18));(14,33,216,40);(lab);CheckboxGroup grp=new CheckboxGroup();(grp);(grp);(grp);(14,75,55,25) ;(69,75,55,25) ;(124,75,65,25) ;(false);(true);(false);(ckb8);(ckb10);(ckb16);(14,140,120,150);(144,140,40,150);(14,100,170,36);(190,100,40,190);(bt7);(bt8);(bt9);(bt4);(bt5);(bt6);(bt1);(bt2);(bt3);(bt0);(btdot);(btequ);(btadd);(btsub);(btmul);(btdev);(btt);(btc);(btA);(btB);十进制 "); 十六进制(btC);(btD);(btE);(btF);(false);(false);(false) ;(false);(false);(false);(pnl1);(pnl2);(pnl3);(pnl4);(false);(null);(240,300 );(" 计算器");(true);(mainFrame);(mainFrame);(mainFrame);ength();}if(length==14) { (goto_10(),16L));(goto10_8()));number=().length();}ength();}if(length==14) { (goto_10(),16L));number=().length();}ength();}if(length==19) { (goto_10(),8L));(goto10_16()));number=().length();}harAt(0);switch (ch){ case 'c': {("0"); number=0; mark='n'; Refresh=false;}break;harAt(0)=='0'&& ().length()==1) break; if(number{number++;()+ch);} else break;} break;case 'A': enter(); break; case 'B': enter(); break; case 'C': enter(); break; case 'D': enter(); break; case 'E': enter(); break; case 'F': enter(); break;case '.': {if(Refresh==true) {("0"); number=0; Refresh=false;} if().indexOf('.')== -1){number++;()+ch);} else break;}break;case 'b': {if(number==0) break;else{if(--number==0) {("0"); number=0;}else{if (number!=1) ().substring(0,number));else ().charAt(0)));} } }break;case '+': try{ js();} catch(This_number_too_big e) {("0"); number=0; mark='n';Refresh=false; "The number is too big");} break; != -1));lg=(str);!= -1)); lg=(str);while (lg>=j) { ch=lg%j; st=(ch)+st; lg=lg/j;} st=(lg)+st; return st;}harAt(0)=='0'&& ().length()==1) ength();ength();}//end answer() method //}//end class Jsp2003 4.测试分析(1)程序运行情况: 程序正常的响应按钮事件,输入的数值长度受变量length 的限定,进行混合四则运算的时候,结果如果不是很大,可以正常显示,但如果结果很大,就可能采用科学记数方式,这样带来了进制转换时的麻烦,需要特殊的处理科学记数里的 E ,当结果太大的时候,有可能超出可能表示的最大值, (结果溢出) ,这个时候就要对结果进行必要的异常处理,我在输出结果的方法内设置if 语句,如果结果大于某一个值就抛出一个This_number_too_big 类型的类,再使用try-catch ,捕捉输出结果的方法抛出的异常对象。

java课设计算器报告

java课设计算器报告

java课设计算器报告Java是一种跨平台的面向对象的编程语言,使用Java编写的程序可以运行在各种环境(如Windows,Linux, Mac OS)之中。

而在学习Java语言的过程中,设计一个功能比较完善的计算器是学习者比较需要掌握的一项基本技能,故本文的目的在于,设计一个更加完善的Java课设计算器,并介绍如何实现。

二、计算器简介计算器是一种用于计算数字表达式的设备或程序,它可以计算算术表达式(包括加、减、乘、除),可以处理复杂的表达式,并有多种式样,如科学计算器,财务计算器,历史计算器等等。

三、计算器实现(一)编写程序首先,编写一个简单的计算器程序,让它能够实现输入输出的功能。

程序的实现使用Java的swing组件,并设置相应的按钮和文本框。

(二)处理表达式计算器可以接受复杂的表达式,所以必须使用相应的算法来处理表达式,以便得到正确的结果。

(三)计算结果接收到表达式后,依据编写的算法,计算得到所需要的结果,并在结果框中显示出来。

四、计算器应用计算器是日常生活中非常常见且实用的工具,它有助于改善计算准确性以及节约计算时间。

此外,计算器也有多种应用,比如:(一)金融领域计算器可以帮助金融行业的职员进行计算,例如计算投资收益、贷款利息、汇率等;(二)学术领域计算器可以帮助学生进行科学计算,从而更加方便快捷地完成学术研究;(三)数据分析计算器可以帮助对大量数据进行快速分析,从而节省时间和精力,提高工作效率。

五、总结本文基于Java语言设计了一款更加完善的计算器,并介绍了如何实现,它既可以进行简单的计算,也可以处理复杂的表达式,具有很强的实用性。

在实际的应用中,计算器的功能可以帮助我们更快更准确地完成计算,且多种应用,可以更好地提高工作效率。

Java计算器课程设计报告

Java计算器课程设计报告

石家庄职业技术学院课程设计报告计算器应用程序学生姓名:指导教师:系别:专业:年级:论文提交时间:年月日目录一概述 (3)二总体方案设计 (4)三详细设计 (5)四程序的调试与运行结果说明 (7)五课程设计总结 (9)六附录 (10)一概述1.程序具备的功能:(1)使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、除运算符;“等于”符号;复位按钮;(2)完成整数、实数的四则运算(加、减、乘、除);(3)通过按钮点击实现数据的复位(清零);(4)实数运算中小数位的精度一致。

2.课程设计的主要设计思想对于此计算器程序,首先要设计其GUI界面,总体界面有一个文本框,18个按钮,总体界面用BorderLayout布局。

文本框放置在最NORTH,然后0到9以及+,-,*,/的按钮放置到一个面板Panel中,添加到整体布局的CENTER,界面设计完成。

布局设计好后再添加按钮事件。

对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。

在进行加、减、乘、除计算时要把点击加、减、乘、除按钮之前的数值保存下来,运算时是这个被保存下来的数值和文本框中的数值加、减、乘、除。

二总体方案设计1.界面设计界面设计要求用GUI,界面设计中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如下:2.功能介绍这是计算器中的一种:简单计算器,本项目用到了Java中的GUI界面和swing 组件以及awt布局,所以简单易用,它能完成如下的几个小功能:点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除求模四则运算;还能通过用户自己在文本框中输入数字,进行简单运算;如果输入有误时可以按Clear撤销后重新输入新数据三详细设计程序流程图如下:部分代码展示及说明:这段代码主要是对程序的主框架进行相应的设置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

】·(华东交通大学课程设计课 程: 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)参考文献:(1)丁振凡.《J ava语言程序设计》清华大学出版社(2)丁振凡.《J ava语言程序设计实验指导与习题解析》清华大学出版社(3)/ /)课程设计进度安排内容天数地点总体需求与分析构思及收集资料 1 图书馆<各模块的编程实现,调试与修改 3 机房撰写论文与答辩 1 图书馆,机房学生签名:2013 年6 月18 日课程设计(论文)评审意见|(1)态度评价(20分):优()、良()、中()、一般()、差();(2)任务难度(20分):优()、良()、中()、一般()、差();(3)设计分析(20分):优()、良()、中()、一般()、差();(4)创新性评价(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)论文格式规范性及考勤是否降等级:是()、否()评阅人签名:职称:教授)2013 年6 月25日目录第1章系统概要...................................................................... - 1 -系统介绍......................................................................... - 1 -基本功能要求.................................................................... - 1 -第2章设计思路与算法................................................................ - 2 -应用的基本工作流程.............................................................. - 2 -类设计.......................................................................... - 3 -:应用界面的设计.................................................................. - 3 -事件处理原理、具体设计.......................................................... - 3 -算法考虑........................................................................ - 4 -第3章源程序代码.................................................................... - 5 -第4章运行结果及分析............................................................... - 15 -第5章心得体会..................................................................... - 17 -系统需要完善的地方.............................................................. - 17 -课程设计感想.................................................................... - 17 -.参考文献............................................................................ - 17 -第1章系统概要系统介绍编写一个简易计算器,实现Windows计算器的主要功能。

本次课程设计就是利用java语言来编写简单计算器的应用程序,模拟Windows计算器的功能,能进行加、减、乘、除四则算术运算和求倒数、求平方根等简单函数运算,且有小数点、清零和存储等功能。

基本功能要求通过计算器的设计,掌握Java编程的基本知识点。

(1)掌握基于AWT的图形用户界面的设计,如常用的的布局设计,容器中面板、按钮、文本框等组件的添加和布局。

(2)掌握图形界面的事件处理方法,注册动作事件监听者。

(3)掌握各类功能的实现思路,及程序表达。

熟悉实例变量、类变量与局部变量的差异。

(4)掌握方法的封装与调用。

尽量将重复用到的一段功能设计为方法。

(5)掌握if和switch等语句的使用。

(6)掌握如何给按钮设置颜色及给页面背景设计颜色。

(7)掌握java中“对象”和“类”的知识,类的设计及成员的控制访问第2章设计思路与算法应用的基本工作流程1.打开命令提示符和记事本;2.输入源程序代码;3.保存并运行源程序;4.运行,检查是否有误;5.修改错误并再次运行;6.测试计算器的工作状况。

类设计本次计算器的设计,主要用到的是GUI编程的相关方法。

所以我们所用到的类和方法主要有:主类:Calculation类继承的父类为WindowAdapter类,实现了ActionListener接口,定义了一个窗体f和多个面板,按钮和文本框。

(1)方法名:display方法作用:构建计算器的主界面在方法display中,定义了窗体的标题,设置了窗体的大小并通过setVisible(true)方法使窗体可见,setBackground()方法设置背景颜色,setResizable(false)方法使窗体大小不可变。

用setLayout()方法给容器指定按BorderLayout布局排列部件:通过容器的add()方法将面板放置在North区域:(p5,,通过add方法用来向面板中加入部件。

添加GUI部件并给各个部件各自不同的标识,创建中间面板时,如面板p1,p1=new Panel(new GridLayout(1,3,5,5)),设置为GridLayout布局,再用add方法把按钮都加进去,按(1,3,5,5)方式排列通过按钮对象的addActionListener方法为其注册事件监听处理者。

(2)方法名:actionPerformed方法作用:设置各个GUI部件的事件处理在 actionPerformed方法中,分别设置了不同按钮的操作事件,当不同按钮单击发生动作时自动调用执行相应的动作,从而实现计算器的多种运算功能。

通过()获得按钮事件对象的命令名,再在if语句中根据操作命令符按情况分别处理事件,进行相应运算。

通过setText()方法将结果转化为数字串写入文本输入框中。

事件监听器中的事件处理方法void actionPerformed(ActionEvent e)完成主要的按钮事件的处理。

事件处理分以下几种情况:数字按钮事件(“0”,“1”,“2”,“3”···“8”,“9”),小数点按钮事件(“.”),运算符按钮处理事件(“+”,“-”,“*”,“/”),正负号按钮事件(“+/-”),退格按钮事件(“Backspace”),清除按钮事件(“C”),等号按钮事件(“=”),存储按钮事件(“MS”,“MC”,“MR” ,“M+”)等。

(3)方法名:main方法在该方法中,通过new运算符创建一个类Calculation的对象Cal,通过调用display()方法。

(4)方法名:windowClosing方法在该方法中,在处理窗体的“关闭”事件的监听者采用继承WindowsAdapter的方式。

应用界面的设计参考了windows计算器的布局,我们把总体界面采用BorderLayout布局,文本框所在的面板p5位于最上方(North区域),存储按钮及显示M状态文本框所在的面板p3在最左边(West区域),而Backspace,CE,C所在的面板p1和数字按钮、运算符按钮等所在面板p2放置在面板p4中,面板p4统一分布在中央(Center区域),同时面板中又按GridLayout 布局分布多行多列。

具体如下图所示。

事件处理原理、具体设计首先,对计算器的整体布局构思清楚,将整个计算器分成多行多列组成的单元,使得整个计算器的布局更加合理、有序。

采用网格块布局,整体分为6行,第一行为输入及显示框,第二行为退格键和清零键,下面几行分别为数字按钮与运算符按钮,以及MC,MR,MS,M+等存储按钮。

第二,设计依次添加GUI部件。

第三,为各个部件注册监听者,考虑到数字键,运算符,等于,小数点,求平方根等的不同以及程序的调理清晰,我们分别为其设置了不同的监听者。

第四,设置相应的各类算法。

第五,设置主程序和退出方法。

在编写完源程序代码后,进行运行,发现错误并更正。

最后,测试制作的计算器运行状况即计算能力。

动作事件的各方关系,结合代码大致如下图所示:算法考虑在 actionPerformed方法中,分别设置了不同按钮的操作事件,当不同按钮单击发生动作时自动调用执行相应的动作,从而实现计算器的多种运算功能。

相关文档
最新文档