计算计软件课设Word格式文档下载.docx
- 文档编号:6833683
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:12
- 大小:85.63KB
计算计软件课设Word格式文档下载.docx
《计算计软件课设Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算计软件课设Word格式文档下载.docx(12页珍藏版)》请在冰点文库上搜索。
2、上交电子版源程序,包括邻接表建立程序、Floyd算法。
3、自己编写一个求素数函数,把它书写成一个动态链接库形式,并在主函数中调用它。
尝试把自己编写的程序写成动态链接库和静态链接库形式(无需上交),并比较以下三种EXE文件的大小。
A:
调用静态链接库生成的EXE执行文件。
B:
调用动态链接库生成的EXE执行文件。
C:
直接调用函数生成的EXE执行文件。
仪器
设备
计算机一台,安装WindowsXP操作系统、MicrosoftVisualC++6.0、MSDNLibrary。
参考
文献
[1]侯俊杰.深入浅出MFC(第二版)[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学时调试程序,答辩。
课程设计开始日期
第2周周一
课程设计完成日期
第2周周五
课程设计实验室名称
计算中心机房
地点
健翔桥校区
目录
一、题目及要求……………………………………………1
二、邻接矩阵………………………………………………2
三、程序代码及实验结果…………………………………4
六、设计总结………………………………………………22
七、参考文献………………………………………………23
一、题目及要求
课设题目:
1、假设西安、北京、沈阳、武汉4个城市构成小型交通网,4个城市表示图的4个顶点,他们构成了无向连通图。
2、学会建立图的邻接表,理解图的基本概念。
3、学会编写DLL函数。
4、根据自己构建的连通图,利用Floyd算法求任意两个顶点之间的最短路径。
5、掌握C++编程环境的基本调试方法,熟练使用可视化C++编程工具。
课设要求:
二、图的邻接矩阵表示法
1.图的邻接矩阵表示法
在图的邻接矩阵表示法中:
①用邻接矩阵表示顶点间的相邻关系
②用一个顺序表来存储顶点信息
typedefstruct
{
charc[ma];
//顶点信息
intdata;
//顶点序号
}vbe;
intn;
//顶点个数
inte;
//边个数
vbevd[ma];
//存储顶点
intvb[ma][ma];
//存储边的权值
}mgraph;
三、程序代码及实验结果
#include"
stdio.h"
malloc.h"
stdlib.h"
string.h"
#definema4
mgraphmg,*g=&
mg;
mgraph*creat()
inti,j,n,e,w;
printf("
********输入顶点数及边数********\n"
);
scanf("
%d%d"
&
n,&
e);
g->
n=n;
e=e;
********按顺序输入顶点信息(比如武汉)********\n"
for(i=0;
i<
n;
i++)
{
scanf("
%s"
g->
vd[i].c);
g->
vd[i].data=i;
printf("
\n%d\n"
vd[i].data);
\n%s\n"
}
********请输入边的信息及权值********\n"
3;
for(j=i+1;
j<
=3;
j++)
{
printf("
%s到%s的距离为:
"
vd[i].c,g->
vd[j].c);
scanf("
%d"
w);
\n"
g->
vb[j][i]=g->
vb[i][j]=w;
}
\n得到的邻接矩阵如下:
for(j=0;
%d\t"
vb[i][j]);
创建完成\n"
return(g);
}
voidppath(intpath[ma][ma],inti,intj)//向前递归查找路径
intk,h;
staticintm=0;
inta[20];
k=path[i][j];
if(k==-1)
return;
else
a[m]=k;
m++;
ppath(path,i,k);
%s->
vd[i].c[ma]);
for(;
m>
=0;
m--)
h=a[m];
vd[h].c[ma]);
vd[j].c[ma]);
voiddispath(intA[ma][ma],intpath[ma][ma],intn)//输出最短路径
inti,j;
chara;
\n请输入所查两城市的代码"
i,&
j);
if(i!
=j)
\n从%s到%s的最短路径为:
vd[i].c[ma],g->
ppath(path,i,j);
\n路径长度为:
%d\n"
A[i][j]);
\n继续查找请按y停止请按n"
%c"
a);
if(a=='
y'
||a=='
Y'
)
dispath(A,path,n);
exit(0);
voidfloyd(mgraph*m)//floyd算法
intA[ma][ma],path[ma][ma];
inti,j,k;
m->
A[i][j]=m->
vb[i][j];
path[i][j]=-1;
for(k=0;
k<
k++)
for(i=0;
for(j=0;
{
if(A[i][k]!
=0&
&
A[k][j]!
A[i][j]>
(A[i][k]+A[k][j]))
{
A[i][j]=A[i][k]+A[k][j];
path[i][j]=k;
}
}
i=m->
dispath(A,path,i);
intmain()
inta;
;
inta;
*-----------------------------------------------------------*\n"
**\n"
*1......输入各城市间的距离*\n"
*2......查找两城市最短路径*\n"
*3......退出*\n"
if(a==1)
*creat();
elseif(a==2)
floyd(g);
else
exit(0);
continue;
return0;
实验结果
输入1
选2
五、设计心得
这次课设也让我进一步的学习了C++的运用,之前的学习基本都是以写小程序为主,通过这次机会,进一步的练习了C++的运用。
并且了解了关于数组作为函数参数互相传递之间的问题
六、参考文献
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算 软件