Şimdi Ara

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

Bu Konudaki Kullanıcılar:
2 Misafir - 2 Masaüstü
5 sn
9
Cevap
0
Favori
854
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • C dönem ödevim bir otomasyon programı. Programı yazdım fakat bir takım sorunlar var. Not giris kısmı ekledim. Bu kısım bir sorun var. Not giriliyor ama listelemek istedigimde sorun olusuyor. Yardım edebilecek olan var mı?



  • Kodu yazarsan eğer yardımcı olmaya çalışırız.
  • Buyrun Hocam kod. İki sorun var birincisi silme isleminde birden cok kiside ilki haric hepsini siliyor. İkincisi not girsite sectigim numara da sorun cıkarıyor buyrun bi inceleyin.

    #include<stdio.h> 
    #include<conio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<ctype.h>
    #include<io.h>

    FILE *pt, *p;
    struct not1{float mv1, mo, mf, mor, kv1,ko,kf,kor, fv1,fo,ff,forr, bv1,bo,bf,bor ,av1,ao,af,aor,dv1,dod,df,dor};
    union id{char dogum[12];
    char dogum_y[10];
    char sinifi[4];
    };
    struct ogrnci{char no[10], ad[15],soyad[20],iz;
    char bad[15],aad[15],telno[10];
    char sehir[15],adres[50];
    union id dog;
    struct not1 ogr2;}ogr;




    int n,j,kayitsay,kayitsay1,kayuz,kayno,kontrol;
    long kaypos;
    char ad1[15],noara[15];
    char secim,cev,devam,secim2;

    int parola();
    void ogr_kayit(void);
    int ogr_arama(void);
    void ogr_listele(void);
    void ogr_listele2(void);
    int duzelt(void);
    int silme(void);
    int n_giris(void);
    main() {
    parola();
    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.] Ogrenci Bilgi Duzeltme");
    printf("\n [5.] Ogrenci Bilgi Silme");
    printf("\n [6.] Ogrenci Not Girisi");
    printf("\n [7.] Ogrenci Not Listeleme");
    printf("\n [8.] Programdan Cikis");
    printf("\n Lutfen seciminizi giriniz (1-2-3-4-5-6-7) :");
    fflush(stdin);
    A:secim=getche();
    if(secim<'1' || secim>'8' ){
    printf("\n yanlis secim yaptiniz tekrar giriniz...:");
    goto A;}
    if (secim=='1') ogr_kayit();
    if (secim=='2') ogr_arama();
    if (secim=='3') ogr_listele();
    if (secim=='4') duzelt();
    if (secim=='5') silme();
    if (secim=='6') n_giris();
    if (secim=='7') ogr_listele2();
    }while(secim!='8');

    }

    void ogr_kayit(void){
    pt=fopen("oto.dat","a+b");
    if(pt==NULL)
    {
    printf("Dosya Acilamadi");
    exit(0);
    }
    kayuz=sizeof(ogr);
    do {
    printf("\nKayit No.....:");
    scanf("%d",&kayno);
    ogr.iz= ' ';
    kaypos=(kayno-1)*kayuz;
    fseek(pt,kaypos,SEEK_SET);
    fread(&ogr, kayuz, 1, pt);

    if (ogr.iz!='*'){
    fflush(pt);
    printf("\nOgrenci No :");
    fflush(stdin);
    gets(ogr.no);

    printf("\nOgrenci Adi :");
    fflush(stdin);
    gets(ogr.ad);
    printf("\nOgrenci Soyadi :");
    fflush(stdin);
    gets(ogr.soyad);
    printf("\nBaba Adi :");
    fflush(stdin);
    gets(ogr.bad);
    printf("\nAnne Adi :");
    fflush(stdin);
    gets(ogr.aad);
    printf("\nTelefon Numarasi :");
    fflush(stdin);
    gets(ogr.telno);
    printf("\nSehiri :");
    fflush(stdin);
    gets(ogr.sehir);
    printf("\nAdresi :");
    fflush(stdin);
    gets(ogr.adres);
    printf("\nDogum yeri :");
    fflush(stdin);
    gets(ogr.dog.dogum);
    printf("\nDogum yili :");
    fflush(stdin);
    gets(ogr.dog.dogum_y);
    printf("\nSinifi :");
    fflush(stdin);
    gets(ogr.dog.sinifi);
    fflush(pt);
    ogr.iz='*';
    fseek(pt,filelength(fileno(pt)),SEEK_SET);
    fwrite(&ogr,sizeof(ogr),1,pt);
    }
    else
    printf("Bu numarali kayit var\n");
    printf("Devam etmek ister misiniz?[E/H]:");
    cev=getche();
    }
    while(cev!='h' && cev!='H');
    printf("\nDevam etmek icin bir tusa basiniz\n");
    getch();
    fclose(pt);
    return 0;
    }

    int ogr_arama(void){
    pt=fopen("oto.dat","r+b");
    if(pt==NULL)
    {
    printf("Dosya Açilamadi");
    exit(0);
    }
    kayitsay=filelength(fileno(pt))/sizeof(ogr);
    printf("\n 1-- Isim ile arama \n 2-- Ogrenci no ile arama \n :");
    secim2=getche();
    while (secim2!='1' && secim2!='2'){
    printf("\nyanlis girdiniz lutfen tekrar giriniz :");
    secim2=getche();
    }
    if (secim2=='1')
    {
    do {
    rewind(pt);
    printf("\nradiginiz kisinin adini giriniz:");
    gets(ad1);
    for(n=0; n<kayitsay; n++){
    fseek(pt,(n)*sizeof(struct ogrnci),SEEK_SET);
    fread(&ogr,sizeof(struct ogrnci),1,pt);
    if(ogr.iz=='*'&& !strcmp(ogr.ad,ad1))
    {
    printf("\n\n\nOgrenci No :%s",ogr.no);
    printf("\nOgrenci Adi :%s",ogr.ad);
    printf("\nOgrenci Soyadi :%s",ogr.soyad);
    printf("\nBaba Adi :%s",ogr.bad);
    printf("\nAnne Adi :%s",ogr.aad);
    printf("\nTelefon No :%s",ogr.telno);
    printf("\nSehiri :%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);
    kontrol=1;
    printf("\nDevam etmek icin bir tusa basiniz\n");
    getch();
    return 0;
    }
    }
    if (kontrol != 1)
    printf("\nkayit bulunamadi...\n");
    printf("Yeni arama yapilacak mi?[E/H]:\n");


    cev=toupper(getch());
    while(cev!='E' && cev!='H'){

    cev=toupper(getche());

    }}while(cev!='H');
    }


    if (secim2== '2')
    {
    do {
    rewind(pt);
    printf("\nAradiginiz kisinin numarasini giriniz:");
    gets(noara);
    for(n=0; n<kayitsay; n++){
    fseek(pt,(n)*sizeof(struct ogrnci),SEEK_SET);
    fread(&ogr,sizeof(struct ogrnci),1,pt);
    if(ogr.iz=='*' && strcmp(noara,ogr.no)==0 )
    {
    printf("\n\n\nOgrenci No :%s",ogr.no);
    printf("\nOgrenci Adi :%s",ogr.ad);
    printf("\nOgrenci Soyadi :%s",ogr.soyad);
    printf("\nBaba Adi :%s",ogr.bad);
    printf("\nAnne Adi :%s",ogr.aad);
    printf("\nTelefon No :%s",ogr.telno);
    printf("\nSehiri :%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 icin bir tusa basiniz\n");
    getch();
    return 0;
    }
    }
    printf("Yeni arama yapýlacak mý?[E/H]:\n");
    cev=toupper(getch());
    while(cev!='E' && cev!='H'){

    cev=toupper(getche());

    }}while(cev!='H');
    }
    fclose(pt);
    getch();
    return 0;
    }



    void ogr_listele(void){
    pt=fopen("oto.dat","r+b");
    if(pt==NULL)
    {
    printf("Dosya Açilamadi");
    exit(0);
    }
    rewind(pt);
    kayitsay=filelength(fileno(pt))/sizeof(ogr);
    for(n=0;n<kayitsay;n++){

    fseek(pt,n*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 Soyadi :%s",ogr.soyad);
    printf("\nBaba Adi :%s",ogr.bad);
    printf("\nAnne Adi :%s",ogr.aad);
    printf("\nTelefon No :%s",ogr.telno);
    printf("\nSehiri :%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 icin bir tusa basiniz\n");
    getch();
    fclose(pt);
    return 0;
    }

    int duzelt (void){
    pt=fopen("oto.dat","r+b");
    if(pt==NULL)
    {
    printf("Dosya Açilamadi");
    exit(0);
    }
    rewind(pt);
    printf("Duzeltme yapilacak ismi giriniz :");
    gets(ad1);
    while(fread(&ogr,sizeof(ogr),1,pt)!=0)
    {if(ogr.iz=='*' && strcmp(ogr.ad,ad1)==0)

    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("\nYeni Ogrenci No :");
    gets(ogr.no);
    printf("\nYeni Ogrenci Adi :");
    gets(ogr.ad);
    printf("\nYeni Ogrenci Soyadi :");
    fflush(stdin);
    gets(ogr.soyad);
    printf("\nYeni Baba Adi :");
    fflush(stdin);
    gets(ogr.bad);
    printf("\nYeni Anne Adi :");
    fflush(stdin);
    gets(ogr.aad);
    printf("\nYeni Telefon Numarasi :");
    fflush(stdin);
    gets(ogr.telno);
    printf("\nYeni Sehiri :");
    fflush(stdin);
    gets(ogr.sehir);
    printf("\nYeni Adresi :");
    fflush(stdin);
    gets(ogr.adres);
    printf("\nYeni Dogum yeri :");
    fflush(stdin);
    gets(ogr.dog.dogum);
    printf("\nYeni Dogum yili :");
    fflush(stdin);
    gets(ogr.dog.dogum_y);
    printf("\nYeni Sinifi :");
    fflush(stdin);
    gets(ogr.dog.sinifi);
    fseek(pt,-sizeof(ogr),SEEK_CUR);
    fwrite(&ogr,sizeof(ogr),1,pt);
    kontrol=1;
    break;
    }
    if(kontrol!=1)
    printf("SILINECEK KAYIT BULUNAMADI!!!\n");
    getch();
    fclose(pt);
    return 0;

    }

    int silme(void)
    {
    pt=fopen("oto.dat","a+b");
    p=fopen("yedek.dat", "w+b");
    if(pt==NULL && p==NULL)
    {
    printf("Dosya Acilamadi");
    exit(0);
    }

    kayitsay=filelength(fileno(pt))/sizeof(ogr);
    do{

    printf(" \n silmek istediginiz numara :");
    gets(noara);
    /*while(fread(&ogr,sizeof(struct ogrnci),1,pt)!=0)*/
    for(n=0; n<kayitsay ; n++)
    {
    fseek(pt,sizeof(ogr)*n, SEEK_SET); /*yazılmayabilir*/
    fread(&ogr,sizeof(ogr),1,pt);

    if(ogr.iz=='*' && !strcmp(noara,ogr.no))
    continue;
    else
    fwrite(&ogr,sizeof(ogr),1,p);
    break;

    }
    printf("\n Yeni silme yapılacak mi?[E/H]:");
    cev=toupper(getch());
    }while(cev!='H');
    fclose(pt);
    fclose(p);
    remove("oto.dat");
    rename("yedek.dat","oto.dat");
    getch();
    return 0;
    }
    int n_giris(void)
    {
    pt=fopen("oto.dat","r+b");

    if(pt==NULL )
    {
    printf("Dosya Acilamadi");
    exit(0);
    }
    printf(" \nNot Girilecek Ogrenciyi giriniz :");
    gets(noara);

    kayitsay=filelength(fileno(pt))/sizeof(ogr);
    for(n=0;n<kayitsay;n++){

    fseek(pt,n*sizeof(ogr),SEEK_SET);
    fread(&ogr,sizeof(ogr),1,pt);
    if(ogr.iz=='*' && strcmp(noara,ogr.no)==0 ){
    printf("\n Not girilecek dersi seciniz\n [1] - Matematik \n [2] - Fizik \n [3] - Kimya \n [4] - Bilgisayar \n [5] - Algoritma \n [6] - Dil : ");
    cev=getchar();
    switch(cev){
    case '1':
    printf("\nMatematik 1. vize notu:");
    scanf("%f", &ogr.ogr2.mv1);
    printf("\nMatematik Odev notu:");
    scanf("%f", &ogr.ogr2.mo);
    printf("\nMatematik Final notu:");
    scanf("%f", &ogr.ogr2.mf);
    ogr.ogr2.mor=( (ogr.ogr2.mv1*30)/100 + (ogr.ogr2.mo*20)/100 + (ogr.ogr2.mf*50)/100 );
    break;

    case '2':

    printf("\nKimya 1. vize notu:");
    scanf("%f", &ogr.ogr2.kv1);
    printf("\nKimya Odev notu:");
    scanf("%f", &ogr.ogr2.ko);
    printf("\nKimya Final notu:");
    scanf("%f", &ogr.ogr2.kf);
    ogr.ogr2.kor=( (ogr.ogr2.kv1*25)/100 + (ogr.ogr2.ko*15)/100 + (ogr.ogr2.kf*60)/100 );
    break;
    case '3':
    printf("\nFizik 1. vize notu:");
    scanf("%f", &ogr.ogr2.fv1);
    printf("\nFizik Odev notu:");
    scanf("%f", &ogr.ogr2.fo);
    printf("\nFizik Final notu:");
    scanf("%f", &ogr.ogr2.ff);
    ogr.ogr2.forr=( (ogr.ogr2.fv1*30)/100 + (ogr.ogr2.fo*20)/100 + (ogr.ogr2.ff*50)/100 );
    break;
    case '4':
    printf("\nBilgisayar 1. vize notu:");
    scanf("%f", &ogr.ogr2.bv1);
    printf("\nBilgisayar Odev notu:");
    scanf("%f", &ogr.ogr2.bo);
    printf("\nBilgisayar Final notu:");
    scanf("%f", &ogr.ogr2.bf);
    ogr.ogr2.bor=( (ogr.ogr2.bv1*40)/100 + (ogr.ogr2.bo*10)/100 + (ogr.ogr2.bf*50)/100 );
    break;
    case '5':
    printf("\nAlgoritma 1. vize notu:");
    scanf("%f", &ogr.ogr2.av1);
    printf("\nAlgoritma Odev notu:");
    scanf("%f", &ogr.ogr2.ao);
    printf("\nAlgoritma Final notu:");
    scanf("%f", &ogr.ogr2.af);
    ogr.ogr2.aor=( (ogr.ogr2.av1*30)/100 + (ogr.ogr2.ao*10)/100 + (ogr.ogr2.af*60)/100 );
    break;
    case '6' :
    printf("\nYabanci dil 1. vize notu:");
    scanf("%f", &ogr.ogr2.dv1);
    printf("\nYabanci dil Odev notu:");
    scanf("%f", &ogr.ogr2.dod);
    printf("\nYabanci dil Final notu:");
    scanf("%f", &ogr.ogr2.df);
    ogr.ogr2.dor=( (ogr.ogr2.dv1*30)/100 + (ogr.ogr2.dod*20)/100 + (ogr.ogr2.df*50)/100 );
    break;
    default:
    printf("yanlis secim yaptiniz lutfen tekrar seciniz:");
    cev=getchar();
    break;
    }
    fseek(pt,-sizeof(ogr),SEEK_CUR);
    fwrite(&ogr,sizeof(ogr),1,pt);
    kontrol=1;
    break;
    }}


    if(kontrol!=1)
    printf("Not KAYIT BULUNAMADI!!!\n");
    printf("\nYeni not girisi yapmak istermisiniz : ");
    secim2=getch();
    while(secim2!='E' && secim2!='H'){
    secim2=toupper(getch());
    }
    while(secim2!='H')
    {
    printf(" \nNot Girilecek Ogrenciyi giriniz :");
    gets(noara);
    }
    fclose(pt);
    return 0;
    }



    void ogr_listele2(void){
    pt=fopen("oto.dat","r+b");

    if(pt==NULL )
    {
    printf("Dosya Acilamadi");
    exit(0);

    rewind(pt);
    }

    kayitsay=filelength(fileno(pt))/sizeof(ogr);
    for(n=0;n<kayitsay;n++)
    {


    fseek(pt,n*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 Soyadi :%s",ogr.soyad);
    printf("\n\nMatematik 1. Vize notu :%f",ogr.ogr2.mv1);
    printf("\nMatematik Odev notu :%f",ogr.ogr2.mo);
    printf("\nMatematik Final notu :%f",ogr.ogr2.mf);
    printf("\nMatematik ort notu :%f",ogr.ogr2.mor);
    printf("\n\nKimya 1. Vize notu :%f",ogr.ogr2.kv1);
    printf("\nKimya Odev notu :%f",ogr.ogr2.ko);
    printf("\nKimya Final notu :%f",ogr.ogr2.kf);
    printf("\nKimya ort notu :%f",ogr.ogr2.kor);
    printf("\n\nFizik 1. Vize notu :%f",ogr.ogr2.fv1);
    printf("\nFizik Odev notu :%f",ogr.ogr2.fo);
    printf("\nFizik Final notu :%f",ogr.ogr2.ff);
    printf("\nFizik ort notu :%f",ogr.ogr2.forr);
    printf("\n\nBilgisayar 1. Vize notu :%f",ogr.ogr2.bv1);
    printf("\nBilgisayar Odev notu :%f",ogr.ogr2.bo);
    printf("\nBilgisayar Final notu :%f",ogr.ogr2.bf);
    printf("\nbilgisayar ort notu :%f",ogr.ogr2.bor);
    printf("\n\nAlgoritma 1. Vize notu :%f",ogr.ogr2.av1);
    printf("\nAlgoritma Odev notu :%f",ogr.ogr2.ao);
    printf("\nAlgoritma Final notu :%f",ogr.ogr2.af);
    printf("\nAlgoritma ort notu :%f",ogr.ogr2.aor);
    printf("\n\nDil 1. Vize notu :%f",ogr.ogr2.dv1);
    printf("\nDil Odev notu :%f",ogr.ogr2.dod);
    printf("\nDil Final notu :%f",ogr.ogr2.df);
    printf("\nDil ort notu :%f",ogr.ogr2.dor);
    }
    printf("\nDevam etmek icin bir tusa basiniz\n");
    getch();

    fclose(pf);
    return 0;
    }

    int parola()
    {
    char paro[] = "1";
    char paro1[20];
    int j=0;
    printf("Ogrenci Otomasyon Programi =\t***Ali AKTOLUN***\n\n\t\t\tYalova Universitesi Bilgisayar Muhendisligi\n\n");
    printf("Parolayi dikkatli giriniz.Aksi taktirde sistem kilitlenecektir!!!");
    printf("\nParolayi Giriniz Lutfen : ");

    gets(paro1);
    if (!strcmp(paro,paro1))

    {
    printf("Onaylandi...\n");
    return 1;
    }
    else
    {
    printf("HATA!!!.Lutfen programi tekrar baslatip sifreyi girmeyi tekrar deneyin\n");
    for(;;);
    return 0;
    }
    }



    codeblocs ile yazıldı.




  • Kodlarını kontrol et bence birkez daha. Validation hataların var. Örneğin devam etmek istiyormusunuz diye soruyosun 'h'ye bastığında döngü dışına çıkıyor. Fakat başka herhangi bişeye bastığında döngüye devam ediyor. Ayrıca kayıt eklerken istediğim karakteri girebiliyorum. Doğum yerine 3 doğum tarihine a gibi.
  • Bir de buraya koyduğunuz kodları
    [code][/code] tagları arasına yazinki şu şekilde gözüksün girintilemeler okuyabilelim

    #include <iostream> 

    using namespace std;

    int main()
    {
    cout << "Hello World";
    return 0;
    }
  • #include<stdio.h> 
    #include<conio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<ctype.h>
    #include<io.h>

    FILE *pt, *p;
    struct not1{float mv1, mo, mf, mor, kv1,ko,kf,kor, fv1,fo,ff,forr, bv1,bo,bf,bor ,av1,ao,af,aor,dv1,dod,df,dor};
    union id{char dogum[12];
    char dogum_y[10];
    char sinifi[4];
    };
    struct ogrnci{char no[10], ad[15],soyad[20],iz;
    char bad[15],aad[15],telno[10];
    char sehir[15],adres[50];
    union id dog;
    struct not1 ogr2;}ogr;




    int n,j,kayitsay,kayitsay1,kayuz,kayno,kontrol;
    long kaypos;
    char ad1[15],noara[15];
    char secim,cev,devam,secim2;

    int parola();
    void ogr_kayit(void);
    int ogr_arama(void);
    void ogr_listele(void);
    void ogr_listele2(void);
    int duzelt(void);
    int silme(void);
    int n_giris(void);
    main() {
    parola();
    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.] Ogrenci Bilgi Duzeltme");
    printf("\n [5.] Ogrenci Bilgi Silme");
    printf("\n [6.] Ogrenci Not Girisi");
    printf("\n [7.] Ogrenci Not Listeleme");
    printf("\n [8.] Programdan Cikis");
    printf("\n Lutfen seciminizi giriniz (1-2-3-4-5-6-7) :");
    fflush(stdin);
    A:secim=getche();
    if(secim<'1' || secim>'8' ){
    printf("\n yanlis secim yaptiniz tekrar giriniz...:");
    goto A;}
    if (secim=='1') ogr_kayit();
    if (secim=='2') ogr_arama();
    if (secim=='3') ogr_listele();
    if (secim=='4') duzelt();
    if (secim=='5') silme();
    if (secim=='6') n_giris();
    if (secim=='7') ogr_listele2();
    }while(secim!='8');

    }

    void ogr_kayit(void){
    pt=fopen("oto.dat","a+b");
    if(pt==NULL)
    {
    printf("Dosya Acilamadi");
    exit(0);
    }
    kayuz=sizeof(ogr);
    do {
    printf("\nKayit No.....:");
    scanf("%d",&kayno);
    ogr.iz= ' ';
    kaypos=(kayno-1)*kayuz;
    fseek(pt,kaypos,SEEK_SET);
    fread(&ogr, kayuz, 1, pt);

    if (ogr.iz!='*'){
    fflush(pt);
    printf("\nOgrenci No :");
    fflush(stdin);
    gets(ogr.no);

    printf("\nOgrenci Adi :");
    fflush(stdin);
    gets(ogr.ad);
    printf("\nOgrenci Soyadi :");
    fflush(stdin);
    gets(ogr.soyad);
    printf("\nBaba Adi :");
    fflush(stdin);
    gets(ogr.bad);
    printf("\nAnne Adi :");
    fflush(stdin);
    gets(ogr.aad);
    printf("\nTelefon Numarasi :");
    fflush(stdin);
    gets(ogr.telno);
    printf("\nSehiri :");
    fflush(stdin);
    gets(ogr.sehir);
    printf("\nAdresi :");
    fflush(stdin);
    gets(ogr.adres);
    printf("\nDogum yeri :");
    fflush(stdin);
    gets(ogr.dog.dogum);
    printf("\nDogum yili :");
    fflush(stdin);
    gets(ogr.dog.dogum_y);
    printf("\nSinifi :");
    fflush(stdin);
    gets(ogr.dog.sinifi);
    fflush(pt);
    ogr.iz='*';
    fseek(pt,filelength(fileno(pt)),SEEK_SET);
    fwrite(&ogr,sizeof(ogr),1,pt);
    }
    else
    printf("Bu numarali kayit var\n");
    printf("Devam etmek ister misiniz?[E/H]:");
    cev=getche();
    }
    while(cev!='h' && cev!='H');
    printf("\nDevam etmek icin bir tusa basiniz\n");
    getch();
    fclose(pt);
    return 0;
    }

    int ogr_arama(void){
    pt=fopen("oto.dat","r+b");
    if(pt==NULL)
    {
    printf("Dosya Açilamadi");
    exit(0);
    }
    kayitsay=filelength(fileno(pt))/sizeof(ogr);
    printf("\n 1-- Isim ile arama \n 2-- Ogrenci no ile arama \n :");
    secim2=getche();
    while (secim2!='1' && secim2!='2'){
    printf("\nyanlis girdiniz lutfen tekrar giriniz :");
    secim2=getche();
    }
    if (secim2=='1')
    {
    do {
    rewind(pt);
    printf("\nradiginiz kisinin adini giriniz:");
    gets(ad1);
    for(n=0; n<kayitsay; n++){
    fseek(pt,(n)*sizeof(struct ogrnci),SEEK_SET);
    fread(&ogr,sizeof(struct ogrnci),1,pt);
    if(ogr.iz=='*'&& !strcmp(ogr.ad,ad1))
    {
    printf("\n\n\nOgrenci No :%s",ogr.no);
    printf("\nOgrenci Adi :%s",ogr.ad);
    printf("\nOgrenci Soyadi :%s",ogr.soyad);
    printf("\nBaba Adi :%s",ogr.bad);
    printf("\nAnne Adi :%s",ogr.aad);
    printf("\nTelefon No :%s",ogr.telno);
    printf("\nSehiri :%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);
    kontrol=1;
    printf("\nDevam etmek icin bir tusa basiniz\n");
    getch();
    return 0;
    }
    }
    if (kontrol != 1)
    printf("\nkayit bulunamadi...\n");
    printf("Yeni arama yapilacak mi?[E/H]:\n");


    cev=toupper(getch());
    while(cev!='E' && cev!='H'){

    cev=toupper(getche());

    }}while(cev!='H');
    }


    if (secim2== '2')
    {
    do {
    rewind(pt);
    printf("\nAradiginiz kisinin numarasini giriniz:");
    gets(noara);
    for(n=0; n<kayitsay; n++){
    fseek(pt,(n)*sizeof(struct ogrnci),SEEK_SET);
    fread(&ogr,sizeof(struct ogrnci),1,pt);
    if(ogr.iz=='*' && strcmp(noara,ogr.no)==0 )
    {
    printf("\n\n\nOgrenci No :%s",ogr.no);
    printf("\nOgrenci Adi :%s",ogr.ad);
    printf("\nOgrenci Soyadi :%s",ogr.soyad);
    printf("\nBaba Adi :%s",ogr.bad);
    printf("\nAnne Adi :%s",ogr.aad);
    printf("\nTelefon No :%s",ogr.telno);
    printf("\nSehiri :%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 icin bir tusa basiniz\n");
    getch();
    return 0;
    }
    }
    printf("Yeni arama yapýlacak mý?[E/H]:\n");
    cev=toupper(getch());
    while(cev!='E' && cev!='H'){

    cev=toupper(getche());

    }}while(cev!='H');
    }
    fclose(pt);
    getch();
    return 0;
    }



    void ogr_listele(void){
    pt=fopen("oto.dat","r+b");
    if(pt==NULL)
    {
    printf("Dosya Açilamadi");
    exit(0);
    }
    rewind(pt);
    kayitsay=filelength(fileno(pt))/sizeof(ogr);
    for(n=0;n<kayitsay;n++){

    fseek(pt,n*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 Soyadi :%s",ogr.soyad);
    printf("\nBaba Adi :%s",ogr.bad);
    printf("\nAnne Adi :%s",ogr.aad);
    printf("\nTelefon No :%s",ogr.telno);
    printf("\nSehiri :%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 icin bir tusa basiniz\n");
    getch();
    fclose(pt);
    return 0;
    }

    int duzelt (void){
    pt=fopen("oto.dat","r+b");
    if(pt==NULL)
    {
    printf("Dosya Açilamadi");
    exit(0);
    }
    rewind(pt);
    printf("Duzeltme yapilacak ismi giriniz :");
    gets(ad1);
    while(fread(&ogr,sizeof(ogr),1,pt)!=0)
    {if(ogr.iz=='*' && strcmp(ogr.ad,ad1)==0)

    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("\nYeni Ogrenci No :");
    gets(ogr.no);
    printf("\nYeni Ogrenci Adi :");
    gets(ogr.ad);
    printf("\nYeni Ogrenci Soyadi :");
    fflush(stdin);
    gets(ogr.soyad);
    printf("\nYeni Baba Adi :");
    fflush(stdin);
    gets(ogr.bad);
    printf("\nYeni Anne Adi :");
    fflush(stdin);
    gets(ogr.aad);
    printf("\nYeni Telefon Numarasi :");
    fflush(stdin);
    gets(ogr.telno);
    printf("\nYeni Sehiri :");
    fflush(stdin);
    gets(ogr.sehir);
    printf("\nYeni Adresi :");
    fflush(stdin);
    gets(ogr.adres);
    printf("\nYeni Dogum yeri :");
    fflush(stdin);
    gets(ogr.dog.dogum);
    printf("\nYeni Dogum yili :");
    fflush(stdin);
    gets(ogr.dog.dogum_y);
    printf("\nYeni Sinifi :");
    fflush(stdin);
    gets(ogr.dog.sinifi);
    fseek(pt,-sizeof(ogr),SEEK_CUR);
    fwrite(&ogr,sizeof(ogr),1,pt);
    kontrol=1;
    break;
    }
    if(kontrol!=1)
    printf("SILINECEK KAYIT BULUNAMADI!!!\n");
    getch();
    fclose(pt);
    return 0;

    }

    int silme(void)
    {
    pt=fopen("oto.dat","a+b");
    p=fopen("yedek.dat", "w+b");
    if(pt==NULL && p==NULL)
    {
    printf("Dosya Acilamadi");
    exit(0);
    }

    kayitsay=filelength(fileno(pt))/sizeof(ogr);
    do{

    printf(" \n silmek istediginiz numara :");
    gets(noara);
    /*while(fread(&ogr,sizeof(struct ogrnci),1,pt)!=0)*/
    for(n=0; n<kayitsay ; n++)
    {
    fseek(pt,sizeof(ogr)*n, SEEK_SET); /*yazılmayabilir*/
    fread(&ogr,sizeof(ogr),1,pt);

    if(ogr.iz=='*' && !strcmp(noara,ogr.no))
    continue;
    else
    fwrite(&ogr,sizeof(ogr),1,p);
    break;

    }
    printf("\n Yeni silme yapılacak mi?[E/H]:");
    cev=toupper(getch());
    }while(cev!='H');
    fclose(pt);
    fclose(p);
    remove("oto.dat");
    rename("yedek.dat","oto.dat");
    getch();
    return 0;
    }
    int n_giris(void)
    {
    pt=fopen("oto.dat","r+b");

    if(pt==NULL )
    {
    printf("Dosya Acilamadi");
    exit(0);
    }
    printf(" \nNot Girilecek Ogrenciyi giriniz :");
    gets(noara);

    kayitsay=filelength(fileno(pt))/sizeof(ogr);
    for(n=0;n<kayitsay;n++){

    fseek(pt,n*sizeof(ogr),SEEK_SET);
    fread(&ogr,sizeof(ogr),1,pt);
    if(ogr.iz=='*' && strcmp(noara,ogr.no)==0 ){
    printf("\n Not girilecek dersi seciniz\n [1] - Matematik \n [2] - Fizik \n [3] - Kimya \n [4] - Bilgisayar \n [5] - Algoritma \n [6] - Dil : ");
    cev=getchar();
    switch(cev){
    case '1':
    printf("\nMatematik 1. vize notu:");
    scanf("%f", &ogr.ogr2.mv1);
    printf("\nMatematik Odev notu:");
    scanf("%f", &ogr.ogr2.mo);
    printf("\nMatematik Final notu:");
    scanf("%f", &ogr.ogr2.mf);
    ogr.ogr2.mor=( (ogr.ogr2.mv1*30)/100 + (ogr.ogr2.mo*20)/100 + (ogr.ogr2.mf*50)/100 );
    break;

    case '2':

    printf("\nKimya 1. vize notu:");
    scanf("%f", &ogr.ogr2.kv1);
    printf("\nKimya Odev notu:");
    scanf("%f", &ogr.ogr2.ko);
    printf("\nKimya Final notu:");
    scanf("%f", &ogr.ogr2.kf);
    ogr.ogr2.kor=( (ogr.ogr2.kv1*25)/100 + (ogr.ogr2.ko*15)/100 + (ogr.ogr2.kf*60)/100 );
    break;
    case '3':
    printf("\nFizik 1. vize notu:");
    scanf("%f", &ogr.ogr2.fv1);
    printf("\nFizik Odev notu:");
    scanf("%f", &ogr.ogr2.fo);
    printf("\nFizik Final notu:");
    scanf("%f", &ogr.ogr2.ff);
    ogr.ogr2.forr=( (ogr.ogr2.fv1*30)/100 + (ogr.ogr2.fo*20)/100 + (ogr.ogr2.ff*50)/100 );
    break;
    case '4':
    printf("\nBilgisayar 1. vize notu:");
    scanf("%f", &ogr.ogr2.bv1);
    printf("\nBilgisayar Odev notu:");
    scanf("%f", &ogr.ogr2.bo);
    printf("\nBilgisayar Final notu:");
    scanf("%f", &ogr.ogr2.bf);
    ogr.ogr2.bor=( (ogr.ogr2.bv1*40)/100 + (ogr.ogr2.bo*10)/100 + (ogr.ogr2.bf*50)/100 );
    break;
    case '5':
    printf("\nAlgoritma 1. vize notu:");
    scanf("%f", &ogr.ogr2.av1);
    printf("\nAlgoritma Odev notu:");
    scanf("%f", &ogr.ogr2.ao);
    printf("\nAlgoritma Final notu:");
    scanf("%f", &ogr.ogr2.af);
    ogr.ogr2.aor=( (ogr.ogr2.av1*30)/100 + (ogr.ogr2.ao*10)/100 + (ogr.ogr2.af*60)/100 );
    break;
    case '6' :
    printf("\nYabanci dil 1. vize notu:");
    scanf("%f", &ogr.ogr2.dv1);
    printf("\nYabanci dil Odev notu:");
    scanf("%f", &ogr.ogr2.dod);
    printf("\nYabanci dil Final notu:");
    scanf("%f", &ogr.ogr2.df);
    ogr.ogr2.dor=( (ogr.ogr2.dv1*30)/100 + (ogr.ogr2.dod*20)/100 + (ogr.ogr2.df*50)/100 );
    break;
    default:
    printf("yanlis secim yaptiniz lutfen tekrar seciniz:");
    cev=getchar();
    break;
    }
    fseek(pt,-sizeof(ogr),SEEK_CUR);
    fwrite(&ogr,sizeof(ogr),1,pt);
    kontrol=1;
    break;
    }}


    if(kontrol!=1)
    printf("Not KAYIT BULUNAMADI!!!\n");
    printf("\nYeni not girisi yapmak istermisiniz : ");
    secim2=getch();
    while(secim2!='E' && secim2!='H'){
    secim2=toupper(getch());
    }
    while(secim2!='H')
    {
    printf(" \nNot Girilecek Ogrenciyi giriniz :");
    gets(noara);
    }
    fclose(pt);
    return 0;
    }



    void ogr_listele2(void){
    pt=fopen("oto.dat","r+b");

    if(pt==NULL )
    {
    printf("Dosya Acilamadi");
    exit(0);

    rewind(pt);
    }

    kayitsay=filelength(fileno(pt))/sizeof(ogr);
    for(n=0;n<kayitsay;n++)
    {


    fseek(pt,n*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 Soyadi :%s",ogr.soyad);
    printf("\n\nMatematik 1. Vize notu :%f",ogr.ogr2.mv1);
    printf("\nMatematik Odev notu :%f",ogr.ogr2.mo);
    printf("\nMatematik Final notu :%f",ogr.ogr2.mf);
    printf("\nMatematik ort notu :%f",ogr.ogr2.mor);
    printf("\n\nKimya 1. Vize notu :%f",ogr.ogr2.kv1);
    printf("\nKimya Odev notu :%f",ogr.ogr2.ko);
    printf("\nKimya Final notu :%f",ogr.ogr2.kf);
    printf("\nKimya ort notu :%f",ogr.ogr2.kor);
    printf("\n\nFizik 1. Vize notu :%f",ogr.ogr2.fv1);
    printf("\nFizik Odev notu :%f",ogr.ogr2.fo);
    printf("\nFizik Final notu :%f",ogr.ogr2.ff);
    printf("\nFizik ort notu :%f",ogr.ogr2.forr);
    printf("\n\nBilgisayar 1. Vize notu :%f",ogr.ogr2.bv1);
    printf("\nBilgisayar Odev notu :%f",ogr.ogr2.bo);
    printf("\nBilgisayar Final notu :%f",ogr.ogr2.bf);
    printf("\nbilgisayar ort notu :%f",ogr.ogr2.bor);
    printf("\n\nAlgoritma 1. Vize notu :%f",ogr.ogr2.av1);
    printf("\nAlgoritma Odev notu :%f",ogr.ogr2.ao);
    printf("\nAlgoritma Final notu :%f",ogr.ogr2.af);
    printf("\nAlgoritma ort notu :%f",ogr.ogr2.aor);
    printf("\n\nDil 1. Vize notu :%f",ogr.ogr2.dv1);
    printf("\nDil Odev notu :%f",ogr.ogr2.dod);
    printf("\nDil Final notu :%f",ogr.ogr2.df);
    printf("\nDil ort notu :%f",ogr.ogr2.dor);
    }
    printf("\nDevam etmek icin bir tusa basiniz\n");
    getch();

    fclose(pf);
    return 0;
    }

    int parola()
    {
    char paro[] = "1";
    char paro1[20];
    int j=0;
    printf("Ogrenci Otomasyon Programi =\t***Ali AKTOLUN***\n\n\t\t\tYalova Universitesi Bilgisayar Muhendisligi\n\n");
    printf("Parolayi dikkatli giriniz.Aksi taktirde sistem kilitlenecektir!!!");
    printf("\nParolayi Giriniz Lutfen : ");

    gets(paro1);
    if (!strcmp(paro,paro1))

    {
    printf("Onaylandi...\n");
    return 1;
    }
    else
    {
    printf("HATA!!!.Lutfen programi tekrar baslatip sifreyi girmeyi tekrar deneyin\n");
    for(;;);
    return 0;
    }
    }




  • quote:

    Orijinalden alıntı: zoom_grange

    Kodlarını kontrol et bence birkez daha. Validation hataların var. Örneğin devam etmek istiyormusunuz diye soruyosun 'h'ye bastığında döngü dışına çıkıyor. Fakat başka herhangi bişeye bastığında döngüye devam ediyor. Ayrıca kayıt eklerken istediğim karakteri girebiliyorum. Doğum yerine 3 doğum tarihine a gibi.

    Hocam o hataları giderebilecem. Not girişini aynı dosyaya kaydetme seklinde düzenledim. SOunlar hiç bitmiyor ki:( Şimdi de silme isleminde 5 tane kayıt yapıorum. Diyelim ki 3 numaralı ogrencıyi silicem 1 numaralı haric hepsi gidiyor.
  • quote:

    Orijinalden alıntı: aktoluna

    quote:

    Orijinalden alıntı: zoom_grange

    Kodlarını kontrol et bence birkez daha. Validation hataların var. Örneğin devam etmek istiyormusunuz diye soruyosun 'h'ye bastığında döngü dışına çıkıyor. Fakat başka herhangi bişeye bastığında döngüye devam ediyor. Ayrıca kayıt eklerken istediğim karakteri girebiliyorum. Doğum yerine 3 doğum tarihine a gibi.

    Hocam o hataları giderebilecem. Not girişini aynı dosyaya kaydetme seklinde düzenledim. SOunlar hiç bitmiyor ki:( Şimdi de silme isleminde 5 tane kayıt yapıorum. Diyelim ki 3 numaralı ogrencıyi silicem 1 numaralı haric hepsi gidiyor.

    Dostm final dönemindeyim şuan. 10 gün sonra hala yardıma ihtiyacın olursa elimden geleni yaparım.




  • Tamam hocam teşekkur ederim başarılar
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.