全国交通咨询模拟
第四章 详细设计
4.1.主函数的详细设计
int main()
{ALGraph G; int i;
printf(\ printf(\学院: **\ printf(\专业: **\ printf(\班级: **\ printf(\姓名: **\ printf(\学号: **\
printf(\printf(\
printf(\请按任何键以继续??\ getchar(); system(\
printf(\请选择程序功能:\\n\ printf(\ printf(\管理员管理 **\\n\ printf(\用户咨询 **\\n\ printf(\显示交通系统 **\\n\ printf(\退出 **\\n\ printf(\ printf(\选择?\ scanf(\ getchar(); while(i!=4) {
switch(i) {
17
全国交通咨询模拟
case 1:Administer(&G);
break;
case 2:UserDemand(G);
break;
case 3:PrintGraph(&G); }
system(\
printf(\请选择程序功能:\\n\ printf(\
break;
printf(\管理员管理 **\\n\ printf(\用户咨询 **\\n\ printf(\显示交通系统 **\\n\ printf(\退出 **\\n\ printf(\ }
return 1; }
4.2.创建交通图程序:
int LocateVertex(ALGraph *G,char *v)
{
int j,k;
printf(\选择?\ scanf(\ getchar();
j=-1;
for(k=0;k
if(strcmp(G->vertices[k].cityname,v)==0)
{
j=k;
18
全国交通咨询模拟
break; }
void CreateGraph(ALGraph *G) {
int i,j,k; }
return(j);
int arc_num; int count1,count2; int m,t; ArcNode *p,*q; FILE *fp; i=0;
if((fp=fopen(\
{
printf(\无法打开文件!\\n\
return;
}
while(!feof(fp)) {
fscanf(fp,\
i++;
}
fclose(fp);
j=0; while(j
{
strcpy(G->vertices[j].cityname,city[j]);
G->vertices[j].planefirstarc=NULL; G->vertices[j].trainfirstarc=NULL;
19
全国交通咨询模拟
j++;
}
G->vexnum=i;
if((fp=fopen(\
printf(\无法打开文件!\\n\
k=0;
fscanf(fp,\ while(k { if(fread(&a[k],sizeof(struct arc),1,fp)!=1) printf(\文件读入错误!\\n\ k++; } fclose(fp); k=0; arc_num=0; while(k i=LocateVertex(G,a[k].vt); j=LocateVertex(G,a[k].vh); q=G->vertices[i].planefirstarc; m=0; while(q!=NULL) { if(q->adjvex==j) { t=q->info.last+1; q->info.stata[t].number=a[k].co; q->info.stata[t].expenditure=a[k].mo; q->info.stata[t].begintime[0]=a[k].bt[0]; 20