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

racknerd:美国大硬盘服务器(双路e5-2640v2/64g内存/256gSSD+160T SAS)$389/月

racknerd在促销美国洛杉矶multacom数据中心的一款大硬盘服务器,用来做存储、数据备份等是非常划算的,而且线路还是针对亚洲有特别优化处理的。双路e5+64G内存,配一个256G的SSD做系统盘,160T SAS做数据盘,200T流量每个月,1Gbps带宽,5个IPv4,这一切才389美元...洛杉矶大硬盘服务器CPU:2 * e5-2640v2内存:64G(可扩展至128G,+$64)硬...

sharktech:老牌高防服务器商,跳楼价,1G独享$70、10G共享$240、10G独享$800

不知道大家是否注意到sharktech的所有服务器的带宽价格全部跳楼跳水,降幅简直不忍直视了,还没有见过这么便宜的独立服务器。根据不同的机房,价格也是不一样的。大带宽、不限流量比较适合建站、数据备份、做下载、做流媒体、做CDN等多种业务。 官方网站:https://www.sharktech.net 付款方式:比特币、信用卡、PayPal、支付宝、西联汇款 以最贵的洛杉矶机器为例,配置表如...

IMIDC日本多IP服务器$88/月起,E3-123x/16GB/512G SSD/30M带宽

IMIDC是一家香港本土运营商,商家名为彩虹数据(Rainbow Cloud),全线产品自营,自有IP网络资源等,提供的产品包括VPS主机、独立服务器、站群独立服务器等,数据中心区域包括香港、日本、台湾、美国和南非等地机房,CN2网络直连到中国大陆。目前主机商针对日本独立服务器做促销活动,而且提供/28 IPv4,国内直连带宽优惠后每月仅88美元起。JP Multiple IP Customize...

免费对象存储为你推荐
practicescss支持ipad支持ipadxp如何关闭445端口Windows XP 怎么关闭445端口,我是电脑小白,求各位讲详细点win7telnetWin7系统中的telnet命令如何应用?重庆电信网速测试如何测量网速ms17-010win10华为 slatl10是什么型号win7如何关闭445端口如何判断445端口是否关闭迅雷下载速度迅雷下载快慢和什么有关win7还原系统win7如何一键还原电脑系统怎么操作
最便宜的vps naning9韩国官网 edgecast jsp主机 外国服务器 iisphpmysql payoneer 密码泄露 网通ip 三拼域名 智能骨干网 绍兴电信 湖南idc 免备案cdn加速 asp空间 阿里云邮箱怎么注册 塔式服务器 优惠服务器 wannacry勒索病毒 德国代理 更多