[L5-2] Faile duoti duomenys apie užsiprenumeruotus spaudos leidinius. Failo eilutėse surašyta: prenumeratoriaus pavardė, leidinio pavadinimas, užsakytų egzempliorių skaičius. Sudarykite struktūros tipą tokiems duomenims saugoti ir vartotojo klasę darbui su struktūros tipo duomenimis. Surašykite duomenis statiniame struktūrų masyve. Rikiuokite sąrašą pagal užsakytų egzempliorių kiekį. Atrinkite prenumeratorius, kurie užsisakė tik po vieną egzempliorių. Pradinius duomenis ir rezultatus pateikite lentelėmis ekrane ir rezultatų faile. Failų pasirinkimui naudokite OpenDialog ir SaveDialog.
3.2 Programos aprašymas.
Button1
Palyginimo ir rezultatų spausdinimo ekrane mygtukas
Button2
Uždarymo mygtukas
Button3
Masyvų nuskaitymo iš duomenų failų mygtukas
Memo1
Rezultatų langas
Edit1
Langelis ieškomam egzempliorių skaičiui rasti
Label1
Komentaras vartotojui
OpenDialog
Atidaro failų paieškos langą
SaveDialog
Atidaro failų saugojimo langą
3.2.2 TForm1 klasės tekstas - failai
//-----------Unit1.h------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Dialogs.hpp>
//---------------------------------------------------------------------------
#include <fstream>
#include<iomanip>
using namespace std;
//---------------------------------------------------------------------------
#include "Unit2.h"
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TMemo *Memo1;
TButton *Button1; // "įvesti egzempliorių kieki"
TButton *Button2; // "Pradiniai duomenys"
TOpenDialog *OpenDialog1;
TSaveDialog *SaveDialog1;
TLabel *Label1;
TEdit *Edit1;
TButton *Button3; // "Rikiuoti pagal egzempliorių kieki"
void __fastcall Button2Click(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button3Click(TObject *Sender);
private:
int t;
Laikrastis objV, objG; // Klasės objektai
AnsiString duomenysA, rezultatai;
AnsiString RezultatuFailoVardas(); // duomenų failo parinkimo metodas
AnsiString DuomenuFailoVardas(); //rezultatų failo pasirinkimas
void Formuoti(int t); // formuojamas naujas struktūrų masyvas
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
//-----------------Unit2.h--------------------------------------------
#ifndef Unit2H
#define Unit2H
//--------------------------------------------------------------------
struct Prenum {
char pavard[26]; //Vardas pavarde
char pvd[21]; //Spaudos leidinio pavadinimas
int egz; //Egzempliorių kiekis
};
//--------------------------------------------------------------------
class Laikrastis {
private:
static const int CMax = 100; // Max studentų skaičius
Prenum A[CMax]; // struktūrų masyvas
int n; // prenumeratoriu skaičius
public:
Laikrastis(); // Konstruktorius
~Laikrastis(); // Destruktorius
//---------------------------------- Uždavinio sprendimui reikalingi metodai
void Ivesti(const char fv[]);
void Saugoti(const char fv[], const char kom[]);
void Rikiuoti();
//--------------------------------------- Sąsajos metodai----------
Prenum ImtiElem(int k);
int ImtiElemSkaiciu();
void DetiElem(Prenum X);
};
//--------------------------------------------------------------------
#endif
3.2.3 Metodų stuktūrogramos
void Laikrastis::Ivesti(const char fv[])
Klasės Metodas Ivesti
Aprasomas tarpo simbolis ir eilutė
Nuskaitoma pirma duomenų eilutė
Aprašomas kintamasis n = 0
Kol ne failo pabaiga ir n < CMax
Nuskaitomos struktūros reikšmės
n = n + 1
Failas uždaromas
Pabaiga
void Laikrastis::Saugoti(const char fv[], const char kom[])
Klasės Metodas Saugoti
Atidaromas rezultatų failas
Simbolių eilutė spausdinama ekrane
Spausdinama lenteles antraštė
i = 0, n - 1
Spausdinamai Struktūros elementai
Uždaromas rezultatų failas
Pabaiga
void Laikrastis::Rikiuoti()
Klasės Metodas Rikiuoti
Aprasomas naujas struktūros kintamasis D
i = 0,...
Šį darbą sudaro 1240 ž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
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!