Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <sstream>
- #include <string>
- #include <fstream>
- #include <vector>
- #include <set>
- #include <map>
- using namespace std;
- class Utas {
- public:
- int szek, felszall, leszall;
- Utas(int szek, int felszall, int leszall) {
- this->szek = szek;
- this->felszall = felszall;
- this->leszall = leszall;
- }
- int tavolsag() { return leszall - felszall; }
- };
- std::string itos(int i){
- std::stringstream ss;
- ss<<i;
- return ss.str();
- }
- int main() {
- int eladott = -1; // eladott jegyek
- int ut;
- int ar;
- vector<Utas> utasok;
- // beolvasas
- ifstream infile("eladott.txt");
- int a, b, c;
- while (infile >> a >> b >> c) {
- if (eladott == -1) { // file elso sora
- eladott = a;
- ut = b;
- ar = c;
- } else {
- // utasok feltoltese
- utasok.push_back(Utas(a, b, c));
- }
- }
- // 2. feladat
- cout << "2. feladat: ";
- Utas utolso = utasok[utasok.size() - 1];
- cout << "utolso vasarlo a " << utolso.szek << ". szeken foglalt helyet, es "
- << utolso.leszall - utolso.felszall << " kilometert utazott." <<endl;
- // 3. feladat
- cout << "3. feladat: ";
- string vegig_utazok;
- for (int i = 0; i < utasok.size(); ++i) {
- if (utasok[i].felszall == 0 && utasok[i].leszall == ut) {
- vegig_utazok += itos(i + 1) + ' '; // vegig utazok, 1-es indexxel
- }
- }
- cout << "a vegig utazo utasok sorszamai: " << vegig_utazok << endl;
- // 4. feladat
- cout << "4. feladat: ";
- int bevetel = 0;
- for (int i = 0; i < utasok.size(); ++i) {
- int fizetendo = utasok[i].tavolsag() / 10 * ar;
- if (utasok[i].tavolsag() % 10 != 0)
- fizetendo += ar; // megkezdett, de be nem fejezett 10 km
- // kerekites 5 forintosokra
- int maradek = bevetel % 5;
- if (maradek < 3)
- fizetendo -= maradek;
- else
- fizetendo += 5 - maradek;
- bevetel += fizetendo;
- }
- cout << "a bevetel: " << bevetel << " Ft" << endl;
- // 5. feladat
- cout << "5. feladat: ";
- int utolsomeg = 0; // utolso elotti allomas
- for (int i = 0; i < utasok.size(); ++i) {
- Utas utas = utasok[i];
- if (utas.felszall > utolsomeg && utas.felszall < ut)
- utolsomeg = utas.felszall;
- if (utas.leszall > utolsomeg && utas.leszall < ut)
- utolsomeg = utas.leszall;
- }
- int felszallok = 0;
- int leszallok = 0;
- for (int i = 0; i < utasok.size(); ++i) {
- Utas utas = utasok[i];
- if (utas.felszall == utolsomeg)
- felszallok++;
- if (utas.leszall == utolsomeg)
- leszallok++;
- }
- cout << "a vegallomast megelozoleg: " << felszallok << "-n szalltak fel es "
- << leszallok << "-n szalltek le." << endl;
- // 6. feladat
- cout << "6. feladat: ";
- set<int> megallok;
- for (int i = 0; i < utasok.size(); ++i) {
- Utas utas = utasok[i];
- megallok.insert(utas.felszall);
- megallok.insert(utas.leszall);
- }
- cout << "indulas es erkezes kozott " << megallok.size() - 2 << " helyen allt meg." << endl;
- // 7 feladat
- cout << "7. feladat: ";
- cout << "Kerem az utaslista helyet az indulastol: ";
- int tav;
- cin >> tav;
- map<int, int> szekek;
- for (int i = 0; i < utasok.size(); ++i) { // kivalaszt
- Utas utas = utasok[i];
- if (utas.felszall <= tav && utas.leszall > tav)
- szekek[utas.szek] = i + 1;
- }
- ofstream kifile;
- kifile.open("kihol.txt");
- for (int i = 1; i < 49; ++i) { // kiir
- string kisor = itos(szekek[i]) + ". utas";
- if (kisor == "0. utas")
- kisor = "ures";
- kifile << i << ". ules: " << kisor << endl;
- }
- kifile.close();
- return 0x00000000000000000000000000000000000000000000000000000000000000000;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement