#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <io.h>
#include <string.h>
struct musteri{
char kayit;
int hesapno;
char musadi[20];
int gelir;
int gider;
}kisi;
FILE *dosya,*yedek;
void musteriKaydi(void);
void listele(void);
void gelirGider(void);
void isimAra(void);
void numAra(void);
void inaktif(void);
void kayitSil(void);
void inaktifyap(void);
void duzelt(void);
void aktifyap(void);
int main()
{ char sec;
do{
system("cls");
printf("1- Musteri Kaydi\n2- Musteri Bilgileri\n3- Ara\n4- Kayit Sil\n5- Kayit Duzelt\n6- Programdan Cik\n\n Yapmak istediginiz islemi seciniz: ");
sec=getche();
switch(sec){
case '1':{
musteriKaydi();
break;
}
case '2':{
listele();
break;
}
case '3':{
int a;
system("cls");
printf("1- Gelir-Gider durumuna gore arama yap\n2- Ada gore arama yap\n3- Musteri Numarasina gore arama yap\n4- Inaktif kayitlari listele");
a=getche();
if( a == '1') gelirGider();
if( a == '2') isimAra();
if( a == '3') numAra();
if( a == '4') inaktif();
break;
}
case '4':{
int b;
system("cls");
printf("1- Bir kaydi sil\n2- Bir kaydi inaktif duruma getir");
b=getche();
if( b == '1') kayitSil();
if( b == '2') inaktifyap();
break;
}
case '5':{
int c;
system("cls");
printf("1- Bir musterinin bilgilerini duzelt\n2- Bir kaydi aktif duruma getir");
c=getche();
if( c == '1') duzelt();
if( c == '2') aktifyap();
break;
}
case '6':{
exit(0);
break;
}
default:{
printf("\n\n1-6 Arasinda bir islem secebilirsiniz devam etmek icin bir tusa basiniz...");
getch();
break;
}
}
}while(sec!=6);
getch();
return 0;
}
void musteriKaydi(void){
char sec;
dosya = fopen("hesap.dat","r+b");
if( dosya == NULL ){
dosya = fopen("hesap.dat","w+b");
}
system("cls");
printf("Musteri Numarasi: ");
scanf("%d",&kisi.hesapno);
fflush(stdin);
printf("Musteri Adi: ");
gets(kisi.musadi);
printf("Musteri Gelir Durumu: ");
scanf("%d",&kisi.gelir);
printf("Musteri Gider Durumu: ");
scanf("%d",&kisi.gider);
fflush(stdin);
printf("Girilen bilgiler kayit edilsin mi ? [E/H]");
sec = getche();
if( sec == 'E' || sec == 'e'){
kisi.kayit = '*';
fseek(dosya,filelength(fileno(dosya)),SEEK_SET);
fwrite(&kisi,sizeof(struct musteri),1,dosya);
}
else{
printf("\n\nBilgiler kayit edilmedi devam etmek icin bir tusa basiniz...");
getch();
}
fclose(dosya);
}
void listele(void){
int boyut,i;
system("cls");
dosya = fopen("hesap.dat","r+b");
if(dosya == NULL) if("Dosya acilamadi");
boyut = filelength(fileno(dosya)) / sizeof(struct musteri);
printf(" No Adi Gelir Gider\n\n");
for(i=0;i<boyut;i++){
fseek(dosya,(i*sizeof(struct musteri)),SEEK_SET);
fread(&kisi,sizeof(struct musteri),1,dosya);
if(kisi.kayit == '*'){
printf("%2d %2s %2d %5d\n",kisi.hesapno,kisi.musadi,kisi.gelir,kisi.gider);
}
}
printf("\nToplam kayit sayisi = %d",boyut);
printf("\nDevam etmek icin bir tusa basiniz...");
fclose(dosya);
getch();
}
void gelirGider(void){
int boyut,i,gel,gid;
system("cls");
dosya = fopen("hesap.dat","r+b");
if(dosya == NULL) if("Dosya acilamadi");
boyut = filelength(fileno(dosya)) / sizeof(struct musteri);
printf("....... geliri altindakileri listele : ");
scanf("%d",&gel);
printf("....... gideri altindakileri listele : ");
scanf("%d",&gid);
system("cls");
printf(" No Adi Gelir Gider\n\n");
for(i=0;i<boyut;i++){
fseek(dosya,(i*sizeof(struct musteri)),SEEK_SET);
fread(&kisi,sizeof(struct musteri),1,dosya);
if(kisi.kayit == '*' && kisi.gelir<gel && kisi.gider<gid){
printf("%2d %2s %2d %5d\n",kisi.hesapno,kisi.musadi,kisi.gelir,kisi.gider);
}
}
printf("\nToplam kayit sayisi = %d",boyut);
printf("\nDevam etmek icin bir tusa basiniz...");
fclose(dosya);
getch();
}
void isimAra(void){
int boyut,i;
char ad[20];
system("cls");
dosya = fopen("hesap.dat","r+b");
if(dosya == NULL) if("Dosya acilamadi");
printf("...... ismine sahip kisiler listelensin : ");
gets(ad);
boyut = filelength(fileno(dosya)) / sizeof(struct musteri);
system("cls");
printf(" No Adi Gelir Gider\n\n");
for(i=0;i<boyut;i++){
fseek(dosya,(i*sizeof(struct musteri)),SEEK_SET);
fread(&kisi,sizeof(struct musteri),1,dosya);
if(kisi.kayit == '*' && !strcmp(kisi.musadi,ad)){
printf("%2d %2s %2d %5d\n",kisi.hesapno,kisi.musadi,kisi.gelir,kisi.gider);
}
}
printf("\nToplam kayit sayisi = %d",boyut);
printf("\nDevam etmek icin bir tusa basiniz...");
fclose(dosya);
getch();
}
void numAra(void){
int boyut,i,num;
system("cls");
dosya = fopen("hesap.dat","r+b");
if(dosya == NULL) if("Dosya acilamadi");
printf("Musteri numarasini giriniz: ");
scanf("%d",&num);
system("cls");
boyut = filelength(fileno(dosya)) / sizeof(struct musteri);
printf(" No Adi Gelir Gider\n\n");
for(i=0;i<boyut;i++){
fseek(dosya,(i*sizeof(struct musteri)),SEEK_SET);
fread(&kisi,sizeof(struct musteri),1,dosya);
if(kisi.kayit == '*' && kisi.hesapno == num){
printf("%2d %2s %2d %5d\n",kisi.hesapno,kisi.musadi,kisi.gelir,kisi.gider);
}
}
printf("\nToplam kayit sayisi = %d",boyut);
printf("\nDevam etmek icin bir tusa basiniz...");
fclose(dosya);
getch();
}
void inaktif(void){
int boyut,i;
system("cls");
dosya = fopen("hesap.dat","r+b");
if(dosya == NULL) if("Dosya acilamadi");
boyut = filelength(fileno(dosya)) / sizeof(struct musteri);
printf(" No Adi Gelir Gider\n\n");
for(i=0;i<boyut;i++){
fseek(dosya,(i*sizeof(struct musteri)),SEEK_SET);
fread(&kisi,sizeof(struct musteri),1,dosya);
if(kisi.kayit == '-'){
printf("%2d %2s %2d %5d\n",kisi.hesapno,kisi.musadi,kisi.gelir,kisi.gider);
}
}
printf("\nToplam kayit sayisi = %d",boyut);
printf("\nDevam etmek icin bir tusa basiniz...");
fclose(dosya);
getch();
}
void kayitSil(void){
int num,durum=0,boyut,i;
system("cls");
printf("Silinecek kaydin musteri numarasini giriniz: ");
scanf("%d",&num);
system("cls");
dosya = fopen("hesap.dat","r+b");
yedek = fopen("yedek.dat","w+b");
if( dosya == NULL){
puts("Dosya acilamadi");
exit(1);
}
boyut = filelength(fileno(dosya)) / sizeof(struct musteri);
for(i=0;i<boyut;i++){
fseek(dosya,(i*sizeof(struct musteri)),SEEK_SET);
fread(&kisi,sizeof(struct musteri),1,dosya);
if( kisi.hesapno != num){
fwrite(&kisi,sizeof(struct musteri),1,yedek);
}
else durum=1;
}
fclose(dosya);
fclose(yedek);
if(durum == 1){
remove("hesap.dat");
rename("yedek.dat","hesap.dat");
puts("Musteri kaydi silindi devam etmek icin bir tusa basiniz...");
getch();
}
else{
remove("yedek.dat");
printf(" %d numarasinda bir musteri numarasi bulunamadi devam etmek icin bir tusa basin ...",num);
}
getch();
}
void inaktifyap(void){
int boyut,i,num;
system("cls");
dosya = fopen("hesap.dat","r+b");
if(dosya == NULL) if("Dosya acilamadi");
printf("Musteri numarasini giriniz: ");
scanf("%d",&num);
system("cls");
boyut = filelength(fileno(dosya)) / sizeof(struct musteri);
for(i=0;i<boyut;i++){
fseek(dosya,(i*sizeof(struct musteri)),SEEK_SET);
fread(&kisi,sizeof(struct musteri),1,dosya);
if(kisi.kayit == '*' && kisi.hesapno == num){
kisi.kayit = '-';
fseek(dosya,(i*sizeof(struct musteri)),SEEK_SET);
fwrite(&kisi,sizeof(struct musteri),1,dosya);
}
}
printf("\nDevam etmek icin bir tusa basiniz...");
fclose(dosya);
getch();
}
void duzelt(void){
char sec;
int boyut,i,num;
system("cls");
dosya = fopen("hesap.dat","r+b");
if(dosya == NULL) if("Dosya acilamadi");
printf("Bilgilerini duzelteceginiz musterinin numarasini giriniz: ");
scanf("%d",&num);
system("cls");
boyut = filelength(fileno(dosya)) / sizeof(struct musteri);
for(i=0;i<boyut;i++){
fseek(dosya,(i*sizeof(struct musteri)),SEEK_SET);
fread(&kisi,sizeof(struct musteri),1,dosya);
if(kisi.kayit == '*' && kisi.hesapno == num){
system("cls");
printf("%s isimli musterinin bilgileri degistirilsin mi?[E/H]\n",kisi.musadi);
sec = getche();
if( sec == 'E' || sec == 'e'){
system("cls");
printf("Musteri Gelir Durumu: ");
scanf("%d",&kisi.gelir);
printf("Musteri Gider Durumu: ");
scanf("%d",&kisi.gider);
fseek(dosya,(i*sizeof(struct musteri)),SEEK_SET);
fwrite(&kisi,sizeof(struct musteri),1,dosya);
}
else{
printf("\n\nMusteri kaydi degistirilmedi.");
}
}
}
fclose(dosya);
printf("Devam etmek icin bir tusa basiniz...");
getch();
}
void aktifyap(void){
int boyut,i,num;
system("cls");
dosya = fopen("hesap.dat","r+b");
if(dosya == NULL) if("Dosya acilamadi");
printf("Musteri numarasini giriniz: ");
scanf("%d",&num);
system("cls");
boyut = filelength(fileno(dosya)) / sizeof(struct musteri);
for(i=0;i<boyut;i++){
fseek(dosya,(i*sizeof(struct musteri)),SEEK_SET);
fread(&kisi,sizeof(struct musteri),1,dosya);
if(kisi.kayit == '-' && kisi.hesapno == num){
kisi.kayit = '*';
fseek(dosya,(i*sizeof(struct musteri)),SEEK_SET);
fwrite(&kisi,sizeof(struct musteri),1,dosya);
}
}
printf("\nDevam etmek icin bir tusa basiniz...");
fclose(dosya);
getch();
}
Hiç yorum yok:
Yorum Gönder