Fayllar bilan ishlash. Binar fayllar


Ishchi strukturasi quyidagi maydonlarni o'zichiga oladi



Yüklə 26,8 Kb.
səhifə11/11
tarix03.10.2023
ölçüsü26,8 Kb.
#151677
1   2   3   4   5   6   7   8   9   10   11
Fayllar bilan ishlash. Binar fayllar-www.hozir.org

Ishchi strukturasi quyidagi maydonlarni o'zichiga oladi:
• Familiy
• Ism
  • Lavozim

  • Oklad

  • Yosh


Strukturaga ma'lumotlarni kiritish va chiqarishda amallarni qayta yuklashdan foydalanamiz. Amallarni qayta yuklashni, С++ da ob'ektga yo'naltirilgan dasturlash qismida batafsil to'xtalamiz. Xozircha asosiy

e'tiborni strukturaga qaratamiz.


Ishchi strukturasin hosil qilish va dasturda foydalanish
#include
using namespace std;
// ishchi sinfini e'lon qilish
struct ishchi {
char familiya[30];

char ism[30];


char lavozim[30];
float oklad;
int yosh;
// kiritish amalini qayta yuklash
istream& operator » (istreams input, ishchis k) {
cout « "Familiyani kiriting\n";

input » k.familiya;


cout « "Ismni kiriting\n";

input » k.ism;


cout « "Lavozimini kiriting\n";

input » k.lavozim;


cout « "Okladni kiriting ($)\n";

input » k.oklad;


cout « "Yoshini kiriting\n";

input » k.yosh;


return input; }
// chiqarish amalini qayta yuklash
ostream& operator « (ostreams out, ishchi k) {
out « "\nFamiliya:\t" « k.familiya;
out « "\nism:\t\t" « k.ism;
out « "\nlavozim:\t" « k.lavozim;
out « "\noklad:\t\t" « k.oklad « "$";
out « "\nyosh:\t\t" « k.yosh « endl;
return out; }
int main() {
// ishchi sinfidagi ob'ektni e'lon qilish

ishchi p;


cin » p;
cout « p;
return 0; }
Programmist


n ta ishchi haqidagi ma'lumotlarni o'zida saqlovchi fayl hosil qiling. 21 yoshdan kichik bo'lgan ishchilarni chiqaruvchi programma tuzilsin.
#include
using namespace std;
// ishchi sinfini e'lon qilish
struct ishchi {
char familiya[30];

char ism [30];


char lavozim[30];
float oklad;
int yosh;
};
// kiritish amalini qayta yuklash

istream& operator » (istreams input, ishchis k) {


cout « "Familiyani kiriting\n";

input » k.familiya;


cout « "Ismni kiriting\n";

input » k.ism;


cout « "Lavozimini kiriting\n";

input » k.lavozim;


cout « "Okladni kiriting ($)\n";

input » k.oklad;


cout « "Yoshini kiriting\n";

input » k.yosh;


return input; }
// chiqarish amalini qayta yuklash
ostream& operator « (ostreams out, ishchi k) {
out « k.familiya;
out « " " « k. ism;
out « "\t" « k.lavozim;
out « "\t" « k.oklad « "$";
out « "\t" « k.yosh « endl;
return out; }
int main() {
// ishchi sinfidagi ob'ektni e'lon qilish

ishchi p;


FILE * f;
int n = 0;
f = fopen("ishchi.dat", "a+");
cout « "Faqat ro'yxatni ko'rish uchun 0 kiriting\n";
cout « "Yangi kiritiladigan ishchilar sonini kiriting\n"; cin » n;

if (n >= 1)


for (int i = 1; i <= n; i++) {
cout « i « " - ishchi ma'lumotlarini kiriting\n";
cin » p;
// faylga та 'lumotlarni yozish

fwrite(&p, sizeof(ishchi), 1, f); }


// fayl boshiga o'tish

rewind(f);


cout « "Ishchilar ro'yxati\n";

n = 0;
while (fread(&p, sizeof(ishchi), 1, f)) {


n++;
cout « n « " ";

cout « p; }


// fayl boshiga o'tish

rewind(f);


cout « "21 - yoshdan kichik dasturchilar ro'yxati\n";

n = 0;
while (fread(&p, sizeof(ishchi), 1, f)) {


if (p.yosh <= 21) {
n++;

cout « n « " ";


cout « p; }
}
fclose(f);

return 0; }




Nazorat savollari:
1. Struktura nima?
2. Strukturalar qanday e'lon qilinadi?
3. Struktura maydonlari ustida qanday amallarni bajarish mumkin?

4. Strukturalar massivlardan qanday farq qiladi?


http://hozir.org
Yüklə 26,8 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10   11




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin