Şimdi Ara

Dönem ödevi için lütfen bakarmısınız?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
4
Cevap
0
Favori
331
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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

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








  • c kullanmayalı bayağı bir zaman oldu ama şunu bir denemeni öneririm
    scanf secimden önce fflush(stdin); koymayı deneyebilirsin.

    şu şekilde.
    fflush(stdin);
    scanf("%d",&secim);

    o da olmazsa yeni kayıt eklerken scanflerden önce yine aynı şeyi yapmayı dene fonksiyonun içinde bütün scanflerden önce flush koy. kolay gelsin.



    < Bu mesaj bu kişi tarafından değiştirildi justinne -- 4 Ocak 2012; 2:05:06 >
  • Teşekkür ederim hocam şimdi denerim.
  • Sorunuma yardımcı olabilir misiniz? Verileri girince dosyaya kaydediyor ama listele dediğimde yazdırmıyor. programı açıp kapatınca yazdırıyor neden olabilir?
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.