Skip to content

Instantly share code, notes, and snippets.

@hasayvaz
Created March 2, 2011 17:43
Show Gist options
  • Select an option

  • Save hasayvaz/851353 to your computer and use it in GitHub Desktop.

Select an option

Save hasayvaz/851353 to your computer and use it in GitHub Desktop.
öğrenci bilgi sistemi
#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;
}
@hasayvaz

hasayvaz commented Mar 2, 2011

Copy link
Copy Markdown
Author

"çok laf yalansız, çok satırlı kod hatasız olmaz". hatalıysam düzeltin :P

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment