Polowe rzeczy umiescile tutaj
mam pytanie czy ktoś może mi pomóc rozwiązać przypadek z drugiego etapu kolosa
mam strukrutere miasto
struct miasto
{
char nazwa[12];
int liczba_mieszkancow;
double powierzchnia;
};
-funkcje zwraacjącą obiekt typu miasto wywolana z parametrem typu char[12]. pole
nazwa zwaranego boiektu ma byc wypelniona wartoscia padana jako parametr
wywolania,
ploe liczba mieszkancow losowane z zakresu <1,10000> pole powierzchni
losowane z zakresu <5.0, 9.9.
- zadeklarowac piecioelementowa tablice o nazwie region elemetow typu miasto
-wypelnic tablice region przy pomocy funkcji z punktu nr2
-przy pomocy rekurencji zapisac do pliku dane.txt elementy tablicy region w posataci odpowiedniego komunikatu
-otworzyc do odczytu plik 'dane i wyswitlic jego zawartosc na konsoli
bardzo dziękuję
Offline
Wstawiam także zdjęcie z zadania :
http://imageshack.us/photo/my-images/98 … 17484.jpg/
a jesli chodzi o program 1 to :
http://imageshack.us/photo/my-images/82 … 17485.jpg/
Ostatnio edytowany przez wiemarcel (19-06-2012 10:55:26)
Offline
#include <iostream> #include <cstdlib> #include <ctime> #include <cmath> using namespace std; void pokaz( double Z[15] ) { for( int i = 0; i < 15; i++ ) { cout << "\t" << Z[ i ] << "\n"; } } void pokaz( int Z[15] ) { for( int i = 0; i < 15; i++ ) { cout << "\t" << Z[ i ] << "\n"; } } int main() { int X[15]; bool Y[15]; double Z[15]; srand( time( 0 ) ); int i = 0; for( i = 0; i < 15; i++ ) { X[ i ] = rand()%(20+1-(-10))+(-10); } for( i = 0; i < 15; i++ ) { Y[ i ] = ( ( X[ i ] >= 0 ) ? true : false ); } for( i = 0; i < 15; i++ ) { Z[ i ] = ( Y[ i ] ? pow( X[ i ], 0.5 ) : 0 ); } cout << "Zawartosc tablicy Z przed posortowaniem\n"; pokaz( Z ); // sortowanie for( i = 0; i < 15; i++ ) { for( int j = 0; j < 15 - 1; j++ ) { if( Z[ j ] > Z[ j + 1 ] ) { swap( Z[ j ], Z[ j + 1 ] ); } } } cout << "Zawartosc tablicy Z po posortowaniu\n"; pokaz( Z ); cout << "\n\n\n"; pokaz( X ); system( "pause" ); return 0; }
#include <iostream> #include <cstdlib> #include <ctime> #include <cmath> #include <string.h> #include <fstream> using namespace std; struct miasto { char nazwa[12]; int liczba_mieszkancow; double powierzchnia; }; miasto wypelnij( char nazwa[12] ) { miasto m; strcpy( m.nazwa, nazwa ); m.liczba_mieszkancow = rand()%( 10000+1-1 )+1; m.powierzchnia = ( rand()%( 99+1-50 )+50 )/10.0; return m; } void zapisz( int n, miasto m[5] ) { if( n < 0 ) { return ; } zapisz( n - 1, m ); ofstream p("dane.txt", ios::app); if( ! p.is_open() ) { cout << "Nie mozna otworzyc pliku\n"; system( "pause" ); exit( 1 ); } p << "Miasto: " << m[ n ].nazwa << "; "; p << "Liczba mieszkancow: " << m[ n ].liczba_mieszkancow << "; "; p << "Powierzchnia: " << m[ n ].powierzchnia << "\n"; p.close(); } int main() { srand( time( NULL ) ); miasto region[5]; char nazwa[12]; for( int i = 0; i < 5; i++ ) { cout << "Podaj miasto: "; cin >> nazwa; region[ i ] = wypelnij( nazwa ); } zapisz( 4, region ); ifstream pi; pi.open( "dane.txt" ); if( ! pi.is_open() ) { cout << "Nie mozna otworzyc pliku\n"; system( "pause" ); exit( 1 ); } char line[1000]; pi.read( line, 1000 ); cout << line; pi.close(); system( "pause" ); return 0; }
Kolos2 - poprawa
#include <iostream> #include <cstdlib> #include <ctime> #include <fstream> using namespace std; struct kursant { char nazwisko[12]; int rok_urodzenia; double ocena; }; kursant dodajkursanta() { kursant k; cout << "Nazwisko kursanta: "; cin >> k.nazwisko; k.rok_urodzenia = rand()%(2010+1-1940)+1940; k.ocena = (rand()%(500+1)) / 100.0; return k; } void wyswietl( kursant k ) { cout << k.nazwisko << ", urodzony w " << k.rok_urodzenia << ", ocena: " << k.ocena << "\n"; } void zapisz( kursant szkolenie[], int i ) { if( i < 0 ) { return ; } zapisz( szkolenie, i - 1 ); ofstream p; p.open( "dane.txt", ios::app ); p << szkolenie[ i ].nazwisko << ", urodzony w " << szkolenie[ i ].rok_urodzenia << ", ocena: " << szkolenie[ i ].ocena << "\n"; p.close(); } int main() { srand( time( NULL ) ); kursant szkolenie[5]; cout << "Wypelnianie kursantow:\n"; for( int i = 0; i < 5; i++ ) { szkolenie[ i ] = dodajkursanta(); } cout << "\nLista kursantow:\n"; for( int i = 0; i < 5; i++ ) { wyswietl( szkolenie[ i ] ); } // czyszczenie aktualnej zawartosci pliku ofstream p; p.open( "dane.txt" ); p.close(); zapisz( szkolenie, 4 ); system( "pause" ); return 0; }
Ostatnio edytowany przez krzotr (24-06-2012 22:35:04)
Offline