网站大量收购闲置独家精品文档,联系QQ:2885784924

java课程设计java课程设计.docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java课程设计java课程设计

成绩南京工程学院课程设计说明书(论文)题目网络矢量绘图系统课 程 名 称 java程序设计院(系、部、中心)计算机工程学院专业计算机科学与技术班 级 软件工程131 学 生 姓 名 学 号 设 计 地 点 信息楼指 导 教 师 设计起止时间:2014年12月20日至2015年1月12日数据结构课程设计题目网络矢量图形绘图系统课程设计目的和要求目的:使学生能够综合应用java基础知识和进而本方法,编写实用有效的应用程序,体会软件设计的全过程,深入理解和进一步巩固所学知识,培养自学能力,培养独立分析问题和解决问题的作风和能力,提高软件设计能力,为今后进行系统软件和应用软件的开发研究打下坚实基础,培养刻苦钻研精神和严谨的治学作风。要求:1.采用swing组件设计图形用户界面,使用组件数组,实验菜单,使用多文档界面技术2.响应事件3.处理异常,当输入数据错误时弹出对话框,提示重新输入信息4.使用线程演示算法执行过程中数组或其他变量数据的动态变化情况。5.从指定文件中读取原始数据,并将运算结果写入文件。使用带有过滤器的打开和保存文件对话框选择文件名6.基于socket通信的网络应用程序二、题意说明及分析网络矢量图形绘图系统需求分析:本系统要求可以绘制直线,椭圆,矩形,圆角矩形四种基本图形本系统要求可以对图形可以进行平移、旋转、缩放,在旋转,缩放的同时可以对旋转点缩放点进行移动,可以改变画图线宽以及更改图形的填充方式可以点选已选图形,并对已选图形进行更改颜色,移动等操作可以保存已画的图像可以实现两台电脑交互绘图三、算法设计与分析程序结构:类详细设计分析说明:MyFrame类为主程序类,继承自JFrame,为程序提供单文档窗口,并对画图区域提供滚动显示功能HuituCanvas继承自JPanel类,为绘图提供画布,并封装了改变颜色,填充方式,线宽,剪切,复制,粘贴,删除,打开、保存文件等操作。并用ArrayList存储各个已绘图形MyShape是图形的抽象类,提供了绘制、点选、返回旋转点、移动、旋转、缩放等抽象方法。并对图形统一属性进行定义。RWBuff为网络通信的基本结构,对所要传输的数据进行封装,实现了Serializable接口LockerBuff为发送缓冲,采取了互斥的结构,缓冲结构采用队列实现,头进尾出,队列空或满时等待部分功能实现方法:点选功能的实现对于未填充的图形对于直线,矩形以及圆角矩形,需要判断按下点到他们各条线段的距离,当到某条线段的距离小于一定的阀值,即判定为选中对于圆以及椭圆,需要判断点选点是否落在阀值所在区域的环,如果落在环内,则判定为选中对于填充的图形,只需判断按下点是否落在图形的最小矩形内部,如果落在内部,则判断为选中(二)通信功能的实现通信功能采用TCP实现点对点通信首先服务端先开取一个线程等待客户端连接,当客户端连接成功后,客户端和服务端分别开启各自的读取发送线程,用于实现网络通信。当某一方断开连接时,发送结束标识,结束自己的读取发送线程,另一端接收到结束标识时,也结束自己的发送读取线程,连接结束(三)记录操作功能的实现 由于部分操作在HuituCanvas中实现,而网络通信则在MyFrame类,为了可以在操作时进行相应的操作,因此对HuituCanvas加了一个接口,接口用于当HuituCanvas进行某些操作时可以将操作的属性记录下来,接口如下publicinterface MyDoAddListener{abstractvoid doadd(int dotype,int shapetype,int shapeid,float[][] xy,Color c,Color c1);}数据结构RwBuffpublicclass RWBuff implementsSerializable{publicintdoType,shapeType,shapeID;//操作标识publicfloatpointxy[][];public Color color,color1;public RWBuff(int dotype,int shapetype,int shapeid,float xy[][],Color c,Color c1){this.doType=dotype;shapeType=shapetype;shapeID=shapeid;pointxy=newfloat[2][4];for(int i=0;i4;i++){pointxy[0][i]=xy[0][i];pointxy[1][i]=xy[1][i];}color=c;color1=c1;}}LockerBuffpublicclass LockerBuff {privateinthead,tail;//头尾指针

您可能关注的文档

文档评论(0)

cduutang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档