#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
typedef struct
{
string station;
int number;
int time;
} TRAIN, *PTRAIN;
int main()
{
vector<TRAIN> v;
TRAIN t;
// Ввод
ifstream ifs("in.txt", ios::in);
while(ifs)
{
ifs >> t.station;
ifs >> t.number;
ifs >> t.time;
v.push_back(t);
}
ifs.close();
// Вывод
for(int i = 0; i < v.size() - 1; ++i)
{
cout << "---------------------------------------" << endl;
cout << "STATION: " << v.station << endl;
cout << "NUMBER: " << v.number << endl;
cout << "TIME: " << v.time << endl;
cout << "---------------------------------------" << endl;
}
string name;
cout << "enter station: ";
cin >> name;
// Вывод
bool c = false;
for(int i = 0; i < v.size() - 1; ++i)
{
if(name == v.station)
{
cout << "---------------------------------------" << endl;
cout << "STATION: " << v.station << endl;
cout << "NUMBER: " << v.number << endl;
cout << "TIME: " << v.time << endl;
cout << "---------------------------------------" << endl;
c = true;
}
}
if(!c)
cout << "not found!" << endl;
}
линейные списки
саму прогу я написал вот с линейными списками пока не очень дружу))) помогите написать
заранее благодарен)))!!!
вот прога:
Код:
Цитата:
надо добавить добавление станции,
Добавление в конец? push_back();
в середину? используй insert();
Цитата:
поиск станции,
По какому полю поиск? По всем? По какому то одному? По идее вводишь нужный элемент, пробегаешься в цикле по вектору справнивая искомый элемент с текущим, если нашел, выводишь.
Цитата:
редактирование станции
Аналогично предыдущему, тока не выводишь,а редактируешь.
добавление мне надо и в конец и в середину
поиск надо по всем, и то же самое с редактирование
только как это реализовывать в коде, читал книжки там понятно объясняется, только на своей программе не могу сделать((((.
Цитата:
добавление мне надо и в конец и в середину
в конец ты уже умеешь, в середину я тебе написал как.
Цитата:
поиск надо по всем
начало у тебя уже есть :)
Цитата:
с редактирование
А как тц хочешь реализовать? Спрашивать у пользователя номер ячейки, которую будешь редактировать? Или как?
athens 12 1535
moskva 124 1210
kikino 235 1646
erevan 1 1340
paris 5 1235
berlin 6 1700
и он у меня при компиляции сначало показывает всё что у меня есть
и делает поиск по станции!!))
в основном мне надо чтоб он у меня спрашивал дабавить стнацию или нет,
если да то дабавить новую станцию в файл.
ну а удалени понятно, спрашивает какой из них удалить, и удаляешь
а редактирование ну тоисть корректировка, ну то же самое что удаление за исключением,что указатель на начало списка измениться не может-ну это не обязательно!!)))
Код:
string station= "kiev";
int number=96;
int time=1835;
TRAIN z;
cout<<"pered vstavkoy:\n ";
for(int i = 0; i < v.size() - 1; ++i)
{
cout << "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" << endl;
cout << "STATION: " << v.station << endl;
cout << "NUMBER: " << v.number << endl;
cout << "TIME: " << v.time << endl;
cout << "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" << endl;
}
ofstream outfile("in.txt", ios::in);
{
outfile << z.station;
outfile << z.number;
outfile << z.time;
v.insert(v.begin()+2, z);
}
int number=96;
int time=1835;
TRAIN z;
cout<<"pered vstavkoy:\n ";
for(int i = 0; i < v.size() - 1; ++i)
{
cout << "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" << endl;
cout << "STATION: " << v.station << endl;
cout << "NUMBER: " << v.number << endl;
cout << "TIME: " << v.time << endl;
cout << "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" << endl;
}
ofstream outfile("in.txt", ios::in);
{
outfile << z.station;
outfile << z.number;
outfile << z.time;
v.insert(v.begin()+2, z);
}
тока у меня какойто бред выводит цыфры какие то вводит файл и удалеет первую станцию
Цитата:
в основном мне надо чтоб он у меня спрашивал дабавить стнацию или нет,
А в чем проблема? Полсе вывода таблицы вешаешь
Код:
cout << "Добавлять будем?";
и если да то открываваешь файл на запись, с потоками я несилен, а если было бы fopen(); то переводишь файловый указатель на конец файла через fseek и пишешь в файл.
Цитата:
бред выводит цыфры какие то вводит файл
Ты создал переменную типа структура z, и потом ее вывел в файл. А у тебя в этой переменной данные то есть?
Код:
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<conio.h>
using namespace std;
struct train
{
char station[30];
int count,numer,time;
train *next, *prev;
};
void output(train *last);
void mainmenu();
void headup();
int pluser(train *last);
void removemenu();
int main(int argc, char* argv[])
{
FILE *in;
in=fopen("dan.txt","r");
if(!in)
{
cout<<"Error of Input Text File!"<<endl;
system("pause");
exit(1);
}
train *k,*q,*first,*last;
int temp,t;
char s[1];
k=new train;
fscanf(in,"%30s%i%i",k->station,&k->numer,&k->time);
k->next=NULL;
k->prev=NULL;
last=k;
q=k;
while(!feof(in))
{
k=new train;
fscanf(in,"%30s%i%i",k->station,&k->numer,&k->time);
k->next=q;
q->prev=k;
q=k;
}
q->prev=NULL;
first=q;
cout<<"Wellcome To Line List!!!"<<endl;
cout<<"Recods List:"<<endl;
headup();
output(last);
system("pause");
int fl=0;
do
{
mainmenu();
switch(getch())
{
case 49:
system("cls");
headup();
output(last);
system("pause");
break;
case 50:
system("cls");
train *pump;
pump=new train;
cout<<"Enter Train(30 strings maximum): ";
cin>>pump->station;
cout<<"Enter Train Numer: ";
cin>>pump->numer;
cout<<"Enter Time: ";
cin>>pump->time;
if(last==NULL&&first==NULL)
{
first=last=pump;
pump->prev=NULL;
pump->next=NULL;
}
else
{
last->next=pump;
pump->prev=last;
last=pump;
pump->next=NULL;
}
cout<<"\n";
printf("Record has been created");
cout<<"\n\n";
system("pause");
break;
case 51:
removemenu();
fl=1;
train *l;
l=k=first;
switch(getch())
{
case 49:
system("cls");
cout<<"Which numer of Record you want remove?: ";
cin>>t;
fl=0;
temp=pluser(last);
strcpy(s,"y");
do
{
if(t>temp)
{
system("cls");
cout<<"There is no such record. Try again? ";
cout<<"(y/n): ";
cin>>s;
if(strcmp(s,"y")==0)
{
system("cls");
cout<<"Which numer of Record you want remove?: ";
cin>>t;
}
else if(strcmp(s,"n")==0)break;
}
}
while(t>temp);
if(strcmp(s,"y")==0)
{
if(t==k->count)
{
fl=1;
if(k->next==NULL)
{
delete k;
delete first;
delete last;
first=last=NULL;
}
}
while(k!=NULL)
{
fl=1;
if(t==k->count)
{
if(k==first)
{
q=k;
first=k->next;
first->prev=NULL;
l=k=first;
delete q;
}
else if(k==last)
{
q=k;
last=k->prev;
last->next=NULL;
k=NULL;
delete q;
}
else
{
q=k;
l->next=k->next;
k->next->prev=l;
delete q;
k=l->next;
}
}
else
{
l=k;
k=k->next;
}
}
if(fl==1)
{
cout<<"\n\n";
cout<<"Record remove!";
cout<<"\n\n";
system("pause");
}
}
break;
case 50:
system("cls");
k=first;
while(k!=NULL)
{
first=k->next;
delete k;
k=first;
}
first=last=NULL;
cout<<"List is empty!\n"<<endl;
system("pause");
break;
case 51:
break;
}
break;
case 27:
exit(1);
delete []k;
break;
}
}
while(1);
return 0;
}
void output(train *last)
{
train *k;
k=last;
int i=1;
while(k!=NULL)
{
k->count=i;
printf("||%3i||%30s||%10i||%10i||\n",k->count,k->station,k->numer,k->time);
cout<<"---------------------------------------------------------------"<<endl;
k=k->prev;
i++;
}
}
void mainmenu()
{
system("cls");
cout<<" Menu:"<<endl;
cout<<"1)Show Records"<<endl;
cout<<"2)Add Record"<<endl;
cout<<"3)Remove Record"<<endl;
cout<<"Esc)Exit"<<endl;
}
void headup()
{
cout<<"---------------------------------------------------------------"<<endl;
cout<<"|| # || Train || Number || Time ||"<<endl;
cout<<"---------------------------------------------------------------"<<endl;
}
int pluser(train *last)
{
train *k;
k=last;
int i=0;
while(k!=NULL)
{
i++;
k=k->prev;
}
return i;
}
void removemenu()
{
system("cls");
cout<<" Menu:"<<endl;
cout<<"1)Remove by numer in List"<<endl;
cout<<"2)Remove all"<<endl;
cout<<"3)Back"<<endl;
}
#include<cstdlib>
#include<cstring>
#include<conio.h>
using namespace std;
struct train
{
char station[30];
int count,numer,time;
train *next, *prev;
};
void output(train *last);
void mainmenu();
void headup();
int pluser(train *last);
void removemenu();
int main(int argc, char* argv[])
{
FILE *in;
in=fopen("dan.txt","r");
if(!in)
{
cout<<"Error of Input Text File!"<<endl;
system("pause");
exit(1);
}
train *k,*q,*first,*last;
int temp,t;
char s[1];
k=new train;
fscanf(in,"%30s%i%i",k->station,&k->numer,&k->time);
k->next=NULL;
k->prev=NULL;
last=k;
q=k;
while(!feof(in))
{
k=new train;
fscanf(in,"%30s%i%i",k->station,&k->numer,&k->time);
k->next=q;
q->prev=k;
q=k;
}
q->prev=NULL;
first=q;
cout<<"Wellcome To Line List!!!"<<endl;
cout<<"Recods List:"<<endl;
headup();
output(last);
system("pause");
int fl=0;
do
{
mainmenu();
switch(getch())
{
case 49:
system("cls");
headup();
output(last);
system("pause");
break;
case 50:
system("cls");
train *pump;
pump=new train;
cout<<"Enter Train(30 strings maximum): ";
cin>>pump->station;
cout<<"Enter Train Numer: ";
cin>>pump->numer;
cout<<"Enter Time: ";
cin>>pump->time;
if(last==NULL&&first==NULL)
{
first=last=pump;
pump->prev=NULL;
pump->next=NULL;
}
else
{
last->next=pump;
pump->prev=last;
last=pump;
pump->next=NULL;
}
cout<<"\n";
printf("Record has been created");
cout<<"\n\n";
system("pause");
break;
case 51:
removemenu();
fl=1;
train *l;
l=k=first;
switch(getch())
{
case 49:
system("cls");
cout<<"Which numer of Record you want remove?: ";
cin>>t;
fl=0;
temp=pluser(last);
strcpy(s,"y");
do
{
if(t>temp)
{
system("cls");
cout<<"There is no such record. Try again? ";
cout<<"(y/n): ";
cin>>s;
if(strcmp(s,"y")==0)
{
system("cls");
cout<<"Which numer of Record you want remove?: ";
cin>>t;
}
else if(strcmp(s,"n")==0)break;
}
}
while(t>temp);
if(strcmp(s,"y")==0)
{
if(t==k->count)
{
fl=1;
if(k->next==NULL)
{
delete k;
delete first;
delete last;
first=last=NULL;
}
}
while(k!=NULL)
{
fl=1;
if(t==k->count)
{
if(k==first)
{
q=k;
first=k->next;
first->prev=NULL;
l=k=first;
delete q;
}
else if(k==last)
{
q=k;
last=k->prev;
last->next=NULL;
k=NULL;
delete q;
}
else
{
q=k;
l->next=k->next;
k->next->prev=l;
delete q;
k=l->next;
}
}
else
{
l=k;
k=k->next;
}
}
if(fl==1)
{
cout<<"\n\n";
cout<<"Record remove!";
cout<<"\n\n";
system("pause");
}
}
break;
case 50:
system("cls");
k=first;
while(k!=NULL)
{
first=k->next;
delete k;
k=first;
}
first=last=NULL;
cout<<"List is empty!\n"<<endl;
system("pause");
break;
case 51:
break;
}
break;
case 27:
exit(1);
delete []k;
break;
}
}
while(1);
return 0;
}
void output(train *last)
{
train *k;
k=last;
int i=1;
while(k!=NULL)
{
k->count=i;
printf("||%3i||%30s||%10i||%10i||\n",k->count,k->station,k->numer,k->time);
cout<<"---------------------------------------------------------------"<<endl;
k=k->prev;
i++;
}
}
void mainmenu()
{
system("cls");
cout<<" Menu:"<<endl;
cout<<"1)Show Records"<<endl;
cout<<"2)Add Record"<<endl;
cout<<"3)Remove Record"<<endl;
cout<<"Esc)Exit"<<endl;
}
void headup()
{
cout<<"---------------------------------------------------------------"<<endl;
cout<<"|| # || Train || Number || Time ||"<<endl;
cout<<"---------------------------------------------------------------"<<endl;
}
int pluser(train *last)
{
train *k;
k=last;
int i=0;
while(k!=NULL)
{
i++;
k=k->prev;
}
return i;
}
void removemenu()
{
system("cls");
cout<<" Menu:"<<endl;
cout<<"1)Remove by numer in List"<<endl;
cout<<"2)Remove all"<<endl;
cout<<"3)Back"<<endl;
}
Держи и радуйся! Это двусвязный линейный список. Ну тут доработать можно плюс оптимизацию сделать. Редактирование, сохранение и поиск думаю сам попробуешь сделать. :)
тестовой файл забыл :) + сам скомпилированный проект
Спасибо большое))))!!!!!! Я очень очень благодарен)))
можешь пожалуйста комментировать прогу, я просто по такому стилю мне очень сложно программировать)))!!
Цитата: manuk
я ща пытаюсь реализовать поиск)))
можешь пожалуйста комментировать прогу, я просто по такому стилю мне очень сложно программировать)))!!
можешь пожалуйста комментировать прогу, я просто по такому стилю мне очень сложно программировать)))!!
Используй (strcmp("string1","string2")==0) по нужному полю :)
Код:
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<conio.h>
using namespace std;
struct train
{
char station[30];//имя поезда
int count,numer,time;//номер списка, номер поезда, время
train *next, *prev;//следующий элемент списка, предыдущий
};
void output(train *last);//вывод списка
void mainmenu();//главное меню печатает
void headup();//шапка таблицы
int pluser(train *last);//считает количество элементов в списке, потом при удалении понадобиться
void removemenu();//меню удаления
int main(int argc, char* argv[])
{
FILE *in;
in=fopen("dan.txt","r");//открываем файл
if(!in)//проверяем его наличие
{
cout<<"Error of Input Text File!"<<endl;
system("pause");
exit(1);
}
train *k,*q,*first,*last;// указатель на список, доп указатель на список,указатель на первый элемент списка, указатель на последний элемент списка
int temp,t;//бафферные переменные
char s[1];//баф переменная
k=new train;//выделяем память
fscanf(in,"%30s%i%i",k->station,&k->numer,&k->time);//читаем из списка
k->next=NULL;
k->prev=NULL;
last=k;
q=k;
while(!feof(in))//заполняем список пока не конец файла
{
k=new train;
fscanf(in,"%30s%i%i",k->station,&k->numer,&k->time);
k->next=q;
q->prev=k;
q=k;
}
q->prev=NULL;
first=q;
cout<<"Wellcome To Line List!!!"<<endl;
cout<<"Recods List:"<<endl;
headup();
output(last);
system("pause");
int fl=0;
do
{
mainmenu();
switch(getch())//собственно так меню сделано
{
case 49:
system("cls");
headup();
output(last);
system("pause");
break;
case 50:
system("cls");
train *pump;
pump=new train;
cout<<"Enter Train(30 strings maximum): ";
cin>>pump->station;
cout<<"Enter Train Numer: ";
cin>>pump->numer;
cout<<"Enter Time: ";
cin>>pump->time;
if(last==NULL&&first==NULL)//если первый, добавляем
{
first=last=pump;
pump->prev=NULL;
pump->next=NULL;
}
else// если еще есть элементы в списке, добавляем
{
last->next=pump;
pump->prev=last;
last=pump;
pump->next=NULL;
}
cout<<"\n";
printf("Record has been created");
cout<<"\n\n";
system("pause");
break;
case 51:
removemenu();
fl=1;
train *l;
l=k=first;
switch(getch())
{
case 49:
system("cls");
cout<<"Which numer of Record you want remove?: ";
cin>>t;
fl=0;
temp=pluser(last);
strcpy(s,"y");
do//обрабатываем какой номер записи нажмут для удаления, чтобы все путем работало
{
if(t>temp)
{
system("cls");
cout<<"There is no such record. Try again? ";
cout<<"(y/n): ";
cin>>s;
if(strcmp(s,"y")==0)
{
system("cls");
cout<<"Which numer of Record you want remove?: ";
cin>>t;
}
else if(strcmp(s,"n")==0)break;
}
}
while(t>temp);
if(strcmp(s,"y")==0)
{
if(t==k->count)
{
fl=1;
if(k->next==NULL)//если всего 1 элемент в списке
{
delete k;
delete first;
delete last;
first=last=NULL;
}
}
while(k!=NULL)//если в списке еще есть э-ты
{
fl=1;
if(t==k->count)
{
if(k==first)//если элемент первый
{
q=k;
first=k->next;
first->prev=NULL;
l=k=first;
delete q;
}
else if(k==last)//если э-т последний
{
q=k;
last=k->prev;
last->next=NULL;
k=NULL;
delete q;
}
else//если он в середине
{
q=k;
l->next=k->next;
k->next->prev=l;
delete q;
k=l->next;
}
}
else//если не тот э-т который удаляем, листаем дальше
{
l=k;
k=k->next;
}
}
if(fl==1)
{
cout<<"\n\n";
cout<<"Record remove!";
cout<<"\n\n";
system("pause");
}
}
break;
case 50:
system("cls");
k=first;
while(k!=NULL)//удаление всего списка сразу
{
first=k->next;
delete k;
k=first;
}
first=last=NULL;
cout<<"List is empty!\n"<<endl;
system("pause");
break;
case 51:
break;
}
break;
case 27:
exit(1);//выход из програмы
delete []k;
break;
}
}
while(1);
return 0;
}
void output(train *last)
{
train *k;
k=last;
int i=1;
while(k!=NULL)
{
k->count=i;
printf("||%3i||%30s||%10i||%10i||\n",k->count,k->station,k->numer,k->time);
cout<<"---------------------------------------------------------------"<<endl;
k=k->prev;
i++;
}
}
void mainmenu()
{
system("cls");
cout<<" Menu:"<<endl;
cout<<"1)Show Records"<<endl;
cout<<"2)Add Record"<<endl;
cout<<"3)Remove Record"<<endl;
cout<<"Esc)Exit"<<endl;
}
void headup()
{
cout<<"---------------------------------------------------------------"<<endl;
cout<<"|| # || Train || Number || Time ||"<<endl;
cout<<"---------------------------------------------------------------"<<endl;
}
int pluser(train *last)
{
train *k;
k=last;
int i=0;
while(k!=NULL)
{
i++;
k=k->prev;
}
return i;
}
void removemenu()
{
system("cls");
cout<<" Menu:"<<endl;
cout<<"1)Remove by numer in List"<<endl;
cout<<"2)Remove all"<<endl;
cout<<"3)Back"<<endl;
}
#include<cstdlib>
#include<cstring>
#include<conio.h>
using namespace std;
struct train
{
char station[30];//имя поезда
int count,numer,time;//номер списка, номер поезда, время
train *next, *prev;//следующий элемент списка, предыдущий
};
void output(train *last);//вывод списка
void mainmenu();//главное меню печатает
void headup();//шапка таблицы
int pluser(train *last);//считает количество элементов в списке, потом при удалении понадобиться
void removemenu();//меню удаления
int main(int argc, char* argv[])
{
FILE *in;
in=fopen("dan.txt","r");//открываем файл
if(!in)//проверяем его наличие
{
cout<<"Error of Input Text File!"<<endl;
system("pause");
exit(1);
}
train *k,*q,*first,*last;// указатель на список, доп указатель на список,указатель на первый элемент списка, указатель на последний элемент списка
int temp,t;//бафферные переменные
char s[1];//баф переменная
k=new train;//выделяем память
fscanf(in,"%30s%i%i",k->station,&k->numer,&k->time);//читаем из списка
k->next=NULL;
k->prev=NULL;
last=k;
q=k;
while(!feof(in))//заполняем список пока не конец файла
{
k=new train;
fscanf(in,"%30s%i%i",k->station,&k->numer,&k->time);
k->next=q;
q->prev=k;
q=k;
}
q->prev=NULL;
first=q;
cout<<"Wellcome To Line List!!!"<<endl;
cout<<"Recods List:"<<endl;
headup();
output(last);
system("pause");
int fl=0;
do
{
mainmenu();
switch(getch())//собственно так меню сделано
{
case 49:
system("cls");
headup();
output(last);
system("pause");
break;
case 50:
system("cls");
train *pump;
pump=new train;
cout<<"Enter Train(30 strings maximum): ";
cin>>pump->station;
cout<<"Enter Train Numer: ";
cin>>pump->numer;
cout<<"Enter Time: ";
cin>>pump->time;
if(last==NULL&&first==NULL)//если первый, добавляем
{
first=last=pump;
pump->prev=NULL;
pump->next=NULL;
}
else// если еще есть элементы в списке, добавляем
{
last->next=pump;
pump->prev=last;
last=pump;
pump->next=NULL;
}
cout<<"\n";
printf("Record has been created");
cout<<"\n\n";
system("pause");
break;
case 51:
removemenu();
fl=1;
train *l;
l=k=first;
switch(getch())
{
case 49:
system("cls");
cout<<"Which numer of Record you want remove?: ";
cin>>t;
fl=0;
temp=pluser(last);
strcpy(s,"y");
do//обрабатываем какой номер записи нажмут для удаления, чтобы все путем работало
{
if(t>temp)
{
system("cls");
cout<<"There is no such record. Try again? ";
cout<<"(y/n): ";
cin>>s;
if(strcmp(s,"y")==0)
{
system("cls");
cout<<"Which numer of Record you want remove?: ";
cin>>t;
}
else if(strcmp(s,"n")==0)break;
}
}
while(t>temp);
if(strcmp(s,"y")==0)
{
if(t==k->count)
{
fl=1;
if(k->next==NULL)//если всего 1 элемент в списке
{
delete k;
delete first;
delete last;
first=last=NULL;
}
}
while(k!=NULL)//если в списке еще есть э-ты
{
fl=1;
if(t==k->count)
{
if(k==first)//если элемент первый
{
q=k;
first=k->next;
first->prev=NULL;
l=k=first;
delete q;
}
else if(k==last)//если э-т последний
{
q=k;
last=k->prev;
last->next=NULL;
k=NULL;
delete q;
}
else//если он в середине
{
q=k;
l->next=k->next;
k->next->prev=l;
delete q;
k=l->next;
}
}
else//если не тот э-т который удаляем, листаем дальше
{
l=k;
k=k->next;
}
}
if(fl==1)
{
cout<<"\n\n";
cout<<"Record remove!";
cout<<"\n\n";
system("pause");
}
}
break;
case 50:
system("cls");
k=first;
while(k!=NULL)//удаление всего списка сразу
{
first=k->next;
delete k;
k=first;
}
first=last=NULL;
cout<<"List is empty!\n"<<endl;
system("pause");
break;
case 51:
break;
}
break;
case 27:
exit(1);//выход из програмы
delete []k;
break;
}
}
while(1);
return 0;
}
void output(train *last)
{
train *k;
k=last;
int i=1;
while(k!=NULL)
{
k->count=i;
printf("||%3i||%30s||%10i||%10i||\n",k->count,k->station,k->numer,k->time);
cout<<"---------------------------------------------------------------"<<endl;
k=k->prev;
i++;
}
}
void mainmenu()
{
system("cls");
cout<<" Menu:"<<endl;
cout<<"1)Show Records"<<endl;
cout<<"2)Add Record"<<endl;
cout<<"3)Remove Record"<<endl;
cout<<"Esc)Exit"<<endl;
}
void headup()
{
cout<<"---------------------------------------------------------------"<<endl;
cout<<"|| # || Train || Number || Time ||"<<endl;
cout<<"---------------------------------------------------------------"<<endl;
}
int pluser(train *last)
{
train *k;
k=last;
int i=0;
while(k!=NULL)
{
i++;
k=k->prev;
}
return i;
}
void removemenu()
{
system("cls");
cout<<" Menu:"<<endl;
cout<<"1)Remove by numer in List"<<endl;
cout<<"2)Remove all"<<endl;
cout<<"3)Back"<<endl;
}