(店铺管理)超市选址问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2008/2009学年度第二学期
《数据结构》课程设计
说明书
题目:学校超市选址问题
班级:
姓名:
学号:
指导教师:
日期:2009-6-22~2009-6-26
计算机与信息工程系
1、问题描述
2、需求分析
3、开发环境
4、算法设计思想
5、流程图
6、课程设计过程中的关键算法
7、测试及结果
测试数据:
输入:单位个数、单位间的路径数、单位名称、相通两单位以及之间的距离、和各单位去超市的频率
输出:相通两单位之间的路径和他的长度
结果:
8、总结与收获
这次的程序软件基本上运行成功,可以简单的对已经输入的数据进行计算,求出超市的最佳选址单位。但是程序较小,功能不全面,只是理论,并未实践。
同时,这次数据结构课程设计让我们感触很深,使我们每个人都了解到的学习不应该只局限于我们的课本,因为课本上告诉我们的只是很有限的一部分,所涉及的面也是狭窄的。但是怎样在有限的范围内学习到无限的知识呢?那就要我们自己懂得竞争,懂得自学,懂得充分利用身边的任何资源。应该说,我们在这次的课程设计中学到了很多知识,这并不仅仅包括书本上的知识,更重要的是我们学会了如何去和别人交流,怎样用语言去实现自己的想法,在这个过程中使我懂得了勤学好问的重要性。
虽然在我的程序中有一部分是从网上搜索得来的,但我竭力将所获得的信息变成自己的资源。在我动手上机操作的同时,我在了解和看懂的基础上有所改变和创新,但是在我的程序软件中还有部分的不足,需要加以更新。同时,通过这次课程设计,我们都意识到了自己动手实践的弱势,特别是在编程方面,于是我们知道了计算机的实践操作是很重要的,只有通过上机编程才能充分的了解自己的不足。
相信通过这次的课程设计,更让我深刻意识到自己在学习中的弱点,同时也找到了克服这些弱
9、参考文献
10、指导教师评语
附件一:程序清单
#include
#include
#include
#include "malloc.h"
#include
#define TURE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -1
#define INF 32767
const int MAXVEX=100; typedef char Vextype; typedef struct
{
Vextype vexs[MAXVEX][MAXVEX]; //单位名称(顶点信息);
int adj[MAXVEX][MAXVEX]; //单位之间的相通情况(是否有边);
int dis[MAXVEX][MAXVEX]; //单位间距离(边的长度);
int f[MAXVEX]; //各单位去超市的频率;
int n; //顶点数和边数;
int e;
}Mgraph;
void CreatMgraph(Mgraph *G)
{
int i,j,k;
printf("请输入单位个数:\n");
scanf("%d",&(G->n));
printf("请输入单位间的路径数:\n");
scanf("%d",&(G->e));
printf("请输入单位名称:\n");
for(i=0;i
{
printf("请输入第%d个单位名称:\n",i);
scanf("%s",&G->vexs[i]);
}
for(i=0;i
for(j=0;j
{
G->adj[i][j]=0;
G->dis[i][j]=0;
G->f[i]=0;
}
for(k=0;k
{
printf("请输入相通的两单位 (输入格式:i,j):\n");
scanf("%d,%d",&i,&j);//在距离上体现为无向;
printf("请输入相同两个单位间的距离(格式:dis):\n");
scanf("%d",&(G->dis[i][j]));
G->adj[i][j]=1;
G->adj[j][i]=1;
G->dis[j][i]=G->dis[i][j];
}
for(k=0;k
{
printf("请输入第%d个单位去超市的相对频率:\n",k);
scanf("%d",&(G->f[k]));
}
for(i=0;i
for(j=0;j
{
G->dis[i][j]*=G->f[i]; //最终权值非完全无向;
if(G->adj[i][j]==0&&i!=j)
G->dis[i][j]=INF;
}
}
void Floyed(Mgraph *G) //带权有向图求最短路径floyd算法
{
int A[MAXVEX][MAXVEX],path[MAXVEX][MAXVEX];
int i,j,k,pre;
int count[MAXVEX];
for(i=0;i
{
A[i][j]=G->dis[i][j];
path[i][j]=-1;
count[i]=0;