Konspektai

Programavimas. Sąrašai

10   (1 atsiliepimai)
Programavimas. Sąrašai 1 puslapis
www.nemoku.lt
www.nemoku.lt
Aukščiau pateiktos peržiūros nuotraukos yra sumažintos kokybės. Norėdami matyti visą darbą, spustelkite peržiūrėti darbą.
Ištrauka

Šakotas dinamiškas sąrašas //---- File1.h ----- const char * CDuom = "Duom.txt"; const char * CRez = "Rez.txt"; const int Cn = 4; struct TStudentas {char pav[10]; double vid; TStudentas *kitas; }; struct TFakultetas{char grupe[10]; double grvid; TStudentas * sar; TFakultetas *sek; }; //---- Unit2.h ----- class Studijos { TFakultetas *P; public : Studijos()P(NULL) { ofstream F(CRez); F.close(); } ; ~Studijos(); void Skaityti(); void Spausdinti(); void GrupesVidurkis(); private : void Papildyti(char grupe[],char stud[], double vid); double Vidurkis(TStudentas *G); }; //---- Unit2.cpp ------ #include #pragma hdrstop #include "Unit2.h" #pragma package(smart_init) //---------------- // Naikinamas dinamiškas sąrašas Studijos::~Studijos() { TStudentas *R; TFakultetas *G; while(P) { G = P; P = P->sek; while(G->sar) { R = G->sar; G->sar = R->kitas; delete R; } delete G; } } //------------------- // Skaitomi duomenys iš tekstinio failo void Studijos::Skaityti() { ifstream fd(CDuom); char grupe[10], stud[10]; double vid; while(!fd.eof()) { fd.get(grupe, 10); fd.get(stud, 10); fd >> vid; fd.ignore(); Papildyti(grupe, stud, vid); } fd.close(); } //------------------- // Sąrašas papildomas vieno studento duomenimis. void Studijos::Papildyti(char grupe[], char stud[], double vid) { bool yra = false; TStudentas * R; TFakultetas *G; G = P; while( G && !yra) if(strcmp(G->grupe, grupe) == 0) yra = true; else G = G->sek; if(!yra){ G = new TFakultetas; G->sar = NULL; strcpy(G->grupe, grupe); G->grvid = 0; G->sek = P; P = G; } R = new TStudentas; strcpy(R->pav, stud); R->vid = vid; R->kitas = G->sar; G->sar = R; } //------------------ // Sąrašo duomenys spausdinami void Studijos::Spausdinti() { ofstream fr(CRez, ios:: app); TStudentas * d; TFakultetas *G; G = P; while(G) { fr grupegrvid sar; while(d) { fr pav vid kitas; } fr sek; } fr grvid = Vidurkis(G->sar); G = G->sek; } } //------------------- // Vienos studentų grupės vidurkis double Studijos::Vidurkis(Studentas *G) { double suma = 0; int n = 0; while(G) { suma += G->vid; n++; G = G->kitas; } if(n) return suma / n; else return 0.0; } //----Unit1.h ------- class TForm1 : public TForm { void __fastcall Button1Click(TObject *Sender); private: TStudijos A; }; //---- Unit1.cpp ----- void __fastcall TForm1::Button1Click(TObject *Sender) { A.Skaityti(); A.GrupesVidurkis(); A.Spausdinti(); } Lizdinis dinamiškas sąrašas const int Cilg = 4;// masyvo ilgis lizde struct TSar { int n;//įrašytų objektų kiekis int L[Cilg];// objektų masyvas TSar *sek;//kito lizdo adresas }; //--------- class TSarasas { TSar *pr;// sąrašo pradžia public: TSarasas(); ~TSarasas(); void FormuotiSarasa(const char *); void SpausdintiSarasa(const char *, char *); void RikiuotiSarasa(); void SalintiMax(); void IterptiUzMax(int ka); private: void IrasytiObjekta(TSar *&, int); void SalintiObjekta(TSar *, int); void IterptiObjekta (TSar *, int, int); void RastiMax(TSar *&, int &); }; //---------- TSarasas::TSarasas() { pr = NULL; } //---------- TSarasas::~TSarasas() { TSar *d; while (pr != NULL) { d = pr; pr = pr->sek; delete d; } } //-------- // Objektą s įrašo į lizdą G, jei lizdas pilnas, sukuria naują ir įrašo į jį, grąžina G void TSarasas::IrasytiObjekta (TSar *&G, int s) { if (G->n == Cilg) { // Jeigu lizdas pilnas G->sek = new TSar; G = G->sek; G->sek = NULL; G->n = 0; //naujo lizdo paruošimas } G->L[G->n] = s; G->n += 1; // objekto įrašymas į lizdą } //---------- //Formuoja lizdinį sąrašą pr void TSarasas::FormuotiSarasa (const char *fv) {ifstream f; f.open(fv); TSar *G; int s; pr = new TSar; pr->sek = NULL; // fiktyvaus lizdo sukūrimas pr->n = Cilg; G = pr; while (!f.eof()) { f >> s; IrasytiObjekta (G, s); } G = pr; pr = pr->sek; // pr - sukurto sąrašo rodyklė delete G; // šalinamas fiktyvus elementas f.close(); } //--------- // Įterpia objektą s į lizdą G už k-o elemento; // jei lizdas pilnas, padaro nauja lizdą void TSarasas::IterptiObjekta (TSar *G, int k, int s) { TSar *r; if (G) { if (G->n == Cilg) { // Jeigu lizdas pilnas r = new TSar; r->sek = G->sek; G->sek = r; r->n = 1; if (k == Cilg-1) r->L[0] = s; else { r->L[0] = G->L[G->n-1]; G->n -= 1; } } if (k n-1; i>k;i--) G->L[i+1] = G->L[i]; G->L[k+1] = s; G->n += 1; // objekto įrašymas į lizdą } } // if (G) } //---------- // Į failą fv spausdina visų sąrašo objektų reikšmes; void TSarasas::SpausdintiSarasa(const char *fv, char E[]) { ofstream f; f.open(fv, ios::app); TSar *r = pr; f n n;i++) f L[i] sek; } f.close(); } //--------- // Rikiuoja sąrašo pr objektus minmax būdu void TSarasas::RikiuotiSarasa() { TSar *rmin;// min. objekto lizdas int jmin; // masyvo el-to numeris TSar *r1; int j, j1; TSar *r = pr; while(r) { for (int i=0; i

Daugiau informacijos...

Šį darbą sudaro 1430 žodžiai, tikrai rasi tai, ko ieškai!

★ Klientai rekomenduoja


Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?

Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!

Detali informacija
Darbo tipas
Lygis
Mokyklinis
Failo tipas
Word failas (.doc)
Apimtis
1 psl., (1430 ž.)
Darbo duomenys
  • Programavimo konspektas
  • 1 psl., (1430 ž.)
  • Word failas 76 KB
  • Lygis: Mokyklinis
www.nemoku.lt Atsisiųsti šį konspektą
Privalumai
Pakeitimo garantija Darbo pakeitimo garantija

Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.

Sutaupyk 25% pirkdamas daugiau Gauk 25% nuolaidą

Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.

Greitas aptarnavimas Greitas aptarnavimas

Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!

Atsiliepimai
www.nemoku.lt
Dainius Studentas
Naudojuosi nuo pirmo kurso ir visad randu tai, ko reikia. O ypač smagu, kad įdėjęs darbą gaunu bet kurį nemokamai. Geras puslapis.
www.nemoku.lt
Aurimas Studentas
Puiki svetainė, refleksija pilnai pateisino visus lūkesčius.
www.nemoku.lt
Greta Moksleivė
Pirkau rašto darbą, viskas gerai.
www.nemoku.lt
Skaistė Studentė
Užmačiau šią svetainę kursiokės kompiuteryje. :D Ką galiu pasakyti, iš kitur ir nebesisiunčiu, kai čia yra viskas ko reikia.
Palaukite! Šį darbą galite atsisiųsti visiškai NEMOKAMAI! Įkelkite bet kokį savo turimą mokslo darbą ir už kiekvieną įkeltą darbą būsite apdovanoti - gausite dovanų kodus, skirtus nemokamai parsisiųsti jums reikalingus rašto darbus.
Vilkti dokumentus čia:

.doc, .docx, .pdf, .ppt, .pptx, .odt