#include <iostream>
#include <conio.h>
#include <math.h>
#include <time.h>
#include <cstdlib>
#include <string.h>
#include <stdio.h>
#include <fstream> // biblioteka do obslugi plikow
using namespace std;
fstream plik_dane; //wprowadzenie klasy fstream do obsługi pliku
//-----------// deklaracja struktury -----------------------------------------------------------------------------------------------------
struct Kartoteka
{
string nr;
string pesel;
string imie;
string ojca;
string matki;
string rodowe;
string rok;
string adres;
string stan;
};
//prototypy funkcji------------------------------------------------------------------------------
void szukajWszystkichFraz( string szukanaFraza )
{
ifstream plik_dane;
plik_dane.open( "plik.txt", ios::in );
string tekst;
do {
getline( plik_dane, tekst );
if( tekst.find( szukanaFraza ) != std::string::npos )
{
for( int i = 0; i < 7; i++ )
{
cout << "\t" << tekst << endl;
getline( plik_dane, tekst );
}
return;
}
} while( !plik_dane.eof() );
plik_dane.close();
}
int main( int argc, char ** argv ) {
cout << "\t**********************************************" << endl;
cout << "\t*************** Baza danych ****************" << endl;
cout << "\t**********************************************" << endl << endl;
int wybor; //zmienna sterujaca menu
int n, koniec; //n- liczba okreslonych wskaznikow, koniec - zmienna konczaca petle
koniec = 1;
string szukane, podane; //zmienne do wyszukiwania
start: //etykieta do funkcji goto umożliwiajaca powót do menu wyboru po zakonczonej operacji
cout << "--------------------------------------------------------------" << endl << endl;;
cout << "\t*** MENU *** " << endl << endl;
cout << "===> (1) Dodaj" << endl;
cout << "===> (2) Usun" << endl;
cout << "===> (3) Sortowanie bazy" << endl;
cout << "===> (4) Wyszukiwanie" << endl;
cout << "===> (5) Zamknij program" << endl << endl;
cout << endl;
do //petla do while służąca do zamykania programu
{
cout << "Wprowadz symbol operacji ktora chcesz wykonac " << endl << endl;
cout << "===> ";
cin >> wybor;
cout << "--------------------------------------------------------------" << endl << endl;
if( wybor > 5 )
{
cout << "\t------------------------------------" << endl;
cout << "\t-- Symbol operacji niepoprawny --" << endl;
cout << "\t------------------------------------" << endl << endl;
cout << "\t------------------------------------" << endl;
cout << "\t--Wprowadz ponownie symbol operacji--" << endl;
cout << "\t------------------------------------" << endl << endl;
}
else
switch( wybor ) // instrukcja wyboru
{
case 1:
cout << "Wybrales dodawanie " << endl << endl << endl;
cout << "--------------------------------------------------------------" << endl << endl;
Kartoteka urzad;
cout << "Podaj nr " << endl;
cout << "===>";
cin >> urzad.nr;
cout << endl;
cout << "Podaj pesel " << endl;
cout << "===>";
cin >> urzad.pesel;
cout << endl;
cout << "Podaj imie i nazwisko " << endl;
cout << "===>";
cin >> urzad.imie;
cout << endl;
cout << "Podaj imie rodowe matki" << endl << endl;
cin >> urzad.rodowe;
cout << endl;
cout << "Podaj imie ojca " << endl;
cout << "===>";
cin >> urzad.ojca;
cout << endl;
cout << "Podaj imie matki " << endl;
cout << "===>";
cin >> urzad.matki;
cout<<"Podaj rok urodzenia"<<endl;
cout << "===>";
cin>> urzad.rok;
cout<<"Podaj adres"<<endl;
cout << "===>";
cin>> urzad.adres;
cout<<"Podaj stan cywilny"<<endl;
cout << "===>";
cin>>urzad.stan;
system( "cls" ); //czyszczenia ekranu konsoli
cout << "-------------------------------------------------------------------------------" << endl;
cout << "\t <<<< Dodales osobe >>>>" << endl;
cout << "\t| nr : " << urzad.nr << endl;
cout << "\t| Pesel : " << urzad.pesel << endl;
cout << "\t| Imie i nzawisko : " << urzad.imie << endl;
cout << "\t| Imie rodowe : " << urzad.rodowe << endl;
cout << "\t| Imie ojca : " << urzad.ojca << endl;
cout << "\t| Imie matki :" <<urzad.matki << endl;
cout << "\t| Rok urodzenia :" <<urzad.rok << endl;
cout << "\t| Adres :" <<urzad.adres << endl;
cout << "\t| Stan cywilny :" <<urzad.stan << endl;
plik_dane.open( "plik.txt", ios::app | ios::ate ); //otwarcie pliku do odczytu i zapisu na jego koncu
if( plik_dane.good() == true ) //sprawdzanie czy udało sie otworzyć plik z danymi
{
ofstream plik_dane;
plik_dane.open( "plik.txt", ios::app | ios::ate | ios::out );
plik_dane << urzad.nr << "\r\n";
plik_dane << urzad.pesel << "\r\n";
plik_dane << urzad.imie << "\r\n";
plik_dane << urzad.rodowe << "\r\n"; //każda struktura zajmuje 7 lini ( do odczyt bloku--- numer bloku *7lini
plik_dane << urzad.ojca << "\r\n";
plik_dane << urzad.matki << "\r\n";
plik_dane << urzad.rodowe<<"\r\n";
plik_dane << urzad.rok<<"\r\n";
plik_dane << urzad.adres<<"\r\n";
plik_dane << urzad.stan<<"\r\n";
plik_dane.close();
} else cout << "Blad odczytu pliku!" << endl;
goto start; //powrot do poczatku programu
break;
case 2:
cout << "Wybrales usuwanie " << endl;
cout << "--------------------------------------------------------------" << endl << endl;
break;
case 3:
cout << "Wybrales sortowanie " << endl;
cout << "--------------------------------------------------------------" << endl << endl;
break;
case 4:
cout << "Wybrales wyszukiwanie " << endl;
cout << "--------------------------------------------------------------" << endl << endl;
cout << "Podaj nr do wyszukania " << endl;
cin >> podane;
system( "cls" );
cout << "--------------------------------------------------------------" << endl;
cout << "===> Wyszukujesz pliku zawierajacego " << podane << " w nre" << endl;
cout << "--------------------------------------------------------------" << endl << endl;
cout << "\tZnalezione to: " << endl << endl;
szukajWszystkichFraz( podane );
goto start;
break;
case 5:
system( "cls" );
cout << endl;
cout << "\t----------------------------------------------------------" << endl;
cout << "\t----- Aby zakonczyc dzialanie programu nacisnij ENTER----- " << endl;
cout << "\t----------------------------------------------------------" << endl << endl;
koniec = 0;
break;
}
} while( koniec != 0 );
return 0;
}
Witam, mam problem z napisaniem bazy danych. Wyskakują następujące błędy:
183 14 [Error] jump to case label [-fpermissive]
109 23 [Error] crosses initialization of 'Kartoteka urzad'
Co zrobiłem źle prosił bym o pomoc!!!