西工大计算机实习报告剖析.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机实习报告 趣味题 彩色的圆环: 分析图形可知,一共有n个同心圆,外面大圆n等分,然后从每个等分点作所有同心圆的两条切线。如果用极坐标表示,可以很容易求解切点,代码如下所示: n=10; %同心圆数量 m=40; %等分点数 R=1; %外圆半径 s=0:0.01*pi:2*pi; %控制圆的光滑程度的极坐标角度 t=0:2*pi/m:2*pi; %等分点极坐标角度 x0=R*cos(t);y0=R*sin(t); %等分点直角坐标 color=[b,r,c,g,m,y]; %画图颜色 lc=length(color); %颜色数量长度,超出后从头开始 for i=1:n %开始同心圆循环 r=R/n*i; %当前同心圆半径 a=acos(r/R); %切线与圆心线角度(弧度制) x1=r*cos(t-a);y1=r*sin(t-a); %任意等分点相对当前同心圆的第一个切点 x2=r*cos(t+a);y2=r*sin(t+a); %任意等分点相对当前同心圆的第二个切点 plot(r*cos(s),r*sin(s),color(mod(i,lc)+1));hold on; %画同心圆 for j=1:m %对每一个等分点循环 plot([x0(j),x1(j)],[y0(j),y1(j)],color(mod(i,lc)+1));hold on; %第一条切线 plot([x0(j),x2(j)],[y0(j),y2(j)],color(mod(i,lc)+1)); hold on; %第二条切线 end end axsi equal; %横纵坐标比例一致 实验绘图结果如下图所示: 算法题 求无向图的最短路径(Dijkstra算法): 实验原理分析、原理及代码如下所示(此实验代码不仅包含了实验所要求的求带权无向图最短路径,我还拓展了求有向、无向、带权有向图最短路径的内容): #includeiostream #includeiomanip using namespace std; #define wuqiong 0 class tu { public: int chazhao(int);//查找 void zjdingdian(int x);//增加顶点 tu(); void zengjia();//控制增加弧边和点 void zjhubian();//增加弧边 void bianli();//控制遍历 void shendu(int );//深度 void guangdu(int );//广度 void jindui(int );//进队列 int chudui();//出对了 bool pankong();//判空 //上面所有的函数与邻接矩阵有关 void zxgouzao();//初始化与最小路劲有关的东东 void zxshuchu();//求S中的最小路劲 private: int kind; //类图; int length; // 顶点个数 int *dingdian; //顶点 int *juzhen; //矩阵 int num;//最大顶点数目 int* visted;//访问情况 int *duilie;//模拟队列 int duichang;//队列长度 //上面所有的变量与邻接矩阵有关 int *s;//存放当前顶点 int slength;//当前顶点的长度 int* dist;//存放最小路劲 int* pre;//存放路劲; int* final;//存放顶点 }; tu::tu()//初始化图 { cout请输入图的种类1:有向.2:无向.3:带权有向.4:带权无向endl;//图的种类 cinkind; cout请输入图的顶点数目endl;//为顶点赋值 cinnum; dingdian = new int[num];//为顶点分配内存保存 juzhen = new int[num*num];//产生矩阵 if(kind==1||kind==2)//为无权图初始化矩阵 { for(int i =0;inum*num;i++) juzhen[i] = 0; } else//有权图初始化矩阵 { for(int i =0;inum*num;i++) juzhen[i] = wuqiong; } length = 0; } //增加顶点 void tu::zjdingdian(int x) { if(chazhao(x)!=-1||length==num) cou

文档评论(0)

三四五 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档