绘制java面向对象课程设计报告画图板毕业设计(论文)word格式

免费对象存储  时间:2021-05-02  阅读:()

h

《面向对象程序设计课程设计》指导书

课程设计名称面向对象程序设计课程设计 指导老师牛志毅

课程设计周时数2周

指导方式集体辅导与个别辅导相结合

课程设计适用专业信息与计算机科学

课程设计教材及主要参考资料

《Java程序设计与案例》刘宝林主编高等教育出版社

服务课程名称面向对象程序设计

一、课程设计教学目的及基本要求

通过本课程设计使学生了解面向对象程序的开发思想、方法和步骤掌握开发工具的使用提高综合运用所学的理论知识和方法独立分析和解决问题的能力进一步提高其开发应用程序的能力。

要求明确本次课程设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。通过编写一个基于JAVA的应用系统综合实例来掌握Java语言编程技巧。并学会编制结构清晰、风格良好的、数据结构适当的Java语言程序从而具备解决综合性实际问题的能力。

二、设计题目及要求二选一

⑴设计一个图书信息管理系统

①图书信息包括图书编号、书名、作者、 出版社、 出版日期、 图书简介及图书类别等。

②本系统功能描述

图书信息录入功能

W

h

图书信息浏览功能

查询功能至少一种查询方式 

图书信息修改功能

及其它你认为必要的功能。

⑵设计一个画图软件

①用户界面友好

②能绘制基本形状的图形

③可设置图形的颜色、线条的粗细和填充等属性

④可将画好的图保存至文件并能从文件中读取。

三、设计报告的要求

设计结束后要写出课程设计报告以作为整个课程设计评分的书面依据和存档材料。设计报告以规定格式的电子文档书写、打印并装订排版及图、表要清楚、工整。内容及要求如下

封面题目、班级、姓名、学号、指导教师和完成日期。

正文包括以下7个内容

①课题说明

以无歧义的陈述说明程序设计的任务。

②程序设计思路

W

h

简要说明程序设计的思路。

③程序源代码

给出源代码及注释。

④程序测试

给出程序主要运行界面截图。

⑤设计总结

经验和体会等。

⑥参考文献

列出参考的相关资料和书籍。

五、课程设计考核方法及成绩评定

课程设计结束时要求学生提交课程设计报告附源程序及可运行的软件系统。课程设计成绩分两部分设计报告占50设计作品占50。

附件课程设计报告封面和参考程序。

W

h

课程设计报告

课程名称 面向对象程序设计课程设计

课程设计题目  画图板

系

专 业

年级、班

姓 名

学 号

指导教师

职 称

2012年6月

W

h

1.课题的任务和要求

设计一个画图软件

①用户界面友好

②能绘制基本形状的图形

③可设置图形的颜色、线条的粗细和填充等属性

④可将画好的图保存至文件并能从文件中读取。

2.程序设计思路

该课题的任务是设计一个画图软件要求能绘制基本形状的图形同时可以设置图形的颜色、线条的粗细和是否填充等属性并且可以将画好的图形以某种格式比如说JPG保存至文件并能从文件中读取某种格式的图像文件并显示出来。

首先作为画图板应该能够绘制基本的图形像"铅笔", "直线", "矩形", "椭圆",”圆”,同时考虑到实用性画图板应该能够提供橡皮擦设置线条粗细颜色背景颜色的功能。在鼠标停留在按钮上时按钮上应该提供显示提示文字通过设置J Button的setText方法即可达到要求在使用线条工具来绘制线条时如果设置图形过于粗大要求绘制出来图形能够消除锯齿思路是在设置Graphics2D的大小时设置Graphics2DsetRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_O N);即可达到要求

第二考虑到平时画图时总是喜欢按住shift来绘制45° 90°的线条为方便用户画图板也必须提供相应的功能思路是判断线条的角度如果角度大于0°同时小于45° 则绘制45°的斜线如果线条的角度大于45°小于90° 则绘制90度的直线。

第三关于设置背景颜色考虑到美观使用了渐变背景色思路是在设置Graphics2D的背景色时通过绘制不同透明度的条纹背景与设置不同级别的透明度来达到绘制渐变背

W

h

景色的目的。

第四关于画图板在提供通用的功能的同时应该能够提供一些扩展功能这是课程设计的一项基本要求对于扩展功能我提供了绘制圆角矩阵三角形3D立方体和绘制f(x)=A*sin(Bx)+C*cos(Cx) 绘制重叠椭圆等扩展功能绘制圆角矩阵是通过Graphics2D的drawRoundRect来实现的而3D立方体则是通过fi l l3DRect实现的而三角形是通过绘制首尾相连的三条直线来实现的。而正余弦曲线则完全是通过计算出曲线的值然后绘制一小段直线通过绘制很多这样的小直线相连来达到绘制正余弦曲线的目的。的值然后绘制一小段直线通过绘制很多这样的小直线相连来达到绘制正余弦曲线的目的。而重叠椭圆的实现则是通过Graphics2D的draw(new El l ipse2D.Double(x1 ,y1 ,85,90);绘制一个椭圆然后translate(x1 ,y1);将Graphics2D上下文的原点平移到当前坐标系中的点(x1 ,y1),在计算d=m*math. .PI/180的值rotate(d); 将当前的Graphics2D Transform与旋转转换连接,然后 translate(-x1 ,-y1);将Graphics2D上下文的原点平移到当前坐标系中的点(-x1 ,-y1)。draw(new El l ipse2D.Double(x1 ,y1 ,85,90));再来绘制一个椭圆通过这样的处理来绘制一个在一个圆平面且重叠的椭圆图形。

第五关于设置是否填充的问题对于直线来说是否填充是没有实际意义的所以不予考虑释放填充应该考虑圆椭圆圆角矩阵三角形对于圆和椭圆的填充是通过调用

Graphics2D的drawOval方法实现的圆角矩阵则是通过调用Graphics2D的drawRoundRect来实现的而三角行的填充则是通过调用Graphics2D的fi l lPolygon方法来实现的.而填充与否的判断则是通过isfi l l的真与假来实现的.

W

h

第六要求能够保存图形与打开已有的图形这是通过使用Buffered Image来缓存绘制的图形然后使用ImageIO将绘制的图形在重新绘制一次再保存到指定的位置从而实现了文件的保存打开文件时考虑到实用性与方便提供了预览图像的功能通过继承Jpanel 将选得的图片通过setIcon绘制在出来实现预览的功能。打开是通过ImageIO将图片绘制在面板上。为方便用户提供了一个Fi le的菜单菜单中提供了新建保存打开退出的功能。

第七考虑到美观使用了观感器的图形界面。主要是通过观感管理器来实现的。UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());对于背景颜色则是通过设置渐变背景颜色来实现的。

第八在用户退出时要求能询问用户是否保存作品考虑到菜单中有保存的选项所以通过菜单退出时没有提供询问是否保存的功能而在实际生活中考虑到有时候会忘记保存所以通过右上角窗口退出时必须询问是否保存是否保存则是通过

JOptionPane.showConfirmDialog来实现的当用户选择Yes时保存文件。其他则直接退出。

根据课题要求首先对要实现的功能类型抽象出一个公共的基类Drawing 子类Line Rectange Oval Penci l RoundRect Circle Rect3DTriangleSinCos Tuo Eraser通过继承基类来实现不同的功能在使用时通过基类来调用不同的子类很好地体现了面向对象的Java语言的多态抽象继承的思想。用户通过选择不同的按钮来绘制图形这主要是利用按钮监听将不同的绘图功能绑定到不同的按钮上通过监听用户的选择来创建不同的子类通过子类绘制不同的图形。

3.源代码及注释package myclass;

W

himport java.awt.*;import java.awt.event.*;import java.awt.geom.El l ipse2D;import java.awt.geom.Rectangle2D;import java.awt. image.BufferedImage;import java.beans.PropertyChangeEvent;import java.beans.PropertyChangeListener;import java. io.*;import java.uti l .ArrayList;import java.uti l .Random;import javax. imageio. ImageIO;import javax.swing.*;import javax.swing.event.*;import javax.swing.fi lechooser.Fi leFi lter;import javax.swing.fi lechooser.Fi leNameExtensionFi lter;import javax.swing.fi lechooser.Fi leView;import javax.swing.text.StyledEditorKit.ForegroundAction;

W

himport org.omg.CORBA.FREE_MEM;import org.w3c.dom.css.Rect;publ ic class DrawingBoard{publ ic static void main(String[]args) {

DrawGraphic newPad=new DrawGraphic(); //创建窗口对象

}

}class DrawGraphic extends JFrame{private JButton choices[]; //按钮数组private String names[]={ "铅笔", "直线", "矩形", "椭圆","圆角矩阵", "圆","3D立方体","三角形","椭圆重叠","正余弦曲线","橡皮擦","背景色","颜色" }; //按钮上的文本private String tipText[] ={ "自由绘制", "绘制直线", "绘制矩形", "绘制椭圆" ,"绘制圆角矩阵","绘制圆","绘制3D立方体","绘制三角形","椭圆重叠","正余弦曲线","橡皮檫","设置透明背景色","选择颜色"}; //按钮的提示字串

JToolBar buttonBar; //工具条

Drawing[]iteml ist=new Drawing[1000];

JCheckBox fi l lCheckBox;//复选框

JSl ider strokeSl ider;//滑动条int index=0;private int currentType=1 ;//当前选择private Color color=Color.black;//颜色

W

GigsGigsCloud 春节优惠2022 指定云服务器VPS主机85折循环优惠码

GigsGigsCloud商家在之前介绍的还是比较多的,因为之前我一直有几台机器在使用,只是最近几年网站都陆续转型删除掉不少的网站和闲置域名,包括今年也都减少网站开始转型自媒体方向。GigsGigsCloud 商家产品还是比较有特色的,有提供香港、新加坡等亚洲机房的云服务器、VPS和独立服务器等。第一、新春优惠活动优惠码:CNY2022-15OFF截止到正月初二,我们可以使用上述优惠码在购买指定G...

Linode 18周年庆典活动 不断改进产品结构和体验

今天早上相比很多网友和一样收到来自Linode的庆祝18周年的邮件信息。和往年一样,他们会回顾在过去一年中的成绩,以及在未来准备改进的地方。虽然目前Linode商家没有提供以前JP1优化线路的机房,但是人家一直跟随自己的脚步在走,确实在云服务器市场上有自己的立足之地。我们看看过去一年中Linode的成就:第一、承诺投入 100,000 美元来帮助具有社会意识的非营利组织,促进有价值的革新。第二、发...

器安装环境和运维管理工具推荐

今天看到一个网友从原来虚拟主机准备转移至服务器管理自己的业务。这里问到虚拟主机和服务器到底有什么不同,需要用到哪些工具软件。那准备在下班之间稍微摸鱼一下整理我们服务器安装环境和运维管理中常见需要用到的软件工具推荐。第一、系统镜像软件一般来说,我们云服务器或者独立服务器都是有自带镜像的。我们只需要选择镜像安装就可以,比如有 Windows和Linux。但是有些时候我们可能需要自定义镜像的高级玩法,这...

免费对象存储为你推荐
下图搜狗浏览器2支持ipad支持ipad更新iphone重庆网通重庆联通现在有哪些资费???photoshop技术photoshop技术对哪些工作有用?ipad连不上wifi苹果ipad突然连不上网了,是怎么回事?网络是好的,手机能上网。iphone连不上wifi苹果8p连接不了WiFicss下拉菜单如何使用HTML和CSS制作下拉菜单ipad上网为什么ipad网速特别慢
中文域名 免费网站域名注册 美国vps推荐 淘宝二级域名 主机屋 diahosting 创宇云 2017年万圣节 lamp配置 新站长网 网通代理服务器 免费全能空间 坐公交投2700元 ca187 银盘服务是什么 域名dns 空间租赁 云销售系统 wordpress空间 websitepanel 更多