📄 assignment2.cpp
字号:
#include<iostream>
#include<string>
#include<fstream>
#include "map.h"
#include "dijkstra.h"
#include <stdio.h>
using namespace std;
int fun();
int main()
{
fun();
/*
//数据初始化定义;
string* a = NULL;
int number = 0 , kmSize = 0, i = 0;
double* km = NULL;
//数据读入临时保存。
ifstream file("input1.txt");
file>>number;
a = new string[number];
for( i = 0; i < number; i++)
file>>a[i];
kmSize = number * (number-1)/2;
km = new double[kmSize];
for( i = 0; i < kmSize; i++)
file>>km[i];
//数据保存
map a1(number);
a1.setMap(a,km);
cout<<"Start City Index"<<endl;
int nStart = 0;
cin>>nStart;
cout<<"Start City:"<<a[nStart]<<endl;
//dijkstra算法使用
dijkstra dij;
dij.SetStartTownIndex(nStart);
dij.printResult(dij.doDijkstra(&a1, a), number);
//删除指针,程序退出。
delete km;
cout<<"Press Enter to Exit"<<endl;
*/
int exit = getchar();
int nStart = 0;
cin>>nStart;
return 0;
}
int fun()
{
string *sCityName = NULL; //保存城市名
int nCityNum = 0, i;
int kmSize = 0;
double *km = NULL; //保存每个城市间的距离
string sInputFiles;
//选择输入文件
INPUT:
cout<<"your Input Files:"<<endl;
cin>>sInputFiles;
ifstream file(sInputFiles.c_str());
if (!file.is_open()) //判断输入的输入文件是否存在
{
cout<<"BAD Input Files"<<endl;
goto INPUT; //回到文件输入点 重新选择输入文件
}
//读文件
file>>nCityNum;
sCityName = new string[nCityNum];
//读取城市名
for(i = 0; i < nCityNum; i++)
file>>sCityName[i];
//读取城市间距离
kmSize = nCityNum * (nCityNum-1)/2;
km = new double[kmSize];
for(i = 0; i < kmSize; i++)
file>>km[i];
//保存数据
map CityMap;
CityMap.setMap(sCityName, km);
//选择一个城市序号 (从0开始) 下面将输出该城市到其他城市的最短距离
cout<<"Start City Index:"<<" (zero-based index of citys) "<<endl;
int nStart = 0;
cin>>nStart;
//输出用户选择城市的名字
cout<<"Start City:"<<sCityName[nStart]<<endl;
//dijkstra算法使用
dijkstra dij;
dij.SetStartTownIndex(nStart);
RArray *ResultArray = dij.doDijkstra(&CityMap, sCityName);
dij.printResult(ResultArray, nCityNum );
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -