C++ da fayldan/faylga sinf ob'ektlarini o'qish/yozish
"Input.txt" fayli berilgan bo'lib, unda har bir satrda sinfning misol o'zgaruvchilari bilan bir xil qiymatlar mavjud.
Sinf ob'ektidagi qiymatlarni o'qing va kerakli operatsiyalarni bajaring.
Ma'lumotlarni uzatish odatda '>>' va <<' operatorlari yordamida amalga oshiriladi. Agar sizda 4 ta maʼlumot aʼzosi boʻlgan sinfingiz boʻlsa va uning obʼyektidagi barcha 4 ta maʼlumot aʼzosini toʻgʻridan-toʻgʻri faylga yoki aksincha yozmoqchi boʻlsangiz, buni quyidagi sintaksis yordamida amalga oshirishimiz mumkin: Faylga obyekt maʼlumotlar aʼzolarini yozish uchun: // Bu yerda file_obj - ofstream faylining ob'ekti file_obj.write((char *) & class_obj, sizeof(class_obj)); Fayl ma'lumotlar a'zolarini ob'ektga o'qish uchun: // Bu erda file_obj - ifstream faylining ob'ekti file_obj.read((char *) & class_obj, sizeof(class_obj));
// Sinfni o'qish/yozishni namoyish qilish uchun C++ dasturi
// C++ tilidagi ob'ektlar.
#include
#include
std nom maydonidan foydalanish;
// Xususiyatlarni aniqlash uchun sinf
sinf ishtirokchisi {
ommaviy:
// Namuna o'zgaruvchilari
string nomi;
int Age, Reytinglar;
// Kirish ma'lumotlariga input() funksiya deklaratsiyasi
int input();
// output_highest_rated() funksiya deklaratsiyasi
// ma'lumotlar bazasidan ma'lumotlarni chiqarib oling
int output_highest_rated();
};
// Ma'lumot kiritish uchun input() funksiyasining ta'rifi
int Contestant::input()
{
// Faylga yozish uchun ob'ekt
ofstream file_obj;
// Faylni qo'shish rejimida ochish
file_obj.open("Input.txt", ios::app);
// Faylga ma'lumotlarni kiritish uchun sinf ishtirokchisining ob'ekti
Contestant obj;
// O'zgaruvchilarda tegishli ma'lumotlarni oziqlantirish
string str = "Maykl";
int yoshi = 18, reytinglar = 2500;
// Ob'ektga ma'lumotlarni tayinlash
obj.Name = str;
obj.Age = yosh;
obj.Ratings = reytinglar;
// Ob'ekt ma'lumotlarini faylga yozish
file_obj.write((char*)&obj, sizeof(obj));
// O'zgaruvchilarda tegishli ma'lumotlarni oziqlantirish
str = "Terri";
yosh = 21;
reytinglar = 3200;
// Ob'ektga ma'lumotlarni tayinlash
obj.Name = str;
obj.Age = yosh;
obj.Ratings = reytinglar;
// Ob'ekt ma'lumotlarini faylga yozish
file_obj.write((char*)&obj, sizeof(obj));
qaytish 0;
}
// output_highest_rated() ning funksiya ta'rifi
// ma'lumotlar bazasidan ma'lumotlarni chiqarib oling
int Contestant::output_highest_rated()
{
// Fayldan o'qish uchun ob'ekt
ifstream file_obj;
// Faylni kiritish rejimida ochish
file_obj.open("Input.txt", ios::in);
// Faylga ma'lumotlarni kiritish uchun sinf ishtirokchisining ob'ekti
Contestant obj;
// Fayldan "obj" ob'ektiga o'qish
file_obj.read((char*)&obj, sizeof(obj));
// maksimal reytinglarni saqlash uchun max
int max = 0;
// Highest_rated eng yuqori baholangan ishtirokchi nomini saqlaydi
string Highest_rated;
// Tasmaga ega bo'lgunimizcha tekshiramiz
esa (!file_obj.eof()) {
// Maksimal reytinglarni belgilash
agar (obj.Reytinglar > maksimal) {
max = obj.Reytinglar;
Eng yuqori_baho = obj.Name;
}
// Batafsil tekshirish
file_obj.read((char*)&obj, sizeof(obj));
}
// Chiqish eng yuqori baholangan tanlov ishtirokchisidir
cout << Eng yuqori_baho;
qaytish 0;
}
// Haydovchi kodi
int main()
{
// Sinf ob'ektini yaratish
Tanlov ishtirokchisi;
// Ma'lumotlarni kiritish
obyekt.input();
// Maksimal baholangan ishtirokchi chiqarilmoqda
object.output_highest_rated();
qaytish 0;
}
Do'stlaringiz bilan baham: |