欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:777435       资源大小:373.04KB        全文页数:25页
    • 资源格式: DOCX        下载积分:7金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要7金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    第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连通求解功能的实现17第5章程序的调试和问题的解决19第6章程序测试及分析20第7章总结22参考文献24第1章课题概述本次Java课程设计的题目是求解一个bmp格式图片中像素点互相连通的面积。1.1课题的目的连通问题在日常生活中非常常见,比如说互联网络、每个城市的道路连通都属于连通相关的问题,在本次课设中是求解一个bmp格式图片中像素点之间的连通,可以通过本程序来,采用数据结构中图的知识可以高效率直接计算出图片中连通分量的数量和每一个连通分量的面积,这样比人为判断连通问题更加简单、快捷。1.2课题的要求1.2.1文件格式的概述BMP文件格式,又称为BitmaP(位图)或是DIB(Device-IndependentDevice,设备无关位图),是WincIc)WS系统中广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域的数据,因此成为我们取得RAW数据的重要来源。Windows的图形用户界面(graphicaluserinterfaces)也在它的内建图像子系统GDI中对BMP格式提供了支持。下面以UltraEdit为分析工具,用16进制打开bmp格式图片,其内容信息如下所示:-.h.*D:Vavain.bmpMO-BbOi唱6EOl0000000000003E00000028000040000000260000000100010000000000000000C3OE0000C3OE000002000002000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01FFFFFFFFFFFFFF7FFFFFFFFFFFFF7F0000007FFFFFFF7FFFFFFF7FElFF7FFFFFFF7FFDFFFF7FFFFFFF?FCDFF7EOFFFFF7FDDFFFF7EEFFFFF7FDDFF7EOFFFFF7FDDFFFr7FFFFFFFITClFFOOOOOOOO7FFZOlTTFFFFFFFFFFTTFDFFFFFFFFFFC3FDFFFFFFFFFEFFDFFDFFFFFFFFFFDFFDFFFFFFFFFFFFDFElFFFFFFFFFFCOOFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8OO3FFFFFFFFfffffff Bbbbffff. FFFFFFFr. Fffffff 3667FFFFFF377OF FFFFrrFFFFFFFFF7FFBFFFFFFFFFFFFFF7FFBFFFFFFFFFFFFFF6FFBFFFF8OOFEFFFFF6OO3FFFF7OO7FFCO7FFFFFFFF77007rrFFFFFTFFFFF?FFOOOOOO7FFFFFFFFFFFFFFFFFFFFFFFFF图1-1BInP格式详解图1.2.2程序实现的功能要求程序的目标是:根据给定的黑白位图,分析出所有独立连通的群体,输出每个连通群体的面积。所谓面积,就是它含有的像素的个数。第2章课设概要1.1 程序运行流程根据课设的题目的要求,要实现bmp图片中像素点连通的数量和每个连通分量的面积,程序只需要选择本地的一张图片,不需要进行程序的输入和输出。退出系统使用说明图2-1整个程序各功能模块间的流程1.2 bmp格式图片数据的存储结构in.bmp文件如下:tl.bmp文件如下:BMP是常见的图像存储格式。与之相关的数据:(以下偏移均是从文件头开始)偏移:10字节,长度4字节:图像数据真正开始的位置。偏移:18字节,长度4字节:位图的宽度,单位是像素。偏移:22字节,长度4字节:位图的高度,单位是像素。从图像数据开始处,每个像素用1个二进制位表示。从图片的底行开始,一行一行向上存储。Windows规定图像文件中一个扫描行所占的字节数必须是4字节的倍数,不足的位均以0填充。例如,图片宽度为45像素,实际上每行会占用8个字节。可以通过WinCIOWS自带的画图工具生成和编辑二进制图像。需要在“属性”中选择“黑白”,指定为二值图像。可能需要通过查看缩放自定义.把图像变大比例一些,更易于操作。图像的左下角为图像数据的开始位置。臼色对应1,黑色对应0我们可以定义:两个点距离如果小于2个像素,则认为这两个点连通。以一个点为中心的九宫格中,围绕它的8个点与它都是连通的。 所示,左下角的点组成一个连通的群体;也就是说:如:tl.bmp而右上角的点都是孤立的。1.3 图片选择的合法性判断Bmp格式图片WindOWS系统最基本的图片信息存储格式,格式文件用固定的格式来存储每一张图片的信息,只有选择了正确图片,才能保证IO流对文件的正确读写,保证程序不会崩溃。如果用户选择一个不是bmp格式的文件,在读取文件信息的就会出现相应的异常,可以针对这种异常进行判断程序格式图片选择是否合法。2. 4各个操作算法的描述2.1.1 递归算法在定义一个过程或函数时出现调用本过程或本函数的成分,称之为"°若调用自身,称之为直接递归。若过程或函数P调用过程或函数q,而q又调用P,称之为间接递归。如果一个递归过程或递归函数中递归调用语句是最后一条执行语句,则称这种递归调用为尾递归。图2-1递归算法示意图2.1.2 图的深度优先遍历算法图的深度优先遍历是连通图的一种遍历策略。其基本思想如下:设X是当前被访问顶点,在对X做过访问标记后,选择一条从X出发的未检测过的边(,y)。若发现顶点y已访问过,则重新选择另一条从X出发的未检测过的边,否则沿边(,y)到达未曾访问过的y,对y访问并将其标记为已访问过;然后从y开始搜索,直到搜索完从y出发的所有路径,即访问完所有从y出发可达的顶点之后,才回溯到顶点X,并且再选择一条从X出发的未检测过的边。上述过程直至从X出发的所有边都已检测过为止。图的深度优先遍历示意图如下:图2-1图的深度优先搜索示意图第3章程序图形界面的设计3.1主窗体的设计3. 2.1主窗体的布局和设计程序的主窗体是一个JFrame顶级窗体,采用的是边界布局管理器(BorderLayout),为主窗体定义一个静态的桌面面板组件,用于存放所有的内部窗体,将其至于主窗体边界布局的中心部位,然后定义一个标签组件,设置内容为图片,将其置于桌面面板的最底部,显示主窗体的主界面图片。图3-1程序主界面设计主窗体的代码展示/*/privatestaticfinallongSerialVersionUID=IL;版本号publicstaticJDesktopPaneDESKTOPPANE=newJDesktopPaneO;/创建桌面面板JMcnuItemconnetion_item,exit_item,he1pitern,exit_system;/声明菜单项publicstaticMap<String,JInternalFramc>map=newHashMap<String,JInternalFraineX);/创建集合,用来保存的所有的内部窗格MainJFrameOContainerc=this.getContentPane();SetDefaultcioseOperation(JFramc.EXITONCLOSE);setSize(780,600);Imageiconicon=CreateIcon.getIcon( ©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=(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)(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

    注意事项

    本文(Java课程设计--连通问题.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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

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

    收起
    展开