Witam pisze własnie baza danych samochodów w c++ na zaliczenie i muszę zrobić wyświetlanie w tabeli lecz... gdy wpisuje zbyt długie nazwy to dane w tabeli nie są w równych odstępach i wygląda to tragicznie.
Proszę o pomoc w rozwiązaniu tego problemu
Z góry dziękuje za pomoc.
Oto moja funkcja wyświetlania:
void wyswietl(rekord *wsk, int licznik)
{
system("cls");
cout << "---------------------------------------------------------------------"<<endl;
cout << "Lp. "<<"Marka "<<"Model "<<"Rocznik "<<"Przebieg "
<<"Kolor "<<"Cena"<<endl;
cout << "---------------------------------------------------------------------"<<endl;
for (int i=0;i<licznik;i++)
{
cout<<wsk->numer<<". " <<wsk->marka<<" "<<wsk->model<<" "<<wsk->rok <<" "
<<wsk->przebieg<<" "<<wsk->kolor<<" "<<wsk->cena<<"zl"<<endl;
cout<<"---------------------------------------------------------------------"<<endl;
wsk++;
}
for (int i=0;i<licznik;i++)
{
wsk--;
}
cout<<"Nacisnij dowolny klawisz aby przejsc dalej"<<endl;
}
Jeśli potrzeba to tu wstawiam cały kod:
#include <iostream>
#include <fstream>
#include <conio.h>
#include <cstdlib>
#include <string.h>
using namespace std;
struct rekord
{
int numer;
string model;
string marka;
string kolor;
int przebieg;
int rok;
double cena;
};
void wyswietl(rekord *wsk, int licznik);
void dodaj(rekord baza[100],int i, int &licznik);
void zapisz(rekord baza[100],int licznik);
void wczytaj(rekord baza[100],int &licznik);
void szukaj(rekord baza[100],int licznik,char t);
void usun(rekord baza[100],int &licznik,int ktory);
int main()
{
int licznik=0;
int ktory=0;
int i;
char z;
rekord baza[100];
rekord *wsk;
wsk=baza;
wczytaj(baza,licznik);
do{
system("cls");
cout <<"****************************************************************"<<endl;
cout << "******************* Komis samochodowy *********************"<< endl;
cout << "******************* <1> Dodaj samochod *********************"<< endl;
cout << "******************* <2> Wyswietl samochody *********************"<< endl;
cout << "******************* <3> Wyszukaj *********************"<< endl;
cout << "******************* <4> Zapisz do pliku *********************"<<endl;
cout << "******************* <5> Usun samochow *********************"<<endl;
cout << "******************* <6> Wyjscie *********************"<<endl;
cout <<"****************************************************************"<<endl;
cin>>z;
switch(z)
{
case '1' :
{
cout<<"Dodawanie samochodow"<<endl;
dodaj(baza,i,licznik);
break;
}
case '2' :
{
wyswietl(wsk,licznik);
getch();
break;
}
case '3' :
{
system("cls");
char t;
cout<<"Podaj wedlog czego chcesz szukac:"<<endl;
cout<<"<1> Marka"<<endl;
cout<<"<2> Roku"<<endl;
cout<<"<3> Przedzial cenowy"<<endl;
cout<<"<4> Koloru"<<endl;
cout<<"<5> Przebiegu"<<endl;
cout<<"<q> Powrot"<<endl;
cin>>t;
szukaj(baza,licznik,t);
break;
}
case '4' :
{
zapisz(baza,licznik);
cout<<"Baza danych zostala poprawnie zapisana"<<endl;
cout<<"Nacisnij dowolny klawisz aby przejsc dalej"<<endl;
getch();
break;
}
case '5' :
{
cout<<"Podaj numer samochodu do skasownia: ";
cin>>ktory;
usun(baza,licznik,ktory);
break;
}
}
} while (z!='6');
return 0;
}
//=====================dodwanie=
void dodaj(rekord baza[100],int i, int &licznik)
{
i=licznik;
baza[i].numer=i+1;
cout<<"Podaj marke: ";
cin>>baza[i].marka;
cout<<endl;
cout<<"podaj model: ";
cin>>baza[i].model;
cout<<endl;
cout<<"podaj rok: ";
cin>>baza[i].rok;
cout<<endl;
cout<<"podaj przebieg: ";
cin>>baza[i].przebieg;
cout<<endl;
cout<<"podaj kolor: ";
cin>>baza[i].kolor;
cout<<endl;
cout<<"podaj cene: ";
cin>>baza[i].cena;
cout<<endl;
licznik++;
}
//============wyswietlanie==========
void wyswietl(rekord *wsk, int licznik)
{
system("cls");
cout << "---------------------------------------------------------------------"<<endl;
cout << "Lp. "<<"Marka "<<"Model "<<"Rocznik "<<"Przebieg "
<<"Kolor "<<"Cena"<<endl;
cout << "---------------------------------------------------------------------"<<endl;
for (int i=0;i<licznik;i++)
{
cout<<wsk->numer<<". " <<wsk->marka<<" "<<wsk->model<<" "<<wsk->rok <<" "
<<wsk->przebieg<<" "<<wsk->kolor<<" "<<wsk->cena<<"zl"<<endl;
cout<<"---------------------------------------------------------------------"<<endl;
wsk++;
}
for (int i=0;i<licznik;i++)
{
wsk--;
}
cout<<"Nacisnij dowolny klawisz aby przejsc dalej"<<endl;
}
//===============zapisdo pliku
void zapisz(rekord baza[100],int licznik)
{
{
ofstream mojplik;
mojplik.open("abc1.txt");
for (int i=0;i<licznik;i++)
{
mojplik<<baza[i].numer<<endl;
mojplik<<baza[i].marka<<endl;
mojplik<<baza[i].model<<endl;
mojplik<<baza[i].rok<<endl;
mojplik<<baza[i].przebieg<<endl;
mojplik<<baza[i].kolor<<endl;
mojplik<<baza[i].cena<<endl;
}
mojplik.close();
}
}
//==============wczytanie z pliku=
void wczytaj(rekord baza[100],int &licznik)
{
ifstream mojplik("abc1.txt");
int g=0;
for(int i=0; mojplik.good(); ++i,g++)
{
mojplik>>baza[i].numer >> baza[i].marka >> baza[i].model >> baza[i].rok >> baza[i].przebieg >> baza[i].kolor >> baza[i].cena;
}
g-=1;
if(g>=0)
{
licznik=licznik+g;
}
}
//===============szukaj========================================================================
void szukaj(rekord baza[100],int licznik,char t)
{
system("cls");
switch(t)
{
case '1' :
{
string sam;
cout<<"Podaj Marke do wyszukania:"<<endl;
cin>>sam;
cout<<endl;
for(int i=0;i<licznik;i++)
{
if (baza[i].marka==sam)
{
cout<<"Samochod numer: "<<baza[i].numer<<endl;
cout<<"Marka: "<<baza[i].marka<<endl;
cout<<"Model: "<<baza[i].model<<endl;
cout<<"Rok: "<<baza[i].rok<<endl;
cout<<"Przebieg: "<<baza[i].przebieg<<endl;
cout<<"Kolor: "<<baza[i].kolor<<endl;
cout<<"Cena: "<<baza[i].cena<<"zl"<<endl<<endl;
}
}
cout<<"Nacisnij dowolny klawisz aby przejsc dalej"<<endl;
getch();
break;
}
case '2' :
{
int sam;
cout<<"Podaj rok do wyszukania:"<<endl;
cin>>sam;
cout<<endl;
for(int i=0;i<licznik;i++)
{
if (baza[i].rok==sam)
{
cout<<"Samochod numer: "<<baza[i].numer<<endl;
cout<<"Marka: "<<baza[i].marka<<endl;
cout<<"Model: "<<baza[i].model<<endl;
cout<<"Rok: "<<baza[i].rok<<endl;
cout<<"Przebieg: "<<baza[i].przebieg<<endl;
cout<<"Kolor: "<<baza[i].kolor<<endl;
cout<<"Cena: "<<baza[i].cena<<"zl"<<endl<<endl;
}
}
cout<<"Nacisnij dowolny klawisz aby przejsc dalej"<<endl;
getch();
break;
}
case '3' :
{
double min,max;
cout<<"Podaj cene minimalna do wyszukania:"<<endl;
cin>>min;
cout<<"Podaj cene maksymalna do wyszukania:"<<endl;
cin>>max;
cout<<endl;
for(int i=0;i<licznik;i++)
{
if (baza[i].cena>=min && baza[i].cena<=max)
{
cout<<"Samochod numer: "<<baza[i].numer<<endl;
cout<<"Marka: "<<baza[i].marka<<endl;
cout<<"Model: "<<baza[i].model<<endl;
cout<<"Rok: "<<baza[i].rok<<endl;
cout<<"Przebieg: "<<baza[i].przebieg<<endl;
cout<<"Kolor: "<<baza[i].kolor<<endl;
cout<<"Cena: "<<baza[i].cena<<"zl"<<endl<<endl;
}
}
cout<<"Nacisnij dowolny klawisz aby przejsc dalej"<<endl;
getch();
break;
}
case '4':
{
char *sam;
cout<<"Podaj kolor do wyszukania:"<<endl;
cin>>sam;
/*
for(int i=0;i<licznik;i++)
{
if(strncmp(baza[i].kolor,sam,strlen(sam)) == 0)
{
cout<<endl;
cout<<"Samochod numer: "<<baza[i].numer<<endl;
cout<<"Marka: "<<baza[i].marka<<endl;
cout<<"Model: "<<baza[i].model<<endl;
cout<<"Rok: "<<baza[i].rok<<endl;
cout<<"Przebieg: "<<baza[i].przebieg<<endl;
cout<<"Kolor: "<<baza[i].kolor<<endl;
cout<<"Cena: "<<baza[i].cena<<"zl"<<endl<<endl;
}
} */
cout<<"Nacisnij dowolny klawisz aby przejsc dalej"<<endl;
getch();
break;
}
case '5' :
{
int min,max;
cout<<"Podaj przebieg minimalny do wyszukania:"<<endl;
cin>>min;
cout<<"Podaj przebieg maksymalny do wyszukania:"<<endl;
cin>>max;
cout<<endl;
for(int i=0;i<licznik;i++)
{
if (baza[i].przebieg>=min && baza[i].przebieg<=max)
{
cout<<"Samochod numer: "<<baza[i].numer<<endl;
cout<<"Marka: "<<baza[i].marka<<endl;
cout<<"Model: "<<baza[i].model<<endl;
cout<<"Rok: "<<baza[i].rok<<endl;
cout<<"Przebieg: "<<baza[i].przebieg<<endl;
cout<<"Kolor: "<<baza[i].kolor<<endl;
cout<<"Cena: "<<baza[i].cena<<"zl"<<endl<<endl;
}
}
cout<<"Nacisnij dowolny klawisz aby przejsc dalej"<<endl;
getch();
break;
}
case 'q' : break;
}
}
//====usun
void usun(rekord baza[100],int &licznik,int ktory)
{
ktory--;
if (ktory<licznik)
{
for (int i=ktory;i<licznik;i++)
{
baza[i].marka = baza[i+1].marka;
baza[i].model = baza[i+1].model;
baza[i].rok = baza[i+1].rok;
baza[i].przebieg = baza[i+1].przebieg;
baza[i].kolor = baza[i+1].kolor;
baza[i].cena = baza[i+1].cena;
}
cout<<"Samochod zostaw usuniety z bazy"<<endl;
licznik--;
}else cout<<"Nie ma w bazie samochodu pod tym numerem"<<endl;
cout<<endl;
cout<<"Nacisnij dowolny klawisz aby przejsc dalej"<<endl;
getch();
}