ptaq Temat założony przez niniejszego użytkownika |
» 2012-01-09 20:07:29 Zdaje sobie sprawe jak meczace jest sprawdzanie tak amatorskiego kodu ;p no ale ... jak ktoś znajdzie chwilke to bede wdzieczny.
@akwes
[cytat]
Właściwie to faktycznie może prościej będzie zapisywać klienta do pliku za każdym razem, ale wczytywać klientów, wizyty i salony już można by do jakiegoś kontenera (vector, list).
[/cytat]
Myslalem, myslalem i wymyslilem iż jeśli zrobie w ten sposób, a miedzy czasie zmieni sie lista klientow czy też wizyt w pliku (nowa wizyta, nowy klient), to na cóż przyda sie nieaktualna, dynamicznie zaalokowana lista ?
#include<iostream> #include<string> #include<fstream>
class Salon { public: void CheckTime(); void addVisit( std::string imie, std::string nazwisko, std::string tel, std::string godzina, std::string data ); void uslugi(); void CheckVisits(); };
class Osoba { public: void znajdzOsobe( std::string imie, std::string nazwisko ); void addKlient( std::string imie, std::string nazwisko, std::string tel, std::string godzina, std::string data ); void addPracownik( std::string imie, std::string nazwisko, std::string tel, std::string etat, std::string wynagrodzenie ); };
void Salon::CheckTime() { std::string time, date; std::cout << "podaj godzine i date wizyty: ##:## dd.mm.rrrr " << std::endl; std::cin >> time >> date; std::string line; int czyZnaleziono, czyZnaleziono2; while( czyZnaleziono != std::string::npos ) { std::ifstream fileInput( "wizyty.txt" ); if( fileInput.is_open() ) { while( std::getline( fileInput, line ) ) { czyZnaleziono = line.find( time ); czyZnaleziono2 = line.find( date ); if( czyZnaleziono && czyZnaleziono2 != std::string::npos ) { std::cout << "termin jest zajety " << std::endl; std::cout << "podaj inny termin" << std::endl; std::cin >> time >> date; std::cout << std::endl; } } } } std::cout << std::endl; std::cout << "termin jest wolny" << std::endl; std::cin.clear(); std::cin.sync(); return; }
void Salon::addVisit( std::string imie, std::string nazwisko, std::string tel, std::string godzina, std::string data ) { std::cout << "dodaj wizyte: imie, nazwisko, tel, godzine[##:##] i date[dd.mm.rrr] " << std::endl; { std::getline( std::cin, imie ); std::getline( std::cin, nazwisko ); std::getline( std::cin, tel ); std::getline( std::cin, godzina ); std::getline( std::cin, data ); std::ofstream fileOutput( "wizyty.txt", std::ios::app ); if( fileOutput.is_open() ) { fileOutput << imie << " " << nazwisko << " " << tel << " " << godzina << " " << data << std::endl; fileOutput.close(); std::cout << " wizyta dodana !" << std::endl; } else { std::cout << " nie zapisano !" << std::endl; } } }
void Salon::CheckVisits() { std::string line; std::ifstream fileInput( "wizyty.txt" ); if( fileInput.is_open() ) { while( std::getline( fileInput, line ) ) { std::cout << line << std::endl; } } }
void Osoba::addKlient( std::string imie, std::string nazwisko, std::string tel, std::string godzina, std::string data ) { std::cout << "dodaj klienta: imie, nazwisko, tel, godzine[##:##] i date [dd.mm.rrrr] wizyty " << std::endl; std::getline( std::cin, imie ); std::getline( std::cin, nazwisko ); std::getline( std::cin, tel ); std::getline( std::cin, godzina ); std::getline( std::cin, data ); std::ofstream fileOutput( "klienci.txt", std::ios::app ); if( fileOutput.is_open() ) { fileOutput << imie << " " << nazwisko << " " << tel << " " << godzina << " " << data << std::endl; fileOutput.close(); std::cout << " klient dodany !" << std::endl; } else { std::cout << " nie zapisano !" << std::endl; } }
void Osoba::znajdzOsobe( std::string imie, std::string nazwisko ) { std::getline( std::cin, imie ); std::getline( std::cin, nazwisko ); std::cout << "podaj imie i nazwisko klienta w jednej lini: ## ## " << std::endl; std::cin >> imie >> nazwisko; std::string line, plik; char znak; int czyZnaleziono, czyZnaleziono2; std::cout << "szukana osoba jest klient czy pracownik ? K/P " << std::endl; std::cin >> znak; if( znak != 'K' && znak != 'k' && znak != 'P' && znak != 'p' ) { while( znak != 'K' && znak != 'k' && znak != 'P' && znak != 'p' ) { std::cout << " niepoprawny wybor ! " << std::endl; std::cin >> znak; } } if( znak == 'K' || 'k' ) plik = "klienci.txt"; if( znak == 'P' | 'p' ) plik = "pracownicy.txt"; std::ifstream fileInput( plik.c_str() ); if( fileInput.is_open() ) { while( std::getline( fileInput, line ) ) { czyZnaleziono = line.find( imie ); czyZnaleziono2 = line.find( nazwisko ); if( czyZnaleziono && czyZnaleziono2 != std::string::npos ) { std::cout << "znaleziono klienta\n"; std::cout << line << std::endl; break; } } if( czyZnaleziono == std::string::npos ) { std::cout << std::endl; std::cout << "klienta nie ma w bazie !"; } } }
int main()
{ std::cout << " ======================================================= " << std::endl; std::cout << " ..::: Witaj w systemie zarzadzania zakladem fryzjerskim !!! :::.. " << std::endl; std::cout << " ======================================================= " << std::endl; std::cout << std::endl; std::cout << "Menu:" << std::endl; std::cout << "[1] - dodaj wizyte.\n[2] - znajdz osobe.\n[3] - nowy klient.\n[4] - sprawdz wizyty .\n[5] - ."; std::cout << "\n[6] - drukuj liste pracownikow.\n[7] - drukuj liste klientow.\n[8] - zakoncz.\n" << std::endl; int num; std::string imie, nazwisko, tel, godzina, data, imieInazwisko; std::cin >> num; Salon mySalon; Osoba osoba; switch( num ) { case 1: { mySalon.CheckTime(); mySalon.addVisit( imie, nazwisko, tel, godzina, data ); std::cin.clear(); std::cin.sync(); break; } case 2: { osoba.znajdzOsobe( imie, nazwisko ); std::cin.clear(); std::cin.sync(); break; } case 3: { osoba.addKlient( imie, nazwisko, tel, godzina, data ); break; } case 4: { mySalon.CheckVisits(); break; } default: std::cout << "koniec"; } }
ps. jak sie robi cytat ??? ;p |
ptaq Temat założony przez niniejszego użytkownika |
» 2012-01-09 23:44:27 Nigdy wczesniej nie programowalem, fakt że troche sie zwiesilem przy obiektach ;p. To ze jestem poczatkujacy to pisac chyba nie trzeba ;p.
A co do programu , wybierajac opcje "znajdz osobe, a dalej "klienta" wyświetla pelne dane wraz z data i godzina wizyty o ile dany klient istnieje.
Jasne ze chce to zrobic dobrze, po to caly ten balagan ;p.
Dzieki za pomoc, popracuje nad tym :). |