Okul kantinlerinin işine yarayabilecek basit bir yazılımcık. Programın ilk hali CSE200 dersi ödeviydi, yazdığım program boşa gitmesin diye bir kaç yeni özellik ekledim ve program yazılımcıklarım arasında yerini aldı.

  • İşte programın özellikleri:
  • Hesapları rasgele erişimli dosyada saklama
  • Hesap ekleme – Hesap silme
  • Kredi yükleme – Alışveriş (Kredi Silme)
  • Hesap arama – Hesap bilgilerini görüntüleme

Kaynak Kodlar:

//Kantin Otomasyonu
//www.isikdogan.com

#include
#include
#include
#define baslik printf("------ KOT: Kantin OTomasyon v1.2 ---------n")

int menu(void);
void ekle(FILE *dosya);
void sil(FILE *dosya);
void yukle(FILE *dosya);
void alisveris(FILE *dosya);
void bilgi(FILE *dosya);
void ara(FILE *dosya);

struct zaman{
       int gun;
       int ay;
       int yil;};

struct uye{
       int hesapno;
       char ad[20];
       char soyad[20];
       int ogrencino;
       double bakiye;
       struct zaman tarih;
       };

int main()
{
    int secim;
    FILE *dosya;
    system("color 3f");
    if((dosya=fopen("database.dat","rb+"))==NULL) printf("Hata: Veritabanina ulasilamiyor!n");
    else {
 baslik;
 printf(" ____  __.              __  .__n");
 printf("|    |/ _|____    _____/  |_|__| ____ n");
 printf("|      < __    /       __  |/    n");
 printf("|    |   / __ |   |    | |  |   |  n");
 printf("|____|__ (____  /___|  /__| |__|___|  /n");
 printf("        /    /     /             /nn");
 printf("   ________________n");
 printf("  /     __    ___/___   _____ _____    _________.__. ____   ____n");
 printf(" /   |   |    | /  _  /     \__    /  ___<   |  |/  _  /    n");
 printf("/    |        |(  <_> )  | |  / __ ____  ___  (  <_> )   |  n");
 printf("_______  /____| ____/|__|_|  (____  /____  >/ ____|____/|___|  /n");
 printf("        /                   /     /     / /                /n-------------------------------------------------nYapimci: Furkan Isikakdogan  ||  www.isikdogan.com");

 for(1;1;1){
            secim=menu();
                        switch(secim){
                                      case 1:
                                           system("cls"); baslik;
                                           ekle(dosya);
                                           continue;
                                      case 2:
                                           system("cls"); baslik;
                                           sil(dosya);
                                           continue;
                                      case 3:
                                           system("cls"); baslik;
                                           yukle(dosya);
                                           continue;
                                      case 4:
                                           system("cls"); baslik;
                                           alisveris(dosya);
                                           continue;
                                      case 5:
                                           system("cls"); baslik;
                                           bilgi(dosya);
                                           continue;
                                      case 6:
                                           system("cls"); baslik;
                                           ara(dosya);
                                           continue;
                                      case 7:
                                           fclose(dosya);
                                           return 0;
                                      default:
                                           printf("Hata: Gecersiz secim yaptiniz!n");
                                           break;
                                      }//switch bitim
                        }//while bitim
                        }//else bitim

}

int menu(void){
     int secim;
     printf("nn<>n1.Hesap Eklen2.Hesap Siln3.Kredi Yuklen4.Alisverisn5.Hesap Bilgilerin6.Hesap Aran7.Cikis ");
     scanf("%d",&secim);
     return secim;
}

void ekle(FILE *dosya){
     struct uye ogrenci={0,"","",0,0,0,0,0};
     int hesapno;
     system("color 2f");
     printf("nYeni hesap numarasi girin: "); scanf("%d",&hesapno);
     fseek(dosya,(hesapno-1)*sizeof(struct uye),SEEK_SET);
     fread(&ogrenci,sizeof(struct uye),1,dosya);
     if(ogrenci.hesapno!=0) printf("nHata: Hesap numarasi baska bir uye tarafindan kullaniliyor.n");
     else{
          printf("nYeni Uyelik Bilgileri:nnIsim Soyisim: "); scanf("%s%s",ogrenci.ad,ogrenci.soyad);
          printf("nOgrenci No: "); scanf("%d",&ogrenci.ogrencino);
          printf("nHesap acma tarihi(gun/ay/yil): "); scanf("%d%d%d",&ogrenci.tarih.gun,&ogrenci.tarih.ay,&ogrenci.tarih.yil);
          ogrenci.hesapno=hesapno;
          fseek(dosya,sizeof(struct uye)*(ogrenci.hesapno-1),SEEK_SET);
          fwrite(&ogrenci,sizeof(struct uye),1,dosya);
          system("cls"); baslik; printf("n::: Yeni kayit eklendi! :::n");
          }
     fflush(stdin);
}

void sil(FILE *dosya){
     system("color 2f");
     struct uye bos={0,"","",0,0,0,0,0};
     struct uye silinecek;
     char c;
     int hesapno;
     printf("nSilmek istediginiz hesap numarasini girin: "); scanf("%d",&hesapno);
     fseek(dosya,sizeof(struct uye)*(hesapno-1),SEEK_SET);
     fread(&silinecek,sizeof(struct uye),1,dosya);
     if(silinecek.hesapno!=hesapno) printf("nBelirtilen hesap bulunamadi!n");
     else{
          printf("nSilinecek Hesap Sahibi: %s %snBakiye: %.2lf YTLn Uyari: Emin misiniz?[y/n]",silinecek.ad,silinecek.soyad,silinecek.bakiye);
          fflush(stdin); scanf("%c",&c);
          if(c=='y'){ fseek(dosya,sizeof(struct uye)*(hesapno-1),SEEK_SET);
                      fwrite(&bos,sizeof(struct uye),1,dosya);
                      system("cls"); baslik; printf("n::: Kayit silindi! :::n");}
          }

}

void yukle(FILE *dosya){
     int hesapno;
     double kredi;
     struct uye ogrenci;
     system("color 2f");
     printf("nKredi yuklemek istediginiz hesap numarasini girin: "); scanf("%d",&hesapno);
     fseek(dosya,sizeof(struct uye)*(hesapno-1),SEEK_SET);
     fread(&ogrenci,sizeof(struct uye),1,dosya);
     if(ogrenci.hesapno!=hesapno) printf("nBelirtilen hesap bulunamadi!n");
     else{
     printf("nnHesap Sahibi: %s %snnHesapta %.2lf YTL var. Yuklemek istediginiz kredi miktarini girin: ",ogrenci.ad,ogrenci.soyad,ogrenci.bakiye);
     scanf("%lf",&kredi);
     ogrenci.bakiye+=kredi;
     fseek(dosya,sizeof(struct uye)*(hesapno-1),SEEK_SET);
     fwrite(&ogrenci,sizeof(struct uye),1,dosya);
     system("cls"); baslik;
     printf("nYuklenen kredi: %.2lf YTL",kredi);
     printf("nnYeni bakiye: %.2lf YTLn",ogrenci.bakiye); fflush(stdin);
     }
}

void alisveris(FILE *dosya){
     int hesapno;
     double alisveris;
     struct uye ogrenci;
     system("color 2f");
     printf("nHesap numarasini girin: "); scanf("%d",&hesapno);
     fseek(dosya,sizeof(struct uye)*(hesapno-1),SEEK_SET);
     fread(&ogrenci,sizeof(struct uye),1,dosya);
     if(ogrenci.hesapno!=hesapno) printf("nBelirtilen hesap bulunamadi!n");
     else{
     printf("nnHesap Sahibi: %s %snnHesapta %.2lf YTL var. Alisveris tutarini girin: ",ogrenci.ad,ogrenci.soyad,ogrenci.bakiye);
     scanf("%lf",&alisveris);
     if(alisveris>ogrenci.bakiye) printf("nnHesapta yeterli kredi yok. %.2lf YTL daha gerekiyor.n",alisveris-ogrenci.bakiye);
     else{
     ogrenci.bakiye-=alisveris;
     fseek(dosya,sizeof(struct uye)*(hesapno-1),SEEK_SET);
     fwrite(&ogrenci,sizeof(struct uye),1,dosya);
     system("cls"); baslik;
     printf("nnAlisveris tamamlandi! Toplam harcama: %.2lf YTLnn Yeni bakiye: %.2lf YTLn",alisveris,ogrenci.bakiye);
         }
     }
}

void bilgi(FILE *dosya){
     int hesapno;
     struct uye ogrenci;
     system("color 2f");
     printf("nnHesap bilgilerini goruntulemek istediginiz kisinin hesap numrasini girin: ");
     scanf("%d",&hesapno);
     fseek(dosya,sizeof(struct uye)*(hesapno-1),SEEK_SET);
     fread(&ogrenci,sizeof(struct uye),1,dosya);
     if(ogrenci.hesapno!=hesapno) printf("nBelirtilen hesap bulunamadi!n");
     else{
     system("cls"); baslik;
     printf("nOgrenci Adi: "); printf("%s %sn",ogrenci.ad,ogrenci.soyad);
     printf("nOgrenci No: %dnnBakiye: %.2lf YTLn",ogrenci.ogrencino,ogrenci.bakiye);
     printf("nKayit tarihi: "); printf("%d.%d.%d",ogrenci.tarih);}
}

void ara(FILE *dosya){
     system("color 2f");
     char aranacak[20];
     struct uye ogrenci;
     int i,taban,tavan;
     fseek(dosya,0,SEEK_SET);
     printf("nAradiginiz ogrencinin adini veya soyadini girin (Buyuk - kucuk harf duyarli):n");
     scanf("%s",aranacak);
     printf("nHesap numarasinin bulundugu araligi girin (taban tavan):");
     scanf("%d%d",&taban,&tavan);
     printf("nnBulunan sonuclar:nn"); printf("%-11s %-13s %snn","Ad","Soyad","Hesap No");
     for(i=taban-1;i<=tavan-1;i++){
     fseek(dosya,sizeof(struct uye)*i,SEEK_SET);
     fread(&ogrenci,sizeof(struct uye),1,dosya);
     if(strcmp(aranacak,ogrenci.ad)==0||strcmp(aranacak,ogrenci.soyad)==0)
     printf("%-11s %-13s %dn",ogrenci.ad,ogrenci.soyad,ogrenci.hesapno);
 }
}

Siz de yorum ekleyin

Arşivler
Meta