Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

pomoć C++ (sortiranje-bubble sort)

[es] :: C/C++ programiranje :: pomoć C++ (sortiranje-bubble sort)

[ Pregleda: 6344 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

metalac

Član broj: 10548
Poruke: 10
*.as54.bi.bih.net.ba.



Profil

icon pomoć C++ (sortiranje-bubble sort)19.02.2004. u 10:45 - pre 244 meseci
malo sam zapeo kod sortiranja, pa ako moze neko da pogleda jel moze sta da uradi! osim sortiranja potrebno je i malo rijesiti prilikom unosa da se u varijablu s.maticnibroj ne mogu unositi znakovi(slova....) tako i u varijablu ocjena. za sortiranje je potrebno da ispise pet najboljih studenata i treba koristiti bubble sort!
ovo je kod sto sam ja nesto pokusao da uradim, i prosao je u kompajleru
jedino jos samo sortiranje:

Code:

#include<fstream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>

using namespace std;

struct student {
    int             maticnibroj;
    char            prezimeiiime[30];
    int             ocjena[5];
    float           prosjek;
};

void
Unos()
{
    ofstream        izlaz;    // pisanje u datoteku 
    struct student  s;
    float           Pros;
    int             flag = 1;
    clrscr();
    izlaz.open("adi.dat", ios::app);
    while (flag) {
    int             i = 0;
    int             suma = 0;
    int             ocjena = 0;
    int             kos = 0;
    clrscr();
    cout << "\\n\\tUnesite maticnibroj: ";
    cin >> s.maticnibroj;
    cout << "\\tUnesite prezime i ime: ";
    gets(s.prezimeiiime);
    cout << "\\tUnesite ocjenu: ";
    do {
        cout << "\\t\\t" << i + 1 << ".ocjena: ";
        cin >> kos;
        s.ocjena /= kos;
        suma = suma + kos;
        i++;
    }
    while (i != 5);
    s.prosjek = suma / 5.0;
    fflush(stdin);
    izlaz.write((char *) &s, sizeof(s));
    flag = 0;
    };
    izlaz.close();
}

void
Ispis()
{
    // prvo da sve prikaze na ekran
    ifstream        ulaz;
    struct student  s;
    char            aa;
    clrscr();
    ulaz.open("adi.dat");
    if (ulaz) {
    cout <<
        "\\n\\t******************* IZVJESTAJ **********************";
    while (ulaz) {
        ulaz.read((char *) &s, sizeof(s));
        if (!ulaz)
        break;
        int             i = 0;
        cout << "\\n\\t\\t" << s.maticnibroj;
        cout << "\\n\\t" << s.prezimeiiime;
        cout << "\\n\\tOcjene:";
        do {
        cout << "\\t" << s.ocjena /;
        i++;
        }
        while (i != 5);
        cout << "\\n\\tProsjek:\\t" << s.prosjek;
    };
    ulaz.close();
    cout <<
        "\\n\\t****************************************************";
    } else {
    cout <<
        "\\n\\n\\tDATOTEKA NIJE KREIRANA. PRVO MORATE UNJETI PODATKE!!!";
    };
    cout << "\\n\\nPritisnite bilo koju tipku: ";
    cin >> aa;
}

int
main()
{
    int             izbor;
    do {
    clrscr();
    cout << "\\n\\n\\n\\n\\tImate sljedece opcije:  ";
    cout << "\\n\\n\\t\\t1. Unos novog studenta";
    cout << "\\n\\t\\t2. Ispis svih studenata";
    cout << "\\n\\t\\t3. Ispis pet najboljih studenata";
    cout << "\\n\\t\\t4. Izlaz";
    cout << "\\n\\n\\tUnesite opciju (1,2,3,4,): ";
    cin >> izbor;
    switch (izbor) {
    case 1:
        Unos();
        break;
    case 2:
        Ispis();
        break;
    case 3:;
        break;
    }
    }
    while (izbor != 4);
    clrscr();
    return 0;
}


hvala unaprijed!!
i molim operatora da mi postavi temu.hvala

leka@ES: Kod stavljen unutar 'code' tagova, tako da se sada moze lakse citati
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: pomoć C++ (sortiranje-bubble sort)19.02.2004. u 11:36 - pre 244 meseci
Brate, (svi metalci su moja braca ;)
ne znam kako tebi ovaj kod radi - ako ga je kompajler "progutao" to je onda bilo na jedvite jade. Ako te ne mrzi sredi malo kod (jer verujem da si ga u medjuvremenu menjao) i posalji opet ovamo i stavi ga unutar 'code' tagova. Ja sam tvoj kod propustio kroz GNU indent i tako sredjen stavio na mesto originalnog koji je bio necitak.

Prvi problem koji vidim ovako "odokativno" je
Code:

while (i != 5);

Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

#Coder
Zagreb

Član broj: 21075
Poruke: 16
193.198.202.*



Profil

icon Re: pomoć C++ (sortiranje-bubble sort)19.02.2004. u 11:48 - pre 244 meseci
Gledaj prijatelju ja u tom kodu nigdje ne vidim bubble sort ..

Algoritam bubble sorta je :

samo dio koda...

Code:

int i, j, temp;

for(i=0;i<broja_koliko_ih_ima-1;i++){
     for(j=1;j<broja_koliko_ih_ima;j++){
          if(a[i]>a[j]){
               temp=a[i];
                a[i]=a[j];
                a[j]=temp;
         }
     }
}

to ti je bubble sort za niz....

ak nemas niz napravi ga

[Ovu poruku je menjao Gojko Vujovic dana 21.03.2004. u 21:50 GMT]
Mess with the best and die like the rest
 
Odgovor na temu

lucky

Član broj: 2032
Poruke: 57
*.ppp-bg.sezampro.yu

Jabber: lucky@elitesecurity.org


+1 Profil

icon Re: pomoć C++ (sortiranje-bubble sort)21.03.2004. u 18:13 - pre 243 meseci
Tema je vec stara, ali čisto da ne stoji pogrešno!
#Coder, verujem da si u brzini prevideo stvari pa malo pogrešio. Znači
bubble sort je algoritam za sortiranje niza elemenata gde se porede susedni
elementi, i ako su nepravilno uređeni razmenjuju mesta. Posle poređenja
parova susednih elemenat, najveci od njih će "isplivati" na kraj niza.
Pa bi kod pisan u C-u izgledao ovako:

Code:

void bubbleSort(int *array, int length)
{
  int i, j, temp;

  for(i = length - 1; i > 0; i--)
    for(j = 0; j < i; j++)
      if(array[j] > array[j+1]) /* poredjenje susednih elmenata */
      {
        /* zamena array[j] i array[j+1] */
        temp = array[j];   
        array[j] = array[j+1];
        array[j+1] = temp;
      }
}

 
Odgovor na temu

george_w

Član broj: 20754
Poruke: 16
*.tel.net.ba



Profil

icon Re: pomoć C++ (sortiranje-bubble sort)07.04.2004. u 10:19 - pre 243 meseci
Tema je sad jos starija, ali mi bode oci onaj JMBG.
Naime, JMBG nikako NIJE tip int! Npr., kako unijeti JMBG za nekog ko je rodjen u prvih devet dana nekog mjeseca, npr 1.1.1978? Njegov JMBG je nesto kao: 0101978..., i kad bi to pretvorio u int, prgram bi oduzeo onu prvu "nulu". Dakle, JMBG bi onda bio nesto kao 101978... Tako bi ukupna duzina JMBG-a bila 12 znakova, a MORA biti 13!

Dakle, JMBG je znakovni niz duzine 13.

Takodjer, postoji pravilo provjere JMBG-a, pa se iz pravilno unesenog niza cifara moze "skontati" datum rodjenja i spol.

Pozdrav.
 
Odgovor na temu

[es] :: C/C++ programiranje :: pomoć C++ (sortiranje-bubble sort)

[ Pregleda: 6344 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.