Jump to content

Recommended Posts

Posted

Creati o aplicatie care sa permita gestiunea unei grupe de studenti caracterizati prin Nume, nota1, nota2 si media. Notele se citesc de la tastatura, media se calculeaza.

Se cere:

- posibilitatea de a adauga un student nou

- posibilitatea de a sterge un student existent

- posibilitatea de a modifica o nota pentru un student

- posibilitatea de a afisa lista completa de studenti cu notele si media fiecaruia

 

Daca stie cineva sa faca :D as fi recunoscator. Multumesc !

Posted

pai le scrii cu pixul pe foaie, nu merge asa? Nu mai ai stres cu stocarea. 

 

Partea cu stergerea si modificarea e mai grea, dar folosesti un creion din acela cu guma intr-o parte, si te-ai scos.

love is a verb
Love is a doing word

  • 3 weeks later...
Posted

Nu prea ma pricep, se poate face in codeblocks si afisare in consola?

Studentii si notele ii puneam intr-un fisier text.

Dar nu stiu cum sa citesc caracterele dintr-un fisier.

In fine, vreau doar sa stiu ca idee, cum ar trebui facut si de ce ai nevoie?

Posted

De ce sa nu se poata face in CodeBlocks ? Este un IDE...

Inainte sa pui studentii si notele intr-un fisier, trebuie sa introduci datele de la tastatura si sa le salvezi in fisierul respectiv.

Eu as incepe prin a-mi defini o structura (record) de genul:

struct
{
    char nume[20];
    char prenume[20];
    int nota1;
    int nota2;
    int medie;
}student;

De citit, poti sa citesti asa:

FILE *fp;

if ((fp = fopen("fisier.txt", "r")) == NULL)
    {
        printf("Fisier inexistent...nn");
    }
    else
    {
        fscanf(fp,"%sn%s", student.nume, student.prenume);
    }
.
.
.
fclose(fp);
Posted

Raziel, poti sa comentezi fiecare linie (aproximativ desigur), cu ce face?

Nu prea am invatat majoritatea comenzilor pe care le-ai folosit tu acolo.

Cu fisiere stiu numai cu .in si .out :(

Nu stiu ce face "struct" aia, nici ce inseamna FILE*fp, print, scan, etc.

Dar daca ai explica as putea intelege.

Multumesc!

Posted

FILE *fp;  -> prin fp se va referi catre un fisier.

 

(fp = fopen("fisier.txt", "r"))  -> aici deschide fisierul "fisier.txt" pentru citire ("r" - read). Daca fisierul nu exista, fp va fi NULL, deaia face si verificarea aia acolo.

 

fscanf(fp,"%sn%s", student.nume, student.prenume);  -> cu fscanf citesti din fisierul fp. Tu probabil ai facut citirea cu chestii specifice C++. Poti modifica desigur folosind ceea ce sti tu. Linia asta efectiv citeste 2 stringuri din fisierul 'fp' si le pune in student.nume si student.prenume.

 

Struct ala iti permite sa definesti o structura de date personalizata. Pana acum ai lucrat cu int, float. Astea tin minte o singura chestie : Un numar. Dar daca vreau sa tin mai multe chestii? Gen o lista de oameni? Pai mias defini o structura de tip OM care are sa zicem un string NUME si un int VARSTA. 

Astfel tie mai usor sa te jocu cu datele, le ai mai organizate.

Deci acuma ai definit un nou tip de date, care se comporta ca oricare alt tip (int, float, char, etc). Deci poti crea variabile de acel tip: OM om; Si accesezi campurile folosind '.' astfel : om.VARSTA = 15;

http://en.wikipedia.org/wiki/Struct_%28C_programming_language%29

 

Daca nu ai facut struct la scoala, poti face si fara el. Doar ca trebuie sa fi putin mai atent la felul in care te joci cu variabilele.

 

 

app, scanf e ca un cin>> si printf e ca un cout<<. daca au un 'f' in fata, sunt pe fisiere. (nu mai stiu cum citeai in C++ din fisiere)

love is a verb
Love is a doing word

Posted

Multumesc.

"fp" este o variabila de tip pointer care pointeaza catre structura "FILE", de unde si numele "fp" (file pointer). Cand declari variabile pointer, este recomandat sa aiba o denumire de unde poti sa-ti dai seama usor ca ai dat de un pointer.

 

Ex:

char *pcParam;
char *pcParamBuffer;

"pcParam" inseamna ca "Param" este "pointer to char".

 

Nu trebuie sa te limitezi doar la ce faci la scoala. Si mie imi dadeau profesorii exercitii d-astea de rahat pe care le faceam in ASM de-al dracu...

In timpul liber invata lucruri noi. Nu te opreste nimeni sa faci implementari pe care nici unii profesori nu le stiu sau la care nu s-au gandit. Vei fi respectat.

Posted

Fara sa folosesti structuri e foarte greu sa rezolvi problema  , la citire e mai dificil cum ti-a zis Raziel , exista si o varianta mai usoara , care se face la scoala.

 

Raziel , GodOtherHand , tineti cont si ca se afla la inceput si cauta o rezolvare pe care sa o si inteleaga.

b_350_20_323957_202743_F19A15_111111.png

Posted

Eu incerc sa invat la programare si pe langa ce fac la scoala, problema e ca nu am timp.

 

@GotherHand: citirea in c++ e in felul urmator: 

#include<fstream>

ifstream g("date.in"); //nu mai stiu exact cum se numeau astea, sunt folosite ca sa faci legatura intre fisier si codeblocks.

ofstream h("date.in");

g>>a; //citesti din fisierul date.in primul nr in variabila a

h<<a; //il afisezi pe 'a' in fisierul date.out

g.close();

h.close(); 

 

Multumesc pentru explicatiile de mai sus tuturor, or sa aprofundez cand voi avea mai mult timp.

Posted

Nu e nici o terorie.

Tu programezi cu ajutorul limbajelor de programare C si C++, iti compilezi codul cu ajutorul compilatorului GCC si folosesti un IDE numit CodeBlocks.

Cam asta faci tu.

Cauta pe net si vei gasi ce este un IDE si ce face pentru tine.

Posted

Un IDE e doar un editor de text mai smecher, care are niste butoane peacolo.. Tu cand compilezi un program dintrun IDE(dai play), el doar cheama un compilator (de exemplu gcc) pe care l-ai putea apela si tu manual, din linia de comanda. 

love is a verb
Love is a doing word

Posted

E mai mult decat un editor de text smecher. Asa ai putea folosi Notepad++ cu succes.

Insa ce te faci in cazul in care ai un proiect cu multe sute de fisiere, incluzand subproiecte care trebuie compilate diferit, custom linking, etc... ???

In acest caz, ai sta sa scrii la makefile-uri mai mult decat ai scrie la proiect in sine.

Ia kernel-ul Linux (care nu depinde de nici un IDE) si scrie-i makefile-urile de la 0. Poate in 5 ani termini. :)

Un IDE te ajuta mai mult decat iti poti da seama.

Cui programeaza in Windoze, ii recomand Visual C++ Express, gratis. Este cel mai bun IDE cu cel mai bun compilator C,C++ si cu cel mai bun debugger si totul se integreaza mult mai bine cu Windoze, cum era de asteptat de altfel...

Sau daca folositi CodeBlocks mai faceti cate un update. Am vazut pe lddman ca foloseste v10 veche de 100 de ani. Pentru CodeBlocks recomand versiunile nightlies.

Posted

Asa ne-a zis profu, ca asa avem si pe alea de la liceu.

10.0.5 

Chiar or sa-l intreb de ce nu folosim cea mai noua versiune, cand or sa se termine vacanta ca pana atunci nu mai dau ochii cu el.

 

off topic: Raziel, tu esti la facultate sau? Adica sunt curios cu cine vorbesc, prea va pricepti cu calculatoarele astea :)) 

Nu stiu ce sa zic despre GodsOtherHand si Courage...hm..Nu pot sa-mi dau seama daca sunteti cls a XII-a, studenti, sau ati terminat si facultatea. :-?:bag:

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.