1、 李 红 斌二0一五年 十一月二十五日计算机科学与技术学院课程设计成绩单 课程名称:图形学基础 指导老师:李红斌姓名胡文康性别男学号2013125*班级计算计1302班综合成绩等级设计整体表现力(占总成绩20%)能正确表现(20分)基本能正确表现(15分)能表现但不完善(10分)设计功能完善程度(占总成绩10%)完善(10分)基本完善(8分)不完善(5分)设计结构的合理性(占总成绩的10%)合理(10分)基本合理(8分)不太合理(5分)对问题的答辩情况(占总成绩的40%)概念正确有创新(40分)能正确回答所有问题(35分)基本能正确回答(30分)部分问题回答概念不清晰(20分)学生的工作态度与
2、独立工作能力 工作态度认真能独立完成任务(10分)工作态度认真但独立性太差(8分)工作态度基本认真但缺乏独立性(5分)设计报告的规范性符合规范(10分)基本符合规范(8分)规范性较差(5分)第 20 页 共 23 页20 摘 要随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。JAVA不仅可以用来开发大型的应用程序。而且特别适合Internet的应用开发。JAVA确实具备“一次写成,处处运行”的特点,
3、JAVA以成为网络时代最重要的编程语言之一。本报告中介绍了用JAVA语言实现画笔系统的全部过程。本次课程设计是配合JAVA程序设计课程,帮助我们深入学习掌握JAVA语言,熟练运用这个工具来编写的。通过课程设计各个项目的综合训练,培养学生实际分析问题、编程和动手能力、提高学生的综合素质。本课程设计尝试使用一些较生动的示例和设计项目,激发学生学习兴趣,引导学生主动学习,正确理解、接受需要重点掌握的知识点,为参加项目开发及更深入学习做好准备。本次课程设计主要是用JAVA实现画笔系统,其系统主要完成以下功能:设计一个画图程序,能够实现画笔、画直线、画圆形、画矩形的功能,并且在绘图。过程中能够修改该画笔
4、的大小以及颜色。该画图程序还需具有橡皮擦功能以及清空整个画面的功能 关键词:画笔系统,JAVA目录摘 要2目录31.绪论42. 开发环境介绍53.需求分析63.1总体目标63.2要实现的功能64.概要设计74.1设计准备74.2需用到的类75.详细设计85.1类的设计85.2类的方法介绍86.测试数据及运行结果107.源程序108.总结239.参考文献23一绪论Java不依赖平台的特点使它受到广泛的关注,Java已成为网络时代最重要的语言之一。目前,Java语言不仅是一门被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言。因为很多新的技术领域都涉及到Java语言,国内外许多大
5、学已将Java语言列入本科教学计划,而IT行业对Java人才的需求也在不断的增长,因此,掌握Java已经成为共识。Java是一门说简单也不简单,说难也不难的课程。所以,我们在学习的过程中要根据自己的具体情况,合理安排编程训练时间,相信编程能力会在不知不觉中得到提高。在此次的课程设计实践中,我学到了教科书上没有的东西。这次课程设计,我按照课程设计的要求,分块实现程序的功能。在实践中我遇到许多的问题,但我都克服,最终我成功的完成了这次课程设计。从中我充分理解了Java面对对象的特性,并体会到Java与C#语言的不同之处。在实践的同时,我又从中成长了许多,特别是在对程序的编译和调试中掌握了许多的技巧
6、和方法,为今后的其他计算机语言的学习奠定了一定的基础。二 . 开发环境介绍该项目所使用的软件开发环境如下:操作系统:Windows 10开发工具;Eclipse4.5及其VE插件Eclipse; 简介:Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具。 Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语 言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+和Python的开发工具。Eclips
7、e的本身只是一个框架平台,但是众多插件的支持 使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中, 其中包括Borland、Rational Software、Red Hat及Sybase等。它是一个开发源码项目,它其实是
8、Visual Age for Java的替代品,界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的许多 大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。三 .需求分析3.1总体目标3.2要实现的功能1、这个画图程序,最基本的功能是,作为一个画笔,能利用它实现在屏幕上任意绘画、书写的功能;2、利用这个画图程序,通过选择画直线、画圆形、画矩形等功能选项并且在屏幕上拖动鼠标操作能实现画出相应图
9、形的功能;3、这个画图程序,还需具备橡皮擦的功能,利用这个橡皮擦能够擦除屏幕上的图案,并且此橡皮擦也应该能够改变大小;4、这个画图程序,还应该做到能够改变画笔颜色的功能;5、这个画图程序,还应该具备能够清除整个屏幕已绘制图画的功能。四 .概要设计4.1设计准备1、此程序为实现这些功能模块,必须首先定义一个工具面板,将这些画笔、画直线、画圆形、画矩形、画笔颜色、画笔大小、橡皮等功能组件放入这个工具面板中。2、此程序为实现利用鼠标做画笔的功能,必会产生鼠标事件MouseEvent。因此,为实现鼠标画图的功能,必须用到鼠标触发事件,故在此程序中,必须实现“委托事件模型”,用到事件源、事件对象以及监听
10、者对象。3、此程序中,必须用到的包如下:package org.hwk.pd.app;import java.applet.*;import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;import java.awt.geom.*;import java.io.*;4.2需用到的类1 )class Point此类用于定义一组数据成员,并且使用构造函数将他们分别初使化,以方便在下面的程序中使用他们。2)class paintboard 此类用于实现这个程序的大部分功能,在这个类中除了定义一些
11、基本变量以及构造函数外,还定义了很多成员方法,这些成员方法将实现鼠标触发事件的一系列绘图功能。3)public class MainApp 这个类是主类,是程序得以运行的入口。在这个主类中定义了主方法,是该程序执行的入口。五 .详细设计5.1类的设计1) class Point在这个类中定义了用于截断的一系列标志变量,有初始坐标、颜色、工具选择等,并且在这个类中还定义了构造函数Point(int x, int y, Color col, int tool, int boarder),用于完成对这些变量的初始化工作。2) class paintboard 这个类用来实现整个程序的大部分功能,并且
12、在这个类中定义了大部分的成员函数和成员方法,在这个类中用到的主要成员方法如下:Public void paint(Graphics g)public void itemStateChanged(ItemEvent e)public void mouseDragged(MouseEvent e)public void mousePressed(MouseEvent e)public void mouseReleased(MouseEvent e)public void mouseEntered(MouseEvent e)public void mouseExited(MouseEvent e)p
13、ublic void mouseClicked(MouseEvent e)public void mouseMoved(MouseEvent e) public void actionPerformed(ActionEvent e)5.2类的方法介绍 定义的变量:在这个类中,首先定义了画笔的大小、画笔的颜色、画笔的粗细、橡皮的大小、工具的选择等一些变量,并且还用到了系统中自带的一些类初使化了一些面板工具对象,用于完成对面板工具、画直线、画椭圆、画矩形、橡皮擦、清除等一些工具按钮的定义。 初使化构造函数:在这个初使化构造函数中,首先继承了父类Frame,然后初使化了各工具按钮以及各个选择项,包括颜色选择、画笔大小选择、橡皮大小选择,并且将这些组件添加到了工具面板中,最后还对各个组件注册了事件监听者对象。 paint()方法:这个方法主要用于在Applet的界面中显示文字、图形和其它界面元素。本程序中,在这个方法中,定义了一些工具选项设置,给用户选择画笔、画直线、画圆、橡皮擦等一些功能。 itemStateChanged()方法: 这个方法用来实现的功能很简单,主要是用来改变画笔大小、画笔颜色、橡皮大小的。在此方法中,设置了大小以及颜色的一些预
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1