📄 main.cpp
字号:
#include "Traffic.h"
void MainInitialization()
{
cout<<"============计算机02(7)班==姓名:赵嘉莉== 学号:200209124174================="<<endl;
cout<<"= ="<<endl;
cout<<"= 全国交通咨询模拟系统 ="<<endl;
cout<<"= ="<<endl;
cout<<"= ="<<endl;
cout<<"= ="<<endl;
cout<<"= 请选择操作:1.显示城市 2.信息修改 3道路咨询 4.修改保存 5.退出 ="<<endl;
cout<<"= (注意~~~城市名请使用汉字输入) ="<<endl;
cout<<"==============================================================================="<<endl;
}
void ModifyInitialization()
{
system("cls");
cout<<"=============================================================================="<<endl;
cout<<"= 信息修改 ="<<endl;
cout<<"= ="<<endl;
cout<<"= ="<<endl;
cout<<"= ="<<endl;
cout<<"= ="<<endl;
cout<<"= 请选择操作:1.新增城市 2.删除城市 3.确认是否修改 ="<<endl;
cout<<"=============================================================================="<<endl;
}
void ModifyMap(ALGraph& graph)
{
void MainInitialization();
char cmd[5],choice;
ModifyInitialization();
do
{
ReadCommand(cmd,3);
switch(cmd[0])
{
case '1':
graph.InsertVex();
break;
case '2':
graph.DeleteVex();
break;
case '3':
system("cls");//清屏
ModifyInitialization();
break;
default:
cout<<"错误的选择"<<endl;
}
cout<<"继续修改?(y/n)"<<endl;
cin>>choice;
} while(choice=='y' || choice=='Y');
}
void BestPath(ALGraph& graph)
{
int spos,dpos;
char source[50],destination[50],cmd1[5],cmd2[5];
MGraph m(graph);
do
{
cout<<"请输入出发站:"<<endl;
cin>>source;
spos=graph.LocateVex(source);
if(spos>=0) break;
else
cout<<"错误的出发站"<<endl;
} while(1);
do
{
cout<<"请输入终点站:"<<endl;
cin>>destination;
dpos=graph.LocateVex(destination);
if(dpos>=0) break;
else
cout<<"错误终点站"<<endl;
} while(1);
cout<<"请选择最优原则:1.最短时间 2.最少花费"<<endl;
ReadCommand(cmd1,3);
cout<<"请选择交通工具:1.火车 2.飞机"<<endl;
ReadCommand(cmd2,2);
if(cmd1[0]=='1' && cmd2[0]=='1')
{
cout<<"最短时间路径如下:(火车)"<<endl
<<"================================================================================"<<endl;
m.ShortestTime_T(spos,dpos);
}
else if(cmd1[0]=='1' && cmd2[0]=='2')
{
cout<<"最短时间路径如下:(飞机)"<<endl
<<"================================================================================"<<endl;
m.ShortestTime_A(spos,dpos);
}
else if(cmd1[0]=='2' && cmd2[0]=='1')
{
cout<<"最少花费路径如下:(火车)"<<endl
<<"================================================================================"<<endl;
m.ShortestCost_T(spos,dpos);
}
else if(cmd1[0]=='2' && cmd2[0]=='2')
{
cout<<"最少花费路径如下:(飞机)"<<endl
<<"================================================================================"<<endl;
m.ShortestCost_A(spos,dpos);
}
}
void ReadCommand(char* cmd,int n)
{
int flag;
do
{
flag=1;
cout<<"请输入您的选择:"<<endl;
cin>>cmd;
if(strlen(cmd)==1 && (cmd[0]>='1' && cmd[0]<=('0'+n)))
flag=0;
else
cout<<"错误的选择:"<<endl;
} while(flag==1);
}
void Interpret(char cmd,ALGraph& graph)
{
switch(cmd)
{
case '1':
graph.ShowGraph();
break;
case '2':
ModifyMap(graph);
break;
case '3':
BestPath(graph);
break;
case '4':
graph.SaveToFile();
break;
case '5':
cout<<endl<<"按任意键退出……"<<endl;
getch();
break;
default:
cout<<"错误的选择"<<endl;
}
}
void main()
{
char cmd[20];
ALGraph graph;
graph.BakeUp();
do
{
MainInitialization();//生成界面
ReadCommand(cmd,5);//读取命令
Interpret(cmd[0],graph);//解释命令
if(cmd[0]!='5')
{
cout<<"请按任何键继续."<<endl;
_getch();
system("cls");//清屏
}
} while(cmd[0]!='5');//循环执行
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -