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

免费注册宝塔面板账户赠送价值3188礼包适合购买抵扣折扣

对于一般的用户来说,我们使用宝塔面板免费版本功能还是足够的,如果我们有需要付费插件和专业版的功能,且需要的插件比较多,实际上且长期使用的话,还是购买付费专业版或者企业版本划算一些。昨天也有在文章中分享年中促销活动。如今我们是否会发现,我们在安装宝塔面板后是必须强制我们登录账户的,否则一直有弹出登录界面,我们还是注册一个账户比较好。反正免费注册宝塔账户还有代金券赠送。 新注册宝塔账户送代金券我们注册...

蓝竹云挂机宝25元/年,美国西雅图 1核1G 100M 20元

蓝竹云怎么样 蓝竹云好不好蓝竹云是新商家这次给我们带来的 挂机宝25元/年 美国西雅图云服务器 下面是套餐和评测,废话不说直接开干~~蓝竹云官网链接点击打开官网江西上饶挂机宝宿主机配置 2*E5 2696V2 384G 8*1500G SAS RAID10阵列支持Windows sever 2008,Windows sever 2012,Centos 7.6,Debian 10.3,Ubuntu1...

cyun29元/月,香港CN2 GIA云服务器低至起;香港多ip站群云服务器4核4G

cyun怎么样?cyun蓝米数据是一家(香港)藍米數據有限公司旗下品牌,蓝米云、蓝米主机等同属于该公司品牌。CYUN全系列云产品采用KVM架构,SSD磁盘阵列,优化线路,低延迟,高稳定。目前,cyun推出的香港云服务器性价比超高,香港cn2 gia云服务器,1核1G1M/系统盘+20G数据盘,低至29元/月起;香港多ip站群云服务器,16个ip/4核4G仅220元/月起,希望买香港站群服务器的站长...

免费对象存储为你推荐
上海fastreport2alargarios5测试ios补丁安装前必读支持ipad支持ipad支持ipadboxiphone请仔细阅读在本报告尾部的重要法律声明勒索病毒win7补丁为了防勒索病毒,装了kb4012212补丁,但出现关机蓝屏的问题了,开机正常
ip反查域名 我的世界服务器租用 php主机租用 国外免费域名网站 免费cn域名 视频存储服务器 泉州移动 爱奇艺vip免费试用7天 息壤代理 100mbps 香港新世界中心 爱奇艺会员免费试用 主机管理系统 iki lamp怎么读 镇江高防 工信部icp备案查询 如何登陆阿里云邮箱 godaddy空间 免备案cdn加速 更多