C++ Hastane Otomasyonu

Arkadaşlar bunu da örnek olsun diye paylaşmak istedim.

C++’ta yazmış olduğum proje ödevimdi.

Sanırım dosyalama C’nin ve C++’ın en kolay konusu. Diğer konulara göre çok daha rahat anlaşılıyor.

Hadi gelin birlikte kodu inceleyelim.⇓

#include <iostream> // cout,cin vs. için 
#include <conio.h> //getch(); fonksiyonu için
#include <fstream> // dosyalama işlemleri için 
#include <string> // string türü için 
#include <windows.h> //komut ekranına renk vermek için 
#include <clocale> // Türkçe karakter için
#include <iomanip> //setw() için eklenen kütüphane
#include <stdio.h>


using namespace std;
int main()
 {
 system("color 80"); //komut ekranını renklendiriyoruz
 setlocale(LC_ALL, "turkish"); //Türkçe karakter ekliyoruz
 
 int secim;
 string HastaAdi; //Değişkenleri tanımladık
 string HastaSoyadi; 
 int TcNo; 
 int Telefon;
 int KayitNo;
 int HastaYas; 
 string HastaCinsiyet; 
 char islem;
 int TC;
 
 
 string Tarih; 
 string DoktorAdi; 
 string Teshis; 
 string Ilac;
 string Saat;
 string Tahliller;
 double Ucret;
 
 char cevap; 
 
 do{
 cout<<"1- Hasta kayıt ekleme"<<endl; //Menümüz
 cout<<"2- Hasta kaydı düzeltme"<<endl; 
 cout<<"3- Hasta silme"<<endl;
 cout<<"4- Randevu alma"<<endl; 
 cout<<"5- Randevu silme"<<endl; 
 cout<<"6- Randevu güncelleme"<<endl; 
 cout<<"7- Hasta sorgulama"<<endl; 
 cout<<"8- Hasta listesi alma"<<endl; 
 cout<<"9- Hasta muayene kaydı"<<endl; 
 cout<<"Yapmak istediginiz islemi seciniz:"<<endl;
 cin>>secim;
 
 switch(secim) //Seçim yapıyoruz
 {
 case 1:
 {
 
 cout<<"1- Hasta kayıt ekleme"<<endl; //Menüden numara seçerken önce kayıt ekleme yapıyoruz
 
 ofstream DosyaYaz; 
 DosyaYaz.open("Hasta.txt",ios::app); 
 do 
 { 
 cout<<"\n Hasta TC :"; cin>>TC; 
 cout<<"\n Hasta Adi :"; cin>>HastaAdi; 
 cout<<"\n Hasta Soyadi :"; cin>>HastaSoyadi; 
 cout<<"\n Hasta Yasi :"; cin>>HastaYas; 
 cout<<"\n Telefonu :"; cin>>Telefon; 
 cout<<"\n Cinsiyeti :"; cin>>HastaCinsiyet; 
 
 DosyaYaz<<TC<<" "<<HastaAdi<<' '<<HastaSoyadi<<' ' <<HastaYas<<' '<<Telefon<<' ' <<HastaCinsiyet<<endl; 
 cout<<"\n Baska kayit yapacak misiniz?(e/E) (h/H) ";cin>>cevap; 
 
 }while(cevap=='e' || cevap=='E'); 
 
 DosyaYaz.close(); 
 cout<< "Dosyaya yazim tamamlandi."<<endl; 
 
 break;
 }
 case 2:
 { 
 cout<<"2- Hasta kaydı düzeltme"<<endl;
 ifstream DosyaOku;
 DosyaOku.open("Hasta.txt",ios::app);
 cout<< "\n Hasta Bilgileri \n"; 
 cout<<"TC no :";
 cin>>TcNo;
 if(TC==TcNo) 
 { 
 DosyaOku.close(); 
 ofstream DosyaYaz; 
 DosyaYaz.open("Hasta.txt",ios::app); 
 cout<<"\n Hasta Adi :"; cin>>HastaAdi; 
 cout<<"\n Hasta Soyadi :"; cin>>HastaSoyadi; 
 cout<<"\n Hasta Yasi :"; cin>>HastaYas; 
 cout<<"\n Telefonu :"; cin>>Telefon; 
 cout<<"\n Cinsiyeti :"; cin>>HastaCinsiyet; 
 
 DosyaYaz.close(); 
 }
 else 
 cout<<"Kimlik Numarası bulunamadı"<<endl;
 break;
 } 
 case 3:
 /*{
 cout<<"3- Hasta silme"<<endl;
 ifstream DosyaOku;
 DosyaOku.open("Hasta.txt");
 cout<<"TC no:";
 cin>>TcNo;
 if(TC==TcNo)
 {
 remove("Hasta.txt");
 } 
 break;
 }*/
 case 4:
 
 {
 cout<<"4- Randevu alma"<<endl;
 
 cout<<" Hasta TC :";cin>>TC; 
 
 ifstream DosyaOku("Hasta.txt"); 
 while(!DosyaOku.eof()) 
 { 
 DosyaOku>>TcNo>>HastaAdi>>HastaSoyadi>>HastaYas>>Telefon>>HastaCinsiyet; 
 cout<<endl;
 if(TC==TcNo) 
 { 
 cout<< "\n Hasta Bilgileri \n"; 
 cout<<"TC no :"<<TcNo<<endl; 
 cout<<"Adı :"<<HastaAdi<<endl; 
 cout<<"Soyadı :"<<HastaSoyadi<<endl; 
 cout<<"Yası :"<<HastaYas<<endl; 
 cout<<"Telefonu :"<<Telefon<<endl; 
 cout<<"Cinsiyeti:"<<HastaCinsiyet<<endl; 
 cout<<"Randevu istiyor mu? (e/h)"<<endl; 
 cin>>cevap; 
 
 if (cevap=='e'|| cevap=='E') 
 { 
 DosyaOku.close(); 
 ofstream DosyaYaz; 
 DosyaYaz.open("RandevuAl.txt",ios::app); 
 
 cout<<"\n Randevu Bilgileri \n"; 
 cout<<"\n Tarih :"; cin>>Tarih; 
 cout<<"\n Doktor Adi :"; cin>>DoktorAdi; 
 cout<<"\n Teshis :"; cin>>Teshis; 
 cout<<"\n Muayene Ucreti :"; cin>>Ucret; 
 
 DosyaYaz <<TcNo<<" "<<Tarih<<' '<<DoktorAdi<<' ' <<Teshis<<' '<<Ucret<<"\n";
 DosyaYaz.close(); 
 }
 }
 }
 break;
 }
 
 case 5:
 /*{
 cout<<"5- Randevu silme"<<endl;
 break;
 }*/
 case 6:
 {
 cout<<"6- Randevu güncelleme"<<endl;
 
 
 ifstream DosyaOku("Hasta.txt",ios::in); 
 cout<<"TC no:";
 cin>>TcNo;
 if(TC==TcNo)
 { 
 cout<< "\n Hasta Bilgileri \n"; 
 cout<<"TC no :"<<TcNo<<endl; 
 cout<<"Adı :"<<HastaAdi<<endl; 
 cout<<"Soyadı :"<<HastaSoyadi<<endl; 
 cout<<"Yaşı :"<<HastaYas<<endl; 
 cout<<"Telefonu :"<<Telefon<<endl; 
 cout<<"Cinsiyeti:"<<HastaCinsiyet<<endl; 
 
 ofstream DosyaYaz;
 DosyaYaz.open("Muayene.txt",ios::app);
 { 
 cout<<"\n Randevu Bilgileri \n"; 
 cout<<"\n Tarih :"; cin>>Tarih; 
 cout<<"\n Doktor Adi :"; cin>>DoktorAdi; 
 cout<<"\n Teshis :"; cin>>Teshis; 
 cout<<"\n Muayene Ucreti :"; cin>>Ucret; 
 
 DosyaYaz.close();
 ofstream DosyaYaz;
 }
 DosyaOku.close(); 
 ifstream DosyaOku; 
 
 }
 else
 cout<<"Böyle bir kişi bulunmamaktadır.";
 
 break;
 }
 case 7: 
 { 
 cout<<"7- Hasta sorgulama"<<endl;
 
 cout<<" Hasta TC :";cin>>TC; 
 ifstream DosyaOku("Hasta.txt"); 
 while(!DosyaOku.eof()) 
 { 
 DosyaOku>>TcNo>>HastaAdi>>HastaSoyadi>>HastaYas>>Telefon>>HastaCinsiyet; 
 if(TC==TcNo) 
 { 
 cout<< "\n Hasta Bilgileri \n"; 
 cout<<"TC no :"<<TcNo<<endl; 
 cout<<"Adı :"<<HastaAdi<<endl; 
 cout<<"Soyadı :"<<HastaSoyadi<<endl; 
 cout<<"Yaşı :"<<HastaYas<<endl; 
 cout<<"Telefonu :"<<Telefon<<endl; 
 cout<<"Cinsiyeti:"<<HastaCinsiyet<<endl; 
 TC=TcNo; 
 
 DosyaOku.close(); 
 ofstream DosyaYaz; 
 DosyaOku.open("Muayene.txt",ios::in); 
 cout<<" randevu bilgileri \n"<<endl; cout<<setw(11)<<" TC "<<setw(10)<<" Tarih "<<setw(12)<<" Doktor Adi "<<setw(10)<<" Teshis "<<setw(6)<<" Ucret"<<endl; 
 while(!DosyaOku.eof()) 
 { 
 
 DosyaOku>>TcNo>>Tarih>>DoktorAdi>>Teshis>>Ucret; 
 
 if(TC==TcNo) 
 { 
 cout<<setw(11)<< TcNo<<setw(10)<<Tarih<<setw(12)<< DoktorAdi<<setw(10)<< Teshis<<setw(6)<< Ucret<<endl; 
 } 
 } 
 DosyaYaz.close();
 

 } 
 } 
 

 break;
 }
 case 8:
 {
 cout<<"8- Hasta listesi alma"<<endl;
 ifstream DosyaOku;
 DosyaOku.open("Hasta.txt",ios::in);
 
 while(!DosyaOku.eof()) 
 { 
 DosyaOku>>TcNo>>HastaAdi>>HastaSoyadi>>HastaYas>>Telefon>>HastaCinsiyet; 
 cout<<"\n Hasta Bilgileri \n"; 
 cout<<"TC no :"<<TcNo<<endl; 
 cout<<"Adı :"<<HastaAdi<<endl; 
 cout<<"Soyadı :"<<HastaSoyadi<<endl; 
 cout<<"Yaşı :"<<HastaYas<<endl; 
 cout<<"Telefonu :"<<Telefon<<endl; 
 cout<<"Cinsiyeti:"<<HastaCinsiyet<<endl; 
 
 DosyaOku.close();
 }
 break;
 }
 
 case 9: 
 {
 cout<<"9- Hasta muayene kaydı"<<endl;
 ifstream DosyaOku;
 DosyaOku.open("Hasta.txt",ios::in);
 
 
 { 
 
 do{
 if(DosyaOku.eof()) break;
 else
 DosyaOku>>TcNo>>DoktorAdi>>Teshis>>Tahliller>>Ilac; 
 cout<<"\n Hasta Bilgileri \n"; 
 cout<<"\n Doktor Adı :"<<DoktorAdi; 
 cout<<"\n Teşhis:"<<Teshis;
 cout<<"\n Tahlil Bilgileri :"<<Tahliller; 
 cout<<"\n İlaç :"<<Ilac; 
 }while(true);
 
 
 do{
 if(DosyaOku.eof()) break; 
 
 else
 
 DosyaOku>>TcNo>>HastaAdi>>HastaSoyadi>>HastaYas>>Telefon>>HastaCinsiyet; 
 cout<<"\n Hasta Bilgileri \n"; 
 cout<<"TC no :"<<TcNo<<endl; 
 cout<<"Adı :"<<HastaAdi<<endl; 
 cout<<"Soyadı :"<<HastaSoyadi<<endl; 
 cout<<"Yaşı :"<<HastaYas<<endl; 
 cout<<"Telefonu :"<<Telefon<<endl; 
 cout<<"Cinsiyeti:"<<HastaCinsiyet<<endl; 
 
 }while(true);
 
 
 ofstream DosyaYaz;
 DosyaYaz.open("Randevu.txt",ios::app);
 DosyaYaz.close();
 }
 DosyaOku.close();
 
 break;
 }
 }
 
 
 cout<<"İslem yapmaya devam etmek istiyor musunuz? (e/E) (h/H)";
 cin>>islem;
 }while(islem=='e' || islem=='E'); //İşlemi yaptıktan sonra karşımıza tekrar menü
 cout<<endl; //çıkmasını sağlıyor
 getch(); 
 
 }
Reklamlar

C++ Dosyalama

  • fstream (Okuma ve Yazma)
  • ifstream (Okuma)
  • ofstream (Yazma)
    (C++ da dosyalama işlemleri C den oldukça farklıdır.) C++’ta dosyalama işlemleri için kullandığımız yukarıdaki komutlar aslında sınıf diye geçer. Kullanım şeklimiz bu şekilde: (“Dosyaİsmi”, Mod)

    • ios::in (Veri okuma modu)
    • ios::out (Veri yazma modu)
    • ios::app (Veri ekleme modu)    bunlar da modlarımız arkadaşlar.
      Şimdi aşağıdaki örneği inceleyelim.
#include <fstream>
#include <string>
#include <windows.h>
#include <iomanip>   //setw için
using namespace std;
int main()
{
 fstream dosya;
 
 dosya.open("melis.txt",ios::out|ios::in|ios::app);
 dosya<<"Benim Dosyam."; //dosyaya veri yazdırıyoruz
 
 dosya.setf(ios::left); //sola yaslamak için
 dosya<<setw(20)<<"aaa"<<setw(20)<<"bbbb"<<setw(20)<<"36786"<<endl; 
 // 20+20+20 karakterlik yer alsın setw(20)
 
 dosya.close();
}

C++ Dilinde Pointer (İşaretçiler)

İşaretçiler, diyince aklımıza ilk olarak adresler gelmeli arkadaşlar. Çünkü işaretçiler, değişkenin hafızadaki adresini gösterir. İşaretçileri tanımlarken başlarına ‘*’ operatörü koyarız. Adres operatörü olarakta ‘&’ kullanırız.

#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
 int a=20;
 int *b;
 b=&a;       //a'nın adresini b işaretçisine atayıp yazdırdı.
 cout<<&b;
 
 getch();
 return 0;
}

// referance: &
// deferance: *

C++ Dilinde Kalıtım ve Kurucu Fonksiyonlar

C++’ta yazılan kodun yeniden kullanılabilmesini sağlayan mekanizmaya kalıtım diyoruz. Yani katılım, bir sınıfın alınıp, başka bir sınıfın içerisinde bilgilerinin kullanabilmesidir. Bu özellik yazılım yaparken işimizi oldukça kolaylaştırıyor. Burada kurucu fonksiyonlardan da bahsetmek istiyorum. Öncelikle, kurucu fonksiyonlar (Constructors) üyesi oldukları sınıf ile aynı ismi taşırlar ve üyesi oldukları sınıftan bir nesne yaratılırken kendiliğinden canlanırlar. Ayrıca kurucular parametre alırlar ama geri dönüş değerleri yoktur.

#include <iostream>
#include <conio.h>
using namespace std;

class sekil
{
 public:
 int alan;
 string birim;
 string sekilturu; 
 void alanyazdir()
 {
 cout<<sekilturu<<" "<<alan<<" "<<birim<<" "<<endl;
 } 
 sekil()
 {
 birim="cm2";
 }
};

class ucgen:public sekil
{
 public:
 int yukseklik,taban;
 ucgen()
 {
 sekilturu="ucgen";
 }
 
};

class dikdortgen:public sekil
{
 public:
 int en,boy;
 dikdortgen()
 {
 sekilturu="dikdortgen";
 }
};

class kare:public sekil
{
 public:
 int kenar;
 kare()
 {
 sekilturu="kare";
 }
};

class daire:public sekil
{
 public:
 int yaricap;
 daire()
 {
 sekilturu="daire";
 }
};

int main()
{
 kare k1;
 k1.kenar=10;
 k1.alan=k1.kenar*k1.kenar;
 k1.alanyazdir();
 
 daire d1;
 d1.yaricap=10;
 d1.alan=3.14*d1.yaricap*d1.yaricap;
 d1.alanyazdir();
 
}

C++ Dilinde Class Yapısı

Sınıf yapısı ile birlikte OOP (object oriented programming) yani nesneye dayalı programlamaya başladık arkadaşlar.

Bu yapı struct (yapı) ile oldukça benzerdir ve kullanımı aynıdır. struct ile class arasındaki fark:

“Sınıfların referans türünde, yapıların ise değer türünden olmasıdır. Bundan dolayı yapılar stack (yığın) alanı üzerinde, sınıflar ise heap (öbek) alanı üzerinde tutulurlar. Sınıflara referans aracılığıyla ulaşılırken yığınlara ise doğrudan ulaşabiliriz. Bu nedenle yapı kullanımı sınıf kullanımına göre daha az maliyetlidir ve erişim hızı yüksektir.”

Şimdi gelelim aşağıdaki örneğimize. Burada bir daire sınıfı tanımladık ve elemanlarını public yaptık (yani dışarıdan erişilebilir). Sınıfın dışında bir hesap fonksiyonu oluşturduk ve main() fonksiyonunun içine çevre ve alanı yazdırdık. Bunu daire tipinde bir nesne oluşturarak ve hesap() fonksiyonu ile gerçekleştirdik.

#include <iostream>
#include <conio.h>
using namespace std;
class daire
{ 
 public:
 float cevre,alan;
 int hesap();
};

int daire::hesap()
{
 int yaricap;
 cout<<"Yaricapi giriniz:"<<endl;
 cin>>yaricap;
 cevre=2*3.14*yaricap;
 alan=3*yaricap^2;
 cout<<"Cevre:"<<cevre<<endl<<"Alan:"<<alan<<endl;
 return 0;
}
int main()
{
 daire nesne;
 cout<<nesne.hesap();
 getch();
}

C++ Dilinde Veri Tipi Dönüşümü

C++ dilinde tip dönüşüm örneğini inceleyebilirsiniz.♣

#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
 char ch;

 cout << "Karakter giriniz: \n "<<endl;
 ch=getch();
 cout<<endl;
 cout <<"Girilen karakter: "<<endl<<ch<<endl<<"sayi karsiligi: "<<endl<<(int)ch<< endl;
 
 return 0;
}

C++ Dilinde Struct Yapısı

Selam,
Struct, integer gibi bir veri tipidir.

Öncelikle, main() fonksiyonunun üstünde struct yapısını oluşturuyoruz. Yani struct tipinde bir ‘kişi’ değişkeni tanımlıyoruz. {Süslü parantezleri unutmayınız.}

Bir farklılık olarak struct yapısında süslü parantezden sonra “;” kullanılıyor. Gerisini daha önce gördüğümüz şekilde oluşturuyoruz.

#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;

struct kisi
{
 char ad[30];
 char soyad[25];
 int yas;
}deneme;

main()
{
 strcpy(deneme.ad,"Melis");
 strcpy(deneme.soyad,"Turkoglu");
 deneme.yas=20;
 cout<<"Adi:"<<deneme.ad<<endl;
 cout<<"Soyadi:"<<deneme.soyad<<endl;
 cout<<"Yasi:"<<deneme.yas<<endl; 
}