Witam
Mam problem ze swoim programem i nie mogę zlokalizować problemu.. Program ma być prostą bazą danych (obsługa warsztatu). Uruchamia się on poprawnie, jednakże po wybraniu opcji wyświetlenia zapisanych danych wyskakuje błąd krytyczny, dotyczący wyjścia poza zakres wektora. Bardzo prosiłbym bardziej obeznanych ode mnie o pomoc :)
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
using namespace std;
void menu() {
system("cls");
cout << "Menu:" << endl;
cout << "\t1:Dodaj zlecenie do bazy danych" << endl;
cout << "\t2:Zlecenia w trakcie realizacji" << endl;
cout << "\t3:Zlecenia zrealizowane" << endl;
cout << "\t4:Zapisz wykaz napraw zrealizowanych" << endl;
cout << "\t5:Wczytaj wykaz napraw zrealizwoanych" << endl;
cout << "\tEsc:Koniec" << endl;
}
void witaj() {
cout << "Witaj w programie obslugujacym warsztat samochodowy." << endl << endl << "Nacisnij dowolny klawisz, aby przejsc do Menu Glownego" << endl;
}
class Wtrakcie {
public:
string marka;
string model;
int rocznik;
string imie;
string nazwisko;
char usterka[100];
int cenanetto;
int cenabrutto;
}w1;
vector<Wtrakcie>wtr;
vector<Wtrakcie>::iterator x;
void NoweW() {
cout << "Podaj marke:" << endl;
cin >> w1.marka;
cout << "Podaj model:" << endl;
cin >> w1.model;
cout << "Podaj rocznik:" << endl;
cin >> w1.rocznik;
cout << "Podaj imie wlasciciela: " << endl;
cin >> w1.imie;
cout << "Podaj nazwisko wlasiciela" << endl;
cin >> w1.nazwisko;
cout << "Podaj uszkodzony element" << endl;
cin >> w1.usterka;
cout << "Podaj koszt czesci plus robocizny NETTO" << endl;
cin >> w1.cenanetto;
cout << "Cena BRUTTO wynosi: " << w1.cenanetto + (23 * w1.cenanetto / 100) << endl;
wtr.push_back(w1);
_getch();
}
void Wybor() {
cout << "Jezeli chcesz dodac zlecenie zrealizowane - WYBIERZ 1" << endl << endl
<< "Jezeli chcesz dodac zlecenie w trakcie realizacji - WCISNIJ 2" << endl;
int a;
cin >> a;
if (a == 1)
{
cout << "Nowe zlecenie ZREALIZOWANE:" << endl << endl;
NoweZ();
}
if (a == 2)
{
cout << "Nowe zlecenie W TRAKCIE REALIZACJI" << endl << endl;
NoweW();
}
if (a > 2)
cout << endl << "Bledna wartosc. Naciscij dowolny klawisz, aby przejsc do Menu Glownego" << endl;
}
int main()
{
witaj();
_getch();
int x;
bool koniec = false;
char znak;
menu();
do {
if (_kbhit()) {
znak = _getch();
switch (znak) {
case '1':
Wybor();
_getch();
menu();
break;
case '2':
x = 0;
while (x <= (sizeof(wtr) - 2))
{
cout << "zlecenie " << wtr[x].marka << wtr[x].model << endl;
x++;
}
_getch();
menu();
case '3':
// Pokazzrealizowane();
_getch();
menu();
}
}
} while (!koniec);
_getch();
return 0;
}