Forumi


Povratak   PC Ekspert Forum > Računala > Software > Web dizajn, programiranje i ostalo
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 14.05.2016., 14:57   #1
compiler
Registered User
 
Datum registracije: May 2016
Lokacija: a
Postovi: 1
C - pomoć oko zadatka

Pozdrav.
Potrebna mi je pomoć oko sljedećeg zadatka:

Definisati strukturu PITANJE kojom se reprezentuje jedno pitanje u nekom kvizu,
a čiji su atributi tekst pitanja (statički string), prvi odgovor (statički string), drugi odgovor (statički string),
treći odgovor (statički string), te redni broj tačnog odgovora (cijeli broj – 1, 2 ili 3).
Definisati strukturu KVIZ kojom se reprezentuje jedan kviz, a čiji su atributi broj pitanja (cijeli broj) i pitanja (dinamički niz).
Definisati funkciju koja dodaje novo pitanje u kviz, a čiji je prototip: void dodaj(KVIZ *k, PITANJE *p);
Definisati funkciju koja prikazuje pitanje (i ponuđene odgovore) čiji je redni broj rb. Prototip funkcije je: void prikazi_pitanje(KVIZ *k, int rb);
Definisati funkciju koja vraća informaciju o tome da li je odgovor, čiji je redni broj rbo, tačan odgovor na pitanje čiji je redni broj rb.
Prototip funkcije je: int tacan(KVIZ *k, int rb, int rbo);
U glavnom programu:
- definisati novi kviz, pa u njega dodati dva pitanja(sa pripadajućim ponuđenim odgovorima),
- korisniku redom prikazivati pitanja na standardni izlaz, a sa standardnog ulaza učitavati odgovore
korisnika. Korisnik odgovara tako što unosi redni broj odgovora: 1, 2 ili 3 (u suprotnom prikazati poruku o greški i ponovo učitati odgovor na isto pitanje).
- na kraju, kada korisnik odgovori na sva pitanja, prikazati rezultat u procentima na standardni izlaz.
Napomena: Ukupan broj pitanja se dinamički alocira (nije unaprijed poznat ukupan broj pitanja jer korisnik manipuliše izbornikom).
Korisnik može manipulisati samo ponuđenim odgovorima na postavljeno pitanje,
kao i izbornikom koji mu omogućava da li želi da se doda naredno pitanje, prikaže rezultat, ili da korisnik terminira program.
To znači da korisnik sam određuje kad se kviz završava.
Nema korištenja datoteka, sav program se izvršava preko command prompt-a.

Definicije:
Code:
#define MAX 1000000
 
typedef struct
{
    char tekstPitanja[MAX];
    char prviOdgovor[MAX];
    char drugiOdgovor[MAX];
    char treciOdgovor[MAX];
    int rbto;//redni broj tacnog odgovora(1, 2 ili 3)
}PITANJE;
 
typedef struct
{
    int bp;//ukupan broj definisanih pitanja
    PITANJE *pitanja;
}KVIZ;
Primjer izvršavanja programa:
Code:
1. Koje godine je nastao programski jezik C?
1. 1852
2. 1872
3. 1972
Izaberite odgovor: 6
Greska (dozvoljene vrijednosti su 1, 2 i 3)!
Izaberite odgovor: 3
2. Ko je autor programskog jezika C?
1. Bill Gates
2. Dennis Ritchie
3. Steve Jobs
Izaberite odgovor: 2
Rezultat: 100%
U ovom zadatku mi nekoliko stvari nije jasno:
1) Kako dodati pitanje u kviz, tj. gdje treba definisati tekst pitanja (jer se tekst ne učitava, nego se automatski prikazuje kad korisnik hoće da doda novo pitanje)?
2) Pošto korisnik sam određuje kada će se program terminirati, kako definisati redoslijed pitanja koja dolaze kada ih korisnik
dodaje jedno po jedno (kada više nema definisanih pitanja valjda bi trebalo da se ispiše poruka o terminiranju programa, je li tako?)?
3) Tekst pitanja se ne definiše u datoteci, pa kako onda da se prikazuju na standarnom izlazu po redoslijedu kojim dolaze?

Unaprijed hvala.
compiler je offline   Reply With Quote
Staro 14.05.2016., 15:38   #2
M.Vlahovic
Premium
Moj komp
 
Datum registracije: Oct 2008
Lokacija: Zagreb
Postovi: 869
1) u glavnom programu/mainu definiras niz/array pitanja
2)trebalo bi negdje oznaciti ako je pitanje vec bilo da ga ne prikazuje opet. Mozda dodatu Flag bit u strukturu pitanje. I funkcija koja bi gledala jesu li sva pitanja vec bila tj prolazila kroz niz pitanja i gledala jesu li svim pitanjima flag bitovi oznaceni. Ili ih jednostavno brises nakon odgovora pa gledas ima li ista u nizu
3) niz / array pomocu petlje?

Zadnje izmijenjeno od: M.Vlahovic. 14.05.2016. u 15:49.
M.Vlahovic je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 19.06.2016., 16:37   #3
Vkmezic
Registered User
 
Datum registracije: Jun 2016
Lokacija: Dubrovčan
Postovi: 9
gdje skinuti literaturu o C jeziku
Vkmezic je offline   Reply With Quote
Staro 20.06.2016., 18:08   #4
Staromodan
Premium
 
Datum registracije: Nov 2012
Lokacija: .
Postovi: 172
Mislis li na to sto skinuti, tj. koje knjige? Osnove ili napredno?
Staromodan je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori


Uređivanje

Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Isključeno

Idi na