Loyiha

O'rgangan hamma narsamiz ni ishlatga holda dastur tuzamiz.

kasalxona boshqaruvi tizimi uchun yaratilgan loyiha, bu loyiha yuqorida keltirilgan barcha C dasturlash tushunchalarini birlashtiradi, shu jumladan: struct, union, file handling, char, pointers, va boshqalar.

Loyihaning umumiy tavsifi:

Bu loyiha kasalxona boshqaruvi uchun bemorlar haqida ma'lumotlar saqlash, ularni faylda saqlash va kerak bo'lganda ko'rsatish kabi asosiy vazifalarni bajaradi. Har bir bemorning ma'lumotlari struct yordamida saqlanadi, fayllarda o'qiladi va yoziladi, va turli operatsiyalar amalga oshiriladi.

Kasalxona boshqaruvi tizimi uchun kod:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//Defend Hub
// Bemor ma'lumotlarini saqlash uchun struct
struct Bemor {
    char ism[50];
    int yosh;
    char kasallik[100];
    float tolov;
};

// Union - turli xil malumotlar turini birlashtirish uchun
union Yordamchi {
    int integer;
    float float_num;
    char str[50];
};

// Bemor ma'lumotlarini faylga yozish
void bemor_yozish(struct Bemor bemor) {
    FILE *fayl = fopen("bemorlar.txt", "a");
    if (fayl == NULL) {
        printf("Fayl ochishda xatolik yuz berdi!\n");
        return;
    }
    fprintf(fayl, "Ism: %s, Yosh: %d, Kasallik: %s, Tolov: %.2f\n", bemor.ism, bemor.yosh, bemor.kasallik, bemor.tolov);
    fclose(fayl);
    printf("Bemor ma'lumotlari saqlandi!\n");
}

// Bemorlarni fayldan o'qish
void bemor_oqish() {
    FILE *fayl = fopen("bemorlar.txt", "r");
    if (fayl == NULL) {
        printf("Fayl ochishda xatolik yuz berdi!\n");
        return;
    }
    char qator[200];
    while (fgets(qator, 200, fayl)) {
        printf("%s", qator);
    }
    fclose(fayl);
}

// Bemor ma'lumotlarini kiritish va saqlash
void bemor_kiritish() {
    struct Bemor bemor;
    
    printf("Bemor ismi: ");
    scanf("%s", bemor.ism);
    
    printf("Bemor yoshi: ");
    scanf("%d", &bemor.yosh);
    
    printf("Kasallik nomi: ");
    scanf("%s", bemor.kasallik);
    
    printf("Bemor to'lovi: ");
    scanf("%f", &bemor.tolov);
    
    // Ma'lumotlarni faylga yozish
    bemor_yozish(bemor);
}

// Dinamik xotira boshqaruvi
void dinamik_xotira() {
    int *xotira = (int*) malloc(5 * sizeof(int));
    if (xotira == NULL) {
        printf("Xotira ajratishda xatolik!\n");
        return;
    }
    for (int i = 0; i < 5; i++) {
        xotira[i] = (i + 1) * 100;
        printf("Xotira[%d]: %d\n", i, xotira[i]);
    }
    free(xotira);
}

// Union bilan ishlash
void union_sinov() {
    union Yordamchi yordamchi;
    
    yordamchi.integer = 10;
    printf("Union integer qiymati: %d\n", yordamchi.integer);
    
    yordamchi.float_num = 20.5;
    printf("Union float qiymati: %.2f\n", yordamchi.float_num);
    
    strcpy(yordamchi.str, "Salom");
    printf("Union string qiymati: %s\n", yordamchi.str);
}

int main() {
    int tanlov;
    
    while (1) {
        printf("\n=== Kasalxona Boshqaruvi Tizimi ===\n");
        printf("1. Bemor kiritish\n");
        printf("2. Bemorlarni ko'rish\n");
        printf("3. Dinamik xotira boshqaruvi sinovi\n");
        printf("4. Union bilan ishlash\n");
        printf("0. Chiqish\n");
        printf("Tanlovingiz: ");
        scanf("%d", &tanlov);
        
        switch (tanlov) {
            case 1:
                bemor_kiritish();
                break;
            case 2:
                bemor_oqish();
                break;
            case 3:
                dinamik_xotira();
                break;
            case 4:
                union_sinov();
                break;
            case 0:
                printf("Dasturdan chiqish.\n");
                return 0;
            default:
                printf("Noto'g'ri tanlov. Qayta urinib ko'ring.\n");
        }
    }
    
    return 0;
}

Loyihaga tushuntirish:

  1. Struct va Union:

    • struct Bemor kasalxonadagi bemorlar ma'lumotlarini saqlaydi.

    • union Yordamchi integer, float, va string kabi turli ma'lumot turlarini saqlash uchun ishlatiladi.

  2. Bemor ma'lumotlarini faylda saqlash va o'qish:

    • bemor_yozish() funksiyasi bemor ma'lumotlarini faylga yozadi.

    • bemor_oqish() funksiyasi fayldagi barcha bemor ma'lumotlarini o'qib ekranga chiqaradi.

  3. Dinamik xotira boshqaruvi:

    • dinamik_xotira() funksiyasi dinamik xotira ajratib, qiymatlar bilan ishlaydi, keyin ajratilgan xotira bo'shatiladi (free).

  4. Union bilan ishlash:

    • union_sinov() funksiyasi union orqali turli turdagi qiymatlar bilan ishlashni ko'rsatadi (integer, float, va string).

Foydalanish bo'yicha:

  1. Dasturni kompyuteringizga kompilyatsiya qiling:

    gcc hospital_management.c -o hospital_management
  2. Dasturdan foydalanib, bemor ma'lumotlarini kiritish va ko'rish funksiyalaridan foydalaning. Shuningdek, dinamik xotira va union sinovlarini amalga oshirish mumkin.

Loyihaning asosiy xususiyatlari:

  • Fayl bilan ishlash: Bemorlar ma'lumotlari faylda saqlanadi va kerak bo'lganda fayldan o'qiladi.

  • Dinamik xotira boshqaruvi: malloc() va free() orqali xotira boshqaruvi amalga oshiriladi.

  • Union: Har xil turdagi ma'lumotlarni bir xil xotira bo'shlig'ida saqlash usuli.

Bu loyiha kasalxona boshqaruvi tizimida foydalanish uchun dastlabki darajadagi boshqaruv tizimini ko'rsatadi. Turli C funksiyalari va ma'lumot tuzilmalari bir dasturda birlashtirilgan.

Natijasi.

Videoda batafsil ko'rishingiz mumkin natijasini.

Last updated