C’de öğrenci otomasyonu yapımı

C’de Öğrenci Otomasyonu programı:

C’de öğrenci otomasyon programının mantığı C’de dosyaya yeni kayıt eklemek, listelemek ve bu kayıtlar içerisinde öğrenci numarısına göre arama yapmaya sağlayan program geliştirmek demektir. Daha önce anlattığımız;

konularını bir nevi ve bir takım değişikliklerde bulunarak bu konuyu yazıcağım.

C’de Öğrenci Bilgi Otomasyonunun Algoritması:

ANA PROGRAM

  1. BAŞLA
  2. “ozluk.dat” dosyasını yarat ve aç. Hata varsa “Dosya açılamadı” yazıp çık.
  3. DÖNGÜYE GİR
  4. “1 – Bilgi Girişi”,”2-Bilgi Arama”,”3-Bilgi Listeleme”,”4-Programdan Çıkış” ve “Seciminiz(1-2-3-4):” yaz
  5. secim==1 ise giris(), secim==2 ise arama(), secim==3 ise listele  değilse programdan çık.
  6. Secim 4’e eşit değilse DÖNGÜYÜ DEVAM ETTİR
  7. DUR

ALT PROGRAM – ARAMA

  1. BAŞLA
  2. Ekranda yazılı olan herşeyi temizle (system(“CLS”)) ve Aranacak Ögrenci Numarasını Giriniz yaz.
  3. Klavyeden girilen değeri noara değişkenine eşitle kayıt miktarını bul (Dosya boyutu / Struct yapı boyutu)
  4. Kayıt sayısı kadar DÖNGÜYE GİR
  5. Dosya işaretçisini dosyanın başına taşı, “ozluk.dat” dan ogr yapı değişkenini ogr boyutu kadar, 1 kez oku.
  6. ogrno ve noara değişkenlerini karşılaştır ikisi birbirine eşitse yapı değişkenleri ekranda göster değilse “Aranan kayıt Bulunamadı” yaz
  7. DUR

ALT PROGRAM – KAYIT

  1. BAŞLA
  2. “ozluk.dat” dosyasını yarat ve aç
  3. Ekrandeki yazılı olan herşeyi temizle (System(“CLS”))
  4. Ogr yapısının içerisinde tanımlanmış tüm bilgileri kullanıcıdan al ve dosya işaretçisini dosyanın sonuna taşı.
  5. “ozluk.dat” a ogr yapı değişkenini ogr boyutu kadar 1 kez yaz.
  6. Tampon bellek (Daha önceden girilmiş önbellekteki bilgiler) temizle ve “devam etmek için bir tuşa basınız” yaz
  7. DUR

ALT PROGRAM – LİSTELEME

  1. BAŞLA
  2. Ekranda yazılı olan herşeyi temizle (system(“CLS”)) ve Aranacak Ögrenci Numarasını Giriniz yaz.
  3. Klavyeden girilen değeri noara değişkenine eşitle kayıt miktarını bul (Dosya boyutu / Struct yapı boyutu)
  4. Kayıt sayısı kadar DÖNGÜYE GİR
  5. Dosya işaretçisini dosyanın başına taşı, “ozluk.dat” dan ogr yapı değişkenini ogr boyutu kadar, 1 kez oku.
  6. Tüm yapı bilgilerini yazdır. “Devam etmek için bir tuşa basınız” yaz ve getch() fonksiyonunu kullan.
  7. DUR

Algoritma Açıklaması:

ANA PROGRAM

Dosyaya veri yazma ve okuma işlemlerimiz için öncelikle bir dosyaya ihtiyac duyduğumuzdan ilk aşamada dosyayı oluşturup, ikincisinde dosyayı açıyoruz. Bu işlemler sırasında eğer bir hata varsa “Dosya açılamadı” yazıp çıkıyoruz, eğer hata yoksa işleme devam ediyoruz

Kayıtları almak için bir döngüye giriyoruz. Döngü içerisinde Projeye uygun bir şekilde menu oluşturuyoruz. Bu menüde projeye uygun olaran Öğrencilerin Bilgi Girişi, Arama ve Listeleme ve Programdan Çıkış konulmuş. Döngü secim’e eşitse çıkıyoruz değilse tekrar seçim yapmayı zorluyoruz.

ALT PROGRAM – ARAMA

Kayıtları en baştan taramamız için kayıt işaretçsini dosyanın başına getirmemiz gerekir fakat bundan önce metinleri temizlemeyerek her bir yapının aynı boyuttu olduğunu varsayarak Dosya Boyutu / Yapı formülüyle kayıt miktarını buluyoruz. Bu kayıt miktarı kadar döngüye girip kulanıcıdan alınan bilgiyle döngü içerisinde dönen bilgiler arasında bir karşılaştırma yapıyoruz. Eğer birbirlerine uyuşuyorlarsa yani denklerse bilgileri ekranda gösteriyoruz değiles “Aranan Kayıt Bulunamadı” diyerek programdan çıkıyoruz.

ALT PROGRAM – KAYIT

Bilgi girişi yaptıracağımızdan “ozluk.dat” dosyasını birinci aşamada yaratıp, ikinci aşamada açıyoruz. Ekranımızı bir güzel temizliyoruz. Girilen bilgilerin bir kitap gibi (yeni eklenen bilgiler sonda) olması amacıyla kayıt işaretçisini sona getirerek işlemimizi gerçekleştiriyoruz. Tampon bellediğimizi temizliyoruz ki önceden girdiğimiz bilgiler ile yeni gireceğimiz bilgiler birbirine girip çorba olmasın. Son olarak Kullanıcı tarafından aldığımız bilgileri “ozluk.dat” adlı dosyanın içerisine ekliyip alt programımızı sonlandırıyoruz.

ALT PROGRAM – LİSTELEME

Arama Alt programının yalnızca karşılaştırılmamış halidir.

C’de Öğrenci Otomasyonu programının Akış Diyagramı:

ANA PROGRAM

c-de-ogrenci-otomasyonu-ana-program

ALT PROGRAM – KAYIT EKLEME

c-de-dosya-icerisinde-arama-yapan-program-alt-kayit

ALT PROGRAM – ARAMA YAPMA

c-de-dosya-icerisinde-arama-yapan-program-alt-arama

ALT PROGRAM – KAYIT LİSTELEME

c-de-ogrenci-otomasyonu-kayit-listeleme

 

Akış Diyagramının Açıklaması:

Akış diyagramı ve açıklamalarını ulaşmak için tıklayın.

C Programlamanın Açıklaması:

C kodları nasıl çalıştırılır (derlenir) öğrenmek için tıklayın.

C Programının Temel Yapısı(Değişken Tipleri) Programlama hakkındaki açıklamalar için tıklayın.

C Programlamada kullanıcının bilgi girişi – çıkışı yapması için gerekli  açıklamar için tıklayın.

C’de Öğrenci Otomasyonu – C programı:

#include
#include
#include
#include
#include

FILE*f;
struct ogrneci
{
char no[10],ad[15],soyad[20];
char bad[15],aad[15],telno[10];
char memleket[20],adres[50];
} ogr;

int i,sec,kaysay;
char noara[10];

void giris(void)
{
FILE*f;
f=fopen("ozluk.dat","w+b");
system("CLS");
printf("\nÖgrenci No :"); scanf("%s",ogr.no);
printf("\nÖgrenci Adı :"); scanf("%s",ogr.ad);
printf("\nÖgrenci Soyadı :"); scanf("%s",ogr.soyad);
printf("\nBaba Adı :"); scanf("%s",ogr.bad);
printf("\nAnne Adı :"); scanf("%s",ogr.aad);
printf("\nTelefon No :"); scanf("%s",ogr.telno);
printf("\nMemleketi :"); scanf("%s",ogr.memleket);
printf("\nAdres :"); scanf("%s",ogr.adres);

fseek(f,filelength(fileno(f)),SEEK_SET);
fwrite(&ogr,sizeof(ogr),1,f);
fflush(f);
printf("\ndevam etmek için bir tusa basiniz");
getch();
}

int arama(void){

system("CLS");
printf("Aranacak Ögrenci Numarasını Giriniz:");
scanf("%s",&noara);
kaysay=filelength(fileno(f))/sizeof(ogr);
for(i=0;i

C programının açıklaması - C programlama:

 ANA PROGRAM

Fopen fonksiyonunu ve paremetrelerinikullanarak daha önce oluşturduğumuz dosyayı açtık. Koşul / Şart ifadesi if/else ile f’nin bir boş değeri eşit olup olmadığnı hesapladık. Eğer f dosya değişkeni boş yani NULL değerine sahipse printf() fonksiyonunu kullanarak kullanıcıya “Dosya açılamadı” cevabını vererek programı sonlandıracağız.

Eğer NULL değerine sahip değiles kullanıcıdan çeşitli bilgiler isteyeceğiz. System(“CLS”) ile ekranımımızda gördüğümüz bütün yazıları kaldırıyoruz/temizliyoruz. Daha sonra menu elemanlarımızı yine printf() fonksiyonunu kullanarak yazdırdık. Geldik kullanıcımızın secim yapmasına. Kullanıcı secim yaparken degeri scanf() fonksiyonuyla ile sec değişkenine aktardık ve switch case yapısını kullandık.

ALT PROGRAM – ARAMA YAPMA

Ana program içerisinde kullandığımız gibi system(“CLS”) kullanarak ekranımızda yazılı olan metinleri temizlemeyi başardık. “Aranacak Öğrenci Numarasını Giriniz” adlı metni ekranda gösterdik. Kullanıcı tarafından girilen degeri ise noara’ya aktardık. Dosya boyutunu yapı boyutuna bölerek kayıt sayısına ulaştık. Kayıt sayısı kadar değerlerimizi taramamıza yardımcı olması amacıyla for döngüsünü kullandık. Bu kayıtlar içerisinde fseek() komutu sayesinde işaretcimizi dosya içerisinde en başa taradık. Bunu dosyamızın en başa gelmesi için yaptık. fread ile dosyayı okuduk. string.h kütüphanesi (header) nin içerisinde bulunan strcmp karşılaştırma fonksiyonunu kullanarak ogr.no ile noara değişkenleri karşılaştırdık ve denk düşmeleri halinde printf() fonksiyonunu kullanarak ogr yapının içerisindeki  bilgileri yazdırdık. Eğer hiç bir kayıt bulunamazsa “Aranan Kayıt Bulunamadı” yazdır dedik.

Klavyeden girilen herhangi bir tuşa tıklanınca programımızın devam etmesini sağlayan getch(); fonksiyonunu kullandık.

ALT PROGRAM – KAYIT GİRME

FILE türünde yani dosya türünde “f” adında bir değişken oluşturduk. Oluşturduğumuz değişkeni fopen fonksiyonu kullanarak ozluk.datı w ve  b parametleriyle açtık. Ferror yani dosya açılma hatası verdiği takdirde Dosya açılamadı demesini eğer dosya açılmayı başardıysada oluşturduğumuz yapının içerisinde bulunan bilgileri printf() ve scanf() fonksiyonu yardımıyla almasını sağladık. fseek() fonksiyonuyla dosyamızın bir kitap şeklinde okunmas için sonuna gittik ve daha sonra fwrite() fonksiyonu sayesinde dosyamıza kayıtlarımızı geçirdik. Daha önceki kayıtlarımız ile karışmaması için artık/önbellek kayıtlarımızı fflush() fonksiyonu yardımıyla temizledik.

Önizleme:

c-de-ogrenci-otomayon-programı

C uygulamasının proje hali ve yazılımı:

Proje halindeki dosyayı indir.

Uygulama halindaki dosyayı indir.

Dizinin değerlerini tek ve çift olarak ekrana yazdıran program (Videolu)

N elemanlı dizinin değerlerini tek ve çift olarak ekrana yazdıran C  programının Algoritması

  1. BAŞLA
  2. “Kac deger gireleceginizi yazin: ” ekrana yazdır
  3. Kullanıcı tarafından girilen değeri N değişkenine eşitle
  4. Döngüye gir
  5. İ değişkenin mod10’a göre kalanı 3,4 veya 9 ile mi bitiyor? e:6 h:8
  6. %d.uncu yaz ve değerleri a dizisine ekle
  7. 9’a git
  8. %d.inci yaz ve değerleri a dizisine ekle
  9. Son eklenen a dizisi 2’ye tam olarak bölünüyor mu? e:10 h:12
  10. c=c+a[i];
  11. 11’e git
  12. t+t+a[i];
  13. Döngüden çık (i değişkeni N değişkenine eşit mi? e:12 h:4)
  14. Döngüye gir
  15. a dizisini ekrana yazdır
  16. Döngüden çık (i değişkeni N değişkenine eşit mi? e:17 h:14)
  17. DUR

Okumaya devam et “Dizinin değerlerini tek ve çift olarak ekrana yazdıran program (Videolu)”