Dasturlash 2




Download 1,54 Mb.
Sana20.05.2024
Hajmi1,54 Mb.
#246437
Bog'liq
1-amaliy dasturlash


MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
















AMALIY ISH







Fan: Dasturlash 2

Guruh: 051-22 SMTo’

Bajardi: Iboydullayev Xayrulla




TOSHKENT 2024

1-Laboratoriya ishi
Dasturlash 2 fanidan kichik loyihalar yaratish
Ishdan maqsad: C++ dasturlash tilining CONSOLE imkoniyatlaridan foydalanib Array, vector, list, forward_list, list, kabi konteynerlarni qo‘llagan holda loyiha ma’lumotlari bilan ishlashda qo’llanilsin:

  • turli xil xayotiy (real) jarayonlarni avtomatlashtirish uchun dasturlar yaratish, classda kamida 5 ta maydon bo`lsin va ob`ektlar massivi bo`lsin;

  • foydalanuvchilar uchun qulayliklar yaratish maqsadida dastur dizaynini chiroyli va tushunarli xolda dasturlar yaratish;

  • dasturda qidiruv, o`cherish, qo`shish, joyni ko`rsatish, qanaqadur shartlar asosida o`cherish va qidirish bo`lsin

  • yuqoriroq baho omoqchilar fayldan ma`lumotni o`qib, faylga yozsin


Ish tartibi:
• Qo'yilgan mavzu bo'yicha kerakli ma'lumotlarni o'rganish, yig’ish va tahlil qilish.
• Berilgan mavzu bo'yicha to'plangan va o'rganilgan ma'lumotlar asosida dastur strukturasini ishlab chiqish.
• C++ dasturlash tilida dasturini yaratish.
• Dasturni ishlatish va testlash.
• Hisobotni tayyorlash.
1-variant
Dori mahsulotlari to'g’risida malumot beruvchi dastur


Dastur kodi:
#include
#include
#include

using namespace std;


struct Product {


string name;
double price;
int quantity;
};

vector
products;


void addProduct();


void removeProduct();
void displayProducts();
void searchProduct();
void saveToFile();
void loadFromFile();

int main() {


int choice;
do {
cout << "\n****** Dori Mahsulotlari Dasturi *****\n";
cout << "1. Mahsulot qo'shish\n";
cout << "2. Mahsulot o'chirish\n";
cout << "3. Mahsulotlar ro'yxatini ko'rsatish\n";
cout << "4. Mahsulot qidirish\n";
cout << "5. Ma'lumotlarni faylga yozish\n";
cout << "6. Ma'lumotlarni fayldan o'qish\n";
cout << "0. Dasturdan chiqish\n";
cout << "Buyruqni tanlang raqamlar orqali: ";
cin >> choice;

switch (choice) {


case 1:
addProduct();
break;
case 2:
removeProduct();
break;
case 3:
displayProducts();
break;
case 4:
searchProduct();
break;
case 5:
saveToFile();
break;
case 6:
loadFromFile();
break;
case 0:
cout << "Dasturdan chiqilyapti...\n";
break;
default:
cout << "Noto'g'ri tanlov! Qayta urinib ko'ring.\n";
}
} while (choice != 0);

return 0;


}

// Mahsulot qo'shish


void addProduct() {
Product p;
cout << "Mahsulot nomini kiriting: ";
cin >> p.name;
cout << "Narxini kiriting: ";
cin >> p.price;
cout << "Miqdorini kiriting: ";
cin >> p.quantity;
products.push_back(p);
cout << "Mahsulot ro'yxatga qo'shildi.\n";
}

// Mahsulot o'chirish


void removeProduct() {
string productName;
cout << "O'chiriladigan mahsulot nomini kiriting: ";
cin >> productName;
for (auto it = products.begin(); it != products.end(); ++it) {
if (it->name == productName) {
products.erase(it);
cout << "Mahsulot o'chirildi.\n";
return;
}
}
cout << "Mahsulot topilmadi.\n";
}

// Mahsulotlar ro'yxatini ko'rsatish


void displayProducts() {
if (products.empty()) {
cout << "Mahsulotlar ro'yxati bo'sh.\n";
return;
}
cout << "Mahsulotlar ro'yxati:\n";
for (const auto &product : products) {
cout << "Nomi: " << product.name << ", Narxi: " << product.price << ", Miqdori: " << product.quantity << endl;
}
}

// Mahsulot qidirish


void searchProduct() {
string productName;
cout << "Qidiriladigan mahsulot nomini kiriting: ";
cin >> productName;
for (const auto &product : products) {
if (product.name == productName) {
cout << "Mahsulot topildi:\n";
cout << "Nomi: " << product.name << ", Narxi: " << product.price << ", Miqdori: " << product.quantity << endl;
return;
}
}
cout << "Mahsulot topilmadi.\n";
}

// Ma'lumotlarni faylga yozish


void saveToFile() {
ofstream file("products.txt");
if (file.is_open()) {
for (const auto &product : products) {
file << product.name << " " << product.price << " " << product.quantity << endl;
}
file.close();
cout << "Ma'lumotlar faylga saqlandi.\n";
} else {
cout << "Faylni ochishda xatolik yuz berdi.\n";
}
}

// Ma'lumotlarni fayldan


void loadFromFile() {
ifstream file("products.txt");
if (file.is_open()) {
products.clear(); // Eski ma'lumotlarni tozalash
Product p;
while (file >> p.name >> p.price >> p.quantity) {
products.push_back(p);
}
file.close();
cout << "Ma'lumotlar fayldan yuklandi.\n";
} else {
cout << "Faylni ochishda xatolik yuz berdi.\n";
}
}
Dastur natijasida bajarilgan ishlar:










Tahlil va xulosalar
Mavzu "Dori mahsulotlari to'g'risida malumot beruvchi dastur" deb belgilangan. Bu dastur dori mahsulotlarining ma'lumotlarini saqlashda tahrirlashda qo’llaniladi.

    • Bu dastur C++ dasturlash tilining konseptsiyalarini, konteynerlarini (masalan, vector), fayl ishlashni va konsolga ma'lumot chiqarishni o'z ichiga oladi.

    • Mahsulotlar ro'yxatini saqlash uchun dasturda struct yoki class yaratiladi. Bu struktura yoki klass mahsulotlar haqida ma'lumotlarni saqlash uchun kerakli bo'lgan atributlarga ega bo'ladi.

    • Dasturda dori mahsulotlarini qo'shish, o'chirish, ko'rsatish va qidirish funksiyalari uchun to'g'ri prototiplar tuzildi.

    • Dori mahsulotlari dasturi yaratilgandan so'ng, mahsulotlar haqida ma'lumotlarni kiritish, o'chirish, ko'rsatish va qidirish funksiyalari yaratildi.

    • Ma'lumotlar faylga yozish va fayldan o'qish funksiyalari ham yaratildi.

    • Dasturning ishlashi test qilindi. Funksiyalar kiritish, dori mahsulotlarini o'chirish, ko'rsatish, qidirish, ma'lumotlarni faylga yozish va fayldan o'qish to'g'ri ishlayabdi.

    • Dastur foydalanuvchi uchun qulayliklar yaratadi: dori mahsulotlarini konsolda kiritish, ro'yxatini ko'rsatish, qidirish va o'chirish qulay va oson bo'lishi lozim.

    • Ma'lumotlar faylga yoziladi va dastur tashqi fayldan o'qiladi, bu esa dasturning ma'lumotlarni saqlash va qayta ishlovchi bo'lishida yordam beradi..

Download 1,54 Mb.




Download 1,54 Mb.