Created
March 2, 2011 17:43
-
-
Save hasayvaz/851353 to your computer and use it in GitHub Desktop.
öğrenci bilgi sistemi
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <string.h> | |
| #define ENUZUNDIZGI 100 | |
| #define ENFAZLAKAYIT 100 | |
| #define KAYITDOSYASI "kayitlar.txt" | |
| #define True 1 | |
| #define False 0 | |
| struct ogrenci { | |
| char ad[ENUZUNDIZGI]; | |
| char soyad[ENUZUNDIZGI]; | |
| int no, vize, final; | |
| int durum; | |
| } kayitlar[ENFAZLAKAYIT]; | |
| int int_al (char *ileti) | |
| { | |
| int N; | |
| printf("%s",ileti); | |
| scanf("%d",&N); | |
| return N; | |
| } | |
| void char_al (char *ileti, char *s) | |
| { | |
| char gecici[ENUZUNDIZGI]; | |
| printf("%s",ileti); | |
| scanf("%s",gecici); | |
| strcpy(s, gecici); | |
| } | |
| void ekle2(int i) | |
| { | |
| FILE *yaz; | |
| yaz = fopen(KAYITDOSYASI, "a"); | |
| if(!yaz) { | |
| fprintf(stderr, "%s dosyası yazmak için açılamadı!\n", KAYITDOSYASI); | |
| exit(1); | |
| } | |
| char_al("\nadı : ", kayitlar[i].ad); | |
| char_al("soyadı : ", kayitlar[i].soyad); | |
| kayitlar[i].no = int_al("numara : "); | |
| kayitlar[i].vize = int_al("vize : "); | |
| kayitlar[i].final = int_al("final : "); | |
| kayitlar[i].durum = False; | |
| if(kayitlar[i].durum == False) | |
| fprintf(yaz, "%s\t%s\t%d\t%d\t%d\n", kayitlar[i].ad, kayitlar[i].soyad, kayitlar[i].no, kayitlar[i].vize, kayitlar[i].final); | |
| } | |
| void ekle(void) | |
| { | |
| int i; | |
| int eleman_sayisi = int_al("Eklemek istediğiniz eleman sayısını girin : "); | |
| for (i = 0; i < eleman_sayisi; i++) | |
| ekle2(i); | |
| } | |
| void sil() | |
| { | |
| int i, numara = int_al("Silmek istediğiniz numarayı girin : "); | |
| for (i = 0; kayitlar[i].no != '\0'; i++) { | |
| if (numara == kayitlar[i].no && kayitlar[i].durum == False) { | |
| kayitlar[i].durum = True; | |
| printf("\n%d numaralı kayıt silindi\n", kayitlar[i].no); | |
| return; | |
| } | |
| } | |
| printf("\nBöyle bir kayıt bulunamadı.\n\n"); | |
| } | |
| void bul() | |
| { | |
| int i, numara = int_al("Bulmak istediğiniz numarayı girin : "); | |
| for (i = 0; kayitlar[i].no != '\0'; i++) { | |
| if (numara == kayitlar[i].no && kayitlar[i].durum == False) { | |
| printf("\nadı : %s\nsoyadı : %s\nnumara : %d\nvize : %d\nfinal : %d\n\n", kayitlar[i].ad, kayitlar[i].soyad, kayitlar[i].no, kayitlar[i].vize, kayitlar[i].final); | |
| return; | |
| } | |
| } | |
| puts("\nBöyle bir kayıt bulunamadi\n\n"); | |
| } | |
| void topkay(void) | |
| { | |
| int i, kayit = 0; | |
| for (i = 0; kayitlar[i].no != '\0'; i++) | |
| if (kayitlar[i].durum == False) | |
| kayit++; | |
| printf("\nSistemde toplam %d kayıt var.\n\n",kayit); | |
| } | |
| void ort(void) | |
| { | |
| int i, top = 0; | |
| float ortalama; | |
| for (i = 0; kayitlar[i].no != '\0'; i++) | |
| if (kayitlar[i].durum == False) | |
| top += 0.4 * kayitlar[i].vize + 0.6*kayitlar[i].final; | |
| ortalama = top / i; | |
| printf("\nSistemdeki kayıtlı öğrencilerin not ortalaması : %.1f 'dır\n\n", ortalama); | |
| } | |
| void ISLEMLER(void) | |
| { | |
| puts("<e> - kayit eklemek"); | |
| puts("\t\t\t<b> - kayit bulmak"); | |
| puts("\t\t\t\t\t\t<k> - kayit silmek\n"); | |
| char c; | |
| printf("İşlem yapmak istediğiniz harfi girin : "); scanf("%c", &c); | |
| getchar(); //Tampon | |
| switch(c) { | |
| case 'e': puts("\n-> Kayıt eklemek için :\n"); ekle(); break; | |
| case 'b': puts("\n-> Kaydını bulmak için :\n"); bul(); break; | |
| case 'k': puts("\n-> Kaydını silmek için :\n"); sil(); break; | |
| default: printf("\nSistemde böyle bir seçenek bulunamadı.Tekrar seçmek için 'Enter' a tıklayın."); | |
| } | |
| } | |
| void ISTATISTIK(void) | |
| { | |
| puts("<t> - toplam kayit sayisi"); | |
| puts("\t\t\t\t<o> - sınıf not ortalaması\n"); | |
| char c; | |
| printf("#İşlem yapmak istediğiniz harfi girin : "); scanf("%c", &c); | |
| getchar(); //Tampon | |
| switch(c) { | |
| case 't': puts("\n-> Kayıt bilgisi : "); topkay(); break; | |
| case 'o': puts("\n-> Ortalama bilgisi :"); ort(); break; | |
| default: printf("\nSistemde böyle bir seçenek bulunamadı.Tekrar seçmek için 'Enter' a tıklayın."); | |
| } | |
| } | |
| void ANAMENU(void) | |
| { | |
| char c; | |
| do { | |
| puts("\n======================> ÖĞRENCİ BİLGİ SİSTEMİNE HOŞGELDİNİZ <===================\n"); | |
| puts("\t\t\t => A N A M E N U <="); | |
| puts("\t\t\t -------------------\n"); | |
| puts("<i> - ISLEMLER"); | |
| puts("\t\t\t<s> - ISTATISTIK"); | |
| puts("\t\t\t\t\t\t<z> - ÇIKIS\n"); | |
| printf("#İşlem yapmak istediğiniz harfi girin : "); scanf("%c", &c); | |
| getchar(); //Tampon | |
| switch(c) { | |
| case 'i': puts("\n\t\t\t--------------\n\t\t\t-> İŞLEMLER <-\n\t\t\t--------------\n"); ISLEMLER(); break; | |
| case 's': puts("\n\t\t\t--------------\n\t\t\t-> İSTATİSTİK <-\n\t\t\t--------------\n"); ISTATISTIK(); break; | |
| case 'z': printf("\nÇıkış yapmak için 'Enter' a tıklayın."); break; | |
| default: printf("\nSistemde böyle bir seçenek bulunamadı.Tekrar seçmek için 'Enter' a tıklayın."); | |
| } | |
| getchar(); //Tampon | |
| } while (c != 'z'); | |
| printf("\nSistemimizden çıkış yaptınız..İyi günler dileriz..Hosçakalın...\n"); | |
| } | |
| int main() | |
| { | |
| ANAMENU(); | |
| return 0; | |
| } |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
"çok laf yalansız, çok satırlı kod hatasız olmaz". hatalıysam düzeltin :P