Java课程设计--连通问题.docx

上传人:王** 文档编号:777435 上传时间:2024-01-14 格式:DOCX 页数:25 大小:373.04KB
下载 相关 举报
Java课程设计--连通问题.docx_第1页
第1页 / 共25页
Java课程设计--连通问题.docx_第2页
第2页 / 共25页
Java课程设计--连通问题.docx_第3页
第3页 / 共25页
Java课程设计--连通问题.docx_第4页
第4页 / 共25页
Java课程设计--连通问题.docx_第5页
第5页 / 共25页
Java课程设计--连通问题.docx_第6页
第6页 / 共25页
Java课程设计--连通问题.docx_第7页
第7页 / 共25页
Java课程设计--连通问题.docx_第8页
第8页 / 共25页
Java课程设计--连通问题.docx_第9页
第9页 / 共25页
Java课程设计--连通问题.docx_第10页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java课程设计--连通问题.docx》由会员分享,可在线阅读,更多相关《Java课程设计--连通问题.docx(25页珍藏版)》请在优知文库上搜索。

1、第1章课题概述11.1 课题的目的11.2 课题的要求11.2.1 文件格式的概述11.2.2 程序实现的功能要求2第2章课设概要32.1程序运行流程32.2BMP格式图片数据的存储结构32.3图片选择的合法性判断42.4各个操作算法的描述52.4.1 递归算法52.4.2 图的深度优先遍历算法5第3章程序图形界面的设计73.1主窗体的设计73.2.1主窗体的布局和设计73.2内部窗体的设计103.2.1连通求解窗体的设计103. 2.2使用说明窗体设计12第4章程序功能的实现153.1 BMP格式文件的读取154. 2.1bmp图片分辨率的读取154.2.2bmp图片连通信息的读取164.2

2、连通求解功能的实现17第5章程序的调试和问题的解决19第6章程序测试及分析20第7章总结22参考文献24第1章课题概述本次Java课程设计的题目是求解一个bmp格式图片中像素点互相连通的面积。1.1课题的目的连通问题在日常生活中非常常见,比如说互联网络、每个城市的道路连通都属于连通相关的问题,在本次课设中是求解一个bmp格式图片中像素点之间的连通,可以通过本程序来,采用数据结构中图的知识可以高效率直接计算出图片中连通分量的数量和每一个连通分量的面积,这样比人为判断连通问题更加简单、快捷。1.2课题的要求1.2.1文件格式的概述BMP文件格式,又称为BitmaP(位图)或是DIB(Device-

3、IndependentDevice,设备无关位图),是WincIc)WS系统中广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域的数据,因此成为我们取得RAW数据的重要来源。Windows的图形用户界面(graphicaluserinterfaces)也在它的内建图像子系统GDI中对BMP格式提供了支持。下面以UltraEdit为分析工具,用16进制打开bmp格式图片,其内容信息如下所示:-.h.*D:Vavain.bmpMO-BbOi唱6EOl0000000000003E00000028000040000000260000000100010000000000000000C3OE0

4、000C3OE000002000002000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01FFFFFFFFFFFFFF7FFFFFFFFFFFFF7F0000007FFFFFFF7FFFFFFF7FElFF7FFFFFFF7FFDFFFF7FFFFFFF?FCDFF7EOFFFFF7FDDFFFF7EEFFFFF7FDDFF7EOFFFFF7FDDFFFr7FFFFFFFITClFFOOOOOOOO7FFZOlTTFFFFFFFFFFTTFDFFFFFFFFFFC3FDFFFFFFFFFEFFDFFDFFFFFFFFFFDFFDF

5、FFFFFFFFFFFDFElFFFFFFFFFFCOOFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8OO3FFFFFFFFfffffff Bbbbffff. FFFFFFFr. Fffffff 3667FFFFFF377OF FFFFrrFFFFFFFFF7FFBFFFFFFFFFFFFFF7FFBFFFFFFFFFFFFFF6FFBFFFF8OOFEFFFFF6OO3FFFF7OO7FFCO7FFFFFFFF77007rrFFFFFTFFFFF?FFOOOOOO7FFFFFFFFFFFFFFFFFFFFFFFFF图1-1BInP格式详解图1.2.2程序实现的功能

6、要求程序的目标是:根据给定的黑白位图,分析出所有独立连通的群体,输出每个连通群体的面积。所谓面积,就是它含有的像素的个数。第2章课设概要1.1 程序运行流程根据课设的题目的要求,要实现bmp图片中像素点连通的数量和每个连通分量的面积,程序只需要选择本地的一张图片,不需要进行程序的输入和输出。退出系统使用说明图2-1整个程序各功能模块间的流程1.2 bmp格式图片数据的存储结构in.bmp文件如下:tl.bmp文件如下:BMP是常见的图像存储格式。与之相关的数据:(以下偏移均是从文件头开始)偏移:10字节,长度4字节:图像数据真正开始的位置。偏移:18字节,长度4字节:位图的宽度,单位是像素。偏

7、移:22字节,长度4字节:位图的高度,单位是像素。从图像数据开始处,每个像素用1个二进制位表示。从图片的底行开始,一行一行向上存储。Windows规定图像文件中一个扫描行所占的字节数必须是4字节的倍数,不足的位均以0填充。例如,图片宽度为45像素,实际上每行会占用8个字节。可以通过WinCIOWS自带的画图工具生成和编辑二进制图像。需要在“属性”中选择“黑白”,指定为二值图像。可能需要通过查看缩放自定义.把图像变大比例一些,更易于操作。图像的左下角为图像数据的开始位置。臼色对应1,黑色对应0我们可以定义:两个点距离如果小于2个像素,则认为这两个点连通。以一个点为中心的九宫格中,围绕它的8个点与

8、它都是连通的。 所示,左下角的点组成一个连通的群体;也就是说:如:tl.bmp而右上角的点都是孤立的。1.3 图片选择的合法性判断Bmp格式图片WindOWS系统最基本的图片信息存储格式,格式文件用固定的格式来存储每一张图片的信息,只有选择了正确图片,才能保证IO流对文件的正确读写,保证程序不会崩溃。如果用户选择一个不是bmp格式的文件,在读取文件信息的就会出现相应的异常,可以针对这种异常进行判断程序格式图片选择是否合法。2. 4各个操作算法的描述2.1.1 递归算法在定义一个过程或函数时出现调用本过程或本函数的成分,称之为若调用自身,称之为直接递归。若过程或函数P调用过程或函数q,而q又调用

9、P,称之为间接递归。如果一个递归过程或递归函数中递归调用语句是最后一条执行语句,则称这种递归调用为尾递归。图2-1递归算法示意图2.1.2 图的深度优先遍历算法图的深度优先遍历是连通图的一种遍历策略。其基本思想如下:设X是当前被访问顶点,在对X做过访问标记后,选择一条从X出发的未检测过的边(,y)。若发现顶点y已访问过,则重新选择另一条从X出发的未检测过的边,否则沿边(,y)到达未曾访问过的y,对y访问并将其标记为已访问过;然后从y开始搜索,直到搜索完从y出发的所有路径,即访问完所有从y出发可达的顶点之后,才回溯到顶点X,并且再选择一条从X出发的未检测过的边。上述过程直至从X出发的所有边都已检

10、测过为止。图的深度优先遍历示意图如下:图2-1图的深度优先搜索示意图第3章程序图形界面的设计3.1主窗体的设计3. 2.1主窗体的布局和设计程序的主窗体是一个JFrame顶级窗体,采用的是边界布局管理器(BorderLayout),为主窗体定义一个静态的桌面面板组件,用于存放所有的内部窗体,将其至于主窗体边界布局的中心部位,然后定义一个标签组件,设置内容为图片,将其置于桌面面板的最底部,显示主窗体的主界面图片。图3-1程序主界面设计主窗体的代码展示/*/privatestaticfinallongSerialVersionUID=IL;版本号publicstaticJDesktopPaneDE

11、SKTOPPANE=newJDesktopPaneO;/创建桌面面板JMcnuItemconnetion_item,exit_item,he1pitern,exit_system;/声明菜单项publicstaticMapmap=newHashMapString,JInternalFraineX);/创建集合,用来保存的所有的内部窗格MainJFrameOContainerc=this.getContentPane();SetDefaultcioseOperation(JFramc.EXITONCLOSE);setSize(780,600);Imageiconicon=CreateIcon.g

12、etIcon( return菜单栏image,jpg*);if(icon.gctIconWidth()=-1)/当没有读取到图片的时候JOptionPane.ShowMessageDialog(this,图片加载失败,头图像设置失败!n请将images文件夹放置至D盘下再重新运行!);System,exit(-1);elsethis,seticonimage(icon,getImage();/在屏幕中间显示顶级窗体Toolkittoolkit=Toolkit.getDefaultToolkit();DimensionScreenSize=toolkit.getScreenSize();intx

13、=(screenSize.width-getSize().width)/2;inty=(screenSize.height-getSize().height)/2;SetLocation(x,y);SetResizable(false);/设置窗口不可改变大小SetTitIe(连通问题);JMcnuBarjmb=null;jmb=CreateJMcnuBar();SetJMenuBar(jmb);/设置菜单栏/设置背景图片标签JLabellabel=newJLabel();icon=CreateIcon.getIcon(z,back.jpg);if(icon.getIconWidth()=-1

14、)(JOptionPane.ShowMessageDialog(this,背景图片加载失败,窗体打开失败!);System,exit(-1);elselabel.setBounds(0,0,icon.getIconWidth(),icon.getlconHeight();label,setlcon(icon);)/向面板中添加组件DESKTOP_PANE.add(label,newInteger(Integer.MIN,VALUE);c.add(DESKTOP_PANE,BorderLayout.CENTER);setVisible(true);/设置窗体可见)*创建菜单栏*/privateJMenuBarCreateJMenuBar()JMcnuBarmcnuBar=newJMenuBar();JMenuopen=newJMenu();open,seticon(CreateIcon.getlcon(*open.jpg);/打开Connetionitem=newJM

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 数据结构与算法

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!