#include #include #include // Sokcélú muveletekhez #include // String muveletekhez #include // file muveletekhez #include // String-> egész konverzióhoz #include using namespace std; struct adatsor{ int kerulet; int szavazat; string veznev; string utonev; string part; }; int main() { system("cls"); setlocale(LC_ALL, ""); // ez beállítja az op.rendszer által használt nyelvi környezetet, amit feltételezünk, hogy magyar //Ez sajnos most nem müködik printf("2013. majusi emelt informatika programozas feladat megoldasa\n"); //1.feladat printf("\n1.feladat: Olvassa be a fajlt!\n"); string sor; // Beolvasáshoz kell int sorok = 0; // Ennyi sor szerepel az adatbázisban ifstream myfile; // Hozzárendeli olvasásra a myfile-t myfile.open("szavazatok.txt"); // Ez nyitja meg a file-t int i; //Ciklusváltozó adatsor sz[101]; // Ebben tároljuk az adatokat i = 1; while (myfile >> sz[i].kerulet >> sz[i].szavazat >> sz[i].veznev >> sz[i].utonev >> sz[i].part) { i++; } sorok = i-1; //Az utolsó összeadás felesleges, így azt le kell vonni! //2.feladat printf("\n2.feladat: Hany kepviselojelolt indul a valasztason?\n"); printf("\nA helyhatosagi valasztason %i kepviselojelolt indult.\n",sorok); // Ezt már megszámoltuk //3.feladat string vnev,knev; //A képviselőjelölt neve printf("\n3.feladat: Kerje be egy kepviselojelolt nevet, majd irassa ki a szavazatait!\n"); printf("Irja be egy kepviselojelolt vezeteknevet!"); cin >>vnev; printf("Irja be a kepviselojelolt keresztnevet!"); cin >>knev; int megvan = 0; //Jelölt szavazatainak száma for (i=1;i<=sorok;i++) { if ((sz[i].veznev == vnev) and (sz[i].utonev == knev)) megvan = sz[i].szavazat; //Ez lehetne hátultesztelővel is, de igy könnyebb } if (megvan>0) printf("Kapott szavazatok szama: %i\n", megvan); else printf("Ilyen nevu kepviselojelolt nem szerepel a nyilvantartasban!\n"); //4.feladat printf("\n4.feladat: Hanyan szavaztak es hany szazalek volt a reszveteli arany?\n"); int ossz=0; //Osszes szavazat for (i=1; i<=sorok; i++) { ossz = ossz + sz[i].szavazat; } double arany; //Választási arány arany = 100.0*ossz/12345; printf(" A valasztason %i allampolgar, a jogosultak %2.2f szazaleka vett reszt.\n", ossz, arany); //5.feladat printf("\n5.feladat: Partok aranya\n"); string part[6][3]; //Pártok nevei és rövidítései part[1][1] = "Gyumolcsevok Partja"; part[1][2] = "GYEP"; part[2][1] = "Husevok Partja"; part[2][2] = "HEP"; part[3][1] = "Tejivok Szovetsege"; part[3][2] = "TISZ"; part[4][1] = "Zoldsegevok Partja"; part[4][2] = "ZEP"; part[5][1] = "Fuggetlen jeloltek"; part[5][2] = "-"; int psz[6]; //Pártszavazatok aránya for (i=1;i<=5;i++) { psz[i] = 0; //Számlálók kiürítése } for (i=1;ilegtobb) { legtobb = sz[i].szavazat; } } printf("A legtobb szavazat szama: %i\n",legtobb); printf("A legtobb szavazatot kapta:\n"); for (i=1;ivkermax) vkermax=sz[i].kerulet; } // printf("A legnagyobb valasztokerulet: %i", vkermax); //Csak teszt-üzemben! ofstream myfile7; // File megnyitása írásra myfile7.open( "kepviselok.txt"); int nyertesvoks; //Ezzel nyerte az aktuális választókerületet int onyert; //Ö nyerte a választást int j; //Ciklusváltozó for (j=1; j<=vkermax;j++) //Egyesével megyünk végig az egyes választókerületeken { nyertesvoks=0; onyert =0; for (i=1;inyertesvoks) and (sz[i].kerulet==j)) { nyertesvoks=sz[i].szavazat; onyert = i; } } // printf("%i. valasztokerulet:\n", j); //Csak teszt! // cout <<"Nyertes: " <