hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.18. 06:12



Jelenlévő felhasználók

Jelenleg 132 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 131 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Majestic-12 [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 2 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Járműalkatrészek C++
HozzászólásElküldve: 2019.05.01. 00:19 
Offline
Veterán

Csatlakozott: 2012.11.01. 20:49
Hozzászólások: 1837
Megköszönt másnak: 25 alkalommal
Megköszönték neki: 78 alkalommal
A feladat a következő:
Kép
Csatolnám a megoldást is nagyvonalakban. Jelen esetben a feladat az lenne, hogy ellenőrizzük, hogy ez a megoldás jó-e teljes mértékben, a másik kérésem, pedig az lenne, amennyiben van valaki, aki a kód bármelyik részét ennél egyszerűbben le tudná programozni, azt a megoldást szívesen megtekinteném.
Ui.: Igazából nem volt már türelmem finomgatni formailag, szóval, akinek van kedve azzal szórakozgatni, annak szívesen megköszönném :D
Kód:
#include <iostream>
#include <string>
#include <ctime>
using namespace std;

struct gyartasok
{
   string azon;
   int dbszam;
   int ido;
   int osszido;
};

int main()
{
   setlocale(LC_ALL, "HUN");
   srand((unsigned int)time(NULL));
   gyartasok tmb[12];
   string alkaz[8] = { "G24","M90","W31","X21","H01","Z70","B12","V11" }, azonosito;
   int i, ossz = 0;
   double atlag = 0;

   for (i = 0; i < 12; i++)
   {
      tmb[i].azon = alkaz[rand() % 8];
      tmb[i].dbszam = rand() % 90 + 11;
      tmb[i].ido = rand() % 25 + 11;
      tmb[i].osszido = (tmb[i].dbszam*tmb[i].ido / 60);
   }
   cout << "Gyártási adatok" << endl;
   cout << "gyártás\talk.r\tgy.db\tidő/db\tösszidő" << endl;

   for (i = 0; i < 12; i++)
   {
      cout << i + 1 << ".\t" << tmb[i].azon << "\t" << tmb[i].dbszam << "\t" << tmb[i].ido << "\t" << tmb[i].osszido << endl;
      atlag += tmb[i].osszido;
   }
   atlag /= 12;
   cout << endl;
   cout << "a gyártási idők átlaga: " << atlag << " óra" << endl <<endl;
   cout << "kérek egy alkatrészt (G24 M90 W31 X21 H01 Z70 B12 V11): ";
   cin >> azonosito;

   for (i = 0; i < 12; i++)
   {
      if (tmb[i].azon == azonosito)
      {
         ossz += tmb[i].dbszam;
      }
   }
   cout << endl;
   cout << "összesen " << ossz << " db " << azonosito << " alkatrészt gyártottak" << endl << endl;

   cout << "30 óránál hosszabb gyártás " << endl;
   bool f = false;
   for (int i = 0; i < 12; i++)
   {
      if (tmb[i].osszido > 30)
      {
         f = true;
         cout << i + 1 << " . gyártás " << "\t" << tmb[i].osszido << " óra" << endl;
      }
   }
   if (!f)
   {
      cout << "Nem volt 30 óránál hosszabb gyártás!" << endl;
   }
   cout << endl;
   int min = tmb[0].osszido, mini = 0;
   for (int i = 0; i < 12; i++)
   {
      if (tmb[i].osszido < min)
      {
         min = tmb[i].osszido;
         mini = i;
      }
   }
   cout << mini + 1 << ". gyártás volt a legrövidebb, " << tmb[mini].osszido << " óra" << endl;

   system("pause");
   return 0;
}

Köszönöm!
Üdv.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Járműalkatrészek C++
HozzászólásElküldve: 2019.05.01. 00:48 
Offline
Jómunkásember
Avatar

Csatlakozott: 2016.02.10. 12:46
Hozzászólások: 429
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 157 alkalommal
Üdv. Átfutottam a kódot és esetleg annyit tehetsz, hogy megspórolsz egy for ciklust, amely a legrövidebb gyártást számolja ki:

  1. #include <iostream>
  2. #include <string>
  3. #include <ctime>
  4. using namespace std;
  5.  
  6. struct gyartasok
  7. {
  8.    string azon;
  9.    int dbszam;
  10.    int ido;
  11.    int osszido;
  12. };
  13.  
  14. int main()
  15. {
  16.    setlocale(LC_ALL, "HUN");
  17.    srand((unsigned int)time(NULL));
  18.    gyartasok tmb[12];
  19.    string alkaz[8] = { "G24","M90","W31","X21","H01","Z70","B12","V11" }, azonosito;
  20.    int i, ossz = 0;
  21.    double atlag = 0;
  22.  
  23.    for (i = 0; i < 12; i++)
  24.    {
  25.       tmb[i].azon = alkaz[rand() % 8];
  26.       tmb[i].dbszam = rand() % 90 + 11;
  27.       tmb[i].ido = rand() % 25 + 11;
  28.       tmb[i].osszido = (tmb[i].dbszam*tmb[i].ido / 60);
  29.    }
  30.    cout << "Gyártási adatok" << endl;
  31.    cout << "gyártás\talk.r\tgy.db\tidő/db\tösszidő" << endl;
  32.  
  33.    for (i = 0; i < 12; i++)
  34.    {
  35.       cout << i + 1 << ".\t" << tmb[i].azon << "\t" << tmb[i].dbszam << "\t" << tmb[i].ido << "\t" << tmb[i].osszido << endl;
  36.       atlag += tmb[i].osszido;
  37.    }
  38.    atlag /= 12;
  39.    cout << endl;
  40.    cout << "a gyártási idők átlaga: " << atlag << " óra" << endl <<endl;
  41.    cout << "kérek egy alkatrészt (G24 M90 W31 X21 H01 Z70 B12 V11): ";
  42.    cin >> azonosito;
  43.  
  44.    int min = tmb[0].osszido, mini = 0;
  45.    for (i = 0; i < 12; i++)
  46.    {
  47.       if (tmb[i].azon == azonosito)
  48.       {
  49.          ossz += tmb[i].dbszam;
  50.       }
  51.  
  52.       //Ide szúrtam be a minimum kiszámítását
  53.       if (tmb[i].osszido < min)
  54.       {
  55.          min = tmb[i].osszido;
  56.          mini = i;
  57.       }
  58.    }
  59.    cout << endl;
  60.    cout << "összesen " << ossz << " db " << azonosito << " alkatrészt gyártottak" << endl << endl;
  61.  
  62.    cout << "30 óránál hosszabb gyártás " << endl;
  63.    bool f = false;
  64.    for (int i = 0; i < 12; i++)
  65.    {
  66.       if (tmb[i].osszido > 30)
  67.       {
  68.          f = true;
  69.          cout << i + 1 << " . gyártás " << "\t" << tmb[i].osszido << " óra" << endl;
  70.       }
  71.    }
  72.  
  73.    if (!f)
  74.    {
  75.       cout << "Nem volt 30 óránál hosszabb gyártás!" << endl;
  76.    }
  77.  
  78.    cout << endl;
  79.    cout << mini + 1 << ". gyártás volt a legrövidebb, " << tmb[mini].osszido << " óra" << endl;
  80.  
  81.    system("pause");
  82.    return 0;
  83. }


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 2 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole