diff --git a/代码123.cpp b/代码123.cpp index 588bcdb..f3a6aa4 100644 --- a/代码123.cpp +++ b/代码123.cpp @@ -32,66 +32,66 @@ dist d; void init() { int i, j; - strcpy(M.site[1].name, "ƻ��԰"); - strcpy(M.site[1].intro, "������ʯ��ɽ����λ��ƻ��԰��·"); - strcpy(M.site[2].name, "�ų�"); - strcpy(M.site[2].intro, "λ�ڱ�����ʯ��ɽ��ʯ��ɽ·��ų�С�ֽ��ᶫ��"); - strcpy(M.site[3].name, "�˽�����԰"); - strcpy(M.site[3].intro, "ʯ��ɽ���˽������Ŷ���"); - strcpy(M.site[4].name, "������"); - strcpy(M.site[4].intro, "�����к���������·����������·���ᴦ�·�"); - strcpy(M.site[5].name, "������"); - strcpy(M.site[5].intro, "λ�ڱ��������������������֡��������ڴ�֡��������ϴ�֡������ű���ֽ��㴦"); - strcpy(M.site[6].name, "�찲����"); - strcpy(M.site[6].intro, "λ���й��������������������ֺ��ϳ��ֽ��ᴦ���DZ���������Ӫ���޹�˾��Ӫ�����ij�վ��Ҳ�DZ�������1���ߵ��м�վ"); - strcpy(M.site[7].name, "������"); - strcpy(M.site[7].intro, "λ���й������ж������볯�������紦���������·����DZ���������Ӫ���޹�˾��Ӫ�ij�վ��Ҳ�DZ�������1���ߡ���������2���ߵĻ���վ"); - strcpy(M.site[8].name, "������"); - strcpy(M.site[8].intro, "λ���й������г����������������붫����·����ڵ��·�"); - strcpy(M.site[9].name, "��¥���"); - strcpy(M.site[9].intro, "�DZ�������2�����뱱������8���ߵĻ���վ,λ�ڱ������������붫�������紦,�����������-��ʤ�Ŷ������ɹ�¥���-�ɹ�¥���ֽ��ᴦ"); - strcpy(M.site[10].name, "Ӻ�͹�"); - strcpy(M.site[10].intro, "λ�ڱ����ж����������������Ŷ������Ӻ�͹���֡���ƽ�����ֽ��㴦"); - strcpy(M.site[11].name, "������"); - strcpy(M.site[11].intro, "λ�ڱ����ж������볯�������紦,����������-�������ڴ���볯�����ϴ��-�����ű���ֽ��㴦"); - strcpy(M.site[12].name, "����վ"); - strcpy(M.site[12].intro, "λ���й������ж��������ڡ�����վ���㳡�·�"); - strcpy(M.site[13].name, "������"); - strcpy(M.site[13].intro, "��������2���ߺͱ�������5�����ڴ˽��㣬λ�ڱ����ж�����ǰ�Ŷ������������ڴ�ֽ����"); - strcpy(M.site[14].name, "��ƽ��"); - strcpy(M.site[14].intro, "λ�ڱ��������������»��֣����»�����ǰ������֣������Ŷ���ֽ��㴦"); - strcpy(M.site[15].name, "������"); - strcpy(M.site[15].intro, "λ���й����������������DZ�������2���ߺͱ�������4���ߵĻ���վ"); - strcpy(M.site[16].name, "������"); - strcpy(M.site[16].intro, "������վ�DZ�������2���ߵ�һ����վ,λ�ڱ���������������������֡������ֽ��㴦"); - strcpy(M.site[17].name, "��ֱ��"); - strcpy(M.site[17].intro, "λ�ڱ�������������ֱ�����·�"); - strcpy(M.site[18].name, "Բ��԰"); - strcpy(M.site[18].intro, "λ�ڱ����к������廪��·"); - strcpy(M.site[19].name, "������ѧ����"); - strcpy(M.site[19].intro, "λ���й������к���������"); - strcpy(M.site[20].name, "�йش�"); - strcpy(M.site[20].intro, "λ�ڱ����к������йش�һ���ϲ�"); - strcpy(M.site[21].name, "������ׯ"); - strcpy(M.site[21].intro, "�DZ�������4���ߺͱ�������10���ߵĻ���վ"); - strcpy(M.site[22].name, "�����ѧ"); - strcpy(M.site[22].intro, "λ�ڱ����к�������ͨ��"); - strcpy(M.site[23].name, "����ͼ���"); - strcpy(M.site[23].intro, "����ͼ���վλ�ڹ���ͼ��ݵ��ϲ����"); - strcpy(M.site[24].name, "����԰"); - strcpy(M.site[24].intro, "λ�ڱ�������ֱ������"); - strcpy(M.site[25].name, "������վ"); - strcpy(M.site[25].intro, "λ���й������з�̨����·������վ�·�"); - strcpy(M.site[26].name, "������"); - strcpy(M.site[26].intro, "λ���й������д���������"); - strcpy(M.site[27].name, "����ҽҩ����"); - strcpy(M.site[27].intro, "�DZ�������4���ߵ�һ����վ,λ�ڱ����д�������Դ���������·�����ϲ�"); - strcpy(M.site[28].name, "��̳����"); - strcpy(M.site[28].intro, "λ���й������ж�����"); - strcpy(M.site[29].name, "��ͨԷ"); - strcpy(M.site[29].intro, "�DZ�������5���ߵ�һ����վ��Ҳ�DZ�����һ��ͨ���������ӵĵ�����վ��λ�ڱ����в�ƽ������·��̫ƽׯ�ж��ֽ��㴦����"); - strcpy(M.site[30].name, "��ͨԷ��"); - strcpy(M.site[30].intro, "λ�ڱ����в�ƽ����ͨԷ����̫ƽׯ�����Ա�400�״�"); + strcpy(M.site[1].name, "苹果园"); + strcpy(M.site[1].intro, "北京市石景山区,位于苹果园南路"); + strcpy(M.site[2].name, "古城"); + strcpy(M.site[2].intro, "位于北京市石景山区石景山路与古城小街交会东侧"); + strcpy(M.site[3].name, "八角游乐园"); + strcpy(M.site[3].intro, "石景山区八角立交桥东侧"); + strcpy(M.site[4].name, "公主坟"); + strcpy(M.site[4].intro, "北京市海淀区复兴路和西三环中路交会处下方"); + strcpy(M.site[5].name, "复兴门"); + strcpy(M.site[5].intro, "位于北京市西城区复兴门外大街、复兴门内大街、复兴门南大街、复兴门北大街交汇处"); + strcpy(M.site[6].name, "天安门西"); + strcpy(M.site[6].intro, "位于中国北京市西城区西长安街和南长街交会处,是北京地铁运营有限公司运营管理的车站,也是北京地铁1号线的中间站"); + strcpy(M.site[7].name, "建国门"); + strcpy(M.site[7].intro, "位于中国北京市东城区与朝阳区交界处建国门桥下方,是北京地铁运营有限公司运营的车站,也是北京地铁1号线、北京地铁2号线的换乘站"); + strcpy(M.site[8].name, "永安门"); + strcpy(M.site[8].intro, "位于中国北京市朝阳区建国门外大街与东大桥路交叉口的下方"); + strcpy(M.site[9].name, "鼓楼大街"); + strcpy(M.site[9].intro, "是北京地铁2号线与北京地铁8号线的换乘站,位于北京市西城区与东城区交界处,安定门西大街-德胜门东大街与旧鼓楼大街-旧鼓楼外大街交会处"); + strcpy(M.site[10].name, "雍和宫"); + strcpy(M.site[10].intro, "位于北京市东城区北二环安定门东大街与雍和宫大街、和平里西街交汇处"); + strcpy(M.site[11].name, "朝阳门"); + strcpy(M.site[11].intro, "位于北京市东城区与朝阳区交界处,朝阳门外大街-朝阳门内大街与朝阳门南大街-朝阳门北大街交汇处"); + strcpy(M.site[12].name, "北京站"); + strcpy(M.site[12].intro, "位于中国北京市东城区境内、北京站北广场下方"); + strcpy(M.site[13].name, "崇文门"); + strcpy(M.site[13].intro, "北京地铁2号线和北京地铁5号线在此交汇,位于北京市东城区前门东大街与崇文门内大街交汇口"); + strcpy(M.site[14].name, "和平门"); + strcpy(M.site[14].intro, "位于北京市西城区北新华街-南新华街与前门西大街-宣武门东大街交汇处"); + strcpy(M.site[15].name, "宣武门"); + strcpy(M.site[15].intro, "位于中国北京市西城区,是北京地铁2号线和北京地铁4号线的换乘站"); + strcpy(M.site[16].name, "长椿街"); + strcpy(M.site[16].intro, "长椿街站是北京地铁2号线的一个车站,位于北京市西城区宣武门西大街、长椿街交汇处"); + strcpy(M.site[17].name, "西直门"); + strcpy(M.site[17].intro, "位于北京市西城区西直门桥下方"); + strcpy(M.site[18].name, "圆明园"); + strcpy(M.site[18].intro, "位于北京市海淀区清华西路"); + strcpy(M.site[19].name, "北京大学东门"); + strcpy(M.site[19].intro, "位于中国北京市海淀区境内"); + strcpy(M.site[20].name, "中关村"); + strcpy(M.site[20].intro, "位于北京市海淀区中关村一桥南侧"); + strcpy(M.site[21].name, "海淀黄庄"); + strcpy(M.site[21].intro, "是北京地铁4号线和北京地铁10号线的换乘站"); + strcpy(M.site[22].name, "人民大学"); + strcpy(M.site[22].intro, "位于北京市海淀区四通桥"); + strcpy(M.site[23].name, "国家图书馆"); + strcpy(M.site[23].intro, "国家图书馆站位于国家图书馆的南侧地下"); + strcpy(M.site[24].name, "动物园"); + strcpy(M.site[24].intro, "位于北京市西直门外大街"); + strcpy(M.site[25].name, "北京南站"); + strcpy(M.site[25].intro, "位于中国北京市丰台区铁路北京南站下方"); + strcpy(M.site[26].name, "西红门"); + strcpy(M.site[26].intro, "位于中国北京市大兴区境内"); + strcpy(M.site[27].name, "生物医药基地"); + strcpy(M.site[27].intro, "是北京地铁4号线的一座车站,位于北京市大兴区新源大街与永大路交口南侧"); + strcpy(M.site[28].name, "天坛东门"); + strcpy(M.site[28].intro, "位于中国北京市东城区"); + strcpy(M.site[29].name, "天通苑"); + strcpy(M.site[29].intro, "是北京地铁5号线的一座车站,也是北京第一个通过民意增加的地铁车站,位于北京市昌平区立汤路与太平庄中二街交汇处北侧"); + strcpy(M.site[30].name, "天通苑北"); + strcpy(M.site[30].intro, "位于北京市昌平区天通苑北界太平庄北街以北400米处"); @@ -158,35 +158,35 @@ for (i = 1; i <= ALLNameNum; i++) void queryAllSite() { int t; - printf("���еص����£�\n"); + printf("所有地点如下:\n"); for (t = 1; t <= N; t++) { - printf("��ţ� %d\n �ص㣺%s\n ���ܣ�%s\n", t, M.site[t].name, M.site[t].intro); + printf("编号; %d\n 地点:%s\n 介绍:%s\n", t, M.site[t].name, M.site[t].intro); } - printf("\n���������"); + printf("\n任意键返回"); getch(); } void querySite() { int a; - printf("������Ҫ��ѯ�ĵص����ǣ�"); + printf("请问您要查询的地点编号是:"); scanf("%d", &a); if (a > N) - printf("��ѯ�ĵص㲻���ڣ���ѯʧ�ܣ�"); + printf("查询的地点不存在,查询失败!"); else - printf("��ţ�%d\n �ص㣺%s\n ���ܣ�%s\n", a, M.site[a].name, M.site[a].intro); - printf("\n����������أ�"); + printf("编号:%d\n 地点:%s\n 介绍:%s\n", a, M.site[a].name, M.site[a].intro); + printf("\n按任意键返回!"); getch(); } void dijkstraAllSite() { int v0; - printf("�������ѯ�ĵص㣺"); + printf("请输入查询的地点:"); scanf("%d", &v0); bool flag[ALLNameNum]; - //v��ʾ��һ���ڵ㣬k��ʾ�����ڵ� + //v表示上一个节点,k表示遍历节点 int i, k, j, v, min, x; for (v = 1; v <= N; v++) { @@ -198,13 +198,13 @@ void dijkstraAllSite() p[v] = -1; } flag[v0] = 1; - d[v0] = 0;//ԭ����� + d[v0] = 0;//原点距离 for (i = 2; i <= N; i++) { min = INF; for (k = 1; k <= N; ++k) if (!flag[k] && d[k] < min) - {//û�б���ѯ�����Ҿ���С����Сֵ����� + {//没有被查询过并且距离小于最小值则更新 v = k; min = d[k]; } @@ -215,8 +215,8 @@ void dijkstraAllSite() for (k = 1; k <= N; ++k) if (!flag[k] && (min + M.length[v][k] < d[k])) { - d[k] = min + M.length[v][k];//��k�ľ��� - p[k] = v;//k�ڵ����һ���ڵ���v + d[k] = min + M.length[v][k];//到k的距离 + p[k] = v;//k节点的上一个节点是v } } } @@ -225,7 +225,7 @@ void printAllSite() int st[ALLNameNum], i, pre, top = -1; for (i = 1; i <= N; i++) { - printf("\n����ص�%2d���ܾ���Ϊ: %5d , ����·��Ϊ:", i, d[i]); + printf("\n到达地点%2d的总距离为: %5d , 经过路径为:", i, d[i]); st[++top] = i; pre = p[i]; while (pre != -1) @@ -246,7 +246,7 @@ void printAllSite() void dijkstraTwoSite() { int v0; - printf("��������ʼ�ص�����Ӧ�ı�ţ�"); + printf("请输入起始地点所对应的编号:"); scanf("%d", &v0); bool flag[ALLNameNum]; int i, k, j, v, min, x; @@ -286,13 +286,13 @@ void dijkstraTwoSite() void printTwoSite() { int y; - printf("\n������Ŀ�ĵص�����Ӧ�ı�ţ�"); + printf("\n请输入目的地点所对应的编号:"); scanf("%d", &y); int st[ALLNameNum], i, pre, top = -1; for (i = 1; i <= N; i++) { if (i == y) - printf("\n�ܾ�����: %5d , ����·��Ϊ:", d[i]); + printf("\n总距离是: %5d , 经过路径为:", d[i]); st[++top] = i; pre = p[i]; while (pre != -1) @@ -322,18 +322,18 @@ main() while (1) { printf("**********************************************************************\n"); - printf("* ��ӭʹ�ñ�������·�߹滮ϵͳ *\n"); + printf("* 欢迎使用北京地铁路线规划系统 *\n"); printf("**********************************************************************\n"); - printf("\n 0���˳����� "); - printf("\n 1���������վ�㼰�����"); - printf("\n 2����ѯijһ����վ�㼰�����"); - printf("\n 3����ѯijһվ�㵽��������վ������·��"); - printf("\n 4����ѯij����վ��֮������·�� "); + printf("\n 0、退出程序 "); + printf("\n 1、输出所有站点及其介绍"); + printf("\n 2、查询某一地铁站点及其介绍"); + printf("\n 3、查询某一站点到其他所有站点的最短路径"); + printf("\n 4、查询某两个站点之间的最短路径 "); printf("\n*******************************************************************"); - printf("�ص��Ŷ�Ӧ��\n"); - printf(" 1.ƻ��԰ 2.�ų� 3.�˽�����԰ 4.������ 5.������ 6.�찲���� 7.������ 8.������ 9.��¥��� 10.Ӻ�͹�\n"); - printf("11.������ 12.����վ 13.������ 14.��ƽ�� 15.������ 16.������ 17.��ֱ�� 18.Բ��԰ 19.������ѧ���� 20.�йش� 21.������ׯ 22.�����ѧ 23.����ͼ��� 24.����԰ 25.������վ 26.������ 27.����ҽҩ���� 28��̳���� 29.��ͨԷ 30.��ͨԷ��\n "); - printf("\n������ѡ�"); + printf("地点编号对应:\n"); + printf(" 1.苹果园 2.古城 3.八角游乐园 4.公主坟 5.复兴门 6.天安门西 7.建国门 8.永安门 9.鼓楼大街 10.雍和宫\n"); + printf("11.朝阳门 12.北京站 13.崇文门 14.和平门 15.宣武门 16.长椿街 17.西直门 18.圆明园 19.北京大学东门 20.中关村 21.海淀黄庄 22.人民大学 23.国家图书馆 24.动物园 25.北京南站 26.西红门 27.生物医药基地 28天坛东门 29.天通苑 30.天通苑北\n "); + printf("\n请输入选项:"); scanf("%d", &x); if (x == 0) break;