zoukankan      html  css  js  c++  java
  • 毕业设计——第三章 开发方法及系统实现(4)

     国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html

    内部邀请码:C8E245J (不写邀请码,没有现金送)
    国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------
    3.5 其他辅助操作类
    除了上述的三个比较重要的操作类外,完成整个系统操作,需要辅助功能操作类。
    3.5.1多媒体操作类CSoundPlay
    设计此类的目的是出于对使用者使用软件的体验出发的。在传统的软件使用过程中,除了多媒体播放器外,其他大部分软件总是“鸦雀无声”,而使用者疲倦的使用着各种软件,却都是千篇一律。音乐却可是使人放松,给人灵感,同时能使人心情舒畅,听听音乐可以唤醒人的潜意识,能更好的工作学习。因此,考虑到用户的良好的使用体验要求,设计了该类实现多媒体文件的播放功能。
    在此类中,实现了最基本的多媒体文件wav、mp3等常见的多媒体文件播放功能。该部分的实现主要由CSoundPlay类操作完成。
    CSoundPlay类的成员方法如下:
    表 3-7 CSoundPlay类的成员方法
    名称
    参数
    返回值
    说明
    CSoundPlay
     
     
    构造函数
    PlaySound
    string
     
    播放声音
    3.5.2图像导出类CMapExport
    综合前面的叙述,在选择使用MapObjects进行系统开发时,考虑到了其支持的文件对象的相对MapInfo多,而且,为了保存用户操作后的图像文件,必须对地图上的图形数据进行保存处理。该部分的工作是由CMapExport类来完成的。
    表格 2 CMapExport类的成员方法
    名称
    参数
    返回值
    说明
    CMapExport
     
     
    构造函数
    Init
     
     
    变量初始化
    Export
    mapType
     
    图像导出
    3.6 核心算法与相应关键技术详述
    3.6.1一点到所有点的最短路径    
    这里采用图论里最经典的Dijkstra[8]算法,只是每一段路经的长度都用正向阻力值和逆向阻力值计算。最短路径和最佳路径在算法上区分不大。只是阻力值确定的方式,但是需要特别注意的是,正向阻力值和逆向阻力值需要分别考虑。Dijkstra算法的基本思想如下:
    (1) 问题描述:设图G=(V,E),v0∈V,求从点V0出发到其他点的最短路径。
    (2) 算法描述:设图G 中有n个点,设置一个集合U,存放已经求出的最短路径的点。V-U是尚未确定最短路径的点集合,每个点对应一个距离值。集合U中点的距离值是从点V0到该点的最短路径长度,集合V-U中的点的距离值是从点V0到该点的只包含以集合U中点为中间点的最短路径长度。初始时,集合U中只有V0,点V0对应的距离值为0,集合V-U中点Vi的距离值为边(v0,vi)的权值(i=1,2,…,n-1),如果v0和vi无直接相连的边,则vi的距离值为∞,在集合V-U 中选择距离最小的点vmin加入集合U,然后对集合V-U中的各点的距离值进行修正。如果加入点vmin为中间点后,使v0到vi的距离值比原来的距离值更小,则修改vi的距离值。如此反复操作,直到从v0出发可以到达的所有点都在集合U中为止。
    (3) 算法实现:设置一个CMapControl类的数组p[n],存放点v0到其他各个点的最短路径及最短路径长度。设D(i,j)为点vi到点vj的距离。
    (a) 初始时,集合U中只有点V0,从点V0到其他点Vi(i=1,2,…,n-1)的最短路径长度为边(v0,vi)的长度。如果点v0和vi不是直接相连,则假设存在一条从v0到vi长度为无穷(小于0)的边。
    (b) 在集合V-U 中找出距离值最小的点vmin,将其加入到集合U,从点vo到vmin的最短路径长度就是vmin的距离值,
    (c) 调整集合V-U中点的距离之。如果将新加入的点vmin作为中间点后,vo到vi(vi∈V-U)的距离值更小,则应修改vi的距离值。即:如果p[i].dLength〉p[min].dLength+D(min,i),则将点vi的距离值改为p[min].dLeng+D(min),并将路径上vi的前趋点改为vmin,即:p[i].nPreNode=min
    (d) 重复(b)、(c)操作,直到集合V-U中的点都加入集合U中为止。
    (4) 图形描述:
    表格 3 Dijkstra 举例数据[6]
    管段
    权值
    0-1
    0.41
    1-2
    0.51
    2-3
    0.50
    4-3
    0.36
    3-5
    0.38
    3-0
    0.45
    0-5
    0.29
    5-4
    0.21
    1-4
    0.32
    4-2
    0.32
    5-1
    0.29
     
     
     
    Disjkstra
     
     
     
  • 相关阅读:
    poj 2377 Bad Cowtractors (最‘大’生成树)
    POJ 3626 Mud Puddles (BFS)
    hdu 3367 Pseudoforest (krusual)
    hdu 1548 A strange lift (bfs)
    poj 1860 Currency Exchange (Bellman_Ford)
    poj 1005 I Think I Need a Houseboat
    poj 3625 Building Roads (最小生成树)
    zoj 1586 QS Network (最小生成树)
    poj 1679 The Unique MST (最小生成树)
    .NET中书写XML的一种简单方法
  • 原文地址:https://www.cnblogs.com/AloneSword/p/2237594.html
Copyright © 2011-2022 走看看