专业实训1期末报告_第1页
专业实训1期末报告_第2页
专业实训1期末报告_第3页
专业实训1期末报告_第4页
专业实训1期末报告_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云南大学软件学院专业实训报告 Major Practice Report School of Software, Yunnan University 成 绩 序号 学号 姓名 成绩 1 20101120093 蒋丹妮 2 20101120288 张夕璞 3 20101120304 马通 4 20101120161 张正 学 期: 2012学年春季学期 课程名称: 专业实训(1) 任课教师: 李 劲 小 组 长: 蒋丹妮 联系电话:电子邮件: 359882359 Major Practice Report School of Software, Yunnan University. (2010)2 目录 一、 成绩考核表-3 二、 小组分工明细表-7 三、 项目一-8 3.1摘要、问题描述-8 3.2设计 -9 3.3测试结果及小结-11 3.4代码 -12 四、 项目二 4.1摘要、问题描述-16 4.2设计 -17 4.3测试结果及小结- 4.4代码 - 五、 项目三 5.1摘要、问题描述-8 5.2设计 -9 5.3测试结果及小结- 5.4代码 - 专业实训报告 云南大学软件学院 (2012)3 云南大学软件学院 2012 学年 春季 学期 专业实训(1)成绩考核表 (组内每位同学一份) 课程名称: 专业实训(1) 年级: 2010 级 专业: 数字媒体技术 学号: 20101120093 姓名: 蒋丹妮 本人承担角色: 组长 指标内容 分值 指标内涵及评估标准 得分 解决的关键 技术问题 10 选的准,范围合 适,重点突出 基本上选准 只抓住了部分关 键问题 没有抓住关键 问题 技术路线的 可行程度 10 合理可行,具体 且有创新 合理可行,具体 基本合理可行 不够合理或不 够具体 小组成员的 工作量(每 个人分别打 分) 15 高出平均要求工作量的 15%以上 高出平均要求工作量 达到平均要求工作量 低于平均要求的工作量 项目完成的 技术水平 (个人) 15 难度很大,超出 一般本科生要求 水平 难度较大,达到 本科毕业论文水 平 难度一般,达到 普通课程要求水 平 难度小,很容 易实现 达到预期目 标的程度 10 完全达到 基本达到 无法预见 未能达到 团队合作精 神 10 很强的团队合作 精神 合作情况良好 合作情况一般 合作不好,各 自为政 5 报告非常完整 报告比较完整 完整程度一般 报告不完整 5 逻辑结构清晰 逻辑组织较好 逻辑组织一般 逻辑不清 5 内容非常丰富 内容较丰富 内容一般 内容欠缺 5 文字表达非常好 文字表达较好 文字表达一般 文字表达差,意思不明了 5 图表制作非常专业化 图件制作良好 图件制作一般 图件制作效果差 报告撰写质 量 (30 分) 5 整体效果很好 整体效果良好 整体效果一般 整体效果差 综合得分: (满分 100 分) 指导教师:李 劲 2012 年 7 月 1 日 Major Practice Report School of Software, Yunnan University. (2010)4 云南大学软件学院 2012 学年 春季 学期 专业实训(1)成绩考核表 (组内每位同学一份) 课程名称: 专业实训(1) 年级: 2010 级 专业: 数字媒体技术 学号: 20101120288 姓名: 张夕璞 本人承担角色: 组员 指标内容 分值 指标内涵及评估标准 得分 解决的关键 技术问题 10 选的准,范围合 适,重点突出 基本上选准 只抓住了部分关 键问题 没有抓住关键 问题 技术路线的 可行程度 10 合理可行,具体 且有创新 合理可行,具体 基本合理可行 不够合理或不 够具体 小组成员的 工作量(每 个人分别打 分) 15 高出平均要求工作量的 15%以上 高出平均要求工作量 达到平均要求工作量 低于平均要求的工作量 项目完成的 技术水平 (个人) 15 难度很大,超出 一般本科生要求 水平 难度较大,达到 本科毕业论文水 平 难度一般,达到 普通课程要求水 平 难度小,很容 易实现 达到预期目 标的程度 10 完全达到 基本达到 无法预见 未能达到 团队合作精 神 10 很强的团队合作 精神 合作情况良好 合作情况一般 合作不好,各 自为政 5 报告非常完整 报告比较完整 完整程度一般 报告不完整 5 逻辑结构清晰 逻辑组织较好 逻辑组织一般 逻辑不清 5 内容非常丰富 内容较丰富 内容一般 内容欠缺 5 文字表达非常好 文字表达较好 文字表达一般 文字表达差,意思不明了 5 图表制作非常专业化 图件制作良好 图件制作一般 图件制作效果差 报告撰写质 量 (30 分) 5 整体效果很好 整体效果良好 整体效果一般 整体效果差 综合得分: (满分 100 分) 指导教师:李 劲 2012 年 7 月 1 日 专业实训报告 云南大学软件学院 (2012)5 云南大学软件学院 2012 学年 春季 学期 专业实训(1)成绩考核表 (组内每位同学一份) 课程名称: 专业实训(1) 年级: 2010 级 专业: 数字媒体技术 学号: 20101120304 姓名: 马通 本人承担角色: 组员 指标内容 分值 指标内涵及评估标准 得分 解决的关键 技术问题 10 选的准,范围合 适,重点突出 基本上选准 只抓住了部分关 键问题 没有抓住关键 问题 技术路线的 可行程度 10 合理可行,具体 且有创新 合理可行,具体 基本合理可行 不够合理或不 够具体 小组成员的 工作量(每 个人分别打 分) 15 高出平均要求工作量的 15%以上 高出平均要求工作量 达到平均要求工作量 低于平均要求的工作量 项目完成的 技术水平 (个人) 15 难度很大,超出 一般本科生要求 水平 难度较大,达到 本科毕业论文水 平 难度一般,达到 普通课程要求水 平 难度小,很容 易实现 达到预期目 标的程度 10 完全达到 基本达到 无法预见 未能达到 团队合作精 神 10 很强的团队合作 精神 合作情况良好 合作情况一般 合作不好,各 自为政 5 报告非常完整 报告比较完整 完整程度一般 报告不完整 5 逻辑结构清晰 逻辑组织较好 逻辑组织一般 逻辑不清 5 内容非常丰富 内容较丰富 内容一般 内容欠缺 5 文字表达非常好 文字表达较好 文字表达一般 文字表达差,意思不明了 5 图表制作非常专业化 图件制作良好 图件制作一般 图件制作效果差 报告撰写质 量 (30 分) 5 整体效果很好 整体效果良好 整体效果一般 整体效果差 综合得分: (满分 100 分) 指导教师:李 劲 2012 年 7 月 1 日 Major Practice Report School of Software, Yunnan University. (2010)6 云南大学软件学院 2012 学年 春季 学期 专业实训(1)成绩考核表 (组内每位同学一份) 课程名称: 专业实训(1) 年级: 2010 级 专业: 数字媒体技术 学号: 20101120161 姓名: 张正 本人承担角色: 组员 指标内容 分值 指标内涵及评估标准 得分 解决的关键 技术问题 10 选的准,范围合 适,重点突出 基本上选准 只抓住了部分关 键问题 没有抓住关键 问题 技术路线的 可行程度 10 合理可行,具体 且有创新 合理可行,具体 基本合理可行 不够合理或不 够具体 小组成员的 工作量(每 个人分别打 分) 15 高出平均要求工作量的 15%以上 高出平均要求工作量 达到平均要求工作量 低于平均要求的工作量 项目完成的 技术水平 (个人) 15 难度很大,超出 一般本科生要求 水平 难度较大,达到 本科毕业论文水 平 难度一般,达到 普通课程要求水 平 难度小,很容 易实现 达到预期目 标的程度 10 完全达到 基本达到 无法预见 未能达到 团队合作精 神 10 很强的团队合作 精神 合作情况良好 合作情况一般 合作不好,各 自为政 5 报告非常完整 报告比较完整 完整程度一般 报告不完整 5 逻辑结构清晰 逻辑组织较好 逻辑组织一般 逻辑不清 5 内容非常丰富 内容较丰富 内容一般 内容欠缺 5 文字表达非常好 文字表达较好 文字表达一般 文字表达差,意思不明了 5 图表制作非常专业化 图件制作良好 图件制作一般 图件制作效果差 报告撰写质 量 (30 分) 5 整体效果很好 整体效果良好 整体效果一般 整体效果差 综合得分: (满分 100 分) 指导教师:李 劲 2012 年 7 月 1 日 专业实训报告 云南大学软件学院 (2012)7 小组分工明细表: 小组人员及职务 项目一 (Mandelbort 集 合图像绘制) 项目二 (L-system 绘制) 项目三 (逾渗检测) 蒋丹妮(组长) 图像的放大以及 协调分配其它工 作 Lstate类的编写 以及文档的编写 PandE类以及 percolation类的 编写 张夕璞(组员) Draw_Mandelbrot 类的编写及书写 文档 L-system类的编 写 临界渗漏概率任 务的实现 马通(组员) 复数类的编写及 文档修改 Draw类的编写 边类和点类及文 档的编写 张正(组员) Main 函数的编写 和测试 Main 函数的编写 和测试 项目测试和截图 Major Practice Report School of Software, Yunnan University. (2010)8 项目一 Mandelbrot 集在复平面上的绘制与放大 中文摘要 本次项目用 JAVA实现了 Mandelbrot集在复平面上的绘制功能,并且用户 可以通过用鼠标点击绘制平面上的点对 Mandelbrot集的图像进行局部放大。在 复平面上绘制出复数点阵集合,自行设置点的采样数,判定各个点是否满足条 件公式,若满足条件则绘制为黑色,若不满足则绘制点的颜色随着迭代次数的 变化而变化,最终将呈现出五彩缤纷的图案效果。用户点击绘制平面上的点, 程序立即对鼠标点击的区域进行放大,即缩小显示区域,提高单位面积内的采 样数,展现图像更多细节。通过记录鼠标点击的坐标中心位置,推算出其他正 方形四点坐标,进行与以前窗口相同大小的绘制。 英文摘要 The Mandelbrot set is a mathematical set of points whose boundary is a distinctive and easily recognizable two-dimensional fractal shape. The set is closely related to Julia sets (which include similarly complex shapes), and is named after the mathematician Benot Mandelbrot, who studied and popularized it. More precisely, the Mandelbrot set is the set of values of c in the complex plane for which the orbit of 0 under iteration of the complex quadratic polynomial zn+1 = zn2 + c remains bounded. That is, a complex number c is part of the Mandelbrot set if, when starting with z0 = 0 and applying the iteration repeatedly, the absolute value of zn remains bounded however large n gets. This project is to draw image which is based on the Mandelbrot set by using the JAVA language, and users can use the mouse to enlarge image of the Mandelbrot set. Draw the lattice collection on the complex plane depended on the number of samples set by user, then determine whether each point meets the condition: .If the point meet the condition, set it black, if not set it other color. 第一、 问题描述 曼德勃罗特集是人类有史以来做出的最奇异,最瑰丽的几何图形.曾被称为 “上帝的指纹” 。 1这个点集均出自公式:Zn+1=(Zn)2+C,这是一个迭代公式,式 中的变量都是复数.通过这个迭代公式可以生成 Mandelbrot集的图像。 专业实训报告 云南大学软件学院 (2012)9 本次项目的内容就是用 JAVA实现 Mandelbrot集的图像的绘制,并且用户 可以通过鼠标进行对 Mandelbrot集的图像的局部放大。在复平面上绘制出复数 点阵集合,自行设置点的采样数,判定各个点是否满足条件公式,若满足条件 则绘制为黑色,若不满足则绘制点的颜色根据迭代次数的大小进行划分,并根 据用户用鼠标点击的区域进行放大(所谓的放大就是将鼠标点击的坐标中心位 置记录下,并根据坐标推算出其他正方形四点坐标,进行与以前窗口相同大小 的绘制) 。 1 摘自百度百科 第二、 概要设计 (一) 主程序模块 main函数中包含了三个模块: 1. 设置了坐标 X,Y的范围以及他们之间的刻度:cpDraw.setX(xl, xh, ss); cpDraw.setY(yl, yh, ss); 2. 定义了 first为 Draw_Mandelbrot类的类型函数,传递的参数为 xl, xh, yl, yh, s, Max 3. 定义了 a为 mouse_Enlarge类的类型函数,传递的参数为:xl, xh, yl, yh,ss,s, Max (二) 各子程序模块 1. Complex类中主要定义了复数的加减乘运算: a) 返回值为复数、传递的参数为复数的 Cplus函数定义了复数的相加运算; b) 同样的情况下定义了 Cmilus复数相减运算,Cmult 复数相乘运算; c) 定义了 I_Mandelbrot这个函数目的为了返回迭代次数,方便调用。 2. Draw_Mandelbrot类中定义了 Draw_Mandelbrot 函数 a) 在 Draw_Mandelbrot函数中调用了 Copmlex类中的 I_Mandelbrot函数 求得了迭代次数; b) 判定迭代次数是否与最大迭代数相等,然后根据迭代次数进行颜色的判 定。 3. mouse_Enlarge类中 a) 确定了鼠标点击的 XY坐标,mx,my; b) 求得放大后正方形四点的坐标后调用了 cpDrawsetX();cpDrawsetY(); 重新进行了 X,Y坐标轴的定义; c) 定义了 then为 Draw_Mandelbrot类的类型函数来再次绘制图形。 Major Practice Report School of Software, Yunnan University. (2010)10 第三、 详细设计 (一) ADT 抽象数据类型 complex 1. 数据对象 构建一个复数类 2. 数据关系 两个操作数 real和 imag具有序偶关系,real 表示实部, imag表示虚部。 3. 基本操作 a) Complex cmilus(Complex rhs) 操作结果:实现两个复数的减法。 b) Complex cplus(Complex rhs) 操作结果:实现两个复数加法,并输出结果。 c) public Complex cmult(Complex rhs) 操作结果:实现两个复数乘法,并输出结果。 d) int I_Mandelbrot(int maxIter) 操作结果:判定复数点是否属于 Mandelbrot集,并输出最 大迭代次数。 (二) 定义复数类以及内部运算操作: 包括了复数的初始化,加法,减法,乘法,以及求模运算, Mandelbrot集合的判定函数,其返回值为整型的迭代次数。 1. 进行了复数的初始化; 2. 定义了复数的求模运算调用了Math.hypot; 3. 定义了复数的相加运算,由于传递的参数是一个复数,故复数的相加 运算就是第一个复数的实部加第二个复数的实部,第一个复数的虚部 加第二个复数的虚部,最后把相加的实部虚部返回到新的复数z中; 4. 减法同加法类似; 5. 乘法运算也是通过找准第一个复数与第二个复数的实部虚部 (this.real, this.imag)进行了复数z模大小的判定,看起是否小于2; 6. z=z.cmult(z).cplus(this);此步是进行 条件的判定。 (三) 绘制 Mandelbrot集合的函数实现(即 Draw_Mandelbrot类的定义) 1. 在main函数中把采样数S,X,Y坐标范围值以及迭代次数传递进来,然 后通过for循环进行采样点的绘制: for(int j=0;jx1+(x2-x1)*0.5*0.1)/L系统的状态栈 double newX,newY,newL,newW,newTheta; public Lsystem(String o,Lstate p,double r) Ls=p; angle=r; 专业实训报告 云南大学软件学院 (2012)25 public void Forward() newX=Ls.X()+Ls.penLength()*Math.cos(Math.toRadians(Ls.theta(); newY=Ls.Y()+Ls.penLength()*Math.sin(Math.toRadians(Ls.theta(); cpDraw.setPenColor(Color.orange); cpDraw.setPenRadius(Ls.penWidth); cpDraw.Line(Ls.X(),Ls.Y(),newX,newY); newW=Ls.penWidth()-Ls.penWidth()*scale; newL=Ls.penLength()-Ls.penLength()*scale; Ls.setX(newX); Ls.setY(newY); Ls.setpenWidth(newW); Ls.setpenLength(newL);/定义F的具体操作过程 ; void pushS() Lstate nls=new Lstate(); nls.assign(Ls); SSK.push(nls); ; /定义压栈的操作 void popS() Ls.assign(SSK.pop(); ; /定义弹栈操作 void plusTheta() newTheta=Ls.theta()+angle; Ls.setTheta(newTheta);/定义+符号操作 ; void minusTheta() newTheta=Ls.theta()-angle; Ls.setTheta(newTheta); ; /定义-符号操作 = import java.awt.Color; import Ynu.Sei.cpLibrary.BASIC.cpDraw; import Ynu.Sei.cpLibrary.BASIC.cpRandom; public class Lstate /数据定义部分 double theta;/当前状态的绘制方向角 Major Practice Report School of Software, Yunnan University. (2010)26 double X;/当前状态的X坐标 double Y;/当前状态的Y坐标 Color pColor;/当前状态的画笔颜色 double penWidth;/当前状态的画笔粗细 double penLength;/当前状态的画笔长度 /数据定义及实现部分 public Lstate(double t,double x,double y,Color p,double penW,double penL) theta=t; X=x; Y=y; pColor=p; penWidth=penW; penLength=penL; /存储状态 public Lstate() theta=90; X=0; Y=-10; pColor=new Color(cpRandom.uniform(225),cpRandom.uniform(10),cpRandom.uniform(10); penWidth=0.001; penLength=0.3; /初始化状态 public double theta()return theta; public double X()return X; public double Y()return Y; public Color pColor()return pColor; public double penWidth()return penWidth; public double penLength()return penLength; public void assign(Lstate m) theta=m.theta(); X=m.X(); Y=m.Y(); pColor=m.pColor(); penWidth=m.penWidth(); penLength=m.penLength(); public void setTheta(double newTheta) 专业实训报告 云南大学软件学院 (2012)27 theta=newTheta; public void setX(double x) X=x; public void setY(double y) Y=y; public void setpenWidth(double penw) penWidth=penw; public void setpenLength(double penL) penLength=penL; = public class Draw public Draw(String change,Lsystem b) int len =change.length(); for( int i=0;i,通过调用 FIND操作判定元素 x,y是否在同一个集 合中; 第三, 通过 UNION操作将两个不相交的集合合并为一个集合。 1.主程序模块: 主程序中包含了三个模块 a) 提示用户进行输入。其中包括连接概率 P,点阵维数,显示连 通团还是判定两点连通,还是求出渗漏临界概率。 b) 定义 point为 Point类的类型,定义了 love为 PandE类的类型。 c) 进行各类的操作,point 中的 show操作,love 中的 link, Connectedjudge, DrawConnectedGroup,Judge_point。 d) 若用户要求显示连通团,则调用 point 和 love进行 Show,Link, connectejudge,DrawConnectGroup操作。 e) 若用户要求判定两点连通,则需要输入两点的 X,Y坐标,则调 用 point 和 love进行 Show,link, Connectejudge, DrawConnectGroup,Judge_point 操作,再进行两点的绘制。 f) 在求渗漏概率时,给定初始概率为 0,然后再开始进行判定 100 次的渗漏判定,假如在这一百次中渗漏的次数为 10,那么在此 概率下整张图发生渗漏的概率为 0.1,,然后再逐步增大概率 0.05,循环此步骤,然后对比在此概率下发生渗漏的概率,看 哪两个概率之间跳动幅度大,然后把从开始跳动大的后面的三 Major Practice Report School of Software, Yunnan University. (2010)30 次概率作平均作为临界概率。 2.子程序模块: 2.1 Point类: 参数为 n,接收用户输入的维数,在此类中定义了三个函数,一个是 SetToNum,把点的坐标转换为点的序号,一个是 NumToSet把点的序号转换成 坐标,还有一个 show函数用于设定画布 XY坐标的大小,并进行点阵的绘制。 2.1.1 SetToNum函数 用两个 for循环计算出了 n维点阵中点的序号并用 m表示,用 sets. x()= x 否则就绘制竖直边,返回值为 Point2D p=new Point2D(up,down); 2.2.2 CreatEdge函数 首先逐行遍历判定 Math.random() relation,ArrayList root,UFSet uf; Point2D xuou,int num,int length和四个函数。Relation 用 来存储边对应的两个点的关系,root 来存储每棵树的根节点,uf 来处理点阵 集合,生成所有等价关系,xuou 分别存储每个等价关系所包含的序偶对, num存储每个等价关系中包含的序偶对的个数, length 存储根的个数. 第一个是 link函数,它的函数接收参数为空,返回值为空。 第二个函数是 Connectedjudge接收参数为空,返回值为空,其意义是求 出每个根节点的数目,把序偶对最终表示成 Point2D类型的二维数组,行数 代表根节点的数目,也就是连通团的数目,列数代表在根节点内中各个节点 的数目,最终序偶表示成 xuoukn。 第三个函数是 DrawConnectedGroup函数,接收参数为空,返回值为空, 其目的是把所得的序偶对按不同的连通团用不同的颜色绘画出来,运用两个 for循环,由于 xuou数组为 Point2D类型,行数代表根节点数,列数代表根 节点中子节点的数目,xuou存储了一个 Point2D类型的两个点的序号, 故可用 Point2D p = pp.NumToSet(int)p0.x();表示点,其中 NumToSet是 把序号转换成坐标。 第四个函数是 Judge_point,它接收的参数为两个整型数,返回值为空, 目的是为判定两点是否连通,通过调用 uf.find来判定。 2.3.1 link函数 为了把按照用户输入的概率随机生成的边存入 relatiion这个动态数组 中,通过调用 Edge类中的 CreatEdge函数来实现。 2.3.2 Connectedjudge函数 定义了两个哈希函数 hs1,hs2分别存储所有点的序号和每棵树的根节点, 通过调用并查集抽象检测存储入 relation中的序偶,把他们连接在一起, 再通过调用 hs2=uf.root_elems_DisjointSubSets();来求出根节点并存入 hs2中,在把 hs2每个元素通过枚举器进行枚举,把他们存入 root数组,接 下来为 xuou申请空间,xuouk = new Point2Dnumk为每个根节点 都申请足够的空间来存储它们子节点的空间。然后再把各个子节点存入 xuou 中。 2.3.3 DrawConnectedGroup函数 为了表示序偶中所有点,运用了两个循环,外层循环为遍历每个根节点 序号,内层循环为遍历每个边,外层循环中定义了画笔的随机颜色,以及画 笔大小。内层循环把边画出来。 2.3.4 Judge_point函数 通过调用 uf.find来判断接收的两点是否连通,若连通输出:两点连通, 请看图中的两个突出红色圆点,若不连通,输出不连通。 2.4 percolation类 Major Practice Report School of Software, Yunnan University. (2010)32 类中参数 n,p,n 为二维点阵的维数,p 为输入的概率,内部的函数为 percolationjudge(),它接收的参数为空,返回值为整型,它功能是随即生 成一张 N维的图,判定该图是否发生渗漏,它调用了 Point类,PandE 类, 和 PandE类的函数 link与 Connectedjudge,用两个 for循环进行了连通判定。 第三、 详细设计 1.Point类的实现 类中定义的参数为 n,定义了三个函数,一个是 SetToNum,把点的坐标转 换为点的序号,一个是 NumToSet把点的序号转换成坐标,还有一个 show函 数用于设定画布 XY坐标的大小,并进行点阵的绘制。 Point(int n) this.n=n; int SetToNum(int x,int y) for(int i=0;i CreatEdge中 for (int t = 0; t relation = new ArrayList(); / 存储 Major Practice Report School of Software, Yunnan University. (2010)34 边对应的两个点的关系 ArrayList root = new ArrayList(); / 存储每棵 树的根节点 UFSet uf; / 处理点阵集合,生成所有等价关系 Point2D xuou; / 分别存储每个等价关系所包含的序偶对 int num; / 存储每个等价关系中包含的序偶对的个数 int length; /存储根的个数 void link() Edge e=new Edge(n); 定义 e 为 Edge类 relation=e.CreatEdge(p, n); 调用 Edge类中 CreatEdge函数 /按照用户输入的概率随机生成边 void Connectedjudge()中: for (int t = 0; t it = hs2.iterator(); / 枚举器 it,枚举 hs2中的点 while (it.hasNext() /是否有更多的元素 root.add(Integer) it.next(); / 将 hs2中的每个元素放到 root中,it 的类型为 Integer xuou = new Point2Dlength; / 二维数组 xuou的行数为 length num = new intlength; / 其每个位置对应着 xuou的一行,存储的元素代表着 xuou每一行的序偶对个 数 for (int z = 0; z CreatEdge(double p,int n) ArrayList arraylist = new ArrayList(); for (int t = 0; t relation = new ArrayList(); / 存储 边对应的两个点的关系 ArrayList root = new ArrayList(); / 存储每棵 树的根节点 UFSet uf; / 处理点阵集合,生成所有等价关系 Point2D xuou; / 分别存储每个等价关系所包含的序偶对 int num; / 存储每个等价关系中包含的序偶对的个数 int length;/存储根的个数 PandE(int n,double p) this.n=n; this.p=p; void link() Edge e=new Edge(n); relation=e.CreatEdge(p, n); /按照用户输入的概率随机生成边 void Connectedjudge() HashSet hs1 = new HashSet(); / 存储点阵中所 有点的序号 HashSet hs2 = new HashSet(); / 存储每棵树的 根节点 for (int i = 0; i (hs1); int l1 = relation.size();/生成随机边的个数 for (int t = 0; t it = hs2.iterator(); / 枚举器 it,枚举 hs2中 专业实训报告 云南大学软件学院 (2012)49 的点 while (it.hasNext() /是否有更多的元素 root.add(Integer) it.next(); / 将 hs2中的每个元素放到 root中,it 的类型为 Integer length = root.size(); xuou = new Point2Dlength; / 二维数组 xuou的行数为 length num = new intlength; / 其每个位置对应着 xuou的一行,存储的 元素代表着 xuou每一行的序偶对个数 / 下面的 for循环为求出每个集合所对应的序偶对(边)的个数 for (int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论