1. Laboratorinio darbo L1 ataskaita Pertvarkyta rudens semestro L8 darbo programa DVIKRYPTIS TIESINIS DINAMIŠKAS SĄRAŠAS Pristatymo data: 2006-03-03 Atliko: IFT – 5 gr. studentė Dalė Ūselienė Dėstytojas: Lektorius Vytautas Bukšnaitis 1.1 Užduotis (L4 – 11) Turime gyventojų sąrašą: pavardė, vardas, adresas, gimimo metai. Reikia sudaryti nurodyto amžiaus intervalo gyventojų sąrašą. Duomenys skaitomi iš rudens semestro L8 darbe sukurto tipizuoto failo i tiesinį dvikrypti dinamišką sąrašą. Rezultatai spausdinami lentelės forma tekstiniame faile ir parodomi ektane. 1.2 Programos aprašymas. 1.2.1 Formos schema. 1.2.2 Formos paveikslas. 1.2.3 Formos komponentai. Komponento vardas Reikšmė Form1 Vienkryptis tiesinis dinamiškas sąrašas Memo1 Duomenims ir rezultatams parodyti Memo2 clWindow Courier New – Regular- Black - 8 MainMenu1 Meniu komponentas OpenDialog1 Langas failui išsirinkti ir atidaryti SaveDialog1 Langas failui išsirinkti ir rezultatams išsaugoti Label1 Metų intervalas: nuo Label2 Metų intervalas: iki Label3 Įvedamas metų intervalasPvz., Nuo: 1968; Iki: 2001 Label4 Informacija vartotojui ,,Pagalba“ Edit1 Klaviatūra įvedami metai (nuo) Edit2 Klaviatūra įvedami metai (iki) 1.2.4. Meniu schema ir aprašymas. Meniu komanda “Pasirinkti“ išskleidžia žemesnio lygio komandų sąrašą: D.Failas - atidaromas OpenDialog1. langas, nustatomas filtras: rodyti tik tekstinius failus. Irasyti - atveriamas SaveDialog1. langas, pasirenkamas failas pradinių duomenų išsaugojimui. Rodyti – pradiniai duomenys, lentelės forma parodomi Memo1. lange. Baigti – iškviečiamas atsisveikinimo langas AboutBox1, kuris baigia darbą su programa. Meniu komanda “Veiksmai“ išskleidžia žemesnio lygio komandų sąrašą: Metai – nuskaitomi Label1. ir Label2. laukeliuose įrašyti metai (tam tikras metų intervalas). Atrinkti – iš pradinio duomenų failo atrenkami duomenys, atitinkantys nurodytą metų intervalą. Meniu komanda “ Rezultatai“ - skirta atidaryti SaveDialog1, išsaugoti rezultatus rezultatų faile 'Rezultatas.txt' ir parodyti ekrane. Meniu komanda “ Pagalba“ - iškviečiamas Memo2. langas ir jame parodoma visa informacija, kaip sėkmingai dirbti su programa. type TEil1 = string[15]; TEil2 = string[10]; TEil3 = string[25]; TGyventojas = record pav : TEil1; // Pavardė vard : TEil2; // Vardas adr : TEil3; // Adresas g_mt : integer; // Gimimo metai end; TSar = ^sar; // Rodyklė į dinamiško sąrašo elementą sar = record // Dinaminio sąrašo elementas gyv : TGyventojas; // Informacinė dalis ka, de : TSar; // Adreso dalis end; Vieno įrašo apie gyventoją, sąrašo struktūra (informacinė dalis) 1.2.6 Programos etiketės schema ir paveikslas. Programos etiketės paveikslas. 1.2.7 Programos etiketės keičiamų komponentų savybių lentelė Komponentai Reikšmė TAboutBox Apie Image1 Fono paveikslėlis Label1 Laboratorinis darbas Nr. 8. Label2 Pavadinimas Užduotis: LR4 - 11 Label3 Pavadinimas VIENKRYPTIS TIESINIS DINAMIŠKAS SĄRAŠAS Label4 Pavadinimas Programos autorė: DALĖ ŪSELIENĖ OKButton TĘSTI 1.2.8 Programos etiketės (atsisveikinimo) schema ir paveikslas. Programos etiketės (atsisveikinimo) paveikslas. 1.2.9 Programos etiketės (atsisveikinimo) keičiamų komponentų savybių lentelė. Komponentai Reikšmė TAboutBox Apie ... Image1 Fono paveikslėlis Label1 Pranešimas PROGRAMA BAIGĖ DARBĄ Label2 Pranešimas: IKI KITO KARTO! Label3 Programos sukūrimo metai 2005/2006 m.m. OKButton BAIGTI 1.3 Programos tekstas //----------------------------------------------------------------------------// {Atliko IFT - 5 grupės studentė Dalė Ūselienė} //----------------------------------------------------------------------------// { L1. Pertvarkyta rudens semestro L8 darbo programa. } { Dvikryptis tiesinis dinamiškas sąrašas. } //----------------------------------------------------------------------------// { Duomenys skaitomi iš tipizuoto failo į dvikrypti tiesinį dinamišką sąrašą, spausdinami rezultatų faile lentelės forma, parodomi ekrane. Programa pristato autorių, užduotį, nurodymus darbui. } { Failams nurodyti naudojami OpenDialog ir SaveDialog komponentai. } //----------------------------------------------------------------------------// {Užduotis L4-11} //----------------------------------------------------------------------------// { Turime gyventojų sąrašą: pavardė, vardas, adresas, gimimo metai. } { Reikia sudaryti nurodyto amžiaus intervalo gyventojų sąrašą. } { Išvesti lenteles: duomenų ir skaičiavimų rezultatų. } //----------------------------------------------------------------------------// {Atlikimo data 2006-03-03} //----------------------------------------------------------------------------// unit Unit1; // Įrašo tipo duomenys interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, Unit2, Unit3, Unit4; const CPagalba = 'Pagalba.txt'; type TEil1 = string[15]; TEil2 = string[10]; TEil3 = string[25]; TGyventojas = record // Vienos įrašų eilutės struktūra pav : TEil1; // Pavardė vard : TEil2; // Vardas adr : TEil3; // Adresas g_mt : integer; // Gimimo metai end; TSar = ^sar; // Rodyklė į dinaminio sąrašo elementą sar = record // Dinaminio sąrašo elementas gyv : TGyventojas; // Informacinė dalis ka, de : TSar; // Adreso dalis end; TFailas = file of TGyventojas; // Tipizuoto failo aprašymas TForm1 = class(TForm) Memo1: TMemo; // Duomenims ir rezultatams matyti Memo2: TMemo; // Tekstui (kaip dirbti su programa) matyti MainMenu1: TMainMenu; // Meniu komponentas Pasirinkti1: TMenuItem; // Meniu mygtukas Pasirinkti DFailas1: TMenuItem; // Meniu mygtukas DFailas Veiksmai1: TMenuItem; // Meniu mygtukas Veiksmai Atrinkti1: TMenuItem; // Meniu mygtukas Atrinkti Metai1: TMenuItem; // Meniu mygtukas Metai Rezultatai1: TMenuItem; // Meniu mygtukas Pabaiga Pagalba1: TMenuItem; // Meniu mygtukas Pagalba OpenDialog1: TOpenDialog; // Dialogas failui išsirinkti SaveDialog1: TSaveDialog; // Dialogas failui išsaugoti Label1: TLabel; // Informacija vartotojui Label2: TLabel; // Informacija vartotojui Label3: TLabel; // Informacija vartotojui Label4: TLabel; // Informacija vartotojui Edit1: TEdit; // Klaviatūra įrašomi metai nuo: Edit2: TEdit; Irasyti1: TMenuItem; Rodyti1: TMenuItem; Baigti1: TMenuItem; // Klaviatūra įrašomi metai iki: procedure DFailas1Click(Sender: TObject); procedure Atrinkti1Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure Metai1Click(Sender: TObject); procedure Rezultatai1Click(Sender: TObject); procedure Pagalba1Click(Sender: TObject); procedure Rodyti1Click(Sender: TObject); procedure Irasyti1Click(Sender: TObject); procedure Baigti1Click(Sender: TObject); private P : TSar; // Duomenų sąrašo pradžios rodyklė P1 : TSar; // Rezultato sąrašo rodyklė nu, ik : integer; // Nurodyto metų inter. išvesti rez. faile nuo, iki : integer; // Metų intervalui nuskaityti procedure Skaityti; // Nuskaitomi duomenys iš RezTip failo procedure Lentele(S : TSar); // Pradiniai duomenys surašomi į lenetelę procedure Atrinkimas; // Atrenekami duomenys procedure Lentele1(S : TSar); // Atrinkti duomenys surašomi į lentelę procedure Nuskaitymas; // Nuskaitomi metei iš Edit1 ir Edit2 lauk. public FDuomen : string; FRezultatas : string; end; var Form1: TForm1; implementation //-----Programos etiketė. Pristatomas programos autorius, užduotis------------// procedure TForm1.FormActivate(Sender: TObject); begin AboutBox.ShowModal; DFailas1.Enabled := True; Irasyti1.Enabled := False; Rodyti1.Enabled := False; Veiksmai1.Enabled := False; Atrinkti1.Enabled := False; Rezultatai1.Enabled := False; Memo2.Visible := False; end; //-- Atidaromas OpenDialog1, nuskaitomi duomenys iš tipizuoto duomenų failo --// procedure TForm1.DFailas1Click(Sender: TObject); begin //Nustatomas filtras : rodomi tik tekstiniai failai OpenDialog1.Filter := 'Text failai(*.txt) |*.txt'; //Jei išrinktas failo vardas ir paspaustas 'Open' if OpenDialog1.Execute then begin FDuomen := OpenDialog1.FileName; end; DFailas1.Enabled := False; Irasyti1.Enabled:= True; Rezultatai1.Enabled := False; end; //-------Skaito pradinius duomenis iš tipizuoto duomenų failo ,,RezTip" -----// procedure TForm1.Skaityti; var F : TFailas; // Tipizuotas failas G, D : TSar; begin AssignFile (F, FDuomen); Reset (F); New(P); P^.ka := Nil; P^.de := Nil; G := P; while not Eof(F) do begin New(G^.de); G^.de^.ka := G; G := G^.de; Read(F, G^.gyv); G.de := Nil; end; D := P; P := P^.de; Dispose(D); // Fiktyvaus elemento šalinimas if P Nil then P^.ka := Nil; CloseFile(F); end; //--------------------Atveriamas SaveDialog1 langas,--------------------------- //----------pasirenkamas failas pradiniams duomenims išsaugoti----------------- procedure TForm1.Irasyti1Click(Sender: TObject); begin //Nustatomas filtras: rodomi tik tekstiniai failai SaveDialog1.Filter := 'Text failai(*.txt) |*.txt'; //Jei isrinktas failo vardas ir paspaustas 'Save' if SaveDialog1.Execute then begin FRezultatas := SaveDialog1.FileName; Irasyti1.Enabled := False; Rodyti1.Enabled := True; end; end; //-------------Paspaudus meniu mygtuką 'Rodyti'-------------------------------// //----pradiniai duomenys, lentelės forma parodomi Memo1. lange----------------// procedure TForm1.Rodyti1Click(Sender: TObject); begin Skaityti; Lentele(P); Memo1.Lines.LoadFromFile(FRezultatas); Rodyti1.Enabled := False; Veiksmai1.Enabled := True; end; //-------------Pradiniai duomenys surašomi lentele į rezultatų failą---------// procedure TForm1.Lentele(S : TSar); var i : integer; R : TextFile; D : TSar; begin AssignFile(R, FRezultatas); Rewrite(R); WriteLn(R,'Gyventojų, pateikusių Kauno MT praš. dėl išvyk. iš šalies SĄRAŠAS'); WriteLn(R,'------------------------------------------------------------------'); WriteLn(R,'| Eil.| Pavardė Vardas | Adresas | Gimimo |'); WriteLn(R,'| Nr .| | | metai |'); WriteLn(R,'------------------------------------------------------------------'); D := S; i:=1; while D Nil do begin WriteLn(R,'|', i:3,' | ',D^.gyv.vard, D^.gyv.pav,'| ', D^.gyv.adr,'| ',D^.gyv.g_mt:5,' |'); D := D^.de; i := i + 1; end; WriteLn(R,'------------------------------------------------------------------'); WriteLn(R); CloseFile(R); end; //------------------Atrenkami duomenys pagal nurodytą metų intervalą----------- procedure TForm1.Atrinkimas; var D,D1 : TSar; nuo, iki : integer; begin nuo := StrToInt(Edit1.Text); iki := StrToInt(Edit2.Text); P1 := Nil; D := P; while D Nil do begin if ( D^.gyv.g_mt >= nuo) and (D^.gyv.g_mt 0) and (iki>0) then Atrinkti1.Enabled := True else ShowMessage('neteisigi duomenys'); end; end; //-----------Paspaudus meniu mygtuką 'Metai' nuskaitomas metų intervalas------// procedure TForm1.Metai1Click(Sender: TObject); begin Nuskaitymas; Veiksmai1.Enabled := True; Atrinkti1.Enabled := True; end; //------------------Atrinkti duomenis išvedami lentele į rezultatų failą------// procedure TForm1.Lentele1(S : TSar); var i : integer; R : TextFile; D1 : TSar; begin AssignFile(R, FRezultatas); Append(R); WriteLn(R,'Gyventojų išvykstančių iš šalies SĄRAŠAS'); WriteLn(R,'amžius nuo:', nu:5,' iki:',ik:5); WriteLn(R,'------------------------------------------------------------------'); WriteLn(R,'| Eil.| Pavardė Vardas | Adresas | Gimimo |'); WriteLn(R,'| Nr. | | | metai |'); WriteLn(R,'------------------------------------------------------------------'); D1 := S; i:=1; while D1 Nil do begin WriteLn(R,'|',i:3,' | ',D1^.gyv.vard, D1^.gyv.pav,'| ', D1^.gyv.adr,'| ', D1^.gyv.g_mt:5,' |'); D1 := D1^.de; i := i + 1; end; WriteLn(R,'------------------------------------------------------------------'); WriteLn(R); CloseFile(R); end; //-----------------Atidaromas SaveDialog1.------------------------------------// //---------Išsaugojami rezultatai rezultatų faile ir parodomi ekrane----------// procedure TForm1.Rezultatai1Click(Sender: TObject); begin //Nustatomas filtras: rodomi tik tekstiniai failai SaveDialog1.Filter := 'Text failai(*.txt) |*.txt'; //Jei isrinktas failo vardas ir paspaustas 'Save' if SaveDialog1.Execute then begin FRezultatas := SaveDialog1.FileName; Lentele(P); Lentele1(P1); end; Memo1.Lines.LoadFromFile(FRezultatas); Veiksmai1.Enabled := False; Atrinkti1.Enabled := False; Rezultatai1.Enabled := False; end; //-----Paspaudus mygtuką ,,Pagalba" vartotojuo pateikiami nurodymai-----------// //------------------ kaip dirbti su programa----------------------------------// procedure TForm1.Pagalba1Click(Sender: TObject); begin AboutBox.ShowModal; Memo2.Visible := True; Memo2.Lines.LoadFromFile(CPagalba); end; //----------Paspaudus meniu mygtuką "Pabaiga" programa baigia darbą-----------// procedure TForm1.Baigti1Click(Sender: TObject); begin AboutBox1.ShowModal; Veiksmai1.Enabled := False; Pasirinkti1.Enabled := True; Rezultatai1.Enabled := False; Close; end; end. 1.4 Rezultatų pavyzdys. Rezultatų failas (Rezultatas.txt ) Gyventojų, pateikusių Kauno MT praš. dėl išvyk. iš šalies SĄRAŠAS ---------------------------------------------------------------------- | Eil.| Pavardė Vardas | Adresas | Gimimo | | Nr .| | | metai | ---------------------------------------------------------------------- | 1 | Lukošienė Laura | Lyros 14-3, Kaunas | 1975 | | 2 | Lukošius Arvydas | Lyros 14-3, Kaunas | 1971 | | 3 | Arlauskas Arūnas | Betygalos 2, Raseinių r. | 1978 | | 4 | Adomaitis Martynas | Laukų 12-3, Kaunas | 1983 | | 5 | Ūselienė Dalė | Smėlynų 22, Ariogala | 1968 | | 6 | Jankauskas Tadas | Saugailiai, Raseinių r. | 1946 | | 7 | Kristupaitė Vaiva | Partizanų 16, Kaunas | 2001 | | 8 | Bersėnas Kęstutis | Laukų 33, Požečiai | 1959 | | 9 | Samienė Diana | Vilties 15, Raseiniai | 1969 | | 10 | Kaminskaitė Milda | Vytauto 63, Kaunas | 1999 | | 11 | Kaminskas Jurgis | Vytauto 63, Kaunas | 1967 | ---------------------------------------------------------------------- Gyventojų išvykstančių iš šalies SĄRAŠAS amžius nuo: 1968 iki: 1978 ---------------------------------------------------------------------- | Eil.| Pavardė Vardas | Adresas | Gimimo | | Nr. | | | metai | ---------------------------------------------------------------------- | 1 | Samienė Diana | Vilties 15, Raseiniai | 1969 | | 2 | Ūselienė Dalė | Smėlynų 22, Ariogala | 1968 | | 3 | Arlauskas Arūnas | Betygalos 2, Raseinių r. | 1978 | | 4 | Lukošius Arvydas | Lyros 14-3, Kaunas | 1971 | | 5 | Lukošienė Laura | Lyros 14-3, Kaunas | 1975 | ----------------------------------------------------------------------
Šį darbą sudaro 1786 ž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!
Norint atsisiųsti šį darbą spausk ☞ Peržiūrėti darbą mygtuką!
Mūsų mokslo darbų bazėje yra daugybė įvairių mokslo darbų, todėl tikrai atrasi sau tinkamą!
Panašūs darbai
Kiti darbai
Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.
Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.
Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!