ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:85.63KB ,
资源ID:10868493      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10868493.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算计软件课设.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算计软件课设.docx

1、计算计软件课设计算机软件基础课程设计题 目: 任意两个顶点之间的最短路径 学 院: 信息与通信工程学院 专 业: 通信工程专业 题目任意两个顶点之间的最短路径(难度系数9)主要内容1、 假设西安、北京、沈阳、武汉4个城市构成小型交通网,4个城市表示图的4个顶点,他们构成了无向连通图。求任意两个城市之间的最短路径。2、 学会建立图的邻接表,理解图的基本概念。3、 学会编写DLL函数。4、 根据自己构建的连通图,利用Floyd算法求任意两个顶点之间的最短路径。5、 掌握C+编程环境的基本调试方法,熟练使用可视化C+编程工具。设计要求1、上交课程设计的书面材料,要求打印。包括课程设计任务书、主要内容

2、,源程序,对程序的功能进行客观评价,明确指出自己编写了哪些具体函数。2、上交电子版源程序,包括邻接表建立程序、Floyd算法。3、自己编写一个求素数函数,把它书写成一个动态链接库形式,并在主函数中调用它。尝试把自己编写的程序写成动态链接库和静态链接库形式(无需上交),并比较以下三种EXE文件的大小。A:调用静态链接库生成的EXE执行文件。B:调用动态链接库生成的EXE执行文件。C:直接调用函数生成的EXE执行文件。主要仪器设备计算机一台,安装Windows XP 操作系统、Microsoft Visual C+ 6.0、MSDN Library。主要参考文献1 侯俊杰. 深入浅出MFC(第二版

3、)M. 武汉:华中科技大学出版社, 2001.2 谭浩强. C程序设计(第二版)M. 北京:清华大学出版社, 1999.3 孟彩霞. 计算机软件基础M. 陕西:西安电子科技大学出版社, 2003.4 严蔚敏, 吴伟民. 数据结构M. 北京:清华大学出版社, 2005.课程设计进度计划(起止时间、工作内容)选做最短路径题目的同学,2人1组,1人做Dijkstra算法,1人做Floyd算法,整个课程设计共20学时,具体进度如下:4 学时 了解课题背景,选题,学习DLL,学习图的基本概念。4 学时 编写邻接表建立程序。4 学时 Floyd算法。4 学时 尝试利用Floyd算法求从某个源点到其余各顶点

4、的最短路径。4 学时 调试程序,答辩。课程设计开始日期第2周周一课程设计完成日期第2周周五课程设计实验室名称计算中心机房地 点健翔桥校区目录一、题目及要求 1二、邻接矩阵 2三、程序代码及实验结果 4六、设计总结22七、参考文献23一、 题目及要求课设题目:1、假设西安、北京、沈阳、武汉4个城市构成小型交通网,4个城市表示图的4个顶点,他们构成了无向连通图。求任意两个城市之间的最短路径。2、学会建立图的邻接表,理解图的基本概念。3、学会编写DLL函数。4、根据自己构建的连通图,利用Floyd算法求任意两个顶点之间的最短路径。5、掌握C+编程环境的基本调试方法,熟练使用可视化C+编程工具。课设要

5、求:1、上交课程设计的书面材料,要求打印。包括课程设计任务书、主要内容,源程序,对程序的功能进行客观评价,明确指出自己编写了哪些具体函数。2、上交电子版源程序,包括邻接表建立程序、Floyd算法。3、自己编写一个求素数函数,把它书写成一个动态链接库形式,并在主函数中调用它。尝试把自己编写的程序写成动态链接库和静态链接库形式(无需上交),并比较以下三种EXE文件的大小。A:调用静态链接库生成的EXE执行文件。B:调用动态链接库生成的EXE执行文件。C:直接调用函数生成的EXE执行文件。二、图的邻接矩阵表示法1.图的邻接矩阵表示法 在图的邻接矩阵表示法中: 用邻接矩阵表示顶点间的相邻关系 用一个顺

6、序表来存储顶点信息typedef struct char cma; /顶点信息 int data; /顶点序号vbe;typedef struct int n; /顶点个数 int e; /边个数 vbe vdma; /存储顶点 int vbmama; /存储边的权值mgraph;三、程序代码及实验结果#include stdio.h#include malloc.h#include stdlib.h#include string.h#define ma 4typedef struct char cma; /顶点信息 int data; /顶点序号vbe;typedef struct int

7、n; /顶点个数 int e; /边个数 vbe vdma; /存储顶点 int vbmama; /存储边的权值mgraph;mgraph mg,*g=&mg;mgraph *creat() int i,j,n,e,w; printf( * 输入顶点数及边数 *n); scanf(%d%d,&n,&e); g-n=n; g-e=e; printf( *按顺序输入顶点信息(比如武汉)*n); for(i=0;ivdi.c); g-vdi.data=i; printf(n%dn,g-vdi.data); printf(n%sn,g-vdi.c); printf( *请输入边的信息及权值 *n);

8、for(i=0;i3;i+) for(j=i+1;jvdi.c,g-vdj.c); scanf(%d,&w); printf(n); g-vbji=g-vbij=w; printf(n 得到的邻接矩阵如下:n); for(i=0;in;i+) for(j=0;jvbij); printf(n); printf( 创建完成n); return(g);void ppath(int pathmama,int i, int j) /向前递归查找路径 int k,h; static int m=0; int a20; k=pathij; if(k=-1) return; else am=k; m+; p

9、path(path,i,k); printf(%s-,g-vdi.cma); for(;m=0;m-) h=am; printf(%s-,g-vdh.cma); printf(%s,g-vdj.cma);void dispath(int Amama,int pathmama,int n) /输出最短路径 int i,j; char a; printf(n请输入所查两城市的代码); scanf(%d%d,&i,&j); if(i!=j) printf(n从%s到%s的最短路径为:,g-vdi.cma,g-vdj.cma); ppath(path,i,j); printf(n路径长度为:%dn,A

10、ij); printf(n继续查找请按y停止请按n); scanf(%c,&a); if(a=y|a=Y) dispath(A,path,n); else exit(0);void floyd(mgraph *m) /floyd算法 int Amama,pathmama; int i,j,k; for(i=0;in;i+) for(j=0;jn;j+) Aij=m-vbij; pathij=-1; for(k=0;kn;k+) for(i=0;in;i+) for(j=0;jn;j+) if(Aik!=0&Akj!=0&Aij(Aik+Akj) Aij=Aik+Akj; pathij=k; i

11、=m-n; dispath(A,path,i);int main() int a; for(;) int a; printf( *-*n); printf( * *n); printf( * 1.输入各城市间的距离 *n); printf( * *n); printf( * 2.查找两城市最短路径 *n); printf( * *n); printf( * 3.退 出 *n); printf( * *n); printf( *-*n); scanf(%d,&a); if(a=1) *creat(); else if(a=2) floyd(g); else exit(0); continue; return 0;实验结果输入1选2 五、设计心得这次课设也让我进一步的学习了C+的运用,之前的学习基本都是以写小程序为主,通过这次机会,进一步的练习了C+的运用。并且了解了关于数组作为函数参数互相传递之间的问题六、参考文献1 侯俊杰. 深入浅出MFC(第二版)M. 武汉:华中科技大学出版社, 2001.2 谭浩强. C程序设计(第二版)M. 北京:清华大学出版社, 1999.3 孟彩霞. 计算机软件基础M. 陕西:西安电子科技大学出版社, 2003.4 严蔚敏, 吴伟民. 数据结构M. 北京:清华大学出版社, 2005.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1