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);
}
}





