|
Dasturlash 2
|
Sana | 20.05.2024 | Hajmi | 1,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..
|
| |