Программа очень глючная, а также неправильный дизайн. У вас есть sted::vector
, который всегда определяется локально и поэтому всегда будет содержать один элемент.
Здесь исправлены основные ошибки, из-за которых ваш код печатает что-то.
Вам необходимо определить конструктор по умолчанию для автобус. Ваше определение неверно.
В вашей функции ввода вы читаете переменные в "busMake0" и "busType0". Но тогда вы не используете эти переменные при создании шины.
Используя отладчик, вы обнаружите эту проблему за 1 минуту.
Вы используете тонны глобальных переменных. Не делай этого. Ваше заявление switch
не в al oop и не имеет break
.
Множество других ошибок проектирования.
Что вы должны сделать: Прежде чем начать писать какую-либо строку кода, подождите 1 полный день, подумайте, что нужно сделать, а затем как это должно быть сделано. Тогда начните кодировать. Начните с написания комментариев в ваших исходных файлах. Затем добавьте код. Делай обделение. Отформатируйте ваш код. Используйте значимые имена переменных. Никогда не используйте глобальные переменные. Не используйте using namespace std;
Пожалуйста, смотрите ваш код с минимальными исправлениями.
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
string busType, busMake, regNum;
char menu();
int id = 0;
int carObjNum, option0;
int temp = 0;
char objArray[5];
string busMake0, busType0, regNum0;
class bus {
public:
int i;
string busType;
string busMake;
string regNum;
char input();
char transHistory();
bus() : busMake(""), busType(""), regNum("") {}
bus(string id, string name, string phone) : busMake(id), busType(name), regNum(phone) {}
bool operator==(const bus& obj) {
return (busMake == obj.busMake) && (busType == obj.busType) && (regNum == obj.regNum);
}
/*
* Write the member variables to stream objects
*/
friend ostream& operator << (ostream& out, const bus& obj) {
out << obj.busMake << "\n" << obj.busType << "\n" << obj.regNum << endl;
return out;
}
/*
* Read data from stream object and fill it in member variables
*/
friend istream& operator >> (istream& in, bus& obj) {
in >> obj.busMake;
in >> obj.busType;
in >> obj.regNum;
return in;
}
};
char bus::input() {
cout << "Enter bus make\n" << endl;
cin >> busMake0;
cout << "Enter bus Type\n" << endl;
cin >> busType0;
cout << "Enter registration number\n" << endl;
cin >> regNum;
vector<bus> vec = {};
bus stud1(busMake0, busType0, regNum);
vec.push_back(stud1);
ofstream out("bus.txt");
out << stud1;
out.close();
// Open the File
ifstream in("bus.txt");
bus bus1;
in >> bus1;
in.close();
for (bus n : vec) {
std::cout << n << '\n';
}
return 0;
}
char bus::transHistory() {
bus stud1;
//Open the file that you just saved.
ifstream out("bus.txt");
//need this function to be able to read what was saved in stud1 at bus::input()
//then after that have all info output to user upon request.
out.close();
return 0;
}
int x;
char menu() {
int option;
cout << "Welcome to the GTUC repair system\n" << endl;
cout << "What would you like to do?\n" << endl;
cout << "" << endl;
cout << "Enter '1' to enter a new repair\n" << endl;
cout << "Enter '2' to print total transaction history\n" << endl;
cin >> option;
option0 = option;
return option;
}
int main()
{
bus decision;
menu();
switch (option0) {
case 1:
decision.input();
menu();
case 2:
decision.transHistory();
default:
break;
}
return 0;
}
Извините, но я не могу вам помочь. Я даже не понимаю задачу полностью.