void searchtime(Mgraph *mg)
{
char city1[20],city2[20];
int money;
int sum=0;
int time,zz=0; //zz为中转时间
int j=2,i,cha;
int k[max];
int num1,num2;
for(int aa=0;aa
k[aa]=0;
cout<<"请输入起点站和终点站:"<
cin>>city1>>city2;
for(int count=1;count<=mg->vexnum;count++)
{
if(strcmp(mg->vexs[count],city1)==0)
{
num1=count;
break;
}
}
for(count=1;count<=mg->vexnum;count++)
{
if(strcmp(mg->vexs[count],city2)==0)
{
num2=count;
break;
}
}
k[1]=num1;
for(count=1; mg->arcs[num1][num2].road[count]!=0; count++)
{
k[count+1]=mg->arcs[num1][num2].road[count];
}
k[++count]=num2;
cout<<"从"< <"到"<<city2<<"具体路径和时间为:"<<endl;
for(i=1;k[j]!=0;i++)
{
cout<vexs[k[i]]<<"至"<vexs[k[j]]<<": ";
mg->arcs[k[i]][k[j]].tstarttime.showvalue();
cout<<"-> ";
mg->arcs[k[i]][k[j]].tendtime.showvalue();
cha=distime(mg->arcs[k[i]][k[j]].tstarttime,mg->arcs[k[i]][k[j]].tendtime);
if(k[i-1]!=0)
{
zz=distime(mg->arcs[k[i-1]][k[i]].tendtime,mg->arcs[k[i]][k[j]].tstarttime);
cout<<" 中转时间为";
showtime(zz);
}
cout<<" 耗费时间 ";
showtime(cha+zz);
cout<
sum+=cha;
sum+=zz;
j++;
}
money=35.0/480*sum;
cout<<"路径长度为: "<arcs[num1][num2].length<
cout<<"耗费总时间为: ";
showtime(sum);
cout<<"耗费金额"<<MONEY<<"元!"<<ENDL;
cout<< FONT>
}
setup.cpp
#include
#include
#include "function.h"
using namespace std;
Mgraph *create()
{
int i,j,k,m,w;
int hour,minute;
char city1[20],city2[20];
Mgraph *mg;
mg = new Mgraph;
cout<<"输入城市个数:"<
cin>>mg->vexnum;
cout<<"输入城市边数:"<
cin>>mg->arcnum;
cin.ignore();
for(i=1;i<=mg->vexnum;i++)
{
cout<<"输入第"< <"个城市的名称:"<<endl;
mg->vexs[i]=new char [20];
cin>>mg->vexs[i];
cin.ignore();
}
for(i=1;i<=mg->vexnum;i++)
for(j=1;j<=mg->vexnum;j++)
{
if(i==j)
mg->arcs[i][j].weight=0;
else
mg->arcs[i][j].weight=lim_max;
}
cout< <"输入城市之间的距离(先输入两个城市的名称,再输入距离,再分别输入火车从第一个城市出发和到达第二个城市的时间,以空格分隔):"<<endl;
for(k=1;k<=mg->arcnum;k++)
{
cin>>city1>>city2;
cin>>w;
cin>>hour>>minute;
for(m=1;m<=mg->vexnum;m++)
if(strcmp(mg->vexs[m],city1)==0)
{
i=m;
break;
}
for(m=1;m<=mg->vexnum;m++)
if(strcmp(mg->vexs[m],city2)==0)
{
j=m;
break;
}
mg->arcs[i][j].weight=mg->arcs[j][i].weight=w;
mg->arcs[i][j].tstarttime.givevalue(hour,minute);
cin>>hour>>minute;
mg->arcs[i][j].tendtime.givevalue(hour,minute);
cout<<"输入"< <"到"<<city1<<"的火车出发及到达时间:"<<endl;
cin>>hour>>minute;
mg->arcs[j][i].tstarttime.givevalue(hour,minute);
cin>>hour>>minute;
mg->arcs[j][i].tendtime.givevalue(hour,minute);
}
return mg;
}
short.cpp
#include
#include
#include
#include "function.h"
using namespace std;
void floyd(Mgraph *mg)
{
char *s[max];
int i,j,k,p,a;
int num=1;
int count=1;
int length[max][max];
int path[max][max];
for(i=1;i<=mg->vexnum;i++)
for(j=1;j<=mg->vexnum;j++)
{
length[i][j]=mg->arcs[i][j].weight;
path[i][j]=0;
}
for(k=1;k<=mg->vexnum;k++) //最短路径算法
for(i=1;i<=mg->vexnum;i++)
for(j=1;j<=mg->vexnum;j++)
if(length[i][j]>length[i][k]+length[k][j])
{
length[i][j]=length[i][k]+length[k][j];
path[i][j]=k;
}
cout<<"最短路径矩阵为:"<
for(i=1;i<=mg->vexnum;i++)
{
for(j=1;j<=mg->vexnum;j++)
cout<<<LENGTH[I][J];
cout<
}
cout<<"最短路径具体为:"<
for(i=1;i<=mg->vexnum;i++)
for(j=1;j<=mg->vexnum;j++)
if(path[i][j])
{
s[count]=new char [20];
strcpy(s[count++],mg->vexs[j]);
p=path[i][j];
while(p)
{
s[count]=new char [20];
strcpy(s[count++],mg->vexs[p]);
p=path[i][p];
}
cout<vexs[i];
for(count=count-1;count;count--)
{
cout<<" --> "<
for(a=1;a<=mg->vexnum;a++)
if(strcmp(mg->vexs[a],s[count])==0)
{
mg->arcs[i][j].road[num++]=a; //保存路途经过的城市的顶点
break;
}
}
mg->arcs[i][j].road[--num]=0;
cout<<" 路径长度为 "<
mg->arcs[i][j].length=length[i][j];
count=1;
num=1;
cout<
}
else if(path[i][j]==0&&length[i][j]>0&&length[i][j]
{
cout<vexs[i]<<" --> "<vexs[j]<<" 路径长度为 "<<<ENDL;
mg->arcs[i][j].road[num]=0;
mg->arcs[i][j].length=length[i][j];
}
else if(i!=j)
cout<vexs[i]<<"到"<vexs[j]<<"之间没有路径!"<
}
user.cpp
#include
#include
#include
#include "function.h"
using namespace std;
int logo()
{
char u[20];
char p[20];
char c;
int count=0,i;
cout<<"请输入管理员帐号和密码:(限三次)"<
for(i=1;i<=3;i++)
{
cout<<"username:";
cin>>u;
cin.ignore();
cout<<"password:";
while((c=getch())!='\r') //屏幕上不显示
{//处理退格键
if(count && c=='\b')
count--;
if(c!='\b')
p[count++]=c;
}
p[count]='\0';
if(strcmp(u,"admin")==0&&strcmp(p,"taiyangshen")==0)
return 1;
else if(i<3)
{
count=0;
cout<<"ERORR! again!?<<endl;
}
}
return 0;
}
int logoclient()
{
char u[20];
char p[20];
char c;
int count=0,i;
cout<<"请输入用户名和密码:(限三次)"<
for(i=1;i<=3;i++)
{
cout<<"username:";
cin>>u;
cin.ignore();
cout<<"password:";
while((c=getch())!='\r') //屏幕上不显示
{//处理退格键
if(count && c=='\b')
count--;
if(c!='\b')
p[count++]=c;
}
p[count]='\0';
if(strcmp(u,"user")==0&&strcmp(p,"user")==0)
return 1;
else if(i<3)
{
count=0;
cout<<"ERORR! again!?<<endl;
}
}
return 0;
}
welcome.cpp
#include
#include //用于生成时间随机数
#include "function.h"
using namespace std;
void list()
{
cout<
cout<<" ************** 1 查询城市之间交通信息 ********************"<
cout<<" ************** 2 查询列车行驶时间 ********************"<
cout<<" ************** 3 查询最短路径信息 ********************"<
cout<
}
void picture()
{
double i=GetTickCount(); //定义在
int time;
time=(int )(i)%8+2; //生成随机数
if(time==2)
pic2();
else if(time==3)
pic3();
else if(time==4)
pic4();
else if(time==5)
pic5();
else if(time==6)
pic6();
else if(time==7)
pic7();
else if(time==8)
pic8();
else
pic9();
}
traffic.txt
c b 20 10 0 12 0 9 0 11 0
d c 30 12 30 14 40 13 0 15 0
e d 40 13 0 17 0 9 30 13 0
e a 50 8 0 13 30 7 0 14 0
注:void pic1()到void pic2()为自定义的图形界面函数。
分享到:
相关推荐
数据结构课程设计2 本资源摘要信息是根据《数据结构课程设计2.doc》的文件信息生成的相关知识点。该文件是计算机科学与信息工程学院2011年发布的《数据结构与算法》课程设计任务书的第二版,涵盖了数据结构课程设计...
数据结构课程设计航空客运订票系统源代码+报告文档和可执行文件数据结构课程设计航空客运订票系统源代码+报告文档和可执行文件数据结构课程设计航空客运订票系统源代码。数据结构课程设计航空客运订票系统源代码+...
数据结构课程设计是计算机科学与技术专业的重要实践环节,它要求学生通过实际操作来理解和掌握数据结构的基本概念、原理和方法。在这个“数据结构课程设计模板”中,我们可以期待找到一系列帮助学生完成这一任务的...
数据结构课程设计数据结构课程设计数据结构课程设计数据结构课程设计数据结构课程设计数据结构课程设计数据结构课程设计数据结构课程设计数据结构课程设计数据结构课程设计数据结构课程设计数据结构课程设计数据结构...
数据结构课程设计是计算机科学与技术专业的重要课程之一,它主要关注如何在计算机系统中高效地组织和管理数据。在这个项目中,我们将深入探讨各种基本和高级的数据结构,包括数组、链表、栈、队列、树、图、哈希表等...
在数据结构课程设计中,"迷宫"是一个经典的主题,它涵盖了多个重要的计算机科学概念,尤其是数据结构。这里我们将深入探讨这个主题,并基于提供的文件名,我们有两个不同的迷宫设计和相关的文档论文。 首先,迷宫...
数据结构课程设计是计算机科学与技术专业中一项重要的实践性教学环节,主要目的是让学生深入理解并熟练掌握数据结构的基本概念、原理以及应用。在“排序综合课程设计”中,学生通常会被要求实现多种排序算法,并对...
数据结构课程设计C++语言停车场管理系统源码,添加了UI数据结构课程设计C++语言停车场管理系统源码,添加了UI数据结构课程设计C++语言停车场管理系统源码,添加了UI数据结构课程设计C++语言停车场管理系统源码,添加...
《学生成绩管理系统论文+代码 数据结构课程设计C语言版》是针对计算机专业学生的数据结构课程设计项目,旨在让学生通过实际编程应用,深入理解和掌握数据结构的基本概念、算法及其在实际问题中的应用。这个项目使用...
数据结构课程设计任务书 数据结构课程设计任务书是计算机专业的专业基础课,以C/C++语言进行课程设计,旨在培养学生使用数据结构解决实际问题的能力。该课程设计任务书共包括三个部分:课程设计目的、课程设计内容...
数据结构课程设计是计算机科学与技术专业的重要实践环节,旨在加深学生对数据结构的理解和应用。本报告聚焦于一个基于链表实现的员工信息管理系统,该系统涵盖了数据结构中的链表操作,包括插入、删除、查找、计数、...
数据结构课程设计是计算机科学与技术专业的重要实践环节,它旨在通过实际操作加深对数据结构的理解,提升编程能力。在这个项目中,我们看到的主题是“宿舍管理查询软件”,这是一个典型的数据库管理和信息检索应用,...
武汉理工大学的数据结构课程设计提供了丰富的实践机会,让学生深入理解和应用这些概念。这个压缩包包含的源程序涵盖了课程设计的所有题目,旨在帮助学生提升算法设计、分析和实现的能力。 1. **数组与链表**:在...
在这个“数据结构课程设计-排课系统源码.zip”压缩包中,我们可以深入理解如何应用数据结构来解决实际问题,比如排课系统的实现。 排课系统是一个典型的调度问题,它需要在满足各种约束(如教室容量、教师时间冲突...
数据结构课程设计C语言,用到知识数据结构中的队列,课程设计
数据结构课程设计是计算机科学与技术专业学生在学习过程中的一项重要任务,旨在加深对数据组织方式的理解,并通过实践提升编程能力。在这个名为“族谱管理系统”的项目中,开发者使用了C语言来构建一个树形结构的...
数据结构课程设计是计算机科学与技术专业的重要实践环节,它旨在让学生深入理解并熟练掌握数据组织和管理的基本原理。在“猴子选大王”的课程设计中,我们可以将这个经典问题视为一个模拟选举的过程,其中猴子们通过...
数据结构课程设计是计算机科学教育中的一个重要环节,它旨在让学生深入理解各种数据组织方式及其在实际问题中的应用。本项目聚焦于"文本文件压缩",采用了一种经典的压缩方法——霍夫曼编码,这是一种基于频率的无损...
在"数据结构课程设计魔王语言解释"中,我们可能会深入研究如何为一种名为"魔王语言"的虚构编程语言设计并实现数据结构的解析器。 在数据结构的设计中,常见的类型包括数组、链表、栈、队列、树(如二叉树、堆)、图...
数据结构课程设计的目标是让学生能够灵活运用所学的数据结构知识,特别是哈夫曼树这一重要概念,来解决实际问题。哈夫曼树是一种特殊的二叉树,常用于数据压缩和编码,通过构建最小带权路径长度的二叉树,使得频率高...