⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 铁路.txt

📁 这是个票务管理系统 很实用很流行的程序设计题
💻 TXT
字号:
#include<stdio.h> 
#include<malloc.h> 
#include<string.h> 

typedef struct port 
{ 
char name[2]; 
} Port; 

typedef struct route 
{ 
int size; 
Port ports[20]; 
} Route; 

Route routes[10]; 
int n; 
int stackRoute[3],sp; 
Port stackPort[3]; 
bool isHave; 

void show() 
{ 
int i; 
printf("\n方案\n"); 
for(i=0;i<sp;i++) printf("乘%d路 在%s下车\n",stackRoute[i],stackPort[i].name); 
} 

bool search(char a[],char b[],int d) 
{ 
int i,j; 
for(i=0;i<n;i++) 
{ 
for(j=0;j<sp;j++) 
{ 
if(i+1==stackRoute[j]) break; 
} 
if(j>=sp) 
{ 
for(j=0;j<routes[i].size;j++) 
{ 
if(strcmp(routes[i].ports[j].name,a)==0) break; 
} 
if(d==0) 
{ 
for(j++;j<routes[i].size;j++) 
{ 
if(strcmp(routes[i].ports[j].name,b)==0) 
{ 
isHave=true; 
stackRoute[sp]=i+1; 
stackPort[sp]=routes[i].ports[j]; 
sp++; 
show(); 
sp--; 
} 
} 
} 
else 
{ 
for(j++;j<routes[i].size;j++) 
{ 
stackRoute[sp]=i+1; 
stackPort[sp]=routes[i].ports[j]; 
sp++; 
search(routes[i].ports[j].name,b,d-1); 
sp--; 
} 
} 
} 
} 
return isHave; 
} 

int main() 
{ 
int i,j; 
char a[2],b[2]; 
printf("请输入共有多少条路线: "); 
scanf("%d",&n); 
for(i=0;i<n;i++) 
{ 
printf("请输入%d路所经过站的总数: ",i+1); 
scanf("%d",&routes[i].size); 
getchar(); 
printf("为%d路输入每一个站的名字(一个字母): ",i+1); 
for(j=0;j<routes[i].size;j++) 
{ 
scanf("%s",routes[i].ports[j].name); 
} 
} 

while(1) 
{ 
printf("\n输入要查询的两站: "); 
scanf("%s %s",a,b); 
isHave=false; 
for(i=0;i<3;i++) 
{ 
sp=0; 
if(search(a,b,i)) break; 
} 
if(i>=3) printf("没有适合的路线\n"); 
} 
return 0; 
} 
/* 
6 
7 
a e d t u x z 
3 
d k m 
5 
l e o t k 
6 
k b c n m y 
3 
y u i 
7 
p a n y c q o 
p t 

*/ 

匆匆忙忙写完的,应该没什么问题/*...*/中为测试数据(你自己也可以照着编),今天没时间了,明天给你加注释.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -