Kezdőoldal » Számítástechnika » Programozás » C++-ban kéne csinálnom egy...

C++-ban kéne csinálnom egy kvízt. Fájlból kéne beolvasnom 10 db kérdést 4 lehetséges válasszal . És a kérdéseket keverni kellene?

Figyelt kérdés

#programozás #C++ #kvíz #fájlból beolvasás
2017. dec. 4. 10:28
 1/8 tabaki ***** válasza:
Jöhet a kód, lássuk, meddig jutottál.
2017. dec. 4. 11:05
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:

#include "stdafx.h"

#include <utility>

#include <string>

#include <iostream>

#include <time.h>

#include <stdlib.h>

#include <fstream>

#include <ctime>


using namespace std;


int _tmain(int argc, _TCHAR* argv[])

{

int kerdesek;

setlocale(LC_ALL, "hun");


std::ifstream in("kérdések.txt");

int tomb[10];


for(int i(0); i<10; ++i)

{

in >> tomb[i];

std::cout << tomb[i];

}



srand(time(0));

for (std::size_t i = 0; i < 10; ++i)

{

int random = rand() % (10 - i);

std::cout << i + 1 << ". kerdes: " << kerdesek[random].first << '\n';

std::string valasz;

std::cin >> valasz;

std::cout << (kerdesek[random].second == valasz ? "helyes valasz!\n" : "helytelen valasz!\n");

std::swap(kerdesek[random], kerdesek[9 - i]);

}

system("pause");


return 0;

}

2017. dec. 4. 11:14
 3/8 tabaki ***** válasza:
Indulásnak nem rossz, vagy legalábbis nem alkalmatlan alap az építkezésre, csak sajnos, közben el kellett jöjjek otthonról, így estig nem tudok foglalkozni vele. Első blikkre egy csomó furcsa dolgot látok benne, de nem értek hozzá, ha majd próbálgatom, majdcsak összeáll belőle valami.
2017. dec. 4. 12:36
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

Számomra ez teljes káosznak tűnik, mintha úgy kukáztad volna össze a kódot. A kérdéseket tartalmazó tömb pl. miért int típusú?


Szerintem gondold át, hogyan kellene megoldani ezt a feladatot:


- Feltételezem, hogy van egy fájlod, aminek minden ötödik sora egy kérdést tartalmaz (alatta pedig a 4 lehetséges válasz, soronként egy).

- Ezt a fájlt mondjuk soronként elválasztva beolvashatod egy 9x4-es string mátrixba, így a mátrix minden sora egy kérdést és a hozzá tartozó 4 lehetséges választ fogja tartalmazni (ugye C-ben 0-tól van az indexelés, ezért nem 10x5-ös mátrixot írtam).


Akkor most ott tartunk, hogy ki kellene íratni a kérdéseket, de úgy, hogy a hozzá tartozó válaszok random sorrendben jelenjenek meg:


- Kell egy 0-9-ig futó ciklus ami végigmegy a mátrixon soronként.

-- Minden cikluslépésben kiírod a mátrix[i][0]. elemét, ez maga a kérdés.

-- Ezután több lehetséges megoldás lehet: Én azt mondom, hogy legyen még egy ciklus, ami 1-4-ig fut.

-- Legyen egy int generalt_szamok vektor, amit minden i. cikluslépésben kinullázol.

---- A cikluson (j) belül: Minden cikluslépésben generálsz egy random számot 1-4 között.

---- Ha a generált szám már benne van a generalt_szamok vektorban, akkor a ciklusváltozót csökkented egyel és újat generálsz.

---- Ha a generált szám még nincs benne a generalt_szamok vektorban, akkor beirod a generalt_szamok vektorba, illetve kiíratod a mátrix[i][generalt_szam] elemét, amelyik a kérdéshez tartozó egyik lehetséges válasz lesz.


Viszont ez a megoldás olyan szempontból veszélyes lehet, hogy könnyen végtelen ciklusba kerülhetsz vagy legalábbis előfordulhat, hogy hosszú lesz a futási ideje a számgenerálás miatt, de jobb megoldás hirtelen nem jut eszembe rá.

2017. dec. 4. 14:45
Hasznos számodra ez a válasz?
 5/8 sharkxxx ***** válasza:
68%
2017. dec. 4. 14:57
Hasznos számodra ez a válasz?
 6/8 A kérdező kommentje:
köszönöm
2017. dec. 4. 15:32
 7/8 tabaki ***** válasza:
Én meg csak egy teát kérek.
2017. dec. 4. 19:03
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:
Ba*ki az én teám már elhűlt.
2017. dec. 5. 16:16
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!