ООП C++ , Классы
Хеллоу, начинаю изучать с++ дошел до ооп. Пишу типо меню для "жд станции" например информация о поезде и т.д, но есть одно "но" компилятор ругается хз почему. можете исправить код?
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <cstdlib>
using namespace std;
class traininfo {
int number, station, time;
int number2, station2, time2;
public:
int info(){
cout<<"Ââåäèòå âñþ èíôîðìàöèþ î ïîåçäàõ: "<< endl;
cout<<"Ââåäèòå íîìåð ïåðâîãî ïðîåçäà: "<< endl;
cin>>number;
cout<<endl<<"Ââåäèòå êîíå÷íóþ ñòàíöèþ "<<endl;
cin>>station;
cout<<endl<<"Ââåäèòå âðåìÿ ïðèáûòèÿ ÷÷\ìì "<<endl;
cin>>time;
///
cout<<"Ââåäèòå íîìåð âòîðîãî ïðîåçäà: "<< endl;
cin>>number2;
cout<<endl<<"Ââåäèòå êîíå÷íóþ ñòàíöèþ "<<endl;
cin>>station2;
cout<<endl<<"Ââåäèòå âðåìÿ ïðèáûòèÿ ÷÷\ìì "<<endl;
cin>>time2;
system( "cls" );
}
menu(){
cout<<"Âûáåðèòå íåîáõîäèìûé âàì ïóíêò(ââåäèòå åãî íîìåð) : "<< endl;
cout<<"1.Îáùàÿ èíôîðìàöèÿ î ïîåçäàõ."<<endl;
cout<<"2.Èíôîðìàöèÿ î ïåðâîì ïîåçäå."<<endl;
cout<<"3.Èíôîðìàöèÿ î âòîðîì ïîåçäå."<<endl;
int men=0;
cin>>men;
if (men=1) {
obj3.tablo()<<endl;
}
if (men=2) {
obj4.train1()<<endl;
}
if (men=3) {
obj5.train2()<endl;
}
else {
abort();
}
}
tablo() {
cout<<"Îáùàÿ èíôîðìàöèÿ: "<<endl<<endl;
cout<<"Íîìåð ïîåçäà: "<<number<<endl;
cout<<"Êîíå÷íàÿ ñòàíööèÿ: "<<station<<endl;
cout<<"Âðåìÿ ïðèáûòèÿ: "<<time<<endl;
///
cout<<"Íîìåð ïîåçäà: "<<number2<<endl;
cout<<"Êîíå÷íàÿ ñòàíööèÿ: "<<station2<<endl;
cout<<"Âðåìÿ ïðèáûòèÿ: "<<time2<<endl;
cout<<"Åñëè õîòèòå âåðíóòüñÿ â ìåíþ ââåäèòå (1)"<<endl
int men=0;
cin>>men;
if (men=1) {
system( "cls" );
obj2.menu()<<endl;
}
else {
abort();
}
}
train1() {
cout<<"Èíôîðìàöèÿ î ïåðâîì ïîåçäå: "<<endl<<endl;
cout<<"Íîìåð ïîåçäà: "<<number<<endl;
cout<<"Êîíå÷íàÿ ñòàíööèÿ: "<<station<<endl;
cout<<"Âðåìÿ ïðèáûòèÿ: "<<time<<endl;
cout<<"Åñëè õîòèòå âåðíóòüñÿ â ìåíþ ââåäèòå (1)"<<endl
int men=0;
cin>>men;
if (men=1) {
system( "cls" );
obj2.menu()<<endl;
}
else {
abort();
}
}
train2() {
cout<<"Èíôîðìàöèÿ î âòîðîì ïîåçäå: "<<endl<<endl;
cout<<"Íîìåð ïîåçäà: "<<number2<<endl;
cout<<"Êîíå÷íàÿ ñòàíööèÿ: "<<station2<<endl;
cout<<"Âðåìÿ ïðèáûòèÿ: "<<time2<<endl;
cout<<"Åñëè õîòèòå âåðíóòüñÿ â ìåíþ ââåäèòå (1)"<<endl
int men=0;
cin>>men;
if (men=1) {
system( "cls" );
obj2.menu()<<endl;
}
else {
abort();
}
}
}obj1, obj2, obj3, obj4, obj5;
main(){
obj1.info()<<endl;
<obj2.menu()<<endl
}
Ответы (1 шт):
Автор решения: DSuhoi
→ Ссылка
Версия данного кода без ошибок компиляции:
#include <iostream>
using namespace std;
const string EMPTY_STR = "Какой-то текст по вводу: \n"; //нечитабельные строки
class TrainInfo { //методы лучше описывать вне класса
private:
int number[2], station[2], time[2]; //лучше в массивах хранить подобные данные
public:
void writeInfo(); //описание методов
void menu();
void printTablo();
void printTrain(const int NumberTrain);
};
void TrainInfo::writeInfo(){ //получение информации о переменных
for(int i=0; i<2; i++){
cout << EMPTY_STR;
cin >> number[i];
cout << EMPTY_STR;
cin >> station[i];
cout << EMPTY_STR;
cin >> time[i];
}
system( "cls" );
}
void TrainInfo::menu(){ //похоже на реализацию какого-то меню
cout << EMPTY_STR;
int men=0;
cin>>men;
switch(men){ //понятия не имею, что делают методы train1 и train2
case 1: printTablo(); break;
case 2: printTrain(men); break;
case 3: printTrain(men); break;
default: abort(); break;
};
}
void TrainInfo::printTablo() { //табло с информацией...
cout << EMPTY_STR;
for(int i=0; i<2; i++){
cout << EMPTY_STR << number[i] << endl;
cout << EMPTY_STR << station[i] << endl;
cout << EMPTY_STR << time[i] << endl;
}
int men=0;
cin>>men;
if(men!=1) abort();
}
void TrainInfo::printTrain(const int NumberTrain) { //это NumberTrain - номер поезда
//вывод информации о поезде
cout << EMPTY_STR << number[NumberTrain] << endl;
cout << EMPTY_STR << station[NumberTrain] << endl;
cout << EMPTY_STR << time[NumberTrain] << endl;
cout << EMPTY_STR;
int men=0;
cin>>men;
if(men!=1) abort();
}
int main(void){
//TrainInfo obj1, obj2;
//obj1.writeInfo();
//obj2.menu();
return 0;
}