Selamün aleyküm . Hocamız dönem ödevi için c dilinde otomasyon ödevi verdi. Programda bir aksaklık var. ilk ögrenci girisini yapıyorum kaydetmiyor . 2. yi yaptıktan sonra kaydediyor. Bir yerde sorun var ama bulamadım yardımcı olur musunuz?
Kod:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<io.h>
FILE *pt;
union id{char dogum[12];
char dogum_y[10];
char sinifi[4];
};
struct ogrnci{char no[5],ad[15],soyad[20];
char bad[15],aad[15],telno[10];
char sehir[15],adres[50];
union id dog;}ogr;
int i,secim,kaysay;
char noara[5];
void ogr_kayit(void);
int ogr_arama(void);
void ogr_listele(void);
main() {
pt=fopen("otomasyon.txt","w+b");
if(pt==NULL)
{
printf("Dosya Açilamadi");
exit(0);
}
printf("\t\t//////////OGRENCI OTOMASYON PROGRAMI//////////\n");
do{
printf("\n [1.] Ogrenci Bilgi Girisi");
printf("\n [2.] Ogrenci Bilgi Arama");
printf("\n [3.] Ogrenci Bilgi Listeleme");
printf("\n [4.] Programdan Çikis");
printf("\n Lutfen seciminizi girinizi (1-2-3-4) :");
scanf("%d",&secim);
switch(secim){
case 1:ogr_kayit(); break;
case 2:ogr_arama(); break;
case 3:ogr_listele(); break;
case 4:exit(0); break;
default:printf("Yanlis Secim");}
}while(secim!=4);
fclose(pt);
}
void ogr_kayit(void){
printf("\nÖgrenci Numarasi :");
scanf("%s",ogr.no);
printf("\nÖgrenci Adi :");
scanf("%s",ogr.ad);
printf("\nÖgrenci Soyadi :");
scanf("%s",ogr.soyad);
printf("\nBaba Adi :");
scanf("%s",ogr.bad);
printf("\nAnne Adi :");
scanf("%s",ogr.aad);
printf("\nTelefon Numarasi :");
scanf("%s",ogr.telno);
printf("\nSehiri :");
scanf("%s",ogr.sehir);
printf("\nAdresi :");
scanf("%s",ogr.adres);
printf("\nDogum yeri :");
scanf("%s",ogr.dog.dogum);
printf("\nDogum yili :");
scanf("%s",ogr.dog.dogum_y);
printf("\nSinifi :");
scanf("%s",ogr.dog.sinifi);
fseek(pt,filelength(fileno(pt)),SEEK_SET);
fwrite(&ogr,sizeof(ogr),1,pt);
printf("\nDevam etmek için bir tusa basiniz");
getch();
}
int ogr_arama(void){
printf("Aranacak Ögrenci Numarasını Giriniz:");
scanf("%s",&noara);
kaysay=filelength(fileno(pt))/sizeof(ogr);
for(i=0;i<kaysay;i++){
fseek(pt,i*sizeof(ogr),SEEK_SET);
fread(&ogr,sizeof(ogr),1,pt);
if(strcmp(noara,ogr.no)==0){
printf("\nOgrenci No :%s",ogr.no);
printf("\nOgrenci Adi :%s",ogr.ad);
printf("\nOgrenci Soaydi :%s",ogr.soyad);
printf("\nBaba Adi :%s",ogr.bad);
printf("\nAnne Adi :%s",ogr.aad);
printf("\nTelefon No :%s",ogr.telno);
printf("\nMemleketi :%s",ogr.sehir);
printf("\nAdresi :%s",ogr.adres);
printf("\nDogum yeri :%s",ogr.dog.dogum);
printf("\nDogum yili :%s",ogr.dog.dogum_y);
printf("\nSinifi :%s",ogr.dog.sinifi);
printf("\ndevam etmek için bir tusa basınız");
getch();
return 0;}
}
printf("\nAranan Kayit Bulunamadi");
getch();
return 0;
}
void ogr_listele(void){
kaysay=filelength(fileno(pt))/sizeof(ogr);
for(i=0;i<kaysay;i++){
fseek(pt,i*sizeof(ogr),SEEK_SET);
fread(&ogr,sizeof(ogr),1,pt);
printf("\n\n\nOgrenci No :%s",ogr.no);
printf("\nOgrenci Adi :%s",ogr.ad);
printf("\nOgrenci Soaydi :%s",ogr.soyad);
printf("\nBaba Adi :%s",ogr.bad);
printf("\nAnne Adi :%s",ogr.aad);
printf("\nTelefon No :%s",ogr.telno);
printf("\nMemleketi :%s",ogr.sehir);
printf("\nAdresi :%s",ogr.adres);
printf("\nDogum yeri :%s",ogr.dog.dogum);
printf("\nDogum yili :%s",ogr.dog.dogum_y);
printf("\nSinifi :%s",ogr.dog.sinifi);
}
printf("\ndevam etmek için bir tusa basiniz");
getch();
}