C pomoć

Teme koje se tiču programiranja

Moderator: Urednik

Post Reply

offline

Posts: 1
Joined: 14 May 2016, 16:50

Post Napisano: 14 May 2016, 17:01


Pozdrav.
Potrebna mi je pomoć oko sledeć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 (celi broj – 1, 2 ili 3).
Definisati strukturu KVIZ kojom se reprezentuje jedan kviz, a čiji su atributi broj pitanja (celi 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 unapred 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: Select all

#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;

Code: Select all

Primjer izvršavanja programa:
1. Koje godine je nastao programski jezik C?
1. 1852
2. 1872
3. 1972
Izaberite odgovor: 6
Greska (dozvoljene vrednosti 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 redosled 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 redosledu kojim dolaze?

Unapred hvala.



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 15 May 2016, 04:14


Prema postavci pitanja ovde bi trebalo da koristiš array struktura umesto pointera na strukturu u strukturi KVIZ. Array struktura je malo kompleksniji tip podataka i potrebno je ručno alocirati svaki član arraya. Za to služi funkcija dodaj: alociranje i dodela vrednosti. Način prikazivanja se ne menja. Valjda znaš kako da pristupiš pojedinačnim vrednostima za svaki član strukture (struktura.član). Šetanje kroz array je obična petlja koja se izvršava dok postoji članova arraya u memoriji.

Ovo ti je vrlo slično tekstualnim ili numeričkim arrayima, samo što je član arraya kompleksniji tip podataka - struktura. Ovde kombinuješ sve ono što znaš o arrayima i strukturama.


Post Reply

Who is online

Users browsing this forum: No registered users and 17 guests