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

java课程设计科学计算器。
一、课程目标知识目标:1. 理解Java编程中算术表达式的组成及运算规则;2. 掌握Java中的基本数据类型及其在算术运算中的使用;3. 学会使用Java控制结构和函数实现科学计算器的功能;4. 了解科学计算器中常见的数学函数及其在Java中的实现。
技能目标:1. 能够编写简单的Java程序,实现加、减、乘、除等基本运算;2. 能够运用循环和条件语句,实现科学计算器的逻辑功能;3. 能够利用Java类和对象,设计并实现具有图形用户界面的科学计算器;4. 能够运用调试技巧,找出并修正程序中的错误。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发其探究科学计算器原理的欲望;2. 培养学生严谨、细致的编程习惯,提高其问题解决能力和团队协作能力;3. 培养学生热爱科学、勇于创新的精神,使其认识到编程在科学计算中的重要性。
本课程针对高年级学生,结合Java编程知识,旨在帮助学生掌握科学计算器的核心功能实现。
课程注重实用性,通过设计具体的学习成果,使学生在完成课程后能够独立编写并优化科学计算器程序。
同时,关注学生的情感态度价值观培养,提高其综合素质。
二、教学内容1. Java基本语法与数据类型:回顾Java基本语法规则,重点掌握整型、浮点型等基本数据类型及其在运算中的使用。
- 教材章节:第一章 Java语言概述,第二章 基本数据类型与运算符2. 算术表达式与运算规则:讲解算术表达式的构成,介绍运算符优先级和结合性。
- 教材章节:第二章 基本数据类型与运算符3. Java控制结构:学习顺序、分支和循环结构,实现科学计算器的基本运算功能。
- 教材章节:第三章 控制结构4. 函数的定义与调用:介绍函数的概念,学会编写自定义函数,实现计算器中的特定功能。
- 教材章节:第四章 函数与数组5. 图形用户界面设计:学习Java Swing库,使用其组件设计科学计算器的界面。
- 教材章节:第七章 Java Swing图形用户界面6. 数学函数与运算:介绍科学计算器中常见的数学函数,如三角函数、指数函数等,并在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计算器课程设计

3.通过线程控制,实现计算器的异步计算功能,如后台计算与进度显示;
4.介绍网络编程的基础,探讨如何实现网络分布式计算器;
5.结合数据库知识,设计并实现计算器的历史记录管理功能;
6.分析并讨论计算器在性能优化方面的策略,如减少重复计算、缓存结果等;
7.鼓励学生进行创新设计,如结合人工智能技术,实现智能计算器功能。
5、教学内容
《Java计算器课程设计》在课程的最后阶段,将重点攻克以下教学内容:
1.代码重构,优化已有计算器项目的结构,提高代码可读性和可维护性;
2.实施单元测试,确保各个模块功能的正确性和稳定性;
3.介绍软件发布流程,包括版本控制、构建和打包等;
5.使用switch-case语句实现基本的运算操作(加、减、乘、除);
6.异常处理,避免除数为0等运行错误;
7.使用循环结构,实现计算器的重复使用功能。
2、教学内容
《Java计算器课程设计》紧接着上一部分,进一步深化以下教学内容:
1.引入函数的概念,将计算功能模块化;
2.设计并实现自定义函数,如加法、减法、乘法、除法运算;
5.探讨设计模式在计算器中的应用,如工厂模式创建运算对象;
6.整合所学知识,实现一个具有图形用户界面的计算器应用程序;
7.强调代码规范和注释的编写,培养学生的良好编程习惯。
4、教学内容
《Java计算器课ຫໍສະໝຸດ 设计》在高阶层次上,将以下教学内容融入课程:
1.引导学生运用事件处理机制,增强图形用户界面的交互性;
3.理解并应用变量的作用域,区分局部变量与全局变量;
4.掌握并能运用Java中的数据类型转换;
5.实现用户界面优化,包括但不限于菜单显示、错误提示、运算结果展示;
Java课程设计计算器的功能实现

Java课程设计报告一、功能描述该软件实现了计算器的加减乘除这几个基本功能,还实现了以下各个键的功能Sqrt:求算数平方根,%:取余数,1/x:求倒数,BackSpace:删除当前输入的最后一位数,CE :清除当前显示的数,不影响已经输入的数,C:清除当前的计算,开始新的计算。
二、UML类图三、核心代码各个键的实现方法代码如下://用户单击Backspace按钮一次,计算栏里便去掉一个字符if(s.equals("Backspace")&&number){t_content=textfield.getText();textfield.setText("");for(int i=0;i<t_content.length()-1;i++){char c=t_content.charAt(i);textfield.setText(textfield.getText()+c);}}//用户单击的是CE按钮,计算栏清空if(s.equals("CE")){textfield.setText("");number=false;}//用户单击的是C按钮if(s.equals("C")){textfield.setText("");data1=data2=0.0;number=false;}//用户单击的是sqrt按钮,其中负数不能被开方if(s.equals("sqrt")&&number){t_content=textfield.getText();if(t_content.charAt(0)=='-'){textfield.setText("负数不能被开方");number=false;}else{textfield.setText(Double.toString(ng.Math.sqrt(Double.parseDouble(t_content))));}}//用户单击的是1/x求倒数按钮,求倒数时分母不能为0if(s.equals("1/x") && number){t_content=textfield.getText();if(t_content.equals("0")){textfield.setText("零不能求倒数");number=false;}else{textfield.setText(Double.toString(1/Double.parseDouble(t_content)));}}//用户单击的是%按钮if(s.equals("%")&&number){if(data2==0){t_content=textfield.getText();textfield.setText(t_content);}else{boolean g=false;for(int i=0;i<textfield.getText().length();i++)if('.'==textfield.getText().charAt(i)){g=true;break;}if(g=true){double dtemp=Double.parseDouble(textfield.getText());dtemp=dtemp/100.0;textfield.setText(Double.toString(dtemp));}else{if(Integer.parseInt(textfield.getText())%100==0){int itemp=Integer.parseInt(textfield.getText());itemp/=100;textfield.setText(Integer.toString(itemp));}else{double dtemp=Double.parseDouble(textfield.getText());dtemp=dtemp/100.0;textfield.setText(Double.toString(dtemp));}}}//对正负数字的处理if(s.equals("+/-")){t_content=textfield.getText();if(t_content.charAt(0)=='-'){textfield.setText("");String content;for(int i=1;i<t_content.length();i++){textfield.setText(textfield.getText()+t_content.charAt(i)); }}else{textfield.setText("-"+t_content);}}//所按下的按钮为+按钮if(s.equals("+")){switch(pkey){case 0:data2+=Double.parseDouble(textfield.getText());break;case 1:data2+=Double.parseDouble(textfield.getText());break;case 2:data2+=Double.parseDouble(textfield.getText());break;case 3:if(textfield.getText().equals("0")){textfield.setText("除数不能为零");number=false;}else{key=-1;data2/=data1;textfield.setText(Double.toString(data2));break;}default:data2=Double.parseDouble(textfield.getText());}pkey=key=0;textfield.setText("");}//所按下的按钮为-按钮if(s.equals("-")){switch(pkey){case 0:data2+=Double.parseDouble(textfield.getText());break;case 1:data2+=Double.parseDouble(textfield.getText());break;case 2:data2+=Double.parseDouble(textfield.getText());break;case 3:if(textfield.getText().equals("0")){textfield.setText("除数不能为零");number=false;}else{key=-1;data2/=data1;textfield.setText(Double.toString(data2));break;}default:data2=Double.parseDouble(textfield.getText());}pkey=key=1;textfield.setText("");}//所按下的按钮为*按钮if(s.equals("*")){switch(pkey){case 0:data2+=Double.parseDouble(textfield.getText());break;case 1:data2+=Double.parseDouble(textfield.getText());break;case 2:data2+=Double.parseDouble(textfield.getText());break;case 3:if(textfield.getText().equals("0")){textfield.setText("除数不能为零");number=false;}else{key=-1;data2/=data1;textfield.setText(Double.toString(data2));break;}default:data2=Double.parseDouble(textfield.getText());}pkey=key=2;textfield.setText("");}//所按下的按钮为/按钮if(s.equals("/")){switch(pkey){case 0:data2+=Double.parseDouble(textfield.getText());break;case 1:data2+=Double.parseDouble(textfield.getText());break;case 2:data2+=Double.parseDouble(textfield.getText());break;case 3:if(textfield.getText().equals("0")){textfield.setText("除数不能为零");number=false;}else{key=-1;data2/=data1;textfield.setText(Double.toString(data2));break;}default:data2=Double.parseDouble(textfield.getText());}pkey=key=3;textfield.setText("");}//所按下的按钮为=,求结果if(s.equals("=")&&number){if(pkey==5){switch(pkey){case 0:data2+=data1;textfield.setText(Double.toString(data2));break;case 1:data2-=data1;textfield.setText(Double.toString(data2));break;case 2:data2*=data1;textfield.setText(Double.toString(data2));break;case 3:if(textfield.getText().equals("0")){textfield.setText("除数不能为零");number=false;}else{data2/=data1;textfield.setText(Double.toString(data2));break;}}}else{data1=Double.parseDouble(textfield.getText());switch(key){case 0:key=-1;data2+=Double.parseDouble(textfield.getText());textfield.setText(Double.toString(data2));break;case 1:key=-1;data2-=Double.parseDouble(textfield.getText());textfield.setText(Double.toString(data2)); //break;case 2:key=-1;data2*=Double.parseDouble(textfield.getText());textfield.setText(Double.toString(data2));break;case 3:if(textfield.getText().equals("0")){textfield.setText("除数不能为零");number=false;}else{key=-1;data2/=Double.parseDouble(textfield.getText());textfield.setText(Double.toString(data2));break;}}}pkey=5;}//按下的按钮是数字按钮else{switch(s.charAt(0)){case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':number=true;textfield.setText(textfield.getText()+s);break;//对“.”的处理case'.':t_content=textfield.getText();boolean g=false;for(int i=0;i<t_content.length();i++){if(t_content.charAt(i)=='.'){g=true;break;}}if(g==true)break;if(g==false)textfield.setText(t_content+".");}}}四、运行结果:五、总结:该软件没有充分运用Java中的图形用户界面,与电脑附件中的计算器外观还有些差距,且M+、MS、MR、MC这四个按钮的功能没有实现,还需要学习把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课程设计(完整版)

目录一、课设任务及要求 (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),并且还能进行连续运算。
总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。
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课程设计一、课程目标知识目标:1. 学生能掌握Java编程语言中面向对象的基本概念,包括类、对象、方法等;2. 学生能理解迷你计算器的基本功能需求,并将其转化为Java程序代码;3. 学生能了解并应用Java中的基本数据类型、运算符以及控制结构。
技能目标:1. 学生能运用所学知识,独立完成一个迷你计算器程序的设计与编写;2. 学生能通过调试和修改代码,解决编程过程中遇到的问题;3. 学生能运用面向对象的思想,对计算器功能进行模块化设计。
情感态度价值观目标:1. 培养学生编程的兴趣,激发学习Java编程的热情;2. 培养学生团队合作精神,学会在编程过程中互相交流、分享经验;3. 培养学生面对问题积极思考、勇于克服困难的精神。
分析课程性质、学生特点和教学要求:1. 课程性质:本课程为Java编程入门课程,旨在让学生通过实践操作,掌握基本的编程技能;2. 学生特点:学生具备一定的计算机操作基础,对编程有一定了解,但实际编程经验不足;3. 教学要求:课程应注重实践操作,引导学生主动探索,培养解决问题的能力。
二、教学内容1. Java基本语法与数据类型:回顾Java基本语法规则,介绍整型、浮点型、字符型和布尔型等基本数据类型;2. 面向对象基础:讲解类与对象的概念,以及如何定义方法和属性,实现简单的面向对象编程;3. 运算符与控制结构:介绍算术运算符、关系运算符、逻辑运算符等,以及if-else、for、while等基本控制结构;4. 编程实践:设计并编写一个迷你计算器程序,涵盖加、减、乘、除等基本运算功能;- 程序框架搭建:创建主类,设计用户界面,实现输入输出功能;- 功能实现:编写方法,实现计算器的运算功能;- 异常处理:学会处理输入非法数据时的异常情况;5. 调试与优化:学习如何调试程序,找出并修复错误,优化代码性能;6. 总结与拓展:总结本次课程所学知识,探讨如何为计算器添加更多功能,如科学计算、图形界面等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java课程设计题目:Java计算器学生姓名杨云鹏学号20121325054学院信息与控制学院专业系统工程二O一四年 6 月 3 日课程设计报告书目录一、课程设计任务及要求 (5)二、设计目的 (5)三、操作环境 (5)四、设计场所(机房号、机器号或自己机器) (5)五、设计过程(设计内容及主要程序模块) (6)六、本次设计中用到的课程知识点(列出主要知识16七、设计过程中遇到的问题及解决办法 (16)八、程序清单 (18)Java背景介绍:JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(Sun Microsystems)公司的詹姆斯·高斯林(James Gosling)等人于1990年代初开发。
它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。
就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,在1995年5月23日以“Java”的名称正式发布了。
Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
Oracle收购Sun后Java前途未卜。
一、课程设计任务及要求1、课题要求(1)使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、除运算符;“等于”符号.(2)完成整数、实数的四则运算(加、减、乘、除);(3)通过按钮点击实现数据运算。
(4)实数运算中小数位的精度一致。
2、课题设计思想对于此计算器程序,首先要设计其界面,总体界面有一个文本框,十多个按钮,总体界面用BorderLayout布局。
文本框放置在最NORTH,然后0到9以及+,-,*,/的按钮放置到一个面板Panel中,添加到整体布局的CENTER,界面设计完成。
布局设计好后再添加按钮事件。
对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。
这是计算器中的一种:简单计算器,本项目用到了Java中的界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个小功能:点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除求模四则运算;还能通过用户自己在文本框中输入数字,进行简单运算。
二、设计目的进一步掌握和理解java程序编程;进一步掌握java语言的基本数据类型,熟悉定义变量和使用变量;理解java图形用户界面的基本工作原理和界面设计;巩固窗体的布局设计;掌握窗体按钮控件和文本控件对事件的响应;理解函数和方法的使用。
三、操作环境Windows2007下jdk四、详细设计过程1、界面设计界面设计中有用到swing组件的TextField和Button,用awt中的BorderLayout和GridLayout布局管理方式,窗体名称Calculator 继承JFrameActionListener接口,并实现public void actionPerformed(ActionEvent e){}方法。
定义菜单、菜单条、菜单项、按钮、文本框、容器,设置为private类型。
定义变量double memoryd;//使用内存中存储的数字;DecimalFormat df;//保留小数位数。
使用private JButton getJButton()方法添加按钮并给按钮命名,方法设置按钮的字体和字体颜色。
设置数字按钮1到9并添加监控,使其在发生鼠标事件时改变按钮颜色public CalculatorPanel() {setLayout(new BorderLayout());result = 0;lastCommand = "=";start = true;display = new JButton("0");display.setEnabled(false);add(display, BorderLayout.NORTH);ActionListener insert = new InsertAction(); ActionListener command = new CommandAction();panel = new JPanel();panel.setLayout(new GridLayout(4, 4));addButton("7", insert);addButton("8", insert);addButton("9", insert);addButton("/", command);addButton("4", insert);addButton("5", insert);addButton("6", insert);addButton("*", command);addButton("1", insert);addButton("2", insert);addButton("3", insert);addButton("-", command);addButton("0", insert);addButton(".", insert);addButton("=", command);addButton("+", command);add(panel, BorderLayout.CENTER);} 其图形界面如下:流程图:2、等于号按钮,jButton.setText("=");通过使用switch……case 语句来控制, Operator变量在定义+、-、*、/按钮时对其赋值3、设置计算器名称:(Calculator)class CalculatorFrame extends JFrame {public CalculatorFrame() {setTitle("Calculator");CalculatorPanel panel = new CalculatorPanel();add(panel);pack();4、算法的实现:private class CommandAction implements ActionListener {public void actionPerformed(ActionEvent event) {String command = event.getActionCommand();if(start) {if(command.equals("-")) {display.setText(command);start = false;} else {lastCommand = command;}} else {calculate(Double.parseDouble(display.getText()));lastCommand = command;start = true;}}}public void calculate(double x) {if(lastCommand.equals("+")) result += x;else if(lastCommand.equals("-")) result -= x;else if(lastCommand.equals("/")) result /= x;else if(lastCommand.equals("*")) result *= x;else if(lastCommand.equals("=")) result = x;display.setText("" + result);}setBounds()方法实现窗体的显示位置和窗体大小,setVisible()将其设置为五、程序的调试与运行结果说明①加法:231.6+377= 减法:7678-14288②乘法:122.6*144 除法:347/142③特殊算法:3/0 此计算器漏洞,不能处理特殊算法。
六、设计中用到的课程知识点Java语言程序设计:1.布局管理器:borderLayout、gridLayout、setLayout;2.组件:JFrame、JPanel、JButton、JTextField、JMenuBar、JMenu、JMenuItem3.图形用户界面;4.类的继承、接口的继承;5.监听器的使用;6.Math方法的使用;7.强制类型转换;七、设计中遇到的问题及解决方法因为第一次设计简单的JAVA程序,有很多地方没有想到,这次设计计算器,也有很多没有完善的地方,比如:计算器除数不能为0,但我们这次设计的计算器没考虑到这个方面,使得计算器在这种情况下不能正常计算,后经过查阅参考书,解决了这个问题,只需一行代码即可:if(d3==0) tf.setText("除数不能为零")。
相关内容简单的计算器,实现如下功能:(1)用户在窗口(WindowOperation类负责创建)中的两个文本框中输入参与运算的两个操作数。
(2)用户在下拉列选择运算符触发ItemEvent事件,ItemEvent事件的监视器operator(OperatorListener类负责创建)获得运算符,并将运算符传递给ActionEvent事件的监视器computer(3)用户单击按钮触发ActionEvent事件,监视器computer (ComputerrListener类负责创建)给出运算结果。
八、主要收获这次的程序设计,从一个简单的计算器就可以看出JAVA的程序设计不是那么简单,仅仅是一个小小的计算器,就已经有很多需要注意的问题,一不小心就会出错,还会有很多地方没怎么明白,而计算器的设计是最简单的几个设计其中之一,可见,平时的知识积累是很重要的。
没有知识的积累,再简单的东西也不可能设计出来。
课程设计还让我们练习了动手能力,使我们平时学习的知识得以在实际中应用,不会学死书,活学活用,很大程度上提高了我们的能力,对以后的学习、工作、生活也会有一定的帮助。