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项目实训》课程设计——计算器
信息科学与工程学院课程设计题目:基于java计算器的设计与实现姓名:文正学号:201312310147班级:2013级升本1班课程:Java项目实训任课教师梦琳2014年12月20日课程设计任务书及成绩评定目录1、前言 (4)1.1设计目的及思路 (4)1.2功能模块设计 (4)1.3系统功能图 (6)2、计算器的设计与实现 (6)3、计算器演示 (7)4、总结与体会及讨论分析 (11)5、参考文献 (14)附件: (15)程序源代码 (15)1、前言1.1设计目的及思路通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。
利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。
给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。
除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过部较为复杂的运算将结果显示在显示屏上。
至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数Integer.toBinaryString(int i)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。
当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java 语言健壮性的体现!1.2功能模块设计以下为标准计算器的基本功能:(1)加法两个数据进行加操作,可以为小数。
(2)减法两个数据进行减操作,可以为负数相减。
(3)乘法两个数相乘操作。
(4)除法两个数相除操作。
(5)开平方对任意一个数进行开方运算,可以是小数。
(6)求余对任意一个数进行求余运算。
(7)倒数对任意一个数进行倒数运算。
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课程设计 计算器一、课程目标知识目标: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课程设计一、课程目标知识目标:1. 学生能理解简单计算器的功能需求,掌握Java语言的基本语法和编程结构。
2. 学生能运用Java编程实现加、减、乘、除等基本运算,并掌握相关运算符的使用方法。
3. 学生了解面向对象编程的基本概念,能够使用类和对象构建简单计算器程序。
技能目标:1. 学生能运用所学知识,独立完成简单计算器程序的编写和调试。
2. 学生掌握使用条件语句和循环语句进行程序流程控制,实现计算器的逻辑功能。
3. 学生能够运用调试工具,分析并解决简单计算器程序中可能出现的错误。
情感态度价值观目标:1. 培养学生编程的兴趣,激发他们探究计算思维和解决问题的热情。
2. 培养学生团队协作意识,让他们在合作开发过程中学会沟通与分享。
3. 培养学生面对困难勇于挑战的精神,提高他们独立解决问题的能力。
课程性质:本课程为实践性较强的学科课程,结合学生年级特点和教学要求,注重培养学生动手操作能力和编程思维。
学生特点:学生具备一定的Java基础,了解基本语法和编程结构,但对面向对象编程和实际项目开发尚处于初级阶段。
教学要求:结合学生特点,通过本节课的学习,使学生能够将所学知识应用于实际项目开发中,提高编程实践能力。
同时,关注学生情感态度价值观的培养,激发学习兴趣,增强合作意识。
将课程目标分解为具体学习成果,便于后续教学设计和评估。
二、教学内容1. 简单计算器功能需求分析:介绍计算器的基本功能,引导学生明确项目目标。
- 加、减、乘、除四则运算- 清除、退出等辅助功能2. Java基本语法回顾:复习Java基本语法,为编写计算器程序打下基础。
- 数据类型- 运算符- 控制语句(条件语句、循环语句)3. 面向对象编程基础:引入面向对象概念,指导学生构建简单的计算器类。
- 类的定义- 对象的创建- 方法的编写4. 简单计算器程序设计:详细讲解计算器各功能模块的实现。
- 界面设计- 事件处理- 运算逻辑5. 编程实践:指导学生动手编写简单计算器程序,并进行调试。
java实验报告计算器
java实验报告计算器Java实验报告:计算器引言:计算器是我们日常生活中常用的工具之一,它能够帮助我们进行各种数学运算,提高计算的效率。
本实验旨在使用Java编程语言设计和实现一个简单的计算器,通过实践来加深对Java语言和面向对象编程的理解。
一、需求分析在设计计算器之前,我们首先需要明确计算器的功能需求。
一个基本的计算器应该包括加、减、乘、除四种基本运算,同时还应该具备清零、取反、百分比等附加功能。
在本实验中,我们将实现这些基本功能,并尝试添加一些额外的功能,如开根号、求平方等。
二、设计思路1. 用户界面设计我们可以使用Java的图形用户界面(GUI)库来设计计算器的界面。
可以使用按钮来表示数字和运算符,使用文本框来显示计算结果。
2. 数据结构设计为了实现计算器的功能,我们需要设计一个合适的数据结构来存储用户输入的数字和运算符。
可以使用栈(Stack)数据结构来实现这个功能。
当用户按下数字按钮时,将数字入栈;当用户按下运算符按钮时,将运算符入栈。
当用户按下等号按钮时,从栈中取出数字和运算符进行计算,并将结果显示在文本框中。
3. 运算逻辑设计计算器的运算逻辑可以使用逆波兰表达式来实现。
逆波兰表达式是一种不需要括号的数学表达式表示方法,通过后缀表达式的形式来表示运算符的优先级。
在计算器中,我们可以使用栈来实现逆波兰表达式的计算。
三、实验步骤1. 创建一个Java项目,并导入GUI库。
2. 设计计算器的用户界面,包括按钮和文本框。
3. 实现按钮的点击事件,根据用户输入的数字和运算符来更新栈的状态。
4. 实现等号按钮的点击事件,从栈中取出数字和运算符进行计算,并将结果显示在文本框中。
5. 实现清零、取反、百分比等附加功能的按钮点击事件。
6. 运行程序,测试计算器的各项功能是否正常。
四、实验结果与分析经过测试,我们的计算器能够正常地进行加、减、乘、除等基本运算,并且附加功能也能正常使用。
通过这个实验,我们不仅学习了Java语言的基本语法和面向对象编程的思想,还加深了对数据结构和逆波兰表达式的理解。
java程序计算器课程设计
java程序计算器课程设计一、课程目标知识目标:1. 让学生掌握Java基本语法和程序结构,特别是运算符、控制流程等与计算器相关的知识;2. 帮助学生理解计算器程序的功能需求,设计合理的类和方法;3. 引导学生运用所学知识实现一个具备加、减、乘、除基本运算功能的计算器程序。
技能目标:1. 培养学生运用Java语言编写、调试程序的能力;2. 提高学生分析问题、解决问题的能力,能够根据实际需求设计合适的程序结构;3. 培养学生团队协作能力,通过小组讨论和分工,共同完成计算器程序的设计与实现。
情感态度价值观目标:1. 激发学生对编程的兴趣,培养其主动探究、积极实践的精神;2. 引导学生认识到编程在解决问题中的实际应用,增强其学习责任感;3. 培养学生良好的编程习惯,注重代码规范和可读性,提高其职业素养。
本课程针对高年级学生,考虑到他们已具备一定的编程基础,课程性质为实践性、综合性。
在教学过程中,注重引导学生主动参与、动手实践,将目标分解为具体的学习成果,以便在教学设计和评估中明确方向。
通过本课程的学习,期望学生能够独立完成一个简单的计算器程序,并在实践中提高自身编程能力和团队协作能力。
二、教学内容1. Java基本语法:变量声明与赋值、数据类型、运算符、表达式;2. 控制流程:分支结构(if-else、switch)、循环结构(for、while、do-while);3. 方法定义与调用:无参方法、有参方法、返回值方法;4. 类与对象:类的定义、对象的创建与使用、构造方法;5. 计算器功能需求分析:加、减、乘、除运算,界面设计(可选);6. 编程实现:编写计算器类,实现加、减、乘、除方法,搭建主程序框架;7. 测试与调试:单元测试,集成测试,异常处理;8. 代码优化与重构:提高代码可读性,遵循编程规范,增强程序健壮性。
教学内容依据课程目标,结合教材相关章节进行组织。
具体安排如下:第一课时:Java基本语法与运算符复习;第二课时:控制流程和方法定义;第三课时:类与对象基础;第四课时:计算器功能需求分析与设计;第五课时:编写计算器类,实现基本运算方法;第六课时:搭建主程序框架,进行单元测试;第七课时:集成测试,优化代码,进行调试;第八课时:总结与反馈。
JAVA课程设计-----简单的计算器
Java课程设计说明书---Java程序简单的计算器XXXXXXX目录正文1. 概述 (3)1)项目背景 (3)2)编写目的 ............................................ 错误!未定义书签。
3)软件定义 (1)4)开发环境 (1)5)所用的知识 ........................................ 错误!未定义书签。
2功能说明 (4)1) 问题陈述 (3)2) 需要完成的功能 (3)3程序的类的说明 (4)4软件系统测试说明 (6)5用户使用说明 (6)结束语 (7)参考文献 (4)1. 概述1)项目背景《JA V A程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
通过一学期的学习和了解我能够通过自己所学的知识进行一次全面的综合训练。
2)编写目的JA V A程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
更重要的是明白开发软件的意义与模块的分析与制作的过程。
3)软件定义简单的计算器,可以进行+、-、*、/、辅助功能有清屏、开方可以进行整数的运算同样也可以进行浮点型小数的运算。
功能很简单数据处理有一定范围。
4)开发环境IDE:NetBeans IDE 7.0 (Build 201104080000)JDK:Java:1.6.0_20; Java HotSpot(TM) Client VM 16.3-b01OS:Windows 7 版本6.1 运行于x86 上; GBK; zh_CN5)所用知识1.Swing 的UI技术2.Java的内部类、匿名类技术3.Java的继承技术4.Java的事件处理机制beans的GUI设计工具的用法2功能说明该程序是一个图形界面的简单的java计算器,具有良好的界面,使用人员能快捷简单地进行操作。
javs课程设计计算器
javs课程设计计算器一、课程目标知识目标:1. 学生能理解计算器程序的基本结构,掌握Java中实现计算器功能的相关语法知识。
2. 学生能运用所学知识,自主编写简单的计算器程序,实现加、减、乘、除四则运算。
3. 学生了解并掌握异常处理的基本方法,提高程序健壮性。
技能目标:1. 学生掌握使用Java编写控制台应用程序的基本步骤,培养编程实践能力。
2. 学生能够运用条件语句和循环语句实现计算器的逻辑运算。
3. 学生学会使用调试工具,分析并解决程序中出现的错误。
情感态度价值观目标:1. 学生通过编写计算器程序,体验编程解决问题的乐趣,提高学习Java的兴趣。
2. 学生在合作学习中,培养团队协作能力和沟通能力,形成良好的编程习惯。
3. 学生认识到编程在实际生活中的应用价值,增强对信息技术的认同感。
课程性质:本课程为Java语言程序设计的基础实践课程,旨在帮助学生掌握Java编程的基本知识,培养编程思维和实际操作能力。
学生特点:学生为初中生,具备一定的逻辑思维能力,对计算机编程有一定兴趣,但实践经验不足。
教学要求:注重理论与实践相结合,通过实际操作和案例分析,使学生掌握计算器程序的编写方法,提高编程实践能力。
同时,关注学生个体差异,提供个性化指导,确保每位学生都能达到课程目标。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 程序设计基础:回顾Java基本语法,重点掌握变量声明、数据类型、运算符、表达式等概念。
相关教材章节:第一章 Java语言概述,第二章 基本数据类型与运算符。
2. 控制台输入输出:学习使用Scanner类实现控制台输入,掌握打印输出语句的使用。
相关教材章节:第三章 输入输出流。
3. 控制结构:学习条件语句(if-else,switch)和循环语句(for,while),理解其执行逻辑。
相关教材章节:第四章 选择结构,第五章 循环结构。
4. 方法:掌握方法的定义、调用和返回值,理解方法的重载概念。
《Java项目实训》课程设计——计算器
《Java项目实训》课程设计——计算器D1、前言1.1设计目的及思路通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。
利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。
给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。
除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。
至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数Integer.toBinaryString(int i)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。
当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现!1.2功能模块设计以下为标准计算器的基本功能:(1)加法两个数据进行加操作,可以为小数。
(2)减法两个数据进行减操作,可以为负数相减。
(3)乘法两个数相乘操作。
(4)除法两个数相除操作。
(5)开平方对任意一个数进行开方运算,可以是小数。
(6)求余对任意一个数进行求余运算。
(7)倒数对任意一个数进行倒数运算。
(8)转换将十进制数转换为二进制以及将二进制转换为十进制。
1.3系统功能图2、计算器的设计与实现2.1总体方案设计日常生活中经常需要用到计算器,比如科学计算,数值计算,会计业务等等,在Applet中实现一个精巧的计算器,可以让用户的操作也更方便和快捷。
本项目需要实现一个具有四则运算的计算器,能够实现基本的加、减、乘、除运算,以及其它的辅助功能;界面简洁适用;要提供主要的设计思路、类的设计,本次设计添加转进制等功能。
java课程设计--计算器(带源码)
b6.addActionListener(this);
p2.add(b14);
b14.addActionListener(this);
p2.add(b7);
b7.addActionListener(this);
p2.add(b8);
b8.addActionListener(this);
5.实验方法与步骤:
程序源码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.util.*;
publicclassCalculatorimplementsActionListener {
JButtonb1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,
sum=sum* d;
tf.setText(String.valueOf(sum));
}elseif(("/").equals((String)stElement())) {
sum=sum/ d;
tf.setText(String.valueOf(sum));
}elseif(("=").equals((String)stElement())) {
}
if(e.getActionCommand() =="x")//乘号的实现;
{
if(("+").equals((String)stElement())
|| ("-").equals((String)stElement())
JAVA课程设计简单地计算器(含代码)
Java程序课程设计任务书一、主要任务与目标1. 掌握java语言2. 创建一个简单的计算器,具有简单人机交互界面,易于操作,便于进行数据之间的简单运算。
二、具体要求(包括技术要求等):1)能够实现基本的加、减、乘、除四则运算及开方,乘方运算;2)如输入数据时,出现错误,可以修改;3)运算结果能正确显示;可以清零;4)拥有登陆注册功能;5)可以查看历史记录;学习并掌握以下技术:Java、awt,swing等熟练使用以下开发工具:Jdk,JCreate 等实现计算器的上述的功能。
三、计划进度1.12月28日—12月29日:搜集资料、查阅文献,确定选题2.12月30日--12月31日:需求分析,系统设计,系统功能模块完善3.1月1日--1月3日:编程实现系统、系统测试与修改4.1月4日-- 1月6日:课程设计报告撰写5.1月 7日-- 1月 8日:课程设计报告答辩四、主要参考文献[1] 耿祥义,张跃平.java大学实用教程(第二版).电子工业出版社.2008年5月目录JAVA程序课程设计任务书 (I)目录 (II)第1章引言 (1)1.1课程设计内容 (1)1.2任务分工 (1)第2章计算器定义 (2)2.1计算器登陆注册界面概述 (2)2.1.1 计算器功能概述 (2)2.1.2 计算结果的储存与查看功能概述 (2)2.2本章小结 (2)第3章计算器的具体实现 (3)3.1界面设计 (3)3.1.1用户登陆界面图 (3)3.1.3 计算器主界面 (8)3.2计算功能实现 (9)3.4本章小结 (14)第4章结束语 (14)致谢 (15)参考文献 (15)附录源代码 (15)/****************引用数据包里的类与方法******************************/ (15)第1章引言1.1 课程设计内容这是我组设计的计算器会有一些独特的功能,本项目用到了Java中的GUI界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个功能:(1)数据计算处理功能点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除四则运算及三角函数,开方,乘方运算;如果输入有误时可以按C撤销后重新输入新数据,有储存修改键;(2)查询功能查询功能可以迅速方便地查找到相应时段的执行的操作及结果。
java课程设计编写计算器
java课程设计编写计算器一、教学目标本节课的教学目标是使学生掌握Java编程的基本语法和结构,能够使用Java编写一个简单的计算器程序。
具体来说,知识目标包括了解Java的基本数据类型、运算符、控制结构等;技能目标包括能够使用Java编写简单的程序,并进行调试和优化;情感态度价值观目标包括培养学生的编程兴趣,提高学生的解决问题的能力。
二、教学内容本节课的教学内容主要包括Java的基本语法和结构,以及计算器程序的设计和实现。
具体来说,将讲解Java的基本数据类型、运算符、控制结构等知识,并通过实例来说明如何使用这些知识来编写计算器程序。
此外,还将介绍如何进行程序的调试和优化,以提高程序的性能和可靠性。
三、教学方法为了达到本节课的教学目标,将采用多种教学方法来进行教学。
首先,将采用讲授法来讲解Java的基本语法和结构,使学生能够了解和掌握这些知识。
其次,将采用案例分析法来分析计算器程序的设计和实现,使学生能够通过实际案例来加深对知识的理解和应用。
此外,还将采用实验法让学生亲自动手编写和调试计算器程序,以提高学生的实际操作能力。
四、教学资源为了支持本节课的教学内容和教学方法的实施,将选择和准备一些教学资源。
教材方面,将使用《Java编程语言》作为主教材,辅以《Java编程实践》等参考书进行深入学习。
多媒体资料方面,将制作一些PPT和视频教程,以帮助学生更好地理解和掌握知识。
实验设备方面,将准备一些计算机和编程环境,以便学生进行实际操作和调试。
五、教学评估本节课的教学评估将采用多元化的方式来进行,以全面、客观、公正地评估学生的学习成果。
评估方式包括平时表现、作业和考试等。
平时表现主要考察学生的出勤、课堂参与度和团队合作能力;作业主要包括课后练习和编程任务,以巩固和应用所学知识;考试则是对学生综合运用Java编程知识的考察,包括理论知识和编程实践。
通过这些评估方式,希望能够全面反映学生的学习成果,激发学生的学习兴趣和主动性。
java计算器编写课程设计
java计算器编写课程设计一、课程目标知识目标:1. 理解Java编程基础,掌握计算器的基本功能需求;2. 学会使用Java控制台输入输出,熟练运用算术运算符;3. 掌握基本的异常处理,提高程序的健壮性;4. 了解面向对象编程思想,运用类和对象实现计算器功能。
技能目标:1. 能够编写出具有基本计算功能的Java程序;2. 能够运用控制台接收用户输入,处理用户异常输入;3. 能够运用类和对象对计算器程序进行模块化设计;4. 能够运用调试工具检查并修复程序中的错误。
情感态度价值观目标:1. 培养学生细心、严谨的编程习惯,树立良好的编程态度;2. 培养学生面对编程困难时的耐心和解决问题的能力;3. 培养学生的团队协作能力,学会共同分析问题、解决问题;4. 激发学生对计算机编程的兴趣,提高学习积极性。
课程性质分析:本课程为信息技术课程,旨在通过编写Java计算器程序,使学生掌握编程基础和面向对象编程思想。
学生特点分析:学生为初中年级,具有一定的逻辑思维能力,对计算机编程有一定兴趣,但需培养良好的编程习惯和面对困难的耐心。
教学要求:结合学生特点,注重实践操作,引导学生主动思考,激发学习兴趣,培养团队协作能力。
通过本课程的学习,使学生达到以上所述课程目标,为后续编程学习奠定基础。
二、教学内容1. Java编程基础:- 数据类型与变量- 运算符与表达式- 控制语句(顺序、分支、循环)2. Java控制台输入输出:- 使用Scanner类进行输入- 使用System.out.println进行输出3. 异常处理:- try-catch语句- 常见异常类型4. 面向对象编程:- 类的定义- 对象的创建与使用- 方法的定义与调用5. 计算器功能实现:- 分析计算器需求- 设计类与对象- 编写计算器程序教学大纲安排:第一课时:Java编程基础(数据类型与变量、运算符与表达式)第二课时:Java控制台输入输出(Scanner类、System.out.println)第三课时:控制语句(顺序、分支、循环)第四课时:异常处理(try-catch语句、常见异常类型)第五课时:面向对象编程(类与对象、方法的定义与调用)第六课时:计算器功能实现(分析需求、设计类与对象、编写程序)教学内容关联教材:- 《Java编程基础》第四章:控制流程- 《Java编程基础》第五章:面向对象编程基础- 《Java编程基础》第十章:异常处理三、教学方法1. 讲授法:教师通过生动的语言和实际案例,讲解Java编程基础、面向对象编程等理论知识,使学生对编程概念有清晰的认识。
java课程设计---计算器
10信计2011-2012(二)《Java程序设计》课程设计设计题目模拟科学计算器设计时间学生姓名学生学号所在班级指导教师徐州工程学院数学与物理科学学院摘要计算器在我们的生活中常常会使用到,本次课程设计,通过界面以及其中的逻辑处理,完成了四则运算的处理。
通过awt包或者swing包中的界面设计部分对界面设计的细节可以有更多的了解。
利用面向对象的思想,将各个组件的事件响应分别用不同的类表达出来。
面向对象的思想从很大程度上可以让程序的思路更加清晰,而且可重用性很高。
对于具有相同事件响;应的组件则可以调用相同的类来处理事件。
除此之外,利用栈的知识来解决运算符优先的问题也让我们对java中的栈有了更多的了解。
关键词java;计算器;四则运算;面向对象;栈目录1需求分析 (1)1.1该计算器完成的功能 (1)1.2出错处理 (1)1.3数据处理 (1)2设计方案 (1)2.1设计方法 (1)2.2界面布局 (1)3系统设计 (2)3.1界面设计 (2)3.2功能模块 (2)3.2.1功能模块的设计方案 (2)3.2.2功能模块的实现方法 (3)4系统的开发和运行环境及安装配置说明 (3)5系统测试截图 (4)5.1系统初始运行界面 (4)5.2计算器按键测试 (4)5.3运算符重复输入测试 (4)5.4被除数为0的测试 (5)5.5小数点重复性检查 (5)5.6 backspace按键越界操作 (6)5.7优先级程序计算 (6)5.8计算结果 (7)6总结与心得体会 (7)附录 (9)1需求分析1.1该计算器完成的功能用户能够完成四则混合运算+、-、*、/,并且计算器能够自动的识别运算符的优先级,根据输入的运算公式,自动计算出相应的结果。
同时完成计算器中的backspace、ce按钮,能够完成消除或者删除的功能。
1.2出错处理当用户如果按下的是除零的操作,显示框将显示“被除数不能为0”。
当用户如果连续多次按下运算符,计算器自动记忆第一次运算符,并且做防连续输入相同的运算符或者是不同的运算符。
Java课程设计----简易计算器
面向对象课程设计(Java)题目:简易计算器专业:电子商务目录一、设计内容 (1)二、设计要求 (1)三、总体设计 (1)四、具体设计 (1)五、程序设计 (6)设计体会与小结 (15)简易计算器设计一、设计内容设计一个图形界面(GUI)的应用程序,完成简单的运算。
通过计算器的编辑来检测和提升自己的java能力,并最终完成课程设计报告。
二、设计要求1、应用自己所学课程知识完成对计算器的基本任务。
2、查阅相关资料,学习和掌握项目中涉及的新知识,提高自学能力。
3、通过应用java程序编写计算器来提升对简单的图形界面的了解和掌握。
三、总体设计该计算器基本运算没有问题,清零、正负号、求倒数、退格功能都能很好的实现,总体能完成一个计算器的基本功能,但仍有许多地方需要改进,比如小数点的实现所存在的一些问题,虽然在基本的运算过程当中不会造成太大影响,但这依然不能认为是一个很好的计算器,同时,在另一方面,该计算器还没能很好的实现连续计算的功能,必须每次按下等号按钮计算出结果后才能用产生的结果接着进行下一次的计算,改进的方法是在运算符上同时注册Result类,让运算符同时拥有计算结果的功能。
四、具体设计1、程序流程图:2、主要代码展示及说明:总体代码的设计:程序主窗体继承JFrame类,使用24个JBotton按钮实现数字和基本功能,并且分别注册监听,采用6行4列网格布局,完成计算器界面的基本设置,最后对按钮进行计算分析,计算并显示结果。
这段代码主要是对程序的主框架进行相应的设置super("简易计算器");setSize(300,260);this.setLayout(new BorderLayout());jPanel1=new JPanel();jPanel1.setLayout(new GridLayout(1,1)); //一行一列的布局jPanel2=new JPanel();jPanel2.setLayout(new GridLayout(6,4)); //六行四列的布局resultField=new JTextField("0");jPanel1.add(resultField);this.add(jPanel1,BorderLayout.NORTH);this.add(jPanel2,BorderLayout.CENTER);设置数字按钮1到9并添加监控以及符号等的添加监控s1=new JButton(" 1 "); s1.addActionListener(this);s2=new JButton(" 2 "); s2.addActionListener(this);s3=new JButton(" 3 "); s3.addActionListener(this);s4=new JButton(" 4 "); s4.addActionListener(this);s5=new JButton(" 5 "); s5.addActionListener(this); s6=new JButton(" 6 "); s6.addActionListener(this); s7=new JButton(" 7 "); s7.addActionListener(this); s8=new JButton(" 8 "); s8.addActionListener(this); s9=new JButton(" 9 "); s9.addActionListener(this); s0=new JButton(" 0 "); s0.addActionListener(this); b1=new JButton(" + "); b1.addActionListener(this); b2=new JButton(" - "); b2.addActionListener(this); b3=new JButton(" * "); b3.addActionListener(this); b4=new JButton(" / "); b4.addActionListener(this);b5=new JButton(" ^ "); b5.addActionListener(this); b6=new JButton(" 开方 "); b6.addActionListener(this); b7=new JButton(" % "); b7.addActionListener(this);b8=new JButton(" x! "); b8.addActionListener(this);b9=new JButton(" 1/x "); b9.addActionListener(this);f1=new JButton(" . "); f1.addActionListener(this); f2=new JButton(" = "); f2.addActionListener(this);f3=new JButton(" C "); f3.addActionListener(this);f4=new JButton(" 负 "); f4.addActionListener(this); f5=new JButton(" 退格 "); f5.addActionListener(this); jPanel2.add(f3);jPanel2.add(b4);jPanel2.add(b3);jPanel2.add(f5);jPanel2.add(s7);jPanel2.add(s8);jPanel2.add(s9);jPanel2.add(b1);jPanel2.add(s4);jPanel2.add(s5);jPanel2.add(s6);jPanel2.add(b2);jPanel2.add(s1);jPanel2.add(s2);jPanel2.add(s3);jPanel2.add(b5);jPanel2.add(s0);jPanel2.add(f1);jPanel2.add(f4);jPanel2.add(b6);jPanel2.add(b7);jPanel2.add(b8);jPanel2.add(b9);jPanel2.add(f2);(3)数据输入用方法num(int i)设计如下:public void num(int i){String s = null;s=String.valueOf(i); //返回整数i的字符串表示形式if(end){ //如果数字输入结束,则将文本框置零,重新输入resultField.setText("0");end=false;}if((resultField.getText()).equals("0")){//如果文本框的内容为零,则覆盖文本框的内容resultField.setText(s);}else{ //如果文本框的内容不为零,则在内容后面添加数字str = resultField.getText() + s;resultField.setText(str);}以及用JFrame的方法actionPerformed(ActionEvent e)来获取数据(4)符号运算及清零、退格的设计如下:if(add){ // 加法num1=num1 +num2;}else if(sub){ //减法num1=num1 - num2;}else if(mul){ //乘法num1=num1 * num2;}else if(div){ //除法if(num2==0) throw new ArithmeticException("除数不能为零");elsenum1=num1 / num2;}else if(chf){ //乘方if(num2==0) num1=1;elsenum1=Math.pow(num1, num2);}else if(evo){ //开方if(num2<0) throw new ArithmeticException("被开方数不能小于零");else num1=Math.sqrt(num2);}else if(rec){ //倒数if(num2<0) throw new ArithmeticException("分母不能小于零");else num1=1/num2;}else if(per){ //百分num1=num1/100.0;}else if(pur){ //阶乘if(num2<0) throw new ArithmeticException("负数不能求阶乘");else for(int i=1;i<num2;i++){num1=i*num1;}}resultField.setText(String.valueOf(num1));end=true;}else if(e.getSource()==f3){ //实现清零resultField.setText("0");}else if(e.getSource()==f4){ //实现负号if(resultField.getText()!="0"){resultField.setText("-"+resultField.getText());}}else if(e.getSource()==f5){ //实现退格int i;i=(resultField.getText()).length();if(i==1){resultField.setText("0");}else { str=resultField.getText();resultField.setText(str.substring(0,i-1));}}}五、程序设计import java.awt.*;import java.awt.event.*;import javax.swing.*;public class test1 extends JFrame implements ActionListener{ // JFrame jframe1;JPanel jPanel1,jPanel2;JTextField resultField;JButtons1,s2,s3,s4,s5,s6,s7,s8,s9,s0,b1,b2,b3,b4,b5,b6,b7,b8,b9,f1,f 2,f3,f4,f5; private boolean end,add,sub,mul,div,evo,chf,per,rec,pur;private String str;private double num1,num2;public test1(){super("简易计算器");setSize(300,260);this.setLayout(new BorderLayout());jPanel1=new JPanel();jPanel1.setLayout(new GridLayout(1,1)); //一行一列的布局jPanel2=new JPanel();jPanel2.setLayout(new GridLayout(6,4)); //四行五列的布局resultField=new JTextField("0");jPanel1.add(resultField);this.add(jPanel1,BorderLayout.NORTH);s1=new JButton(" 1 "); s1.addActionListener(this);s2=new JButton(" 2 "); s2.addActionListener(this); s3=new JButton(" 3 "); s3.addActionListener(this); s4=new JButton(" 4 "); s4.addActionListener(this); s5=new JButton(" 5 "); s5.addActionListener(this); s6=new JButton(" 6 "); s6.addActionListener(this); s7=new JButton(" 7 "); s7.addActionListener(this); s8=new JButton(" 8 "); s8.addActionListener(this); s9=new JButton(" 9 "); s9.addActionListener(this); s0=new JButton(" 0 "); s0.addActionListener(this); b1=new JButton(" + "); b1.addActionListener(this); b2=new JButton(" - "); b2.addActionListener(this); b3=new JButton(" * "); b3.addActionListener(this); b4=new JButton(" / "); b4.addActionListener(this);b5=new JButton(" ^ "); b5.addActionListener(this); b6=new JButton(" 开方 "); b6.addActionListener(this); b7=new JButton(" % "); b7.addActionListener(this);b8=new JButton(" x! "); b8.addActionListener(this);b9=new JButton(" 1/x "); b9.addActionListener(this);f1=new JButton(" . "); f1.addActionListener(this); f2=new JButton(" = "); f2.addActionListener(this);f3=new JButton(" C "); f3.addActionListener(this);f4=new JButton(" 负 "); f4.addActionListener(this); f5=new JButton(" 退格 "); f5.addActionListener(this); jPanel2.add(f3);jPanel2.add(b4);jPanel2.add(b3);jPanel2.add(f5);jPanel2.add(s7);jPanel2.add(s8);jPanel2.add(s9);jPanel2.add(b1);jPanel2.add(s4);jPanel2.add(s5);jPanel2.add(s6);jPanel2.add(b2);jPanel2.add(s1);jPanel2.add(s2);jPanel2.add(s3);jPanel2.add(b5);jPanel2.add(s0);jPanel2.add(f1);jPanel2.add(f4);jPanel2.add(b6);jPanel2.add(b7);jPanel2.add(b8);jPanel2.add(b9);jPanel2.add(f2);this.add(jPanel2,BorderLayout.CENTER);}public void num(int i){String s = null;s=String.valueOf(i); //返回整数i的字符串表示形式if(end){ //如果数字输入结束,则将文本框置零,重新输入resultField.setText("0");end=false;}if((resultField.getText()).equals("0")){//如果文本框的内容为零,则覆盖文本框的内容resultField.setText(s);}else{ //如果文本框的内容不为零,则在内容后面添加数字str = resultField.getText() + s;resultField.setText(str);}}public void actionPerformed(ActionEvent e)throws ArithmeticException {//数字事件if(e.getSource()==s1)num(1);else if(e.getSource()==s2)num(2);else if(e.getSource()==s3)num(3);else if(e.getSource()==s4)num(4);else if(e.getSource()==s5)num(5);else if(e.getSource()==s6)num(6);else if(e.getSource()==s7)num(7);else if(e.getSource()==s8)num(8);else if(e.getSource()==s9)num(9);else if(e.getSource()==s0)num(0);//符号事件else if(e.getSource()==b1)sign(1);else if(e.getSource()==b2)sign(2);else if(e.getSource()==b3)sign(3);else if(e.getSource()==b4)sign(4);else if(e.getSource()==b5)sign(5);else if(e.getSource()==b6)sign(6);else if(e.getSource()==b7)sign(7);else if(e.getSource()==b8)sign(8);else if(e.getSource()==b9)sign(9);else if(e.getSource()==f1){ //实现"."str=resultField.getText();if(str.indexOf(".")<=1){str+=".";resultField.setText(str);}}else if(e.getSource()==f2){ //实现"=" num2=Double.parseDouble(resultField.getText());if(add){ // 加法num1=num1 +num2;}else if(sub){ //减法num1=num1 - num2;}else if(mul){ //乘法num1=num1 * num2;}else if(div){ //除法if (num2==0) throw new ArithmeticException("除数不能为零");elsenum1=num1 / num2;}else if(chf){ //乘方if(num2==0) num1=1;elsenum1=Math.pow(num1, num2);}else if(evo){ //开方if(num2<0) throw new ArithmeticException("被开方数不能小于零");else num1=Math.sqrt(num2);}else if(rec){ //倒数if(num2<0) throw new ArithmeticException("分母不能小于零");else num1=1/num2;}else if(per){ //百分num1=num1/100.0;}else if(pur){ //阶乘if(num2<0) throw new ArithmeticException("负数不能求阶乘");else for(int i=1;i<num2;i++){num1=i*num1;}}resultField.setText(String.valueOf(num1));end=true;}else if(e.getSource()==f3){ //实现清零resultField.setText("0");}else if(e.getSource()==f4){ //实现负号if(resultField.getText()!="0"){resultField.setText("-"+resultField.getText());}}else if(e.getSource()==f5){ //实现退格int i;i=(resultField.getText()).length();if(i==1){resultField.setText("0");}else { str=resultField.getText();resultField.setText(str.substring(0,i-1));}}}public void sign(int s){if(s==1){add=true;sub=false;mul=false;div=false;evo=false;chf=false;per=false;pur=false;rec=false;}else if(s==2){add=false;sub=true;mul=false;evo=false;chf=false;per=false;pur=false;rec=false;}else if(s==3){add=false;sub=false;mul=true;div=false;evo=false;chf=false;per=false;pur=false;rec=false;}else if(s==4){add=false;sub=false;mul=false;div=true;evo=false;chf=false;per=false;pur=false;rec=false;}else if(s==5){add=false;sub=false;mul=false;div=false;evo=false;chf=true;per=false;pur=false;}else if(s==6){ add=false;sub=false;mul=false;div=false;evo=true;chf=false;per=false;pur=false;rec=false;}else if(s==7){ add=false;sub=false;mul=false;div=false;evo=false;chf=false;per=true;pur=false;rec=false;}else if(s==8){ add=false;sub=false;mul=false;div=false;evo=false;chf=false;per=false;pur=true;rec=false;}else if(s==9){ add=false;sub=false;mul=false;evo=false;chf=false;per=false;pur=false;rec=true;}num1=Double.parseDouble(resultField.getText());end=true;}}public class mainclass {public static void main(String[] args){try{test1 th1=new test1();th1.show();}catch (Exception e){System.out.println(e);}}}设计体会与小结经过一周的实习,本学期的java课程设计到此也算告一段落了,经过这次的学习,我学到了很多东西,在此基础上更加巩固了自己对java基本知识及软件开发的了解。
java实现计算器课程设计
java实现计算器课程设计一、教学目标本节课的教学目标是让学生掌握Java语言实现计算器的基本原理和编程技巧,培养学生的编程能力和逻辑思维能力。
具体来说,知识目标包括了解Java语言的基本语法和数据结构,掌握计算器的数学原理和算法;技能目标包括能够使用Java语言编写简单的计算器程序,能够进行调试和优化;情感态度价值观目标包括培养学生对编程的兴趣和热情,提高学生解决问题的自信心和耐心。
二、教学内容本节课的教学内容主要包括Java语言的基本语法和数据结构,计算器的数学原理和算法,以及计算器程序的设计和调试。
具体来说,首先介绍Java语言的基本语法和数据结构,如变量、运算符、控制语句、数组等;然后讲解计算器的数学原理和算法,如加减乘除、括号处理等;最后通过实例演示和练习,让学生掌握计算器程序的设计和调试方法。
三、教学方法本节课采用讲授法、案例分析法和实验法相结合的教学方法。
首先通过讲授法,向学生讲解Java语言的基本语法和数据结构,计算器的数学原理和算法;然后通过案例分析法,分析计算器程序的设计和调试方法,让学生加深对计算器原理的理解;最后通过实验法,让学生动手编写和调试计算器程序,培养学生的编程能力和实验技能。
四、教学资源本节课的教学资源包括教材、参考书、多媒体资料和实验设备。
教材和参考书用于为学生提供Java语言和计算器原理的基础知识,多媒体资料用于辅助讲解和演示,实验设备用于让学生进行编程实践。
教学资源的选择和准备应该符合教学内容和教学方法的要求,以支持学生的学习和教师的授课。
五、教学评估本节课的教学评估主要包括平时表现、作业和考试三个部分。
平时表现主要评估学生在课堂上的参与程度、提问回答和小组讨论的表现;作业主要评估学生的编程能力和算法理解,包括课堂练习和课后作业;考试则是对学生整体掌握情况的评估,包括Java语言基础知识、计算器原理和编程实践。
评估方式应客观、公正,能够全面反映学生的学习成果。
Java课程设计(计算器)
界面布局:简洁明了,易于操作 输入框:用于输入数字和运算符号 计算按钮:用于执行计算操作
结果显示框:用于显示计算结果 历史记录框:用于查看历史计算记录 帮助按钮:用于查看帮助信息或联系客服
功能需求优先级
基本运算功能:加、 减、乘、除
科学计算功能:平方、 开方、三角函数等
错误处理:处 理用户输入错 误,如输入非
数字字符等
功能扩展:支 持更多运算符 号和功能,如 平方、开方等
代码优化:提 高代码可读性 和可维护性, 减少代码冗余
和错误
测试与调试
单元测试:对每个功能模块进行独立测试,确保其正确性 集成测试:将各个功能模块组合起来进行测试,确保整体功能的正确性 边界值测试:对输入和输出边界值进行测试,确保程序在边界条件下的稳定性
Part Five
总结与展望
项目总结
项目目标:设计并实现一个计算器 项目成果:实现了加减乘除、平方根、正弦余弦等计算功能 项目难点:处理用户输入和错误处理 项目改进:优化界面设计,增加更多计算功能,提高用户体验
项目亮点与不足
● 项目亮点: - 界面设计简洁明了,易于操作 - 代码结构清晰,易于维护和扩展 - 功能齐全,满足日常 计算需求 - 性能稳定,响应速度快
实际应用价值
提高编程能力: 通过设计计算 器,可以提升 Java编程技能
理解算法原理: 通过设计计算 器,可以深入 理解算法原理
和实现方法
提高问题解决 能力:通过设 计计算器,可 以提升解决实 际问题的能力
提升团队协作 能力:通过设 计计算器,可 以提升团队协 作和沟通能力
THANKS
汇报人:
Java课程设计(计算器)
,a click to unlimited possibilities
Java计算器程序课程设计
Java计算器程序课程设计一、课程目标知识目标:1. 学生能理解Java基本语法,掌握计算器程序的基本结构;2. 学生能运用所学知识,编写具有加、减、乘、除基本功能的计算器程序;3. 学生了解并掌握异常处理机制,提高程序的健壮性。
技能目标:1. 学生能运用面向对象编程思想,设计计算器类和其方法;2. 学生能运用调试工具,对计算器程序进行测试和优化;3. 学生能运用Java文档规范,为计算器类编写合适的注释。
情感态度价值观目标:1. 学生通过编程实践,培养解决问题的能力和团队合作精神;2. 学生在编程过程中,体验程序设计的乐趣,激发对计算机科学的兴趣;3. 学生遵守编程规范,树立良好的编程习惯,培养认真负责的工作态度。
本课程针对高年级学生,结合学科特点和教学要求,将课程目标分解为具体的学习成果。
学生在学习过程中,将逐步掌握Java编程基础知识,培养编程技能,同时注重情感态度价值观的培养,使学生在知识、技能和情感方面得到全面发展。
二、教学内容1. Java基本语法:变量定义、数据类型、运算符、表达式;2. 面向对象编程:类与对象、方法定义、构造方法、访问修饰符;3. 异常处理:try-catch语句、异常类型、自定义异常;4. 计算器类设计:属性、方法、界面交互;5. 程序调试与优化:使用调试工具、代码优化、性能分析;6. Java文档编写:类注释、方法注释、参数注释、返回值注释;7. 编程规范与团队合作:命名规范、代码格式、版本控制、团队协作。
教学内容依据课程目标,结合教材章节进行组织。
教学大纲安排如下:第一课时:Java基本语法与数据类型;第二课时:运算符、表达式与面向对象编程基础;第三课时:类与对象、方法定义;第四课时:异常处理、计算器类设计;第五课时:程序调试与优化;第六课时:Java文档编写、编程规范与团队合作。
教学内容注重科学性和系统性,使学生能够在掌握基本知识的同时,学会运用所学解决问题,培养良好的编程习惯和团队协作能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程名称《Java项目实训》课程设计设计名称基于java计算器的设计及实现学生学号学生姓名学生学号学生姓名学生学号学生姓名学生学号学生姓名学生学号学生姓名指导教师吕淑芳考核成绩信息工程系二〇一七年六月目录1、前言 (3)1.1设计目的及思路 (3)1.2功能模块设计 (4)1.3系统功能图 (5)2、计算器的设计及实现 (5)3、计算器演示 (7)4、总结及体会及讨论分析 (10)5、参考文献 (13)附件:.......................................................错误!未定义书签。
程序源代码 (13)1、前言1.1设计目的及思路通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。
利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。
给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。
除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。
至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数Integer.toBinaryString(int i)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。
当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现!1.2功能模块设计以下为标准计算器的基本功能:(1)加法两个数据进行加操作,可以为小数。
(2)减法两个数据进行减操作,可以为负数相减。
(3)乘法两个数相乘操作。
(4)除法两个数相除操作。
(5)开平方对任意一个数进行开方运算,可以是小数。
(6)求余对任意一个数进行求余运算。
(7)倒数对任意一个数进行倒数运算。
(8)转换将十进制数转换为二进制以及将二进制转换为十进制。
1.3系统功能图2、计算器的设计及实现2.1总体方案设计日常生活中经常需要用到计算器,比如科学计算,数值计算,会计业务等等,在Applet中实现一个精巧的计算器,可以让用户的操作也更方便和快捷。
本项目需要实现一个具有四则运算的计算器,能够实现基本的加、减、乘、除运算,以及其它的辅助功能;界面简洁适用;要提供主要的设计思路、类的设计,本次设计添加转进制等功能。
本应用程序继承自框架(frame),此程序使用frame布局管理器bordelayout,将单行文本加入相应区域,包含各种按纽的面板buttonpanel加入相应区域还可以将进制转换的面板及单行文本框放一块包含各种按纽的面板buttonpanel采用N行N列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中,同时注册按钮事件监听器。
布局设计好后再添加按钮事件。
对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。
2.2程序的调试及运行结果说明程序功能实现:使用swing组件和awt图形用户界面以及BroadLayout布局管理器。
通过在按钮的单击事件处理方法中调用类的成员方法calculator()来进行简易计算器的各种运算,并正确实现运算功能。
程序可以实现加、减、乘、除、取余等运算,并且可进行负数的运算,设置CE清零按钮可进行清零运算。
添加菜单条,列出‘标准计算’、‘日期计算’菜单选项,并别实现‘标准计算’且整个程序对话框可实现最小化、最大化、关闭。
3、计算器演示加法减法乘法除法倒数平方二进制转换为十进制十进制转换为二进制4、总结及体会及讨论分析将代码写好之后检查代码的正确性,检查代码无误后将代码进行调试和运行将会出现一个JavaApplet计算器界面。
在调试过程中可能会出现有界面但是不能运行小程序,那是因为没有初始化小程序,那时我们应该在主函数中将小程序进行初始化,这样小程序才能运行!在调试和运行完全正确后,我们就可以按照自己的医院将小程序进行简单测试,例如输入一些简单数据分别运行各个按钮结果正确后可以初步确定程序师正确的。
有时候我们还要输入不同范围的值进行测试,可能会发现更多的错误,因为有时候我们定义数据的范围可能会过小或输入数据会越界,到时我们就可以改正以适应更多更大的运算。
有时候我们会不自觉的选择一种最优函数方法尽量将自己的代码简单规范而又不缺少题目所要求的功能,那就要求我们翻阅很多参考书和查阅很多资料。
其实javaApplet图形界面的布局也是我们要讨论的范围,如何使得界面更加美观是我们要探讨的!有时候我们可能会到书上或网上找到一些满足我们要求的程序代码,在此我们应该取其优秀的简单易理解代码作为我们设计程序的代码,作为初学者参考和借用部分外部程序是不可避免,但是我认为前提我们应该看懂那些程序代码,要知其所以然,那样才达到我们学程序的目的,但不主张完全照搬,否则就会没意义了!总结:(1)通过编写这个相对复杂的程序,让我认识解决实际问题前应现建立模型,再通过建立的模型使问题简单化,从而解决问题。
(2)这次编写的程序大部分是通过调用各包中的方法来实现的,这也让我充分理解了包和类调用的关系。
(3)并且通过实训我了解到String类是字符串常量类,初始化后不能更改;StringBuffer类是字符串缓冲区,可以被修改。
布尔型不能转化成其他任何类型等等。
在做本项目是时候,会遇到很多小问题,比如说:如何保存输入的数字和下一个数进行加、减、乘、除运算。
还有如何判断它是第几个输入的数字。
后来进行多次研究和查询才知道可以通过设运算符标志位来判断是输入的第几个数值。
还有在安装日期计算按钮时会遇到日期对象和标准计算的类不再同一个包中,这时需要重新定义一个类来实现日期计算,这一功能我在编程时遇到了一些问题,所以最后运行时只有按钮事件但在按钮上没有添加实现功能的方法。
并且编写程序时需要声明多个对象,给不同的对象分配不同的空间。
程序中对布局管理器和事件、按钮监听器的应用十分广泛。
并且运用了java.awt.*;和java.swing中的很多组件。
通过编程我对这些内容有了更深层次的理解,为以后的编程打下了良好的基础。
设计体会:在此次的课程设计实践中,我学到了教科书上没有的东西。
这次课程设计,我按照课程设计的要求,分块实现程序的功能。
在实践中我遇到许多的问题,但我都克服,最终我成功的完成了这次课程设计。
从中我充分理解了Java面对对象的特性,并体会到Java及C语言的不同之处在实践的同时,我又从中成长了许多,特别是在对程序的编译和调试中掌握了许多的技巧和方法,为今后的其他计算机语言的学习奠定了一定的基础。
此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式。
在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。
在做项目时必然会遇到困难,会有不会的东西,重要的不是现在会不会,而是遇到问题知道如何找到解决的途径。
还使我对所学知识能够融会贯通,又不断丰富了新知识。
Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高此次的课程设计使我复习、巩固Java语言的基础知识,进一步加深Java语言的理解和掌握;课程设计为我们提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼了我们分析解决实际问题的能力。
提高我们适应实际,实践编程的能力;并且培养了我们在项目开发中团队合作精神、创新意识及能力。
在实践的同时,我又从中成长了许多,特别是在对程序的编译和调试中掌握了许多的技巧和方法,为今后的其他计算机语言的学习奠定了一定的基础。
5、参考文献[1]朱福喜.《Java语言程序设计》(第二版).科学出版社[2]陈国君等.《Java程序设计基础》(第二版).清华大学出版社[3] Deitel.《Java大学基础教程》(第六版).电子工业出版社[4] MaryCampione.《Java语言导学》(第四版).机械工业出版社[5] Y.Daniel Liang.《Java语言程序设计基础篇》(第六版). 机械工业出版社程序源代码import javax.swing.*;import javax.swing.text.JTextComponent;import java.util.StringTokenizer;import java.awt.*;import java.awt.event.*;import java.math.*;public class Calculator implements ActionListener { JFrame jf=new JFrame("计算器");JTextField tf=new JTextField();JPanel pnl;JButton jButtonDENG;JButton jButtonJIAN;JButton jButtonCHENG;JButton jButton1;JButton jButton2;JButton jButton3;JButton jButton4;JButton jButton5;JButton jButton6;JButton jButton7;JButton jButton8;JButton jButton9;JButton jButton0;JButton jButtonCHU;JButton jButtonQINGKONG;JButton jButtonJIA;JButton jButtonQUYU;JButton jButtonPINGFANG;JButton jButtonXIAOSHUDIAN;JButton jButtonBACKSPACE;JButton jButtonDAOSHU;JButton jButtonKAIPINGFANG;JButton jButtonERJINZHI;JButton jButtonSHIJINZHI;public Calculator (){ //初始化界面的方法Container c=jf.getContentPane();tf.setHorizontalAlignment(JTextField.RIGHT);c.add(tf,"North");JPanel pnl=new JPanel();c.add(pnl,"Center");pnl.setLayout(new GridLayout(6,5));jButton1=new JButton("1");jButton1.addActionListener(this);pnl.add(jButton1);jButton2=new JButton("2");jButton2.addActionListener(this);pnl.add(jButton2);jButton3=new JButton("3");jButton3.addActionListener(this);pnl.add(jButton3);jButtonBACKSPACE=new JButton("backspace"); jButtonBACKSPACE.addActionListener(this); pnl.add(jButtonBACKSPACE);jButton4=new JButton("4");jButton4.addActionListener(this);pnl.add(jButton4);jButton5=new JButton("5");jButton5.addActionListener(this);pnl.add(jButton5);jButton6=new JButton("6");jButton6.addActionListener(this);pnl.add(jButton6);jButtonJIA=new JButton("+");jButtonJIA.addActionListener(this);pnl.add(jButtonJIA);jButton7=new JButton("7");jButton7.addActionListener(this);pnl.add(jButton7);jButton8=new JButton("8");jButton8.addActionListener(this);pnl.add(jButton8);jButton9=new JButton("9");jButton9.addActionListener(this);pnl.add(jButton9);jButtonJIAN=new JButton("-"); jButtonJIAN.addActionListener(this);pnl.add(jButtonJIAN);jButton0=new JButton("0");jButton0.addActionListener(this);pnl.add(jButton0);jButtonQINGKONG=new JButton("清空"); jButtonQINGKONG.addActionListener(this); pnl.add(jButtonQINGKONG); jButtonCHENG=new JButton("*"); jButtonCHENG.addActionListener(this); pnl.add(jButtonCHENG);jButtonCHU=new JButton("/"); jButtonCHU.addActionListener(this);pnl.add(jButtonCHU);jButtonQUYU=new JButton("%"); jButtonQUYU.addActionListener(this); pnl.add(jButtonQUYU); jButtonPINGFANG=new JButton("平方");jButtonPINGFANG.addActionListener(this); pnl.add(jButtonPINGFANG); jButtonXIAOSHUDIAN=new JButton("."); jButtonXIAOSHUDIAN.addActionListener(this); pnl.add(jButtonXIAOSHUDIAN); jButtonDENG=new JButton("="); jButtonDENG.addActionListener(this);pnl.add(jButtonDENG);jButtonDAOSHU=new JButton("倒数"); jButtonDAOSHU.addActionListener(this); pnl.add(jButtonDAOSHU); jButtonKAIPINGFANG=new JButton("开平方"); jButtonKAIPINGFANG.addActionListener(this); pnl.add(jButtonKAIPINGFANG); jButtonERJINZHI=new JButton("二进制"); jButtonERJINZHI.addActionListener(this); pnl.add(jButtonERJINZHI); jButtonSHIJINZHI=new JButton("十进制"); jButtonSHIJINZHI.addActionListener(this); pnl.add(jButtonSHIJINZHI);jf.setSize(600,400);jf.setVisible(true);}public void actionPerformed(ActionEvent event){ //检测运算符的方法try {double wen=0;String toknizer="+";String ben;String wenben=tf.getText()+event.getActionCommand();tf.setText(wenben); //各运算符的判断运行代码if(wenben.indexOf("*")!=-1) {toknizer="*";}if(wenben.indexOf("+")!=-1) {toknizer="+";}if(wenben.indexOf("-")!=-1) {toknizer="-";}if(wenben.indexOf("/")!=-1) {toknizer="/";}if(wenben.indexOf("%")!=-1) {toknizer="%";}if(wenben.indexOf("平方")!=-1) {toknizer="平方";}if(wenben.indexOf("倒数")!=-1) {toknizer="倒数";}if(wenben.indexOf("开平方")!=-1) {toknizer="开平方";}if(wenben.indexOf("二进制")!=-1) {toknizer="二进制";}if(wenben.indexOf("十进制")!=-1) {toknizer="十进制";}//各个运算符的运算方法代码if(event.getSource()==jButtonQINGKONG){ //清空算法wenben="";tf.setText(wenben);}if(event.getSource()==jButtonBACKSPACE){ //清除算法wenben=wenben.substring(0,wenben.length()-10);tf.setText(wenben);}if(event.getSource()==jButtonDENG){ //"="算法wenben=wenben.substring(0,wenben.length()-1);double b[]=new double[10];String a[]=new String[15];StringTokenizer sun=new StringTokenizer(wenben,toknizer); int i=0;while(sun.hasMoreTokens()){a[i++]=sun.nextToken();}for(int j=0;j<10;j++){String s=a[j];String k=a[j+1];if(s==null){break;}else{if(toknizer=="*"){ //"*"算法if(j==0){wen=1;}b[j]=Double.parseDouble(s);wen=wen*b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="+"){ //"+" 算法if(j==0){wen=0;}b[j]=Double.parseDouble(s);wen=wen+b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="-"){ //"-"算法b[j]=Double.parseDouble(s);if(j==0){wen=2*b[j];}wen=wen-b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="/"){ // "/"算法b[j]=Double.parseDouble(s);if(j==0){wen=b[j]*b[j];}wen=wen/b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="平方"){ //平方算法if(j==0){wen=1;}b[j]=Double.parseDouble(s);wen=wen*b[j]*b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="倒数"){ //倒数算法b[j]=Double.parseDouble(s);wen=1/b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="开平方"){ //开平方算法if(j==0){wen=0;}b[j]=Double.parseDouble(s);double wen1=sqrt(b[j]);ben=Double.toString(wen1);tf.setText(wenben+"="+ben);}JTextComponent textAnswer = null;if (toknizer=="十进制") { //二进制转为十进制代码//b[j]=Integer.parseInt(s);wen =Integer.parseInt(s,2);ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if (toknizer=="二进制") { //十进制转换为二进制代码int den =Integer.parseInt(s);String daen = Integer.toBinaryString(den);tf.setText(wenben+"="+daen);}if(toknizer=="%"){ //"%"算法if(j==0){b[j]=Double.parseDouble(s);b[j+1]=Double.parseDouble(k);if(b[j]<b[j+1]){wen=b[j];} if(b[j]==b[j+1]) {wen=0;}if(b[j]>b[j+1]) {wen=b[j]%b[j+1];}} if(j>1) {b[j]=Double.parseDouble(a[j]);wen=wen%b[j];}ben=Double.toString(wen);tf.setText(wenben+"="+ben);}}}}}catch(Exception e){e.getMessage();}}private int sqrt(double d) {// TODO Auto-generated method stub return 0;}//主函数public static void main(String[]args) {new Calculator(); //对小程序进行初始化}}。