Wirtualny kurs C++
Program2
Program do obsługi prostej bazy danych np. w komisie o samochodach. Baza oparta o dane w pliku tekstowym.
Można go rozbudować o inne funkcje np. zapis nowych danych, usuwanie danych itd.
Przykład zawartości pliku i jego struktura:
32
Fiat Uno 2000 998 70000
Mercedes 180D 1999 2000 40000
Ford Mondeo 1997 2000 13000
Ford Fiesta 1990 1400 3500
Honda Civic 1989 1300 2450
Suzuki Swift 1993 1000 5600
Syrena Bosto 1979 1500 1050
Renault Megane 1998 1400 10140
Volkswagen Golf 1990 1600 7550
Mitsubishi Pajero 1989 2400 8500
Fiat Multipla 2002 2000 17000
BMW 525 1994 2500 18700
Toyota Carina 1987 1800 4300
Mazda 323F 1992 1600 5500
Mazda MX3 1999 1800 40000
Skoda Octawia 2004 1600 23000
Fiat Uno 2000 998 70000
Mercedes 180D 1999 2000 40000
Ford Mondeo 1997 2000 13000
Ford Fiesta 1990 1400 3500
Honda Civic 1989 1300 2450
Suzuki Swift 1993 1000 5600
Syrena Bosto 1979 1500 1050
Renault Megane 1998 1400 10140
Volkswagen Golf 1990 1600 7550
Mitsubishi Pajero 1989 2400 8500
Fiat Multipla 2002 2000 17000
BMW 525 1994 2500 18700
Toyota Carina 1987 1800 4300
Mazda 323F 1992 1600 5500
Mazda MX3 1999 1800 40000
Skoda Octawia 2004 1600 23000
Program napisany w Borland C++ - Copyright 1996
//---------------------------------------------------------------------------
#include <vclcondefs.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
strona 1 / 7
Wirtualny kurs C++
Program2
#include <iostream.h>
#include <fstream.h>
wyniki();
czytaj();
wyniki1(int n1);
zamiana(int i);
int n=0;
char way[30]="Nie pobrano pliku bazy";
struct komis
{
char marka[15];
char model[12];
char rokprod[5];
char poj[5];
char cena[10];
};
komis *sam ;
ifstream plikwe;
//********************************************
int main()
{
char opcja;
bool chaos=true;
textcolor(15);
do
{clrscr();
cout<<" 8. POBIERZ DANE NAZWA BAZY: "<<way<<endl;
gotoxy(1,4);
cout<<" "<<n<<" Pojazdow w bazie" ;
gotoxy(1,5);
cout<<" #################################n";
cout<<" # #n";
cout<<" # PANEL OBSLUGI BAZY DANYCH #n";
cout<<" # #n";
cout<<" #################################n";
gotoxy(22,11);
cout<<"1. POKAZ NIEPOSORTOWANE DANE";
gotoxy(22,12);
cout<<"2. POKAZ SAMOCHODY WG MARKI";
gotoxy(22,13);
cout<<"3. POKAZ SAMOCHODY WG ROKU PROD.";
gotoxy(22,14);
cout<<"4. POKAZ SAMOCHODY WG CENY";
gotoxy(22,15);
cout<<"5. POKAZ SAMOCHODY WG POJ. SILNIKA";
gotoxy(22,16);
strona 2 / 7
Wirtualny kurs C++
Program2
cout<<"6. POKAZ SAMOCHODY WG MODELU";
gotoxy(22,17);
cout<<"7. EXIT";
gotoxy(22,20);
cout<<"WYBIERZ OPCJE :";
opcja=getchar() ;
fflush(stdin);
switch (opcja)
{
case '1':
clrscr();
czytaj();
wyniki();
gotoxy (19,24);
system("pause");
break;
case '2':
clrscr();
while (chaos != false)
{
chaos=false;
for (int i=0;i<n-1;i++)
{if ((strcmp(sam[i].marka,sam[i+1].marka))>0)
{ zamiana(i); chaos=true; }
}
}
wyniki();
chaos=true;
gotoxy (19,24);
system("pause");
break;
case '3':
clrscr();
while (chaos != false)
{
chaos=false;
for (int i=0;i<n-1;i++)
{if ((strcmp(sam[i].rokprod,sam[i+1].rokprod))>0)
{ zamiana(i); chaos=true; }
}
}
wyniki();
chaos=true;
gotoxy (19,24);
system("pause");
break;
case '4':
clrscr();
strona 3 / 7
Wirtualny kurs C++
Program2
while (chaos != false)
{
chaos=false;
for (int i=0;i<n-1;i++)
{if (atoi(sam[i].cena)>atoi(sam[i+1].cena))
{ zamiana(i); chaos=true; }
}
}
wyniki();
chaos=true;
gotoxy (19,24);
system("pause");
break;
case '5':
clrscr();
while (chaos != false)
{
chaos=false;
for (int i=0;i<n-1;i++)
{if (atoi(sam[i].poj)>atoi(sam[i+1].poj))
{ zamiana(i); chaos=true; }
}
}
wyniki();
chaos=true;
gotoxy (19,24);
system("pause");
break;
case '6':
clrscr();
while (chaos != false)
{
chaos=false;
for (int i=0;i<n-1;i++)
{if ((strcmp(sam[i].model,sam[i+1].model))>0)
{ zamiana(i); chaos=true; }
}
}
wyniki();
chaos=true;
gotoxy (19,24);
system("pause");
break;
case '7':
delete [] sam;
strona 4 / 7
Wirtualny kurs C++
Program2
break;
case '8':
clrscr();
cout<<"aPodaj nazwe pliku : ";
gets(way);
czytaj();
break;
default:
clrscr();
gotoxy(30,11);
cout<<"NIE MA TAKIEJ OPCJI !!!";
gotoxy(19,24);
system ("pause");
break;
}
} while (opcja!='7');
return 0;
}
//---------------------------------------------------------------------------
wyniki()
{ int i,l;
l=5;
for (i=0;i<n;i++)
{
gotoxy(5,l);
printf("%d",i+1);
gotoxy(9,l);
cout<<sam[i].marka;
gotoxy(23,l);
cout<<sam[i].model;
gotoxy(36,l);
cout<<sam[i].rokprod;
gotoxy(49,l);
cout<<sam[i].poj;
gotoxy(63,l);
cout<<sam[i].cena;
l++;
if ((i+1)%18==0)
{
l=5;
gotoxy(19,24);
cout<<" DALSZY CIAG (dowolny klawisz..)";
getch();
clrscr();
}
}
strona 5 / 7
Wirtualny kurs C++
Program2
return(0);
};
czytaj()
{
plikwe.open(way);
plikwe>>n; sam = new komis[n];
for (int i=0;i<n;i++)
{
plikwe>>sam[i].marka;
plikwe>>sam[i].model;
plikwe>>sam[i].rokprod;
plikwe>>sam[i].poj;
plikwe>>sam[i].cena;
}
plikwe.close();
return (0);
};
zamiana(int i)
{ char tmp[16];
strcpy(tmp,sam[i].marka);
strcpy(sam[i].marka,sam[i+1].marka);
strcpy(sam[i+1].marka,tmp);
strcpy(tmp,sam[i].model);
strcpy(sam[i].model,sam[i+1].model);
strcpy(sam[i+1].model,tmp);
strcpy(tmp,sam[i].rokprod);
strcpy(sam[i].rokprod,sam[i+1].rokprod);
strcpy(sam[i+1].rokprod,tmp);
strcpy(tmp,sam[i].poj);
strcpy(sam[i].poj,sam[i+1].poj);
strcpy(sam[i+1].poj,tmp);
strcpy(tmp,sam[i].cena);
strcpy(sam[i].cena,sam[i+1].cena);
strcpy(sam[i+1].cena,tmp);
return(0);
};
wyniki1(int n1)
{ int i,l;
l=5;
for (i=0;i<n1;i++)
{
gotoxy(5,l);
printf("%d",i+1);
gotoxy(9,l);
cout<<sam[i].marka;
gotoxy(23,l);
cout<<sam[i].model;
gotoxy(36,l);
cout<<sam[i].rokprod;
gotoxy(49,l);
strona 6 / 7
Wirtualny kurs C++
Program2
cout<<sam[i].poj;
gotoxy(63,l);
cout<<sam[i].cena;
l++;
if ((i+1)%18==0)
{
l=5;
gotoxy(19,24);
cout<<" DALSZY CIAG (dowolny klawisz..)";
getch();
clrscr();
}
}
return(0);
};
strona 7 / 7