Problem z deklaracja
Ostatnio zmodyfikowano 2011-01-23 14:23
Tymek Temat założony przez niniejszego użytkownika |
» 2011-01-23 12:54:33 #include <iostream.h> #include <fstream.h> using namespace std;
struct firmy { char nazwa[ 20 ]; float przychod; void wprowadz_dane(); void zapis_danych(); void odczyt_danych(); void koniec(); };
void firmy::wprowadz_dane() { firmy firma; cout << "Wprowadz nazwe firmy: "; cin >> firma.nazwa; cout << "Wprowadz przychod: "; cin >> firma.przychod; }
void firmy::zapis_danych() { firmy firma; ofstream plik1( "dane_firmy.dat", ios::binary | ios::app | ios::out ); plik1.write( reinterpret_cast < char *>( & firma ), sizeof( firma ) ); plik1.close(); }
void firmy::odczyt_danych() { firmy firma; int i = 1; ifstream plik( "dane_firmy.dat", ios::binary | ios::in ); while( 1 ) { plik.read( reinterpret_cast < char *>( & firma ), sizeof( firma ) ); if( plik.eof() ) break; cout << i << " " << firma.nazwa << " " << firma.przychod << endl; i++; } plik.close(); }
void firmy::koniec() { firmy firma; cout << "koniec programu" << endl; system( "pause" ); }
int main() { firmy firma; int wybor; int opcja; cout << "wprowadz opcje" << endl; switch( opcja ) { case 1: wprowadz_dane(); break; case 2: zapis_danych(); break; case 3: odczyt_danych(); break; case 4: koniec(); break; default: cout << "Wybrano niewlasciwa opcje (nacisnij dowolny klawisz aby kontynuowac)"; system( "pause" ); break; } }
Jeżeli cię uraziłem to przepraszam . Mój błąd jest taki że jak mam Zdeklarowane funkcje w Struct to case tego nie widzi , a jak pod struckt to nie widza tego Struct::funkcje ...... |
|
malan |
» 2011-01-23 12:57:22 Czytałeś, co Ci napisałem? :) 1. void firmy::wprowadz_dane() { cout << "Wprowadz nazwe firmy: "; cin >> nazwa; cout << "Wprowadz przychod: "; cin >> przychod; } Analogicznie musisz poprawić resztę metod. 2. firmy firma;
switch( opcja ) { case 1: firma.wprowadz_dane(); break; case 2: firma.zapis_danych(); break; case 3: firma.odczyt_danych(); break; case 4: koniec(); break; default: cout << "Wybrano niewlasciwa opcje (nacisnij dowolny klawisz aby kontynuowac)"; system( "pause" ); break; } 3. Po co Ci metoda koniec ? |
|
Tymek Temat założony przez niniejszego użytkownika |
» 2011-01-23 13:18:40 #include <iostream.h> #include <fstream.h> using namespace std;
struct firmy { char nazwa[ 20 ]; float przychod; void wprowadz_dane(); void pokaz_dane(); void odczyt_danych(); };
void firmy::wprowadz_dane() { firmy firma; ofstream plik1( "dane1.dat", ios::binary | ios::app | ios::out ); cout << "Ile firm chcesz wprowadzic?" << endl; int n; cin >> n; cout << endl; for( int i = 0; i < n; i++ ) { cout << "Podaj nazwe firmy: "; cin >> firma.nazwa; cout << "Podaj przychod firmy: "; cin >> firma.przychod; plik1.write( reinterpret_cast < char *>( & firma ), sizeof( firma ) ); } plik1.close(); }
void firmy::pokaz_dane() { firmy firma; cout << "Dane z pliku: " << endl << endl; ifstream plik1( "dane1.dat", ios::binary | ios::in ); while( 1 ) { plik1.read( reinterpret_cast < char *>( & firma ), sizeof( firma ) ); if( plik1.eof() ) break; cout << firma.nazwa << " " << firma.przychod << endl; } plik1.close(); system( "pause" ); }
void firmy::odczyt_danych() { firmy firma; int i = 1; ifstream plik( "dane_firmy.dat", ios::binary | ios::in ); while( 1 ) { plik.read( reinterpret_cast < char *>( & firma ), sizeof( firma ) ); if( plik.eof() ) break; cout << i << " " << firma.nazwa << " " << firma.przychod << endl; i++; } plik.close(); }
int main() { firmy firma; int wybor; int opcja; cout << "wprowadz opcje" << endl; cin >> opcja; switch( opcja ) { case 1: firma.wprowadz_dane(); break; case 2: firma.pokaz_dane(); break; case 3: firma.odczyt_danych(); break; default: cout << "Wybrano niewlasciwa opcje (nacisnij dowolny klawisz aby kontynuowac)"; system( "pause" ); break; } }
Działa poprawnie , dziękuje za pomoc |
|
malan |
» 2011-01-23 14:23:31 Tak, działa, ale tylko w Twoim przypadku. Szkoda, że nie jest poprawnie zrobione :). Nie tak się posługuje strukturami :).
Skompiluje sobie ten program i zobacz output. Ty masz błąd tego samego typu.
#include <string> #include <iostream>
struct Company { std::string name; int income; void read(); void showData(); };
void Company::read() { Company newCompany; std::cout << "Name: "; std::cin >> newCompany.name; std::cout << "Income: "; std::cin >> newCompany.income; }
void Company::showData() { Company newCompany; std::cout << "Company name: " << newCompany.name << ", income: " << newCompany.income << std::endl; }
int main() { Company * company = new Company[ 3 ]; for( int i = 0; i < 3; i++ ) { std::cout << "#" << i + 1 << std::endl; company[ i ].read(); } for( int i = 0; i < 3; i++ ) { std::cout << "#" << i + 1 << std::endl; company[ i ].showData(); } delete[] company; return 0; }
Poprawny kod:
#include <string> #include <iostream>
struct Company { std::string name; int income; void read(); void showData(); };
void Company::read() { std::cout << "Name: "; std::cin >> name; std::cout << "Income: "; std::cin >> income; }
void Company::showData() { std::cout << "Company name: " << name << ", income: " << income << std::endl; }
int main() { Company * company = new Company[ 3 ]; for( int i = 0; i < 3; i++ ) { std::cout << "#" << i + 1 << std::endl; company[ i ].read(); } for( int i = 0; i < 3; i++ ) { std::cout << "#" << i + 1 << std::endl; company[ i ].showData(); } delete[] company; return 0; } |
|
1 « 2 » |