当前位置:首页 » 课程大全 » 铁路课程设计

铁路课程设计

发布时间: 2020-11-27 18:40:23

1. 数据结构课程设计 铁路票务管理系统

#include<fstream>
#include<iostream>
#include<string>
#include<stdio.h>
#include<iomanip>
#define SIZE_view 50
#define SIZE_line 100
#define SIZE_way 300

#define MAXNODE 30 //定义最多的顶点数
#define MAXCOST 1000
//自己写的头文件
//#include<addview.h>// //

using namespace std;

struct view_info /*城市信息结构*/
{
int id;
char name[20];
int code;
char shortname[20];
char LName[100];// 经过此车站的铁路线名称
} views[SIZE_view];

struct line_info //铁路线信息结构
{
int Lid;
char LName[20];
int start_id; //始发站id
int end_id; //终点站id
int dist; //铁路线长度
int sign;//通行标志
}lines[SIZE_line];

struct way_info //铁路度的信息结构
{
int station1;
int station2;
int dist;
}ways[SIZE_way];

struct path_info //用于最短路径的查询

{
int count;
int path[SIZE_view];
};

int view_count,line_count,way_count;//用来存储文件中有多少条记录

void readviews()
{
int i;
ifstream infile("views.txt",ios::in); //打开文件
infile >>view_count ; //把文件中的记录赋值给view_count
if(!infile) //打开文件失败
{
cerr<<"open error!"<<endl;
exit(1);
}
//infile>>view_count; // 先读入文件个数
for(i=0;i<view_count;i++)
{
infile>>views[i].id>>views[i].name>>views[i].code>>views[i].shortname>>views[i].LName;

}
//view_count=i;//给出原文件中车站的个数
infile.close();
cout<<" "<<"id"<<" "<<"name"<<" "<<"code"<<" "<<"shortname"<<" "<<"LName"<<endl;
for(i=0;i<view_count;i++)
cout<<" "<<views[i].id<<" "<<views[i].name<<" "<<views[i].code
<<" "<<views[i].shortname<<" "<<views[i].LName<<endl;

}

void readways() //读文件ways.txt
{
int i;
ifstream infile("ways.txt",ios::in); //打开文件
infile>>way_count; ////把文件中的记录赋值给way_count
if(!infile) //打开文件失败
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0;i<way_count;i++)
infile>>ways[i].station1>>ways[i].station2>>ways[i].dist;
infile.close();
//测试用,输出路段的信息
cout<<" "<<"station1"<<" "<<"station2"<<" "<<"dist"<<endl;
for(i=0;i<way_count;i++)
cout<<" "<<ways[i].station1<<" "<<ways[i].station2<<" "<<ways[i].dist<<endl ;

}

void readlines() //读文件lines.txt
{
int i;
ifstream infile("lines.txt",ios::in); //打开文件
infile>>line_count; //把文件中的记录赋值给line_count
if(!infile) //打开文件失败
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0;i<line_count;i++)
infile>>lines[i].Lid>>lines[i].LName>>lines[i].start_id>>lines[i].end_id>>lines[i].dist>>lines[i].sign;
infile.close();

/*
cout<<" "<<"Lid"<<" "<<"LName"<<" "<<"start_id"<<" "<<"end_id"<<" "<<"dist"<<" "<<"sign"<<endl;
for(i=0;i<view_count;i++)
cout<<" "<<lines[i].Lid<<" "<<lines[i].LName<<" "<<lines[i].start_id
<<" "<<lines[i].end_id<<" "<<lines[i].dist<<" "<<lines[i].sign<<endl;

*/ //这里是输出文件中的信息

}

void search () //查询车站信息(所在的铁路线)
{
cout<<"please enter the station name:";
char sta_name[20];
cin>>sta_name; //输入要查询的名字
cout<<endl;
ifstream infile("views.txt ",ios::in); //读文件
infile >>view_count ; //读出文件记录的个数
if(!infile) //打开文件失败
{
cerr<<"open error!"<<endl;
exit(1);
}
int i,mark;
for(i=0;i<view_count;i++)
infile>>views[i].id>>views[i].name>>views[i].code>>views[i].shortname>>views[i].LName;
infile.close();
for(i=0;i< view_count;i++)
{
if(strcmp(sta_name,views [i].name)==0) //找到车站
{
cout<<"the station's informations is:\n"<<endl;
cout<<" "<<"id"<<" "<<"name"<<" "<<"code"<<" "<<"shortname"<<" "<<"LName"<<endl;
cout<<" "<<views[i].id<<" "<< views[i].name<<" "<< views [i].code
<<" "<< views [i].shortname<<" "<< views [i].LName <<endl;
break;
}
mark=i;

}
if(mark==( view_count -1)) //若没有找到,输出提示
{
cout<<"sorry,the station is not in here"<<endl;
}
}

void addview()
{
cout<<"please enter the new view's informations:"<<endl; //输入新车站信息
cout<<"id:";
cin>>views[view_count].id;
cout<<"name:";
cin>>views[view_count].name;
cout<<"code:";
cin>>views[view_count].code;
cout<<"shortname:";
cin>>views[view_count].shortname;
cout<<"LName:";
cin>>views[view_count].LName;

ofstream outfile("views.txt",ios::app); //打开views文件,并且写入数据
outfile<<view_count<<endl;
if(!outfile) //文件打开失败
{
cerr<<"open error!"<<endl;
exit(1);
}
outfile<<views[view_count].id<<" "<<views[view_count].name<<" "<<views[view_count].code
<<" " <<views[view_count].shortname<<" "<<views[view_count].LName<<endl;
//在文件末尾添加
view_count=view_count+1;

outfile.close(); //关闭文件
cout<<"successfully! the new station is added"<<endl;
cout<<"now station number is:"<<view_count<<endl;

}

void addway()
{
cout<<"please enter the new way's informations:"<<endl; //输入新车站信息
cout<<"station1:";
cin>>ways[way_count].station1; // station1的id
cout<<"station2:";
cin>>ways[way_count].station2; //station2的id
cout<<"dist:";
cin>>ways[way_count].dist; //路段的长度

ofstream outfile("ways.txt",ios::app); //打开way.txt文件
outfile<<way_count<<endl;
if(!outfile) //文件打开失败
{
cerr<<"open error!"<<endl;
exit(1);
}
outfile<<ways[way_count].station1<<" "<<ways[way_count].station2<<" "<<ways[way_count].dist;
//在文件末尾添加

outfile.close(); //关闭文件
cout<<"successfully! the new station is added"<<endl;
way_count=way_count+1;
cout<<"now station number is:"<<view_count<<endl;

}

void addline()
{
cout<<"please enter the new line's informations:"<<endl; //输入新铁路线信息
cout<<"Lid:";
cin>>lines[line_count].Lid;
cout<<"LName:";
cin>>lines[line_count].LName;
cout<<"start_id:";
cin>>lines[line_count].start_id;
cout<<"end_id:";
cin>>lines[line_count].end_id;
cout<<"dist:";
cin>>lines[line_count].dist;
cout<<"sign:";
cin>>lines[line_count].sign;

ofstream outfile("lines.txt",ios::app); //打开文件
outfile <<line_count << endl;
if(!outfile) //文件打开失败
{
cerr<<"open error!"<<endl;
exit(1);
}
outfile<<lines[line_count].Lid<<" "<<lines[line_count].LName<<" "<<lines[line_count].start_id
<<" " <<lines[line_count].end_id<<" "<<lines[line_count].dist<<lines[line_count].sign<<endl;
//在文件末尾添加

outfile.close(); //关闭文件
cout<<"successfully! the new line is added"<<endl;
line_count=line_count+1;
cout<<"now line number is:"<<line_count<<endl;

}

//-----------------------------------------------------------------------------------

void floyed() //弗洛伊德(Floyed)算法
{

int i, j, k, m, start_num, end_num; //i,j用来表示起始点和终点
int dist_list[SIZE_view][SIZE_view]; //定义了一个数组
view_count=view_count+1;
struct path_info path_list[SIZE_view][SIZE_view]; //定义了一个path_info结构的变量,包含着count和path[]用来存储经过的路径
for(i=1;i<=view_count;i++) //这里开始读文件,先让所有的线都为最大值
for(j=1;j<=view_count;j++)
dist_list[i][j]=MAXCOST;

for(int t=0;t<=way_count;t++)
{
i=ways[t].station1;
j=ways[t].station2;
dist_list[i][j]=ways[t].dist;//把文件中的数据赋值给dist_list[i][j]=ways[t].dist;形式

}

for (i =0; i< view_count; i++)
{
for (j= 0; j<view_count; j++)
{
if (i == j)
{
dist_list[i][j] = 0;
continue;
}

dist_list[i][j] = -1;
path_list[i][j].count = 0;
for (k = 0; k< way_count; k++) //
{
if (ways[k].station1 == i && ways[k].station2 == j) //把起始点和终点分别给予i,j

{
dist_list[i][j] = ways[k].dist;
path_list[i][j].count = 2;
path_list[i][j].path[0] = i;
path_list[i][j].path[1] = j;
break;
}

}

}

}

for (k = 0; k<= view_count-1; k++)
{
for (i = 0; i < view_count; i++)
for (j = 0; j< view_count; j++)
{
if (i == k || j == k || i == j)
continue;
if (dist_list[i][k] == -1 || dist_list[k][j] == -1)
continue;
if ( (dist_list[i][j] == -1) ||
((dist_list[i][j] != -1) &&(dist_list[i][k] + dist_list[k][j] < dist_list[i][j])))
{
dist_list[i][j] = dist_list[i][k] + dist_list[k][j];
// shortest[i][j]=shortest[i][k]+shortest[k][j];
path_list[i][j].count = path_list[i][k].count + path_list[k][j].count - 1;
// path[i][j]=k;
for (m = 0; m < path_list[i][k].count; m++)
path_list[i][j].path[m] = path_list[i][k].path[m];
for (m = 0; m < path_list[k][j].count; m++)
path_list[i][j].path[m+path_list[i][k].count] = path_list[k][j].path[m+1];

}

}
}

cout<<" Floyed table:\n";
cout<<" All views in the school:\n";
for (i = 0; i < view_count-1; i++)
cout<<" "<<i+1<<":"<<views[i].name<<endl;

cout<<" Please input the start number: ";
cin>>start_num;
cout<<" Please input the end number: ";
cin>>end_num;
cout<<endl<<endl;

cout<<"From"<<views[start_num-1].name<<"to"<<views[end_num-1].name;
if (dist_list[start_num][end_num] == -1)
cout<<"no way."<<endl;
else
{
cout<<"distance is "<<dist_list[start_num][end_num]<<", and path is :";//dist_list[][]用来表示两点间的长度
k = path_list[start_num][end_num].path[0]-1; //path_list[][]用来保存路径path[m]在这里表明是通过的那个车站的
cout<<views[k].name;
for (m = 1; m < path_list[start_num][end_num].count; m++)
{
k = path_list[start_num][end_num].path[m]-1; //这里应该也是int型,k是经过的路径的id
cout<<"->"<<views[k].name;
}
}
cout<<endl<<endl;
}

void main()
{
readviews();
readlines() ;
readways();

while(1)
{

int menu;
cout<<endl<<endl<<endl<<endl;
cout<<" 全国铁路运输网最佳经由系统 "<<endl;
cout<<"**********************************************************"<<endl;
cout<<" 1:增加车站信息 "<<endl;
cout<<" 2:增加铁路线信息 "<<endl;
cout<<" 3:查询车站信息 "<<endl;
cout<<" 4:查询最短路径 "<<endl;
cout<<" 5:退出界面 "<<endl;
cout<<"**********************************************************"<<endl;

cout<<"输入要进行的操作的代码(1--5):"<<endl;
cin>>menu;
while(menu<1||menu>5)
{
cout<<"error!please enter again:";
cin>>menu;
}
switch(menu)
{
case 1:
while(1)
{
addview();
while (1)
{
addway();
cout<<"do you want to continue (y/n) "<<endl;
char con ;
cin>>con;
if(con=='y')
addway();
else
break;

}
cout<<"do you want to continue (y/n) "<<endl;
char con ;
cin>>con;
if(con=='y')
addview();
else
break;

}

break;
case 2:
while(1)
{
addline();
cout<<"do you want to continue (y/n) "<<endl;
char con ;
cin>>con;
if(con=='y')
addline();
else
break;

}

break;

case 3:
while(1)
{
search ();
cout<<"do you want to continue (y/n) "<<endl;
char con ;
cin>>con;
if(con=='y')
search ();
else
break;

}

break;
case 4:
while(1)
{
floyed();
cout<<"do you want to continue (y/n) "<<endl;
char con ;
cin>>con;
if(con=='y')
floyed();
else
break;

}

break;
case 5:
{
cout<<"谢谢使用,再见!"<<endl;
exit(1);
}

}
}
}

2. 铁路选线课程设计珠河镇到后河镇,i=12%。的平面图和纵断面图怎么画啊

用 AutoCad2014

3. 铁路线路专业设计 需要学习哪些课程!!! 请各位大大帮忙!!

土木工程 CAD工程制图 工程材料 测量 高速铁路概论 桥梁~~~多的很~~~~

我现在就在铁路工程单位上班 其实不用怎么学 到工作地方慢慢学习实践 书上的东西跟实践不一样 只要知道最基本的东西 比如说 一般铁路轨距是多少 1435

最重要的你是设计 也就是画图 就是CAD 你应该一学就会 计算机专业的吗

一开始工作不可能让你直接去画图的 你只能跟着你的同事慢慢学以后

到啦你学的差不多的时候才有可能让你参与到真正的画图中去~~~~~

4. 求西南交通大学铁路选线课程设计图纸,万分感谢

关於流言我装作无动於衷

5. 课程设计,做一个铁路客运售票系统,用java做,我完全不知道这个怎么做,求一高手指点一下,我要疯了

先设计数据库表,然后用SSH框架实实现,这是大的思路,具体的细节还很多,你自己多网络一下,查查资料就能找到。

6. 铁路选线课程设计时,隧道内可不可以设曲线

选线我学过,隧道内可以设曲线,我们东北就有很多隧道里是曲线的.

7. 我今年大四,课题是铁路10KV 配电所及自闭线路的设计。我需要一些配电所的知识,还有它的规范,进了中国知

毕业设计吧?多去图书馆查下资料吧!向你的指导老师要点资料,老师的资料很多滴!

8. 语文六上人教版第5课詹天佑设计的铁路 说说铁路爬陡坡的办法。 最好附图片,清楚些。

铁路爬坡的办法,你问的只是修铁路吗?有没有问到开火车呢?其实,这些问题通过詹天佑的人字形铁路,也全都可以看出来了。

我出生在湖北武汉以后,爸爸转到广州工作,从小我每年都要坐火车,加上武汉市修建了一座座的长江大桥,我不仅是火车的发烧友,对火车,对铁路,对桥梁都大有兴趣。九十年代我学的课文中,詹天佑的故事我记得相当清楚,一些段落我到今天还能开口背诵。

“哪里要开山,哪里要架桥,哪里要把陡坡铲平,哪里要把弯度改小……都要经过周密的计算”。从目前的形势来看,陡坡铲平好像已经用得不多了,看看《武广客运专线(高铁)介绍》的视频,为了减少对地面的影响,桥梁与隧道在全程中占了一大半的里程,铁路爬坡,目前也多半是修桥。

修桥表面看好像工程大,实际上也减少了铁路受地面的影响。我们看看4月份,江西沪昆铁路列车脱轨的事故,就是因为陡坡铲平,火车靠在高山旁边行驶,大雨造成山体滑坡,结果就对铁路造成了危险。

“铁路经过青龙桥附近,坡度特别大,詹天佑顺着山势,修建了一种人字形铁路……北上的列车到了南口就用两个火车头,一个在前面拉,一个在后面推。过青龙桥,列车折向西北前进。过了人字形铁路的叉道口就反过来,列车折向东北前进,原先推的火车头拉,原先拉的火车头推。”

詹天佑修铁路的这个办法,就是顺着山势,让火车靠在高山旁边爬坡,从而减少陡坡铲平。可是这样的办法,靠在高山旁边,如果发生山体滑坡,把铁路埋了,火车就容易发生事故,所以今天多半都要修桥。

如果问火车怎么爬坡,詹天佑的故事里面也看到了,就要让更多的车轮变成有动力的转起来。增加一个火车头,就是要在列车当中,增加一些有动力的车轮。或者说,一个工人用一条扁担独自挑两簧土,两个工人用一条扁担共同抬一簧土,当然是两个人一同抬一簧的感觉轻一点儿。简单说来,这也就是“一个和尚挑水吃,两个和尚抬水吃”的形象。

这个道理对火车也是一样的。几十节车厢的负担,不要全部交给前面的一个火车头,还是让后面多一个火车头一同使劲儿,就把一簧土变轻了。目前在武广客运专线的高铁上,跑的都是动车组,以前火车跑得快,全凭车头带的事实一去不复返,时速350千米的动车组,每节车厢都有动力,这样让列车力气大,跑得快,上坡也就不怕重了。

相比之下,看看武汉的天兴洲大桥,就因为除了客运高铁的双线,还有货运的双线,一共四线的公路铁路两用桥。因为货车比客车重得多,货车还要比客车长好多,所以货运火车头的负荷更大,大桥就要为货车减少坡度。

总之,要让铁路爬坡,就要降低坡度,目前可能优先选择架桥。要让火车爬坡,就要多几个车轮一起开动,多几个人一同使劲,正如两个人一起抬土,感觉就会轻一些,上坡也就轻松一些。

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919