#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
typedef struct _veri{
char name[20];
char firma[20];
int adet;
int no;
int fiyat;
int flag;
}DATA;
DATA veri;//global struct
FILE *f;//dosya için gösrerici
int menu(****);//fonksiyon deklarasyonlarý
**** ekle(****);
**** listele(****);
**** ara(****);
**** sat();
**** ilave(****);
**** duzelt(****);
**** siparis_listesi(****);//
**** start(****);
**** nodan_bul();
**** yildiz(****)//kýsa fonksiyon tanýmlarý
{
for(int i=0;i<79;i++)
putchar('*');
putchar('\n');
}
**** miktar(DATA *)//kýsa fonksiyon tanýmý
{
int a;
a=veri.adet;
if(a>=200)
printf("%d yeterli",a);
else if(a>=100)
printf("%d siparis listesine alindi",a);
else if(a>=1)
printf("%d stok durumu kritik",a);
else if(a==0)
printf("stok tukenmis durumda");
putchar('\n');
}
**** ekle(****)//yeni ilac ekleme fonksiyonu
{
if((f=fopen("file","a+"))==NULL)
{
printf("DOSYA ACMADA HATA!!!!");
exit(1);
}
printf("ilac adini giriniz : ");
fflush(stdin);
scanf("%s",&veri.name);
printf("firma adini giriniz : ");
scanf("%s",&veri.firma);
printf("ilac nosunu girin\n");
scanf("%d",&veri.no);
printf("ilac fiyatini girin\n");
scanf("%d",&veri.fiyat);
printf("adeti giriniz : ");
scanf("%d",&veri.adet);
fwrite(&veri, sizeof(DATA), 1, f);
fclose(f);
}
**** listele(****)//listeleme fonksiyonu
{
if((f=fopen("file","r"))==NULL)
{
printf("DOSYA ACMADA HATA!!!!");
exit(1);
}
putchar('\n');
fseek(f, 0L, SEEK_SET);
while (fread(&veri, sizeof(DATA), 1, f) > 0)
{
yildiz();
printf("urun kodu:%d\n",veri.no);
printf("urun adi:%s\n",veri.name);
printf("uretici firma:(%s)\n",veri.firma);
printf("urun fiyati=%d YTL\n",veri.fiyat);
printf("urun miktari=");
miktar(&veri);
}
putchar('\n\n');
yildiz();
fclose(f);
}
**** ara(****) //dosya içinde ilac arama fonksiyonu
{
if((f=fopen("file","r"))==NULL)
{
printf("DOSYA ACMADA HATA!!!!");
exit(1);
}
char name[30],kromozom;
printf("lutfen kayit ismini giriniz :");
fflush(stdin);
gets(name);
fseek(f, 0, SEEK_SET);
yildiz();
while (fread(&veri, sizeof(DATA), 1, f) > 0)
{
if (!stricmp(veri.name, name))
{
printf("urun kodu:%d\n",veri.no);
printf("urun adi:%s\n",veri.name);
printf("uretici firma:(%s)\n",veri.firma);
printf("urun miktari=");
if(veri.adet==0)
printf("kalmamis uzgunum\n");
else
printf("%d\n",veri.adet);
fclose(f);
return;
}
}
fclose(f);
printf("\nKayit bulunamadi...\n\n");
printf("nodan aramak isterseniz *'y'* ye basin\n");
kromozom= getch();
if(kromozom=='y')
nodan_bul();
yildiz();
fclose(f);
}
**** sat(****)
{
int total=0;
if((f=fopen("file","r+"))==NULL)
{
printf("DOSYA ACMADA HATA!!!!");
exit(1);
}
int k=0,miktar=0;
char name[30];
int ip=0;
k=1;
printf(" ilac ismini giriniz :");
fflush(stdin);
gets(name);
fseek(f, 0, SEEK_SET);
yildiz();
while (fread(&veri, sizeof(DATA), 1, f) > 0&& k)
{
if ((!stricmp(veri.name, name)))
{
printf("urun kodu:%d\n",veri.no);
printf("ürün miktari=");
if(veri.adet==0)
{
printf("kalmamis uzgunum\n");
return;
}
else
{
do
{
printf("miktar:");
scanf("%d",&miktar);
if(miktar>veri.adet)
{
printf("miktar yeterli degil\n");
printf("kalan miktar=%d\n",veri.adet);
}
}while(miktar>veri.adet);
veri.adet-=miktar;
fseek(f,sizeof(DATA)*(ip),SEEK_SET);
if(fwrite(&veri,sizeof(DATA),1,f)==1)
printf("satis tamam\n");
total=veri.fiyat;
fclose(f);
printf("odenecek toplam tutar=%d\n",total*miktar);
return;
}
}
ip=ip+1;
}
fclose(f);
yildiz();
}
**** ilave(****)
{
if((f=fopen("file","r+"))==NULL)
{
printf("DOSYA ACMADA HATA!!!!");
exit(1);
}
char name[20];
int miktar;
int ip=0,total=0;
printf(" ilac ismini giriniz :");
fflush(stdin);
gets(name);
fseek(f, 0, SEEK_SET);
yildiz();
while (fread(&veri, sizeof(DATA), 1, f) > 0)
{
if ((!stricmp(veri.name, name)))
{
printf("urun kodu:%d\n",veri.no);
printf("urun miktari=%d",veri.adet);
if(veri.adet==0)
{
printf("kalmamis uzgunum\n");
return;
}
else
{
printf(" ilave miktari girin:");
scanf("%d",&miktar);
veri.adet=veri.adet+miktar;
fseek(f,sizeof(DATA)*(ip),SEEK_SET);
if(fwrite(&veri,sizeof(DATA),1,f)==1)
printf("ilave islemi tamam\n");
fclose(f);
printf("odenecek toplam tutar=%d\n",veri.fiyat*miktar);
return;
}
}
ip=ip+1;
}
fclose(f);
}
**** duzelt(****)
{
int ip=0;
if((f=fopen("file","r+"))==NULL)
{
printf("DOSYA ACMADA HATA!!!!");
exit(1);
}
char name[30];
printf("lutfen duzeltmek istenen kayit ismini giriniz :");
fflush(stdin);
gets(name);
fseek(f, 0, SEEK_SET);
yildiz();
while (fread(&veri, sizeof(DATA), 1, f) > 0)
{
if (!stricmp(veri.name, name))
{
printf("urun kodu:%d\n",veri.no);
printf("urun adi:%s\n",veri.name);
printf("uretici firma:(%s)\n",veri.firma);
printf("urun miktari=");
if(veri.adet==0)
printf("kalmamis uzgunum\n");
else
printf("%d\n",veri.adet);
fseek(f,sizeof(DATA)*(ip),SEEK_SET);
printf("ilac adini giriniz : ");
fflush(stdin);
scanf("%s",&veri.name);
printf("firma adini giriniz : ");
scanf("%s",&veri.firma);
printf("ilac nosunu girin\n");
scanf("%d",&veri.no);
printf("ilac fiyatini girin\n");
scanf("%d",&veri.fiyat);
printf("adeti giriniz : ");
scanf("%d",&veri.adet);
fwrite(&veri, sizeof(DATA), 1, f);
printf("kayit güncelleme tamam\n");
fclose(f);
return;
}
ip++;
}
printf("\nKayit bulunamadý...\n\n");
yildiz();
fclose(f);
}
**** siparis_listesi(****)
{
int max_stok;
printf("lutfen max stok degerini girin\n");
scanf("%d",&max_stok);
if((f=fopen("file","r"))==NULL)
{
printf("DOSYA ACMADA HATA!!!!");
exit(1);
}
fseek(f, 0, SEEK_SET);
yildiz();
while (fread(&veri, sizeof(DATA), 1, f) > 0)
{
if (max_stok>veri.adet)
{
printf("urun kodu:%d\n",veri.no);
printf("urun adi:%s\n",veri.name);
printf("uretici firma:(%s)\n",veri.firma);
printf("urun miktari=%d",veri.adet);
printf("alinmasi gereken ");
printf("****%d**** adet \n",max_stok-veri.adet);
yildiz();
}
}
fclose(f);
}
**** nodan_bul()
{
if((f=fopen("file","r"))==NULL)
{
printf("DOSYA ACMADA HATA!!!!");
exit(1);
}
int s_no;
printf("lutfen kayit nosunu giriniz :");
fflush(stdin);
scanf("%d",&s_no);
fseek(f, 0, SEEK_SET);
yildiz();
while (fread(&veri, sizeof(DATA), 1, f) > 0)
{
if (veri.no==s_no)
{
printf("urun kodu:%d\n",veri.no);
printf("urun adi:%s\n",veri.name);
printf("uretici firma:(%s)\n",veri.firma);
printf("urun miktari=");
if(veri.adet==0)
printf("kalmamis uzgunum\n");
else
printf("%d\n",veri.adet);
fclose(f);
return;
}
}
printf("\nKayýt bulunamadý...\n\n");
yildiz();
fclose(f);
}
**** main()
{
int option;
start();
for (;;) {
option = menu();
switch (option) {
case 1 : ekle(); break;
case 2 : listele(); break;
case 3 : ara(); break;
case 4 : sat(); break;
case 5 : ilave(); break;
case 6 : duzelt(); break;
case 7: siparis_listesi();break;
case 8:system("cls");break;
case 9: exit(1);
case 0 : printf("Gecersiz Secenek %c..\n",3);
}
}
}
int menu(****)
{
int sec;
printf("\n1) Yeni Ilac Ekle\n");
printf("2) Ilaclari Listele\n");
printf("3) Ilac Bul\n");
printf("4) Ilac sat\n");
printf("5) urun miktari ilavesi\n");
printf("6) Bilgi guncelle duzelt\n");
printf("7) siparis listesi hazirla\n");
printf("8) Ekrani temizle\n");
printf("9) kapanis\n");
printf("\nSeciminiz :");
scanf("%d", &sec);
if (sec < 0 || sec > 10)
return 0;
return sec;
}
**** start(****)
{
if ((f = fopen("file", "r+")) == NULL)
if ((f = fopen("file", "w+")) == NULL)
{
printf("Cannot open database file!..\n");
exit(EXIT_FAILURE);
}
fclose(f);
}