图形计算课程设计
计算机图形学课程设计

计算机图形学课程设计一、课程目标知识目标:1. 让学生掌握计算机图形学的基本概念、基本原理和基本算法,如二维图形的表示、变换、裁剪和三维图形的建模、光照模型等。
2. 使学生了解计算机图形学在实际应用中的发展现状和前景,如虚拟现实、计算机辅助设计等。
3. 帮助学生建立计算机图形学与相关学科(如数学、物理、艺术等)的联系,提高跨学科素养。
技能目标:1. 培养学生运用计算机图形学知识解决实际问题的能力,如使用相关软件进行二维绘图、三维建模等。
2. 提高学生的编程能力,使其能够使用至少一种计算机图形学编程库(如OpenGL、DirectX等)实现基本图形绘制和动画效果。
3. 培养学生的团队协作能力和沟通表达能力,通过小组项目实践,共同完成具有一定难度的计算机图形学任务。
情感态度价值观目标:1. 激发学生对计算机图形学的兴趣,培养其主动探究、创新实践的精神。
2. 培养学生具有良好的审美观,能够从美学的角度评价和优化计算机生成的图形。
3. 强化学生的版权意识,尊重他人知识产权,遵循学术道德,树立正确的价值观。
本课程针对高中年级学生,结合学科特点和教学要求,将目标分解为具体的学习成果,以便于后续的教学设计和评估。
通过本课程的学习,期望学生能够掌握计算机图形学的基础知识,提高实际操作技能,培养良好的情感态度价值观。
二、教学内容1. 计算机图形学基本概念与历史:介绍计算机图形学的定义、发展历程、应用领域及发展趋势。
- 教材章节:第一章 计算机图形学概述- 内容安排:1课时2. 二维图形的表示与处理:讲解二维图形的数学表示、几何变换、裁剪算法等。
- 教材章节:第二章 二维图形处理- 内容安排:4课时3. 三维图形的建模与渲染:介绍三维图形的建模方法、光照模型、纹理映射等。
- 教材章节:第三章 三维图形处理- 内容安排:5课时4. 计算机动画与视觉效果:探讨计算机动画原理、关键帧动画、粒子系统等视觉效果技术。
- 教材章节:第四章 计算机动画与视觉效果- 内容安排:4课时5. 计算机图形学编程实践:学习计算机图形学编程库(如OpenGL、DirectX 等)的基本使用,完成二维和三维图形绘制实例。
计算几何课程设计

计算几何课程设计一、教学目标本节课的学习目标主要包括以下三个方面:1.知识目标:学生需要掌握计算几何的基本概念、方法和应用,包括点的坐标、线段的距离、三角形的面积等。
2.技能目标:学生能够运用计算几何的知识解决实际问题,提高运用数学知识解决实际问题的能力。
3.情感态度价值观目标:培养学生对数学的兴趣和自信心,使学生能够积极主动地参与数学学习,培养学生的团队合作意识和创新精神。
二、教学内容本节课的教学内容主要包括计算几何的基本概念、方法和应用。
具体包括以下几个方面:1.计算几何的基本概念:点的坐标、线段的距离、三角形的面积等。
2.计算几何的方法:坐标系、向量、几何图形的变换等。
3.计算几何的应用:解决实际问题,如测量问题、几何图形的构造问题等。
三、教学方法本节课的教学方法主要包括讲授法、案例分析法和实验法。
具体包括以下几个方面:1.讲授法:教师通过讲解计算几何的基本概念、方法和应用,帮助学生理解和掌握相关知识。
2.案例分析法:教师通过分析实际问题,引导学生运用计算几何的知识解决问题,提高学生的应用能力。
3.实验法:教师学生进行实验,让学生亲自动手操作,培养学生的实践能力和创新精神。
四、教学资源本节课的教学资源主要包括教材、参考书、多媒体资料和实验设备。
具体包括以下几个方面:1.教材:教师需要准备计算几何的相关教材,为学生提供学习的基本素材。
2.参考书:教师可以推荐一些计算几何的参考书,帮助学生深入理解和掌握相关知识。
3.多媒体资料:教师可以利用多媒体资料,如图片、视频等,丰富教学手段,提高学生的学习兴趣。
4.实验设备:教师需要准备一些实验设备,如直尺、三角板等,让学生亲自动手操作,培养学生的实践能力。
五、教学评估本节课的教学评估主要包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,以了解学生的学习状态。
2.作业:评估学生的作业完成情况,包括正确性、完整性、书写规范等,以检验学生对知识的掌握程度。
解决图形计数问题教案设计

解决图形计数问题教案设计教案标题:解决图形计数问题教案设计教案目标:1. 学生能够理解图形计数问题的概念和解决方法。
2. 学生能够运用所学知识解决各种图形计数问题。
3. 学生能够培养观察、分析和解决问题的能力。
教学重点:1. 图形计数问题的概念和解决方法。
2. 图形计数问题的实际应用。
教学难点:1. 运用所学知识解决复杂的图形计数问题。
2. 培养学生观察、分析和解决问题的能力。
教学准备:1. 幻灯片或黑板。
2. 图形计数问题的练习题。
教学过程:引入(5分钟):1. 引导学生回顾前几节课学习的内容,例如图形的种类和特征。
2. 提出一个简单的图形计数问题,例如:“在下面的图中,有多少个正方形?”讲解(10分钟):1. 讲解图形计数问题的概念和解决方法,例如通过观察和计数来确定图形中的元素数量。
2. 使用幻灯片或黑板上的示例图形,逐步演示解决图形计数问题的步骤。
练习(15分钟):1. 给学生发放练习题,要求他们独立解决图形计数问题。
2. 鼓励学生在解题过程中运用所学知识,例如使用计数方法、分组或分类等。
3. 在学生完成练习后,逐一讨论解题思路和答案,并解释正确答案的原因。
拓展(10分钟):1. 提出更复杂的图形计数问题,要求学生尝试解决。
2. 引导学生思考解决问题的不同方法和策略,例如通过分解图形或利用对称性等。
3. 鼓励学生与同伴合作,分享解题思路和策略。
总结(5分钟):1. 总结本节课学习的内容,强调图形计数问题的概念和解决方法。
2. 鼓励学生在日常生活中运用所学知识解决实际问题。
3. 鼓励学生继续练习和巩固所学知识。
课后作业:布置相关的图形计数问题作业,要求学生独立完成并写下解题思路。
教学反思:在教学过程中,要确保学生理解图形计数问题的概念和解决方法,并能灵活运用所学知识解决不同难度的问题。
同时,要注重培养学生观察、分析和解决问题的能力,鼓励他们思考不同的解题方法和策略。
此外,及时给予学生反馈和指导,帮助他们纠正错误和提高解题能力。
图形计算数学教学案例参考

图形计算数学教学案例参考图形计算数学教学案例参考一〖教学目标〗1. 通过操作、比较、归纳,能够用自己的语言描述长方形、正方形的特征。
2. 通过制作长方形和正方形等活动,进一步巩固对长方形和正方形特征的理解。
3. 通过"拉一拉'等活动,获得讨论图形的阅历。
〖教材分析〗支配长方形和正方形的再熟悉,目的在于让同学结合生活实际,通过动手操作进展并尝试归纳出长方形、正方形的特征,充分发挥同学的制造性。
教材设计了一个探究活动,鼓舞同学在操作中探究长方形、正方形的特征,然后通过想一想使同学了解长方形和正方形之间的联系。
〖学校及同学状况分析〗同学在一班级已经直观熟悉了长方形、正方形,本节课要在此基础上进一步探究。
依据二班级同学的年龄特征,我设计了一系列的活动,试图把抽象的学问活动化、生活化以激发同学学习的爱好,达到较好的教学效果。
〖教学设计〗学具预备:放一张长方形彩纸的信封;三角尺、直尺、剪刀等;装有若干长方形、正方形及边角料的若干信封。
(一)复习导入师:同学们,今日,老师给你们带来了一些曾经熟悉的伴侣。
(课件出示若干正方形、长方形。
)你能说出哪些是正方形,哪些是长方形吗?(生很简单就找出来。
)师:这些伴侣我们以前只是熟悉,想不想深化地了解它们呢?生:想。
师:现在我们就来深化地讨论它们,比一比谁的眼睛最亮,谁最情愿开动脑筋。
(二)自主探究,合作沟通老师给每个小组发了一个装有长方形、正方形及一些边角料的信封。
1. 探究二者的特征师:让我们先来讨论长方形、正方形有什么特点。
小组内先讨论一下用什么方法,然后进行操作。
(同学进行活动,特别仔细、热闹,老师巡察指导。
)师:刚才,老师发觉同学们讨论得特别仔细,信任肯定有了结果,沟通一下好吗?生1:我们小组是用尺子量的,量的结果是长方形上下两条边相等,左右两条边相等,正方形的四条边都相等。
师:长方形上下两条边相等,左右两条边相等,我们可以说生2:(抢着说)长方形的对边相等。
图形运算教案设计

图形运算教案设计一、教学目标通过本课的学习,让学生掌握图形运算的基本概念,实现两图像之间的操作,为图像处理奠定基础,让学生具备以下能力:1.掌握图形运算的基本概念和原理,能够较为熟练地应用到实际操作中。
2.能够独立完成两图像之间的加、减、乘、除等操作,掌握不同操作的意义以及对图像的影响。
3.能够通过对图像进行处理,实现图像变形、配准、拼接、合成等功能。
二、教学重点和难点教学重点:图形运算的基本概念和意义,图形变形与配准,图形合并与拼接。
教学难点:图形运算的实际操作,参数的设定和调整。
三、教学内容与方法1.教学内容:(1)图形运算的概念和分类;(2)图形加、减、乘、除等操作;(3)图形变形与配准;(4)图形合并与拼接。
2.教学方法:(1)讲授:传授图形运算的基本概念和分类,让学生掌握不同操作的意义以及对图像的影响。
(2)实践:通过实验室操作,让学生有机会亲自尝试图形运算操作,掌握操作的步骤和方法。
(3)讨论:通过讨论,互相交流经验,分享成功与困难,促进思维的开展,使学生有机会发现自己的潜力和创新。
四、教学过程1.导入环节通过引入图形运算的实际应用背景,激发学生的学习兴趣。
2.知识讲解(1)图形运算的基本概念和分类一种数学方法,用来从两张或多张图像中得到新的图像。
图像运算将单一或多重包含在许多可能性当中,并且通过特定方法对图像进行转换。
分类包括:图像加、减、乘、除运算,灰度操作等(2)图形加、减、乘、除等操作① 图像加法——根据两个源图像相应像素的强度值或颜色值求和,可实现背景扣除和图像增强等功能;② 图像减法——根据两个源图像相应像素的强度值或颜色值相减,可提取变化的目标信息;③ 图像乘法——根据两个源图像相应像素的强度值或颜色值相乘,可实现目标物体的透明化、模糊化等效果;④ 图像除法——根据源图像相应像素的颜色值相除,可去除两个图像之间的差异,实现色彩一致度的调整。
(3)图形变形与配准图形变形:是一种将一个对象转化成角度或大小不同的形式的方法,而不会改变相互之间的几何关系。
几何图形结合运算教案设计

几何图形结合运算教案设计教案标题:几何图形结合运算教案设计教学目标:1. 理解几何图形的基本属性和特征。
2. 掌握几何图形的结合运算方法。
3. 能够运用几何图形结合运算解决实际问题。
教学内容:1. 几何图形的基本属性和特征:点、线、面、角等。
2. 几何图形的结合运算方法:图形的合并、分割、旋转、平移等。
3. 实际问题的解决:运用几何图形结合运算解决实际问题,如建筑设计、地图绘制等。
教学步骤:引入:1. 利用实物或图片展示不同几何图形,并引导学生观察和描述它们的基本属性和特征。
探究:2. 设计一些小组活动,让学生合作探索几何图形的结合运算方法。
例如,给出一些图形模型让学生尝试将它们合并、分割、旋转、平移等操作,并观察结果。
讲解:3. 结合学生的探索结果,讲解几何图形的结合运算方法,并强调每种方法的特点和应用场景。
练习:4. 分发练习题,让学生独立或小组完成练习,巩固所学的几何图形结合运算方法。
拓展:5. 设计一些拓展活动,让学生运用几何图形结合运算解决实际问题。
例如,给出一个建筑设计的任务,要求学生运用所学的结合运算方法设计出合理的建筑方案。
总结:6. 结合学生的实际操作和解决问题的经验,让学生总结几何图形结合运算的重要性和应用价值。
评价:7. 根据学生的表现和练习情况,进行评价和反馈,帮助学生进一步提高。
教学资源:1. 实物或图片展示不同几何图形的素材。
2. 几何图形的结合运算示例模型。
3. 练习题和拓展活动的题目。
教学评估:1. 学生在小组活动中的合作表现和对几何图形结合运算方法的理解程度。
2. 学生在练习题和拓展活动中的解题能力和创造性思维。
3. 学生对几何图形结合运算的应用价值的理解和总结能力。
教学延伸:1. 引导学生进一步探索几何图形结合运算的应用领域,如计算机图形学、建筑设计等。
2. 提供更多的实例和案例,让学生在实践中不断提高几何图形结合运算的技能和应用能力。
图形的测量与计算教案

图形的测量与计算教案一、教学目标1、掌握平面图形名称和性质;能够准确地画出各种平面图形。
2、能够使用尺规作图,按照要求画出各种特殊图形。
3、通过实例学习,掌握图形的周长和面积的计算方法。
4、培养学生的计算能力和图形思维能力。
二、教学方法1、讲授结合实验:在讲解基本知识时,加入实现操作,使学生通过操作去体会掌握。
2、自主实验:通过自主实验去巩固学生的基本知识,同时培养学生的实验操作能力。
3、合作探究:适当安排小组探究活动,让学生在合作中学习并掌握知识。
4、归纳总结:在学习过程中,积极引导学生进行总结性,让他们逐渐建立系统的知识结构。
三、教学内容第一部分:图形的认识1、平面图形的定义和分类平面图形指平面上的图形,包括:三角形、四边形、圆、椭圆、抛物线、双曲线等等。
2、特殊平面图形的认识① 正方形:四个内角均为90度,具有等边和等角的特点。
② 长方形:有两组相等的对边。
③ 三角形:内角和为180度。
④ 圆形:平面上所有与定点距离相等的点的集合。
第二部分:图形的作图1、尺规作图① 作一条给定线段的平分线② 作一个一般三角形的外接圆③ 作正五边形2、图形的绘制通过板书展示画图方法,帮助学生了解如何在平面上绘制各种图形。
第三部分:图形的计算1、周长的计算方法周长是指图形各边的长度之和。
例如:矩形的周长为2×(长+宽),三角形的周长为三边之和。
2、面积的计算方法面积是指图形围成的平面内的部分。
例如:矩形的面积为长×宽,三角形的面积为底×高÷2,圆的面积为πr²。
3、综合练习通过实例进行练习,包括各种平面图形的计算。
四、教学建议1、在讲解基础知识时,结合实例,让学生能够在操作中体味掌握。
2、适当安排小组合作探究环节,培养学生沟通合作的能力,让他们在交流中掌握图形的基本知识和应用方法。
3、鼓励学生多做练习,在练习中巩固知识,并提高学生计算能力和图形思维能力。
4、积极引导学生进行总结性思考,形成系统的知识结构,以便更好地应用到实践中。
小学数学教案图形计算

小学数学教案图形计算
教学内容:图形计算
教学目标:学生能够理解和运用图形计算相关知识,解决简单的图形计算问题。
教学步骤:
1.复习:让学生回顾一下前几节课学过的图形相关知识,包括图形的种类、图形的特点等。
2.引入:通过展示一些图形计算的实际问题,引导学生了解图形计算的重要性,并激发他
们的学习兴趣。
3.讲解:教师向学生介绍图形计算的基本原理,包括计算图形的周长和面积的方法和公式。
4.练习:让学生进行一些简单的图形计算练习,包括计算不规则图形的周长和面积。
5.合作:让学生分组进行合作活动,互相纠正错误,相互学习,促进团队合作精神。
6.总结:教师对本节课的知识进行总结梳理,强化学生对图形计算知识的理解和记忆。
扩展:让学生进行更多的图形计算练习,提高他们的图形计算能力,培养他们的逻辑思维
和解决问题的能力。
教学评价:通过课堂练习和课后作业,检查学生对图形计算知识的掌握情况,并及时纠正
错误,指导学生掌握正确的图形计算方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程名称:Java语言程序设计课程设计学生姓名:X丨GEEK班级学号:指导教师:完成日期:目录1.需求设计 (3)(1)总体要求: (3)(2)具体要求: (3)(3)完成课题目的: (3)2.概要设计 (4)3.详细设计 (4)4.主要界面 (7)5.完整代码 (8)6.测试 (20)7.用户手册 (21)8.已知问题 (22)9.总结与体会 (22)10.参考文献 (22)(1)总体要求:1.每组完成一个课题,由组长决定各成员的分工及组内排名(将100分按排名分配,每人最高不得超过50分);2.课题必须使用Java语言及其相关技术实现,并且要体现出良好的面向对象程序设计原则(尽可能使用封装、继承及多态,一般不将全部语句写在main()中);3.可以使用NetBeans及Eclipse等IDE开发程序,也可直接使用文本编辑器。
4.程序的界面必须采用图形用户界面(GUI),输入输出应使用合理组件,程序界面的布局应简洁明了;5.程序应具有良好的鲁棒性,即能够处理各种数据,对非法输入有完善的纠错机制;6.程序运行结果一般以文本形式保存进文件。
(2)具体要求:用程序实现求矩形、圆形、三角形的周长与面积,以及三角形的内角,需要定义类Triangle,Rectangle及Circle。
全部数据保存至文件中。
GUI设计要求:三个文本区分别用来输入三角形的三条边,或矩形的两边长,或圆形的半径,点击按钮时计算边长及面积,若是三角形,还要计算三个内角,并在一个文本区上显示结果。
可以用组合框选择图形的形状,也可以根据输入的数据个数判别。
(3)完成课题目的:了解并掌握中小型综合应用程序的一般设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
3.详细设计介绍小组成员 给出建议计算圆形面积及周长 计算矩形面积及周长计算三角形面积及周长4.主要界面5.完整代码/** To change this template, choose Tools | Templates* and open the template in the editor.*/packagegeometrycalculator;import java.io.* ;/**** @author X*/public class RectangleClass {double m;double n;boolean a;public RectangleClass(double m,double n){ //构造方法,用来构造长为m 宽为n的对象this.m = m;this.n = n;}public booleantestRectangle(){ //成员方法判断长和宽是否为0if(this.m>0&&this.n>0)this.a = true;elsethis.a= false;return a;}public double getRectangleArea(){ //成员方法计算面积return m*n;}public double Rectanglecircumference(){ //成员方法就算周长return 2*(m+n);}public void saveRectangledata(){try{FileWriterfw= new FileWriter("Rectangledata.txt",true) ; //以Rectangledata.txt为对象建文件字符输出流fwBufferedWriterbw= new BufferedWriter(fw); //以fw为参数建缓冲字符输出流bwString str = "边长:"+m+","+n+","+"面积:" +(m*n)+","+"周长:"+2*(m+n);// 准备一个字符串bw.write(str) ; //在bw中写入str中的内容bw.newLine(); //在bw 中写入换行符bw.close() ;//关闭所有流}catch(Exception e){}}}/** To change this template, choose Tools | Templates* and open the template in the editor.*/packagegeometrycalculator;import java.io.* ;/**** @author X*/public class CircleClass {double r;boolean a;public CircleClass(double r){ //构造方法,用来构造半径为r的对象this.r = r;}public double getCircleSide(){ //成员方法获取对象的半径returnthis.r;}public booleantestCircle(){ //判断半径是否为正if(this.r<0)this.a = false;elsethis.a= true;return a;}public double getCircleArea(){ //成员方法用来计算圆的面积return 3.14*this.r*this.r;}public double circumference(){ //成员方法用来计算圆的周长return 2*3.14*this.r;}public void saveCircledata(){try{FileWriterfw= new FileWriter("Circledata.txt",true) ; //以Circledata.txt 为参数建文件字符输出流fwBufferedWriterbw= new BufferedWriter(fw) ; //以fw为参数建缓冲字符输出流bwString str = "半径:"+r+","+"周长:"+2*3.14*this.r+"面积:"+3.14*this.r*this.r;// 准备一个字符串bw.write(str) ; //将str的内容写入bwbw.newLine(); //在bw中写入换行符bw.close() ; //关闭所有流}catch(Exception e){}}}/** To change this template, choose Tools | Templates* and open the template in the editor.*/packagegeometrycalculator;/**** @author X*/public class Circle extends javax.swing.JFrame {/*** Creates new form Circle*/public Circle() {initComponents();setTitle("跨平台·跨时代的伟大几何计算器");}/*** This method is called from within the constructor to initialize the form.* WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor.*/@SuppressWarnings("unchecked")// <editor-fold defaultstate="collapsed" desc="Generated Code">private void initComponents() {jComboBox1 = new javax.swing.JComboBox();jLabel6 = new javax.swing.JLabel();jPanel1 = new javax.swing.JPanel();jLabel1 = new javax.swing.JLabel();jLabel3 = new javax.swing.JLabel();jTextField1 = new javax.swing.JTextField();jTextField3 = new javax.swing.JTextField();jLabel4 = new javax.swing.JLabel();jLabel5 = new javax.swing.JLabel();jTextField4 = new javax.swing.JTextField();jButton1 = new javax.swing.JButton();jSeparator2 = new javax.swing.JSeparator();jButton3 = new javax.swing.JButton();jButton4 = new javax.swing.JButton();jMenuBar1 = new javax.swing.JMenuBar();jMenu1 = new javax.swing.JMenu();jMenuItem1 = new javax.swing.JMenuItem();jMenuItem2 = new javax.swing.JMenuItem(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "圆形", "矩形", "三角形" }));jComboBox1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEventevt) {jComboBox1ActionPerformed(evt);}});jLabel6.setText("选择你想要计算的图形:");jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "圆形", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,javax.swing.border.TitledBorder.DEFAULT_POSITION, null, new java.awt.Color(0, 0, 0)));jLabel1.setText("半径r :");jLabel3.setText("面积:");jTextField1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEventevt) {jTextField1ActionPerformed(evt);}});jLabel4.setText("请输入圆形数据:");jLabel5.setText("周长:");jButton1.setText("计算");jButton1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEventevt) {jButton1ActionPerformed(evt);}});javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout);jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addGroup(jPanel1Layout.createSequentialGroup().addGap(0, 0, Short.MAX_VALUE).addComponent(jLabel1).addGap(42, 42, 42).addComponent(jTextField1,javax.swing.GroupLayout.PREFERRED_SIZE, 100,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(77, 77, 77)).addComponent(jSeparator2,javax.swing.GroupLayout.Alignment.TRAILING).addGroup(jPanel1Layout.createSequentialGroup().addGap(41, 41, 41).addComponent(jButton1).addPreferredGap(ponentPlacement .RELATED, 104, Short.MAX_VALUE).addGroup(jPanel1Layout.createParallelGroup(javax.swing.Group Layout.Alignment.LEADING).addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup().addComponent(jLabel3).addPreferredGap(ponent Placement.UNRELATED).addComponent(jTextField3,javax.swing.GroupLayout.PREFERRED_SIZE, 100,javax.swing.GroupLayout.PREFERRED_SIZE)).addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup().addComponent(jLabel5).addPreferredGap(ponent Placement.UNRELATED).addComponent(jTextField4,javax.swing.GroupLayout.PREFERRED_SIZE, 100,javax.swing.GroupLayout.PREFERRED_SIZE))).addContainerGap()));jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel4,javax.swing.GroupLayout.PREFERRED_SIZE, 20,javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(ponentPlacement .RELATED).addGroup(jPanel1Layout.createParallelGroup(javax.swing.Group Layout.Alignment.BASELINE).addComponent(jTextField1,javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel1)).addGap(18, 18, 18).addComponent(jSeparator2,javax.swing.GroupLayout.PREFERRED_SIZE, 3,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(18, 18, 18).addGroup(jPanel1Layout.createParallelGroup(javax.swing.Group Layout.Alignment.LEADING).addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout.createParallelGroup(javax.swi ng.GroupLayout.Alignment.BASELINE).addComponent(jLabel3).addComponent(jTextField3,javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(9, 9, 9).addGroup(jPanel1Layout.createParallelGroup(javax.swi ng.GroupLayout.Alignment.BASELINE).addComponent(jTextField4,javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel5))).addComponent(jButton1,javax.swing.GroupLayout.PREFERRED_SIZE, 52,javax.swing.GroupLayout.PREFERRED_SIZE)).addContainerGap(44, Short.MAX_VALUE)));jButton3.setText("清空");jButton3.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEventevt) {jButton3ActionPerformed(evt);}});jButton4.setText("退出");jButton4.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEventevt) {jButton4ActionPerformed(evt);}});jMenu1.setText("菜单栏");jMenuItem1.setText("温馨建议");jMenuItem1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEventevt) {jMenuItem1ActionPerformed(evt);}});jMenu1.add(jMenuItem1);jMenuItem2.setText("制作人员");jMenuItem2.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEventevt) {jMenuItem2ActionPerformed(evt);}});jMenu1.add(jMenuItem2);jMenuBar1.add(jMenu1);setJMenuBar(jMenuBar1);javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(58, 58, 58).addComponent(jLabel6).addPreferredGap(ponentPlacement .RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(jComboBox1,javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(62, 62, 62)).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addContainerGap()).addGroup(layout.createSequentialGroup().addGap(81, 81, 81).addComponent(jButton3).addPreferredGap(ponentPlacement .RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(jButton4).addGap(68, 68, 68)));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(13, 13, 13).addGroup(layout.createParallelGroup(javax.swing.GroupLayout. Alignment.BASELINE).addComponent(jComboBox1,javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel6)).addPreferredGap(ponentPlacement .RELATED).addComponent(jPanel1,javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(18, 18, 18).addGroup(layout.createParallelGroup(javax.swing.GroupLayout. Alignment.BASELINE).addComponent(jButton3).addComponent(jButton4)).addContainerGap(92, Short.MAX_VALUE)));pack();}// </editor-fold>private void jButton1ActionPerformed(java.awt.event.ActionEventevt) {//计算按钮的事件try{ //异常处理,看创建的对象是否是数字CircleClass c = new CircleClass(Double.parseDouble(jTextField1.getText())); /*创建CircleClass的对象c,参数为jTextField1中的内容,* jTextField1.getText()获取jTextField1中的内容(结果是String型),所以要用Double.parseDouble()转换成double型*/if(c.testCircle()){ //调用CircleClass中的testCircle()方法看半径是否为负jTextField4.setText(String.valueOf(Round.getRound(c.circumference())));/*调用CircleClass中的circumference()方法计算周长,再调用Round类中的静态方法getRound()使结果保留2位小数,再用String.valueOf()转换成字符串,输出在jTextField4中*/jTextField3.setText(String.valueOf(Round.getRound(c.getCircleArea())));/*同上,这句用来计算面积,结果保存在jTextFiled3中*/c.saveCircledata(); /*调用CircleClass中的saveCircledata()来保存数据*/}else{ /*如果圆的半径为负数*/new Error().setVisible(true);//使报错窗口Error出现jTextField1.setText(""); //清空jTextField1jTextField4.setText(""); //清空jTextField4jTextField3.setText(""); //清空jTextField3 }}catch(Exception e){ //如果抓取到用户未输入数据,或输入的不是数字的异常new Error3().setVisible(true); //使报错窗口Error3出现jTextField1.setText(""); //清空jTextField1jTextField3.setText(""); //清空jTextField3jTextField4.setText(""); //清空jTextField4 }// TODO add your handling code here:}private void jButton3ActionPerformed(java.awt.event.ActionEventevt) { //清空按钮的事件jTextField1.setText(""); // 清空jTextField1jTextField3.setText(""); //清空jTextField2jTextField4.setText(""); //清空jTextField3// TODO add your handling code here:}private void jButton4ActionPerformed(java.awt.event.ActionEventevt) {//退出按钮的事件System.exit(0); //退出程序// TODO add your handling code here:}private void jTextField1ActionPerformed(java.awt.event.ActionEventevt) { // TODO add your handling code here:}private void jComboBox1ActionPerformed(java.awt.event.ActionEventevt) { //组合框的事件String a = (String) jComboBox1.getSelectedItem();//用getSelectedItem()方法获取jComboBox1(组合框)中的内容,赋值给a if(a.equals("矩形")){new Rectangle().setVisible(true); //若a的内容为矩形,则显示矩形的GUI窗口}else if(a.equals("三角形")){new Triangle().setVisible(true); //若a 的内容为三角形,则显示三角形的GUI窗口}else{new Circle().setVisible(true); //若a 的内容为圆,则显示圆的GUI窗口}setVisible(false); //关闭当前的GUI窗口// TODO add your handling code here:}private void jMenuItem1ActionPerformed(java.awt.event.ActionEventevt) {new Suggest().setVisible(true); // TODO add your handling code here: }private void jMenuItem2ActionPerformed(java.awt.event.ActionEventevt) {new Producer().setVisible(true); // TODO add your handling code here: }/*** @paramargs the command line arguments*/public static void main(String args[]) {/* Set the Nimbus look and feel *///<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.* For details see/javase/tutorial/uiswing/lookandfeel/plaf.html */try {for (javax.swing.UIManager.LookAndFeelInfo info :javax.swing.UIManager.getInstalledLookAndFeels()) {if ("Nimbus".equals(info.getName())) {javax.swing.UIManager.setLookAndFeel(info.getClassName());break;}}} catch (ClassNotFoundException ex) {java.util.logging.Logger.getLogger(Circle.class.getName()).log(java.util.logging.Level.S EVERE, null, ex);} catch (InstantiationException ex) {java.util.logging.Logger.getLogger(Circle.class.getName()).log(java.util.logging.Level.S EVERE, null, ex);} catch (IllegalAccessException ex) {java.util.logging.Logger.getLogger(Circle.class.getName()).log(java.util.logging.Level.S EVERE, null, ex);} catch (javax.swing.UnsupportedLookAndFeelException ex) {java.util.logging.Logger.getLogger(Circle.class.getName()).log(java.util.logging.Level.S EVERE, null, ex);}//</editor-fold>/* Create and display the form */java.awt.EventQueue.invokeLater(new Runnable() {public void run() {new Circle().setVisible(true);}});}// Variables declaration - do not modifyprivatejavax.swing.JButton jButton1;privatejavax.swing.JButton jButton3;privatejavax.swing.JButton jButton4;privatejavax.swing.JComboBox jComboBox1;privatejavax.swing.JLabel jLabel1;privatejavax.swing.JLabel jLabel3;privatejavax.swing.JLabel jLabel4;privatejavax.swing.JLabel jLabel5;privatejavax.swing.JLabel jLabel6;privatejavax.swing.JMenu jMenu1;privatejavax.swing.JMenuBar jMenuBar1;privatejavax.swing.JMenuItem jMenuItem1;privatejavax.swing.JMenuItem jMenuItem2;privatejavax.swing.JPanel jPanel1;privatejavax.swing.JSeparator jSeparator2;privatejavax.swing.JTextField jTextField1;privatejavax.swing.JTextField jTextField3;privatejavax.swing.JTextField jTextField4;// End of variables declaration}6.测试测试环境:windows764位操作系统内存4.00GB处理器Intel(R)Core(TM)i7-3610QM 2.30GHzNetBeans8.0java version "1.7.0_40"Java(TM) SE Runtime Environment (build 1.7.0_40-b43)Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode) 输入为空时(,,,):输入字符时(三,四,5):输入三个角都为60时:输入负数(-3,4,5)时:当输入(3,4,9)当输入(0,0,0)时当输入(0.00001,0.00001,0.00001)时当输入(3,4,5)时7.用户手册本程序可以用来求矩形,三角形,圆形三类基本图形的面积及周长。