Prikazujem rezultate 1 do 13 od 13

Tema: C++ pitanja

  1. #1
    Moderator Fight fire with fire Deadwalker's Avatar
    Datum registracije
    Jun 2007
    Lokacija
    Varaždin
    Postova
    13.180

    C++ pitanja

    e ljudi, može pomoć? Nema veze sa igrama i programiranje istih... imam ispit iz programiranja u petak i zanima me čemu služe neke naredbe...moram položit ispit i bio bih jako zahvalan da mi pomognete. dakle zadatak je da treba u program unesti matični broj studenta, prezime, ime, sifru i ocjenu nekog kolegija...dost toga sam skužil i proučil al neke mi stvari jos nisu jasne...kod je sljedeći za prvi dio programa:

    #include <iostream>

    using namespace std;

    struct stud{
    int mbr;
    char prez_ime[35];
    int sifra;
    int ocjena;
    };

    stud *studenti=new stud;//funkcija te naredbe mi nije jasna
    int n;

    void prog1(){
    system("cls");
    cout<<"\nUnesi broj studenata: ";
    cin>>n;
    studenti=new stud[n];
    cout<<"\nUnos studenata:"<<endl;
    for(int i=0;i<n;i++){
    cout<<"Student br. "<<i+1<<": "<<endl;
    cout<<"Prezime i ime: ";
    cin.ignore();
    cin.getline(studenti[i].prez_ime,sizeof(studenti[i].prez_ime));//???
    cout<<"Maticni broj: ";
    cin>>studenti[i].mbr;
    cout<<"Sifra mentora: ";
    cin>>studenti[i].sifra;
    cout<<"Ocjena: ";
    cin>>studenti[i].ocjena;
    }
    }

    prog jezik je C++ i programiram u dev-u...
    "Death smiles at us all. All a man can do is smile back."


  2. #2
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028

    Re: C++ pitanja

    stud *studenti=new stud;//funkcija te naredbe mi nije jasna
    ovo nema smisla, ovo ima : stud *studenti;
    to je deklaracija pokazivača na tip (strukturu) stud

    cin.getline(studenti[i].prez_ime,sizeof(studenti[i].prez_ime));//???

    ova funkcija služi za umetanje slova u polje chara, s tim da netko od slova može biti whitespace (ime i prezime npr.)
    prvi argument je polje u koje želiš spremiti znakove - a to je studenti[i].prez_ime
    drugi argument je količina znakova koju želiš pohraniti - sizeof(studenti[i].prez_ime)
    sizeof vrača podatak o zauzeću memorije argumenta - a kako char zauzima 1 byte, količina dopuštenih znakova je jednaka duljini arraya
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

  3. #3
    Moderator Fight fire with fire Deadwalker's Avatar
    Datum registracije
    Jun 2007
    Lokacija
    Varaždin
    Postova
    13.180

    Re: C++ pitanja

    e puno hvala ...daj mi sam jos reci čemu služi naredba cin.ignore()?
    "Death smiles at us all. All a man can do is smile back."


  4. #4
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028

    Re: C++ pitanja

    Kao što i ime kaže, ignorira jedan znak u ulaznom toku.
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

  5. #5

    Re: C++ pitanja

    U biti kad je neka datoteka napravljena:
    dat.ignore() ili dat.ignore(5) //preskoći slijedeći znak
    //preskoći slijedećih pet znakova
    ....nema ti druge nego napamet naučiti(ali nema koristi) jer ne znam što da ti kažem ,morali bi krenuti ispočetka
    s objašnjavanjem c++-a.
    matowin59

  6. #6

    Re: C++ pitanja

    = Citat = Izvorno postao Deadwalker
    e ljudi, može pomoć? Nema veze sa igrama i programiranje istih... imam ispit iz programiranja u petak i zanima me čemu služe neke naredbe...moram položit ispit i bio bih jako zahvalan da mi pomognete. dakle zadatak je da treba u program unesti matični broj studenta, prezime, ime, sifru i ocjenu nekog kolegija...dost toga sam skužil i proučil al neke mi stvari jos nisu jasne...kod je sljedeći za prvi dio programa:

    Code:
    #include <iostream>
    
    using namespace std;
    
    struct stud{
    	int mbr;
    	char prez_ime[35];
    	int sifra;
    	int ocjena;
    };
    
    stud *studenti=new stud;//funkcija te naredbe mi nije jasna
    int n;
    
    void prog1(){
    	system("cls");
    	cout<<"\nUnesi broj studenata: ";
    	cin>>n;
    	studenti=new stud[n];
    	cout<<"\nUnos studenata:"<<endl;
    	for(int i=0;i<n;i++){
    		cout<<"Student br. "<<i+1<<": "<<endl;
    		cout<<"Prezime i ime: ";
    		cin.ignore();
    		cin.getline(studenti[i].prez_ime,sizeof(studenti[i].prez_ime));//???
    		cout<<"Maticni broj: ";
    		cin>>studenti[i].mbr;
    		cout<<"Sifra mentora: ";
    		cin>>studenti[i].sifra;
    		cout<<"Ocjena: ";
    		cin>>studenti[i].ocjena;
    	}
    }
    prog jezik je C++ i programiram u dev-u...
    1) Naredba stud *studenti=new stud;Sse nalazi na krivom mjestu u programu. Treba biti unutar funkcije u kojoj se ovaj pokazivač koristi (pretpostavljam prog1). Također, ovdje je zauzeta memorija za samo jednu strukturu, a u programu ju koristiš kao polje s više elemenata. To neće raditi kako treba, ako uopće bude htjelo raditi. Previše je krivih adresiranja.

    2) Naredba cin.getline(studenti[i].prez_ime,sizeof(studenti[i].prez_ime));Ssluži za unos znakovnog niza s maksimalno 35 znakova u ovom slučaju.

    3) Memorija nigdje nije dealocirana.

    4) Gdje je funkcija main?

    Sve u svemu ovo su zaista elementarne stvari. Ako se ti sada mučiš kako učitati običnu strukturu onda nikako nisi spreman za ispit. Previše je ovdje elementarnih grešaka.
    AMD Athlon 64, 6000+ X2
    4 GB Ram 800 MHZ
    8800 GT, 1GB

    http://www.programiranje.big-forum.net

  7. #7

    Re: C++ pitanja

    = Citat = Izvorno postao Luka
    Kao što i ime kaže, ignorira jedan znak u ulaznom toku.
    Ignorira koliko je god potrebno:

    Code:
    cin.ignore() // 1 znak
    cin.ignore(6) // 6 znakova
    cin.ignore(77, '\n'); //77 znakova ili dok ne dođe do novog retka.
    AMD Athlon 64, 6000+ X2
    4 GB Ram 800 MHZ
    8800 GT, 1GB

    http://www.programiranje.big-forum.net

  8. #8

    Re: C++ pitanja

    = Citat = Izvorno postao matowin59
    U biti kad je neka datoteka napravljena:
    dat.ignore() ili dat.ignore(5) //preskoći slijedeći znak
    //preskoći slijedećih pet znakova
    ....nema ti druge nego napamet naučiti(ali nema koristi) jer ne znam što da ti kažem ,morali bi krenuti ispočetka
    s objašnjavanjem c++-a.
    Ovdje nije riječ o datotekama jer se koriste obični cin i cout tokovi. Sličnosti postoje s fstream i ifstream, ali tu je već potrebno kreirati i objekte.
    AMD Athlon 64, 6000+ X2
    4 GB Ram 800 MHZ
    8800 GT, 1GB

    http://www.programiranje.big-forum.net

  9. #9

    Re: C++ pitanja

    Tako je, ali neka malo...ima dosta tutorijala......samo sam dodao i za datoteke.Shvatiti svakako mora.
    ....
    &istream ulaz.ignore();
    eto objekta ulaz.
    Klasa istream ili bilo koja njena izvedena kao što si rekao fstream,ifstream,istrstream....
    Kao parametri nam posluže ono što želimo preskakati i dokud to ide.
    itd..itd....eto bar sad zna ignore();
    matowin59

  10. #10
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028

    Re: C++ pitanja

    @Tracer, da, ali je njegovo pitanje bilo konkretno za cin.ingore()
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

  11. #11

    Re: C++ pitanja

    = Citat = Izvorno postao Luka
    @Tracer, da, ali je njegovo pitanje bilo konkretno za cin.ingore()
    Znam Govorio sam općenito.
    AMD Athlon 64, 6000+ X2
    4 GB Ram 800 MHZ
    8800 GT, 1GB

    http://www.programiranje.big-forum.net

  12. #12
    Moderator Fight fire with fire Deadwalker's Avatar
    Datum registracije
    Jun 2007
    Lokacija
    Varaždin
    Postova
    13.180

    Re: C++ pitanja

    ovo je bio samo dio programa, Inače cijeli program je realiziran u obliku izbornika, jer program radi vise funkcija. Ovo je cijeli programu izborniku na kraju pise sta program radi)

    Code:
    #include <iostream>
    #include <fstream>
    
    using namespace std;
    
    struct stud{
    	int mbr;
    	char prez_ime[35];
    	int sifra;
    	int ocjena;
    };
    
    stud *studenti=new stud;
    int n;
    
    void prog1(){
    	system("cls");
    	cout<<"\nUnesi broj studenata: ";
    	cin>>n;
    	studenti=new stud[n];
    	cout<<"\nUnos studenata:"<<endl;
    	for(int i=0;i<n;i++){
    		cout<<"Student br. "<<i+1<<": "<<endl;
    		cout<<"Prezime i ime: ";
    		cin.ignore();
    		cin.getline(studenti[i].prez_ime,sizeof(studenti[i].prez_ime));
    		cout<<"Maticni broj: ";
    		cin>>studenti[i].mbr;
    		cout<<"Sifra mentora: ";
    		cin>>studenti[i].sifra;
    		cout<<"Ocjena: ";
    		cin>>studenti[i].ocjena;
    	}
    }
    
    void prog2(){
    	system("cls");
    	//sortiramo uzlazno
    	int sort=0;
    	stud temp;
    	while(sort==0){
    		sort=1;
    		for(int i=1;i<n;i++){
    			if(studenti[i-1].sifra>studenti[i].sifra){
    				temp=studenti[i-1];
    				studenti[i-1]=studenti[i];
    				studenti[i]=temp;
    				sort=0;
    			}
    		}
    	}
    }
    
    void prog3(){
    	system("cls");
    	cout<<"\nIspis studenata uzlazno prema sifri mentora:"<<endl;
    	cout<<"\n\nPrzime i ime studenta\tSifra mentora\tOcjena rada"<<endl;
    	for(int i=0;i<n;i++){
    		cout<<studenti[i].prez_ime<<"\t"<<studenti[i].sifra<<"\t"<<studenti[i].ocjena;
    		if(studenti[i].ocjena==1){
    			cout<<" (nedovoljan)";
    		}
    		else if(studenti[i].ocjena==2){
    			cout<<" (dovoljan)";
    		}
    		else if(studenti[i].ocjena==3){
    			cout<<" (dobar)";
    		}
    		else if(studenti[i].ocjena==4){
    			cout<<" (vrlo dobar)";
    		}
    		else if(studenti[i].ocjena==5){
    			cout<<" (odlican)";
    		}
    		cout<<endl;
    	}
    	cout<<endl;
    }
    
    void prog4(){
    	system("cls");
    	fstream dat;
    	dat.open ("studenti.dat",ios::out | ios::binary);
    	for(int i=0;i<n;i++){
    		dat.write ((char*)&studenti[i],sizeof(stud));
    	}
    	dat.close();
    	dat.open ("studenti.dat",ios::in | ios::binary);
    	cout<<"\n\nIspis iz datoteke:"<<endl;
    	stud buff;
    	while(1){
    		dat.read ((char*)&buff,sizeof(stud));
    		if(dat.eof()){
    			break;
    		}
    		else{
    			cout<<buff.mbr<<"\t"<<buff.prez_ime<<"\t"<<buff.sifra<<"\t"<<buff.ocjena<<endl;
    		}
    	}
    	dat.close();
    	cout<<endl;
    }
    
    void main(){
    	int izbor;
    	do{
    		system("cls");
    		cout<<"\n1 Unos podataka"<<endl;
    		cout<<"2 Sort prema sifri"<<endl;
    		cout<<"3 Ispis prema sifri"<<endl;
    		cout<<"4 Upis u datoteku i ispis iz datoteke"<<endl;
    		cout<<"5 Izlaz iz programa"<<endl;
    		cout<<"\nOdaberi: ";
    		cin>>izbor;
    		switch(izbor){
    		case 1:
    			prog1();
    			system("pause");
    			break;
    		case 2:
    			prog2();
    			system("pause");
    			break;
    		case 3:
    			prog3();
    			system("pause");
    			break;
    		case 4:
    			prog4();
    			system("pause");
    			break;
    		}
    	}while(izbor>0 && izbor<5);
    }
    }
    }
    "Death smiles at us all. All a man can do is smile back."


  13. #13
    Senior Member Lord of The Fleas
    Datum registracije
    Jan 2007
    Lokacija
    /dev /null
    Postova
    412

    Re: C++ pitanja

    Za ubuduće, na ovom forumu imaš [CODE]Stagove, tako da ti kôd bude fino izdvojen.

Slične teme

  1. Par pitanja
    By Tola in forum Programiranje i izrada igara
    Odgovora: 5
    Posljednji post: 13-08-2009, 12:48
  2. Par Wow pitanja
    By KingTomy in forum World Of Warcraft
    Odgovora: 29
    Posljednji post: 07-03-2007, 10:50

Pravila postanja

  • Ne možeš stvarati nove teme
  • Ne možeš odgovarati na postove
  • Ne možeš slati privitke
  • Ne možeš mijenjati svoje postove
  •