Marmara Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği 2021 Bahar dönemi Bilgisayar Programlama 1 dersi projesidir. Ders içeriği olarak işlenen konuların uygulaması yapılmıştır.
Projemiz 5 kısımdan oluşmaktadır.
- İlgili kütüphanenin projeye dahil edilmesi
- Global değişkenlerin ve sabitlerin tanımlanması
- Fonksiyon bildirimlerin yapılması
- Enum ve Struct veri yapıların tanımlanması
- Struct veriyapıların oluşturulması
- Fonksiyonların yazılması
- Main (ana) fonksiyonun içeriğin oluşturulması
Projemizde kullanılan kütüphaneler kod blokların içerisinde belirtilmiştir.
#include <stdio.h>
#include <string.h>
#include <locale.h>
#include <time.h>
#include <stdlib.h>
#include <windows.h>
Projede bildirilen gloabel değişkenler ve sabitler aşağıdaki gibidir:
int const SMBaslama=8, SMGenislik=28, YMSatir=8, YMSutun =40, YMGenislik=18, IcerikSatir=11, IcerikSutun=40;
int const IcerikEtiket=20, IcerikGenislik=18, YUKSEKLIK=1;
short satir, kolon, karakter=219 , DMSecim=0, YMSecim=0, KBSecim=0, YAPSecim=0, SBSecim=0, ss, GirisKontrol=0;
char ListeSecim[3]="0";
unsigned char tus;
void DikeyMenuSecim();void YakinaAitBilgi(); void SaglikBilgi();void YatayMenu(short s, short byt);void SakinListele();
void YatayMenuSecim();void KYatayMenuSecim();void sifreEkrani();
Boolen veri yapısını projemize dahil etmek için enum yapısı kullanılmıştır. F ve T ifadeleri ile durumun FALSE(0) yada TRUE(1) bildirimi yapılması sağlanmıştır.
Standart veri yapıların yetersiz kaldığı durumlarda kullanıcı tanımlı veri yapıları oluşturulmuştur. Menulerin içeriğini sakladığımız ( baslik, uzunluk , altbaslik vb...) bir veri yapı tanımlanmıştır.
enum boolean{ F, T }durum=T;
struct Menu{
char baslik[25];
short uzunluk;
short AltBaslikAdet;
char AltBaslik[5][18];
};
struct Icerik {
char e[20]; //etiket
char i[25]; // icerik
};
typedef struct{
char tc[25],adi[25],soyadi[25],dogum[25],yakin[25],yadi[25],ysoyadi[25],ytel[25],tani[25],ilac[25],klnsekli[25],klnskl[25];
}Kisi;
typedef struct {
Veri yapısı tanımlandıktan sonra projemizde bu veri yapıları kullanılarak ilgili başlıklar oluşturulmuştur.
struct Menu SolMenuBasliklari [8]={
{"K A Y I T",9,4,{"Kisisel Bilgi","Yakina Ait Bilgi","Saglik Bilgi","KAPAT"}},
{"S A K I N L E R",15,2,{"Listele","KAPAT"}},
{"A R I Z A & T A L E P",22,3,{"Ariza","Talep","KAPAT"}},
{"P E R S O N E L",15,2,{"Listele","KAPAT"}},
{"D E P O",7,4,{"Urun Giris","Urun Cikis","Listele","KAPAT"}},
{"G U N L U K",11,5,{"Kahvalti","Ogle","Aksam","Etkinlik","KAPAT"}},
{"H A K K I M I Z D A",19,0,{0}},
{"C I K I S",9,0,{0}}
};
struct Icerik KisiselBilgiBaslik [4]={
{"TC Numarasi","____________________"},
{"Adi","____________________"},
{"Soyadi","____________________"},
{"Dogum Tarihi","____________________"},
};
struct Icerik YakinaAitBilgiBaslik [4]={
{"Yakinligi","____________________"},
{"Adi","____________________"},
{"Soyadi","____________________"},
{"Telefon","____________________"},
};
struct Icerik SaglikBilgiBaslik [4]={
{"Tani","____________________"},
{"Ilac Adi","____________________"},
{"Kullanim Sekli","____________________"},
{"Kullanim Sikligi","____________________"},
};
struct Menu SakinSolMenuBasliklari [10]={
Proje içerisinde kullanılan fonksiyonlar şu şekildedir:
void TamEkran(){}
void ImlecGizle(){}
void ImlecGoster(){}
void git(int s,int k){}
void Isaretle(short x, short y, short u, short d){}
void IcerikYazIsaretle(short x, short y, short u, short d, char icerik[25]){}
void DikeyMenu(struct Menu M[], short byt, short x, short w){}
void YatayMenu(short s, short byt){}
void EkranTaslak(){ }
void TarihSaatBilgisi(){}
void Temizle(){}
void IcerikTemizle(){}
void VarsayilanDegerler(){}
void Buton(short x, short y, char b[]){git(x,y); printf("%s",b);}
void KisiselBilgiGiris(){}
void YakinaAitBilgiGiris(){}
void SaglikBilgiGiris(){}
void DosyayaYaz(char dsyAdi[15], Kisi k){}
void DosyaOku(char dsyAdi[15], short x, short y, int g[]){}
void Kaydet(){}
void EkleIleri2(){}
void EkleIleri(){}
void YakinaAitBilgi(){}
void SaglikBilgi(){}
void KisiselBilgi(){}
void TabloOlustur(short x, short y, short secim,short detay, short sil,short kapat ){}
void SakinDetayGetir(int x){}
void SakinSil(int x){}
void SakinListele(){}
void ArizaListele(char dosyaadi[]){}
void hakkimizda(x,y,w,h){}
void Kontrol(){}
void YatayMenuSecim(){}
void DikeyMenuSecim(){}
void KYatayMenu(short s, short byt){}
void KDikeyMenuSecim(){}
void KYatayMenuSecim(){}
void isimyaz(){}
void sifreEkrani(){}
Konsol ekranını tam ekran yapar.
Konsol ekranında imlecin yanıp sönmesini gösterilmesini veya gizleme işlemini yapar.
s ve k adlı iki parametre alır. Bu parametreler ile konsol üzerinde ilgil konuma gidilmesini sağlar. s satir bilgisini saklarken k bilgisi sütun bilgisini saklar.
Dört parametre alır. x, y , u ve d parametleri ile ilgili kullanıcıdan şu bilgileri toplar. x : İlgili işaretlemenin yapılacağı satır bilgisi y : İlgili işaretlemenin yapılacağı sütun bilgisi u : İlgili işaretlemenin yapılacağı uzunluk bilgisi d : İşaretlemin yapılıp yapılmayacağı bilgisi
Bu fonksiyon ile ilgili metnin etrafına dikdörtgen çizimi yapılması sağlanır.
İşaretle fonksiyonun benzeridir. İşaretle fonksiyonun parametrelerine ek olarak içerik bilgisini de alır. Bu şekilde direk işaretle yanında ilgili yazının yazılmasını sağlar.
İlgili ekranın sol düşey menünun oluşturulduğu bölümdür. 4 parametre alır. M : Menü struct bilgisini alır. Menü başlıklarını içerir. byt : Menü sayısının belirtildiği kısımdır. x : Menünün yazılmaya başlanacağı satır bilgisini alır. w : Menü başlıkların yazılacağı genişlik alanın bilgisini alır bu bilgiye göre yazının ortalanmasını sağlar
Düşey menüden seçilmesi ile gelecek yatay menüyü oluşturur. 2 parametre alır. s : Seçim yapıldığı düşey menü bilgisini alır byt : Seçimin yapıldığı düşey menünün kaç alt başlık içerdiği bilgisini alır.
Ekran taslağının oluşturulduğu bölümdür.
Ekran taslağında tarih ve saat bilgisinin yazıldığı fonksiyondur.
Düşey menü seçiminden sonra oluşturulan içeriği temizler.
Yatay menü seçiminden sonra oluşturulan içeriği temizler
Sakin kayıt sırasında oluşturulan içerik verilerin varsayılan değer almasını sağlar.
Buton oluşturulmasını sağlayan fonksiyondur.
Sakin alt başlık giriş bilgilerin oluşturulduğu fonksiyonlardır.
Verilerin ilgili dosyalara yazılması ve ilgili dosyadan verilerin okunmasını sağlayan fonksiyonlardır.
Girilen verilerin struct yapılarına kayıt edildiği kısımdır.
Ekle ve ileri butonların seçiminin yapıldığı bölümdür.
Sakin kayıtların yapılması için ilgili alt menü başlık içeriklerin oluşturulduğu ve verilerin alındığı bölümdür.
Tablo oluşturulmasını sağlar.
Sakin bilgilerin listelendiği, silindiği ve detay bilgilerin getirildiği bölümdür.
Arıza kayıtların listelenmesi sağlandığı fonksiyondur.
Hakkımızda düşey menü içeriğin oluşturulduğu kısımdır. 4 parametre alır. x : İlgili içeriğin başlanılacağı satır bilgisini alır y : İlgili içeriğin başlanılacağı sütun bilgisini alır w : İlgili içeriğin yazılacağı genişlik bilgisini alır h : İlgli içeriğin yazılacağı yükseklik bilgisini alır
Yatay ve düşey menü seçimlerin sonucunda çalıştırılacak fonksiyonların içerdiği fonksiyondur.
Yatay menünün oluşturulduğu ve ilgili başlıkların arasında gezinmenin sağlandığı bölümdür.
Düşey menünün oluşturulduğu ve ilgili başlıkların arasında gezinmenin sağlandığı bölümdür.
Sakin giriş ekranında giriş yapanın bilgisin yazıldığı bölümdür.
Programın çalıştırılması ile giriş ekranın oluşturulduğu ve giriş kontrolün sağlandığı kısımdır.