绘制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

什么是BGP国际线路及BGP线路有哪些优势

我们在选择虚拟主机和云服务器的时候,是不是经常有看到有的线路是BGP线路,比如前几天有看到服务商有国际BGP线路和国内BGP线路。这个BGP线路和其他服务线路有什么不同呢?所谓的BGP线路机房,就是在不同的运营商之间通过技术手段时间各个网络的兼容速度最佳,但是IP地址还是一个。正常情况下,我们看到的某个服务商提供的IP地址,在电信和联通移动速度是不同的,有的电信速度不错,有的是移动速度好。但是如果...

Digital-VM80美元新加坡和日本独立服务器

Digital-VM商家的暑期活动促销,这个商家提供有多个数据中心独立服务器、VPS主机产品。最低配置月付80美元,支持带宽、流量和IP的自定义配置。Digital-VM,是2019年新成立的商家,主要从事日本东京、新加坡、美国洛杉矶、荷兰阿姆斯特丹、西班牙马德里、挪威奥斯陆、丹麦哥本哈根数据中心的KVM架构VPS产品销售,分为大硬盘型(1Gbps带宽端口、分配较大的硬盘)和大带宽型(10Gbps...

ManSora:英国CN2 VPS,1核/1GB内存/10GB SSD/1TB流量/100Mbps/KVM,$18.2/月

mansora怎么样?mansora是一家国人商家,主要提供沪韩IEPL、沪日IEPL、深港IEPL等专线VPS。现在新推出了英国CN2 KVM VPS,线路为AS4809 AS9929,可解锁 Netflix,并有永久8折优惠。英国CN2 VPS,$18.2/月/1GB内存/10GB SSD空间/1TB流量/100Mbps端口/KVM,有需要的可以关注一下。点击进入:mansora官方网站地址m...

免费对象存储为你推荐
在B2B的登录首页下方,点击账号密码查询连接支付apple支持ipad经营策略iphone支持ipad支持ipad支持ipadipad连不上wifiipad无法加入网络怎么回事iphone连不上wifi苹果手机为什么突然连不上家里的wifi?用itunes备份iphone怎么从itunes备份恢复
备案域名 如何申请域名 securitycenter 域名优惠码 gomezpeer 42u机柜尺寸 轻博客 jsp空间 1g内存 cn3 免费美国空间 网游服务器 双线机房 创建邮箱 服务器是干什么用的 便宜空间 美国凤凰城 ebay注册 防cc攻击 lamp是什么意思 更多