21 Ocak 2016 Perşembe

AdalıCam Staj -- İstasyon Takip Projem -- staj notlar

Form Boyutlarını kitlemek için formun proporties ayarlarından AutoSizeMode kısmını GrowandShrink yapmanız formunuzu sabit bir hal almasını sağlar
C# nott
--------------------------------



Araştırma Raporları-1 uzak sql e baglanma
--------------------------------------------------------------  
   SqlConnection baglanti = new SqlConnection(@"Data Source=server ip si \\SQL SERVER ADI,1433;Network Library=DBMSSOCN;Initial Catalog=databse alanı ;User ID=sa;Password= şifre alanı");
---------------------------------------------------------------
adalıcam serverındaki sql e baglanmak için gerekli connection 
ayrıca serverdan gerekli  tcp ve udp  portları açılması gerekli  ayarların yapılması lazım.

gerekli  ayarları **sql configuration manager** ' dan ayarlanması lazım
NOT:resimler daha sonra yüklenicek +
------------------------------
+ servera baglanması gereken üretim bilgisayarına portlar açıldı +
-------------------------------------
active directory den userd mod lar ayarlanmdı ..++
-----
--------------------------
projede tamamlanana kısısmlar
+ adalıcam istasyon takip excel doyasındaki veriler adalıcamın kıraç taki  Serverında bulun Sql e aktarıldı
+ c# tan arayüz oluşturuldu ve  sql verilere ulaşma ve kontrol için  2 yetki verildi  birisi admin  birisi sadece görüntüleme ve filtreleme yapar
+ Yetkiler Arttılırdı Her bölüm için ayrı yetki giridildi (Üretim bölüm için) yaklaşık 8 ayrı yetki ereşimi
+ Yazıcıdan adalicamın fatura kesimini özel sayfa ayarlandı ve grid üzerindeki siparsis no , tarih , müşter, proje ilgili alanlara kondu ,
+ biten projelerin sevk durumu olumlu yapılarak , teslim edelin proje alanları yeşil renk verildi

-----
Ekranda Arama,Silme Güncelleme Kaydetme , Yazıcıdan çıktı tüm tabloyu görme  işlmeleri mevcuttur ayrıcı şuan sevk durumu tamamlanmış ürün olmadığı içi datarows lar defaulttur sevk durumu tamamllandığın da rows lar light yeşil olur .



Kullanıcı Girişi Her bölüme ait yetkiler vardır Satış Personeli tüm alanlara erişir , Üretim bölümdekilere Yazıcı ve arama işlemleri ve Kendi bölümleriyle alakalı alnlara erişimi yetksi verilmiştir



Yazıcı Çıktısı İstenilen form üzerinden alınır , forma Tarihler ,siprasi no, müşteri ve projeler otomatik atılır 



Örnek Sınırılı kullancı;





Eklenenler...





12 Ocak 2016 Salı

Veri Yapıları 1 // C++ Vektörler Ardışık diziler

*************Main *****************

#include "Vektor.h"
#include "Yolcular.h"
#include "Otobusler.h"

#include
#include
#include "conio.h"
#include "string.h"
#include

using namespace std;

Vektor *oto1 = new Vektor();
Vektor *oto2 = new Vektor();

void dosyalama(){
ifstream yolculisteoku("Yolcular.txt");
int x;
int koltukno;
        string ad;
while(!yolculisteoku.eof()){
for(x=1;x<=10;x++){
yolculisteoku>>ad>>koltukno;
oto1->insert(koltukno-1,ad);
}
for(x=11;x<21 p="" x=""> yolculisteoku&gt;&gt;ad&gt;&gt;koltukno;
oto2-&gt;insert(koltukno-1,ad);
}
}
yolculisteoku.close();
}

int main() {
string temp;
string tut;
string *tutpt;
string *tutpt2;
setlocale(LC_ALL,"Turkish");
dosyalama();
cout&lt;&lt;"Yolcu Değişimi olmadan önceki hali :"&lt;cout&lt;&lt;"1.Otobüs:"&lt;for(int y=0;y<10 p="" y=""> cout&lt;&lt;"("&lt;yolcular[y]&lt;&lt;","&lt;yolcular+y&lt;&lt;")"&lt;&lt;"-";
}
cout&lt;cout&lt;&lt;"2.Otobüs"&lt;for(int y=0;y<10 p="" y=""> cout&lt;&lt;"("&lt;yolcular[y]&lt;&lt;","&lt;yolcular+y&lt;&lt;")"&lt;&lt;"-";
}
cout&lt;cout&lt;&lt;"*******************************"&lt;cout&lt;&lt;"Değişim olduktan sonraki yolcu hali :"&lt;cout&lt;&lt;"1.Otobüs:"&lt;
tutpt=oto1-&gt;yolcular;
oto1-&gt;yolcular=oto2-&gt;yolcular;
oto2-&gt;yolcular=tutpt;

for(int y=0;y<10 p="" y=""> cout&lt;&lt;"("&lt;yolcular[y]&lt;&lt;","&lt;yolcular+y&lt;&lt;")"&lt;&lt;"-";
}
cout&lt;cout&lt;&lt;"2.otobüs"&lt;for(int y=0;y<10 p="" y=""> cout&lt;&lt;"("&lt;yolcular[y]&lt;&lt;","&lt;yolcular+y&lt;&lt;")"&lt;&lt;"-";
}
cout&lt;
return 0;
}
*******************************************
**Kaynak Dosyalar **
***********************
#include "Yolcular.h"
#include "Vektor.h"
#include "Otobusler.h"
********************************************
**Başlık Dosyaları**
***********************
#ifndef OTOBUSLER_H
#define OTOBUSLER_H
#include "Vektor.h"

class otobusler{
private:
yolcuNesne *oto1;
yolcuNesne *oto2;
int koltuk;
public:
otobusler(string *yolcuAdi[boyut],int koltukno ){
    oto1= new yolcuNesne(yolcuAdi[boyut]);
    oto2=new yolcuNesne(yolcuAdi[boyut]);
    koltuk=koltukno;
}
~otobusler(){
delete oto1;
delete oto2;
}
};
#endif
*****************************
#ifndef VEKTOR_H
#define VEKTOR_H

#include
#define boyut 10
#include "Yolcular.h"

using namespace std;


template
class Vektor{
//friend dosyalama(Vektor);
public :
yolcuNesne *yolcular;
int yolcuSayisi;
public:
Vektor()
{
yolcuSayisi = 10;
yolcular = new yolcuNesne[boyut];

}
Vektor(const Vektor &amp;sag) // Copy constructor
{
yolcuSayisi = 0;
yolcular = new yolcuNesne[boyut];
for(int i=0;i insert(i,sag.at(i));
}
}
int size() const
{
return yolcuSayisi;
}
bool isEmpty() const
{
return size() == 0;
}
const yolcuNesne&amp; at(int i) //const throw(Tasma)
{
if(i<0 i="">=yolcuSayisi) //throw Tasma("indeks sinirlar disinda!"); 
return yolcular[i];
}
void erase(int i)// throw(Tasma)
{
if(i<0 i="">=yolcuSayisi)// throw Tasma("indeks sinirlar disinda!"); 
for(int j=i+1;j yolcuSayisi--;
}
void insert(int i,const yolcuNesne&amp; yeni)// throw(Tasma)
{
if(i<0 i="">yolcuSayisi) //throw Tasma("indeks sinirlar disinda!"); 
for(int j=yolcuSayisi-1;j&gt;=i;j--) yolcular[j + 1] = yolcular[j];
yolcular[i] = yeni;
yolcuSayisi++;
}
void set(int i,const yolcuNesne&amp; yeni) //throw(Tasma)
{
if(i<0 i="">=yolcuSayisi) //throw Tasma("indeks sinirlar disinda!");
yolcular[i] = yeni;
}
~Vektor()
{
delete [] yolcular;
}

};
#endif
************************************
#ifndef YOLCULAR_H
#define YOLCULAR_H
#define boyut 10
#include
using namespace std;

class yolcuNesne{
private:
string yolcular;
    public:
    yolcuNesne(string yolcu[boyut]):yolcular(yolcu[boyut]){}
   
};
#endif
****************************************
Make File
****
hepsi: compile debug
compile:
g++ -I ./include/ -o ./lib/Vektor.o -c ./src/Vektor.cpp
g++ -I ./include/ -o ./lib/Yolcular.o -c ./src/Yolcular.cpp
g++ -I ./include/ -o ./lib/Otobusler.o -c ./src/Otobusler.cpp
g++ -I ./include/ -o ./bin/Test ./lib/Vektor.o ./lib/Yolcular.o ./lib/Otobusler.o ./src/Test.cpp
debug:
./bin/Test

2 Ocak 2016 Cumartesi

Mobil development Not

Xamarin ile Android - IOS uygulamayı VS Studio 2015 ile ücretsiz uygulama geliştrimek istiyorsanız..
1 => Microsoft Hotmail hesabı açmanız gerekiyor.
2 => Microsoft Dreamspark üye olmalısınız.
3 => Üniversite mailinizi açmanız yada oluşturmanız gerekiyor.
4 => Dreamspark'a üye olurken üniversite e-mail adresi girmenizi isteyecek
5 => Çünkü doğrulama kodu gönderiyor sizin öğrenci olup olmadığınızı bilmek için.
5 => Eğer dreamspark a başarılı bir üyelik gerçekleştirdiyseniz ürünler kısmında Xamarin Studio Students indirmeniz gerekecek.
6 => İndirme başlamadan önce sizi Xamarin in sitesine yönlendirecek.
7 => Xamarin de Dreamspark ile Students üyelik oluşturmanızı isteyecek.
8 => Kredi kartı isteyecek bilgilerinizi girmeye gerek yok.
9 => Eğer herşeyi başarılı bir şekilde gerçekleştirdiyseniz 2000 $ lık ürün paketini 1 senelik kullanmaya hak kazanacaksınız.
10 => Gerisi sizde başarılı ve işinize yarayacak uygulamalar geliştrimeniz dileğiyle...
11 => Xamarinin sitesinde Android ve IOS için bilmeniz gereken herşey
https://xamarin.com bulabilirsiniz.

C/C++ Arşiv Kod 2014-2015

// ConsoleApplication4.cpp : Defines the entry point for the console application.
//
// Ahmet YENEN B130910031

#include "stdafx.h"
#include
#include
using namespace std;

int ara(char *ptr_c, char *ptr_k){
int sayac = 0, dkar = 0, k_uzunluk = 0;
char *ptr_temp, *ptr_temp2;
ptr_temp = ptr_k;
ptr_temp2 = ptr_c;
while (*ptr_k != NULL){
k_uzunluk++;
ptr_k++;
}

while (*ptr_c != NULL){
ptr_k = ptr_temp;
while (*ptr_k != NULL){
if (*ptr_k == *ptr_c){
ptr_temp2 = ptr_c;
ptr_c++;
ptr_k++;
dkar++;

if (dkar == k_uzunluk){
sayac++;
dkar = 0;
}
}
else{
ptr_temp2++;
ptr_c = ptr_temp2;
dkar = 0;
break;
}
}
}
return sayac;
}

int _tmain(int argc, _TCHAR* argv[])
{
setlocale(0, "tr");

char cumle[100] = {}, *ptr_Cumle, *ptr_temp;
char kelime[20] = {}, *ptr_Kelime;
int sonuc;
cout << "Bir Cümle giriniz :";
gets_s(cumle);
cout << "Aranacak Kelimenizi giriniz :";
gets_s(kelime);
ptr_Cumle = cumle;
ptr_Kelime = kelime;

ptr_temp = ptr_Cumle;

while (*ptr_temp != NULL)
{
*ptr_temp = toupper(*ptr_temp);
ptr_temp++;
}
ptr_temp = ptr_Kelime;
while (*ptr_temp != NULL)
{
*ptr_temp = toupper(*ptr_temp);
ptr_temp++;
}

sonuc = ara(ptr_Cumle, ptr_Kelime);
cout << "\nCümle içerisinde aranan kelime " << sonuc << " adet bulunmuştur.." << endl;


return 0;
}

C/C++ Arşiv kod 2014-2015



// Ahmet YENEN B130910031
#include "stdafx.h"
#include
#include
using namespace std;

struct zaman
{
int saat;
int dakika;
int saniye;
long toplam_saniye;
}z1;


void parcala(char zaman[]){

char tut[9];
int i = 0, a = 0, carpan = 1;

//////////////////////////

while (zaman[i] != ':'){
tut[i] = zaman[i];
i++;
}
for (int j = i - 1; j >= 0; j--)
{
z1.saat = z1.saat + (tut[j] - '0')*carpan;
carpan = carpan * 10;
}
///////////////////////////

carpan = 1; i++;
while (zaman[i] != ':'){
tut[a] = zaman[i];
i++; a++;
}
for (int j = a - 1; j >= 0; j--)
{
z1.dakika = z1.dakika + (tut[j] - '0')*carpan;
carpan = carpan * 10;
}

////////////////////////////
carpan = 1; i++; a = 0;
while (zaman[i] != NULL){
tut[a] = zaman[i];
i++; a++;
}
for (int j = a - 1; j >= 0; j--)
{
z1.saniye = z1.saniye + (tut[j] - '0')*carpan;
carpan = carpan * 10;
}
//////////////////////////////
}

int _tmain(int argc, _TCHAR* argv[])
{
setlocale(0, "tr");

char zaman[20] = {};
bool hata = true;
cout << "Zamanı giriniz :"; gets_s(zaman);

parcala(zaman);

if (z1.saat<0 z1.saat="">= 24){
cout << "Girilen saat değeri " << z1.saat << " yanlış girilmiştir." << endl;
hata = false;
}
if (z1.dakika<0 z1.dakika="">= 60){
cout << "Girilen dakika değeri " << z1.dakika << " yanlış girilmiştir." << endl;
hata = false;
}
if (z1.saniye<0 z1.saniye="">= 60){
cout << "Girilen saniye değeri " << z1.saniye << " yanlış girilmiştir." << endl;
hata = false;
}
if (hata)
{
z1.toplam_saniye = (z1.saat * 3600) + (z1.dakika * 60) + z1.saniye;
cout << "Saniye olarak hesaplanan değer :" << z1.toplam_saniye << endl;
}


return 0;
}

C/C++ 2014-2015 Arşiv kod 2

// odevdosyalama.cpp : Defines the entry point for the console application.
// AHMET YENEN B130910031

#include "stdafx.h"
#include
#include
using namespace std;
struct kayit{
int ogrno;
int vize;
int final;
float ort;
char ad[10];
char soyad[10];
}k1,k2;
void kayitEkle(){
FILE *veritabanı;
veritabanı =fopen("kayıt.txt", "a");
printf("eklemek istediginiz öğrenci ile alakalı bilgileri sırasıyla girin.\n");
cout << "ogrenci no ="; cin >> k1.ogrno;
cout << "vize       ="; cin >> k1.vize;
cout << "final      ="; cin >> k1.final;
cout << "ad         ="; cin >> k1.ad;
cout << "soy ad     ="; cin >> k1.soyad;
cout << endl;
    k1.ort = k1.final*0.6 + k1.vize*0.4;
fprintf(veritabanı, "%d\t%d\t%d\t%s\t%s\t%f\n", k1.ogrno, k1.vize, k1.final, k1.ad, k1.soyad,k1.ort);
fclose(veritabanı);
}
void kayitGuncelle(){
FILE *veritabanı;
FILE *aktarımDosya;
char araisim[10];
int arano;
veritabanı = fopen("kayıt.txt", "r");
aktarımDosya = fopen("yenile.txt", "w");
cout << "deiğişim yapılcak  ogrenci adını ve numarasını giriniz :" << endl;
cout << "ad ="; cin >> araisim;
cout << "no ="; cin >> arano;
cout << "Güncellemelri sırasıyla yapabilirsiniz;" << endl;
cout << "ogrenci no ="; cin >> k2.ogrno;
cout << "vize       ="; cin >> k2.vize;
cout << "final      ="; cin >> k2.final;
cout << "ad         ="; cin >> k2.ad;
cout << "soy ad     ="; cin >> k2.soyad;

 
while (!feof(veritabanı))
{
fscanf(veritabanı, "%d%d%d%s%s%f\n", &k1.ogrno, &k1.vize, &k1.final, &k1.ad, &k1.soyad,&k1.ort);
    k1.ort = (k1.vize*0.4) + (k1.final*0.6);
    k2.ort = (k2.vize*0.4) + (k2.final*0.6);
if (strcmp(araisim, k1.ad) == 0){///değiş
if (arano == k1.ogrno){
fprintf(aktarımDosya, "%d\t%d\t%d\t%s\t%s\t%f\n", k2.ogrno, k2.vize, k2.final, k2.ad, k2.soyad,k2.ort);
}
else cout << "yanliş giriş.";
}
else
fprintf(aktarımDosya, "%d\t%d\t%d\t%s\t%s\t%f\n", k1.ogrno, k1.vize, k1.final, k1.ad, k1.soyad,k1.ort);

}

fclose(veritabanı);
fclose(aktarımDosya);
remove("kayıt.txt");
rename("yenile.txt", "kayıt.txt");
cout << "Güncellendi." << endl<}
void kayitSil( ){
FILE *veritabanı;
FILE *aktarımDosya;
char araisim[10];
int arano;
veritabanı = fopen("kayıt.txt", "r");
aktarımDosya = fopen("yenile.txt", "w");
cout << "kaydi silinecek ogrenci adını ve numarasını giriniz :" << endl;
cout << "ad  ="; cin >> araisim;
cout << "no  ="; cin >> arano;
while (!feof(veritabanı))
{
fscanf(veritabanı, "%d%d%d%s%s%f\n", &k1.ogrno, &k1.vize, &k1.final, &k1.ad, &k1.soyad,&k1.ort);
if (strcmp(araisim, k1.ad) != 0 ){
if (arano != k1.ogrno){
fprintf(aktarımDosya, "%d\t%d\t%d\t%s\t%s\t%f\n", k1.ogrno, k1.vize, k1.final, k1.ad, k1.soyad, k1.ort);
}

}
}

fclose(veritabanı);
fclose(aktarımDosya);
remove("kayıt.txt");
rename("yenile.txt","kayıt.txt");
cout << "silme tamamlandı..." << endl;
}
void kayitListele(){
int secim;
char araisim[10];
FILE *veritabanı;
int not;
veritabanı = fopen("kayıt.txt", "r");
cout << "-Listeli-" << endl;
cout << "Ada göre listelemek icin 1'e , Belli bir nottan yüksek alanlar için 2'yi tuşlayın,Tüm liste için 3:"; cin >> secim;
if (secim == 1){
cout << "Ada göre listeleme için adı giriniz :"; cin >> araisim;
cout << endl;
cout << "ogrno" << "\t " << "vize" << "\t" << "final" << "\t" << "ad" << "\t" << "soyad" << " \t" << "ort" << endl;
while (!feof(veritabanı))
{
fscanf(veritabanı, "%d%d%d%s%s%f\n", &k1.ogrno, &k1.vize, &k1.final, &k1.ad, &k1.soyad, &k1.ort);
if (strcmp(araisim, k1.ad) == 0){
printf("%d\t%d\t%d\t%s\t%s\t%f\n", k1.ogrno, k1.vize, k1.final, k1.ad, k1.soyad, k1.ort);
}
}
}
else if (secim == 2){
cout << "hangi nottan yüksek alanları görmek istiyorsanız girişiniz:"; cin >> not;
cout << endl;
cout << "ogrno" << "\t " << "vize" << "\t" << "final" << "\t" << "ad" << "\t" << "soyad" << " \t" << "ort" << endl << endl;
while (!feof(veritabanı))
{
fscanf(veritabanı, "%d%d%d%s%s%f\n", &k1.ogrno, &k1.vize, &k1.final, &k1.ad, &k1.soyad, &k1.ort);
if (k1.ort>not){
printf("%d\t%d\t%d\t%s\t%s\t%f\n", k1.ogrno, k1.vize, k1.final, k1.ad, k1.soyad, k1.ort);

}
}
}
else if (secim == 3){
while (!feof(veritabanı))
{
fscanf(veritabanı, "%d%d%d%s%s%f\n", &k1.ogrno, &k1.vize, &k1.final, &k1.ad, &k1.soyad, &k1.ort);
printf("%d\t%d\t%d\t%s\t%s\t%f\n", k1.ogrno, k1.vize, k1.final, k1.ad, k1.soyad, k1.ort);
}
}
else { cout << "yanlis giris"< fclose(veritabanı);

}
void kayitAra(){
char araisim[10];
int not;
int secim;
    FILE *veritabanı;
veritabanı = fopen("kayıt.txt", "r");

cout << "ada göre arama icin 1'e , belli bir nottan yüksek alanlar için 2'yi tuşlayın:"; cin >> secim;
cout << endl;
if (secim == 1){
cout << "arama yapılacak adı giriniz:"; cin >> araisim;
cout << endl;
cout << "ogrno" << "\t " << "vize" << "\t" << "final" << "\t" << "ad" << "\t" << "soyad" << " \t" << "ort"  << endl;
while (!feof(veritabanı))
{
fscanf(veritabanı, "%d%d%d%s%s%f\n", &k1.ogrno, &k1.vize, &k1.final, &k1.ad, &k1.soyad, &k1.ort);
if (strcmp(araisim, k1.ad)==0){
printf("%d\t%d\t%d\t%s\t%s\t%f\n", k1.ogrno, k1.vize, k1.final, k1.ad, k1.soyad,k1.ort);

}
}
}
else if (secim == 2){
cout << "hangi nottan yüksek alanları görmek istiyorsanız girişiniz:"; cin >> not;
cout << endl;
cout << "ogrno" << "\t " << "vize" << "\t" << "final" << "\t" << "ad" << "\t" << "soyad" << " \t" << "ort" << endl << endl;
while (!feof(veritabanı))
{
fscanf(veritabanı, "%d%d%d%s%s%f\n", &k1.ogrno, &k1.vize, &k1.final, &k1.ad, &k1.soyad, &k1.ort);
if (k1.ort>not){
printf("%d\t%d\t%d\t%s\t%s\t%f\n", k1.ogrno, k1.vize, k1.final, k1.ad, k1.soyad,k1.ort);

}
}

}
else { cout << "yanlıs giriş yaptınız programı kapatın"; system("pause"); }

cout << "arama işlemi tamamlandı." << endl;

fclose(veritabanı);

}
int _tmain(int argc, _TCHAR* argv[])
{
int a;
setlocale(0, "tr");
do{

cout << "Menü:" << endl;
cout << "******************************************" << endl;
cout << "******    1 - Kayıt Ekle            ******" << endl;
cout << "******    2 - Kayıt Güncelle        ******" << endl;
cout << "******    3 - Kayıt Sil             ******" << endl;
cout << "******    4 - Kayıt Listele         ******" << endl;
cout << "******    5 - Kayıt Ara             ******" << endl;
cout << "******    6-  Çıkış                 ******" << endl;
cout << "******************************************" << endl;
cout << "Girişiniz:";
cin >> a;
cout << endl;
if (a == 1){ kayitEkle(); }
   if (a == 2){kayitGuncelle();}
if (a == 3){ kayitSil(); }
if (a == 4){ kayitListele();}
if (a == 5){ kayitAra(); }
if (a == 6){ return 0; }
} while (a != 6);

system("pause");
return 0;
}

C/C++ Arşiv Kodlar VS 1 2014-2015

/// AHMET YENEN B130910031


#include "stdafx.h"
#include "iostream"
#include "locale.h"

using namespace std;
int secim;

class calisan{
public:
int calisan_numarasi;
float calisan_maasi;
enum calisan_Durumu { acliksiniri = 1, ortahalli, iyidurumda }aclik;

};
void kontrol(float maas, calisan c)
{
if (maas < 600){ secim = c.acliksiniri; }
else if (maas < 1500){ secim = c.ortahalli; }
else if (maas > 1500){ secim = c.iyidurumda; }
}
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "Turkish");
calisan c1, c2, c3;
bool i = true;
while (i){
cout << "1. calisan nosunu giriniz : ";
cin >> c1.calisan_numarasi;
cout << "\n1. calisan maasini giriniz : ";
cin >> c1.calisan_maasi;
cout << "\n\n\n2. calisan nosunu giriniz : ";
cin >> c2.calisan_numarasi;

if (c1.calisan_numarasi == c2.calisan_numarasi){
system("cls");
cout << "Çalışan numarası aynı olmaz!\n\n"; continue;
}
cout << "\n2. calisan maasini giriniz : ";
cin >> c2.calisan_maasi;

cout << "\n\n\n3. calisan nosunu giriniz : ";
cin >> c3.calisan_numarasi;
if (c1.calisan_numarasi == c3.calisan_numarasi){
system("cls");
cout << "Çalışan numarası aynı olmaz!\n\n"; continue;
}
if (c2.calisan_numarasi == c3.calisan_numarasi){
system("cls");
cout << "Çalışan numarası aynı olmaz!\n\n"; continue;
}
cout << "\n3. calisan maasini giriniz : ";
cin >> c3.calisan_maasi;
i = false;
}
system("cls");
cout << "\n 1.çalısanın numarası:" << c1.calisan_numarasi;
cout << "\n 1.çalısanın maaşı:" << c1.calisan_maasi;
kontrol(c1.calisan_maasi, c1);
if (secim == 1){ cout << "\n1.calisanın durumu: acliksiniri "; }
if (secim == 2){ cout << "\n1.calisanın durumu: ortahalli "; }
if (secim == 3){ cout << "\n1.calisanın durumu: iyidurumda "; }
/////
cout << "\n\n\n";
cout << "\n 2.çalısanın numarası:" << c2.calisan_numarasi;
cout << "\n 2.çalısanın maaşı:" << c2.calisan_maasi;
kontrol(c2.calisan_maasi, c2);
if (secim == 1){ cout << "\n2.calisanın durumu: acliksiniri "; }
if (secim == 2){ cout << "\n2.calisanın durumu: ortahalli"; }
if (secim == 3){ cout << "\n2.calisanın durumu: iyidurumda"; }
////
cout << "\n\n\n";
cout << "\n 3.çalısanın numarası:" << c3.calisan_numarasi;
cout << "\n 3.çalısanın maaşı:" << c3.calisan_maasi;
kontrol(c3.calisan_maasi, c3);
if (secim == 1){ cout << "\n3.calisanın durumu: acliksiniri "; }
if (secim == 2){ cout << "\n3.calisanın durumu: ortahalli"; }
if (secim == 3){ cout << "\n3.calisanın durumu: iyidurumda"; }
///
cout << "\n\n\n";

system("pause");
return 0;
}

1 Ocak 2016 Cuma

Veri Yapıları 4 // C++##BinaryTree Sıkıştırma Algoritması

https://yadi.sk/d/dMR4NTPotGVyh
------
https://yadi.sk/d/T8XbeQFstGVyj
-----
https://yadi.sk/d/JCsAVQfEtGVyq
----
https://yadi.sk/d/cASmL63stGVyo
------



Header Dosyaları +
/**
* @file BINARYTREE_HPP
* @description BinaryTree header dosyası binary agac için gerekli dugum tutulur ve agac üzerindeki gerekli işlemler yapılır
* @course Bilgisayar Mühendisliği A grubu 2.öğretim
* @assignment 4.ödev
* @date 1.1.2016
* @author Ahmet YENEN   - yenenahmet@hotmail.com
*/

#ifndef BINARYTREE_HPP
#define BINARYTREE_HPP

#include
#include
using namespace std;

#include "Dugum.hpp"

struct Node{
Dugum* eleman;
Node *left;
Node *right;
Node(Dugum* yeni,Node *L=NULL,Node *R=NULL)
{
eleman=yeni;
left=L;
right=R;
}
};

class BinaryTree{
private:
Node *root;

void SearchAndInsert(Node *&sub_root,Dugum *yeni)
{
if(sub_root == NULL)
{
sub_root = new Node(yeni);
}
else if(yeni->tekrarlanma <= sub_root->eleman->tekrarlanma)
return SearchAndInsert(sub_root->left,yeni);
else if(yeni->tekrarlanma > sub_root->eleman->tekrarlanma)
return SearchAndInsert(sub_root->right,yeni);
}
bool SearchAndRemove(Node *&sub_root,Dugum *veri)
{
if(sub_root == NULL || sub_root->eleman->karakter == veri->karakter)
return RemoveNode(sub_root);
else if(veri->tekrarlanma < sub_root->eleman->tekrarlanma)
return SearchAndRemove(sub_root->left,veri);
else
return SearchAndRemove(sub_root->right,veri);
}
Dugum* SearchAndRemoveMin(Node *&sub_root)
{
if(sub_root->left == NULL)
{
Dugum* dondur = sub_root->eleman;
RemoveNode(sub_root);
return dondur;
}
return SearchAndRemoveMin(sub_root->left);
}
bool RemoveNode(Node *&sub_root)
{
if(sub_root == NULL) return false;
Node *del = sub_root;
if(sub_root->right == NULL) sub_root = sub_root->left;
else if(sub_root->left == NULL)sub_root = sub_root->right;
else{
del = sub_root->left;
Node *parent = sub_root;
while(del->right != NULL){
parent=del;
del=del->right;
}
sub_root->eleman = del->eleman;
if(parent == sub_root) sub_root->left = del->left;
else parent->right = del->left;
}
delete del;
return true;
}
void makeEmpty(Node *&sub_root)
{
if(sub_root != NULL)
{
makeEmpty(sub_root->left);
makeEmpty(sub_root->right);
delete sub_root;
sub_root = NULL;
}
}
bool find(Node *sub_root,Dugum *veri)
{
if(sub_root == NULL) return false;
else if(veri->tekrarlanma < sub_root->eleman->tekrarlanma)
return find(sub_root->left,veri);
else if(veri->tekrarlanma > sub_root->eleman->tekrarlanma)
return find(sub_root->right,veri);
else
return true;
}
void print(ostream &ekran,Node *sub_root)
{
if(sub_root != NULL)
{
print(ekran,sub_root->left);
ekran<eleman<<"";

print(ekran,sub_root->right);
}
}
int count(Node *sub_root)
{
if(sub_root == NULL) return 0;
return 1+count(sub_root->left)+count(sub_root->right);
}

public:
BinaryTree()
{
root=NULL;
}
~BinaryTree()
{
makeEmpty();
}
bool isEmpty() const
{
return root==NULL;
}
void Insert(Dugum *yeni)
{
SearchAndInsert(root,yeni);
}
void Remove(Dugum *veri)
{
SearchAndRemove(root,veri);
}
void makeEmpty()
{
makeEmpty(root);
}
bool find(Dugum *veri)
{
return find(root,veri);
}
void print(ostream &ekran)
{
print(ekran,root);
}
int count()
{
return count(root);
}
Dugum* RemoveMin()
{
return SearchAndRemoveMin(root);
}
// << Operatör overloading
friend ostream& operator<<(ostream &ekran,BinaryTree *tree)
{
tree->print(ekran);
return ekran;
}
};
#endif
-----------------------------------------------------------
/**
* @file DUGUM_HPP
* @description DUGUM header dosyası dugum için gerekli elemlar ve dosya yönlendirici tutulur
* @course Bilgisayar Mühendisliği A grubu 2.öğretim
* @assignment 4.ödev
* @date 1.1.2016
* @author Ahmet YENEN   - yenenahmet@hotmail.com
*/
#ifndef DUGUM_HPP
#define DUGUM_HPP
#include
#include
using namespace std;

class Dugum
{
public:
Dugum *left;
Dugum *right;
int tekrarlanma;
char karakter;
Dugum(const char ch,int tkr,Dugum *L=NULL,Dugum *R=NULL);
friend ostream& operator<<(ostream &ekran,Dugum *dugum);
};
#endif
-------------------------------------------------------------------------------
/**
* @file HUFFMANTREE_HPP
* @description HUFFMANTREE header dosyası
* @course Bilgisayar Mühendisliği A grubu 2.öğretim
* @assignment 4.ödev
* @date 1.1.2016
* @author Ahmet YENEN   - yenenahmet@hotmail.com
*/
#ifndef HUFFMANTREE_HPP
#define HUFFMANTREE_HPP

#include
#include
using namespace std;

#include "Dugum.hpp"
#include "BinaryTree.hpp"

class HuffmanTree
{
private:
Dugum* root;
public:

HuffmanTree();
~HuffmanTree();
void AgacOlustur(ifstream &);
void KoduYaz();

void KoduYaz(Dugum *&,string);
   void tabloKullan();
   void skstrilmisDosyayaz();
void Print();
};
#endif
---------------------------------------------------------------
Kaynak Dosyalar+

/**
* @file Dugum
* @description Dugum Kaynak dosyası
* @course Bilgisayar Mühendisliği A grubu 2.öğretim
* @assignment 4.ödev
* @date 1.1.2016
* @author Ahmet YENEN   - yenenahmet@hotmail.com
*/
#include "Dugum.hpp"

Dugum::Dugum(const char ch,int tkr,Dugum *L,Dugum *R)
{
karakter=ch;
tekrarlanma = tkr;
left=L;
right=R;
}
ostream& operator<<(ostream &ekran,Dugum *dugum){
ekran<karakter<<" "<tekrarlanma<<" ";
return ekran;
}
---------------------------------------
/**
* @file HuffmanTree
* @description HuffmanTree Kaynak dosyası dosyadan okuma işelemi binary ağaçtan gelen verileri uygun yerlere işleme bit.data ve tablo işlemeri gerçekleştirlir
* @course Bilgisayar Mühendisliği A grubu 2.öğretim
* @assignment 4.ödev
* @date 1.1.2016
* @author Ahmet YENEN   - yenenahmet@hotmail.com
*/
#include "HuffmanTree.hpp"
#include
#include "iostream"
#include "string.h"
#include
#include
#include
#include
///ofstream txtYaz("Tablo.txt,ios::out");
HuffmanTree::HuffmanTree()
{

}
HuffmanTree::~HuffmanTree()
{
}
void HuffmanTree::AgacOlustur(ifstream &fs)
{
int freq[256];   // Türkçe karakterler alınmıyor.

for(int i=0;i<256 i="" p=""> freq[i]=0;

while(!fs.eof())
{
char ch;
fs.get(ch);
if(!fs.eof())
{
unsigned int key = ch;
freq[key]++;
}
}

BinaryTree *ikiliAramaAgaci = new BinaryTree();
for(int i=0;i<256 i="" p=""> {
if(freq[i] > 0)
{
Dugum *yeni = new Dugum((char)i,freq[i]);
ikiliAramaAgaci->Insert(yeni);
}
}

while(ikiliAramaAgaci->count()>1)
{
Dugum *T1 = ikiliAramaAgaci->RemoveMin();
Dugum *T2 = ikiliAramaAgaci->RemoveMin();

Dugum *T3 = new Dugum(0,T1->tekrarlanma+T2->tekrarlanma,T1,T2);

ikiliAramaAgaci->Insert(T3);
}
root = ikiliAramaAgaci->RemoveMin();
delete ikiliAramaAgaci;
KoduYaz();
}
void HuffmanTree::KoduYaz()
{
string binary = "";
KoduYaz(root,binary);
}

void HuffmanTree::KoduYaz(Dugum *&sub_root,string binary)
{

    ofstream dosya;
    dosya.open("Tablo.txt",ios::app);
if(sub_root==NULL)
return;
if(sub_root->karakter!=0)
{
if(sub_root->karakter == ' '){// boşluk gelirse @ işareti yap
dosya<<"@"<<" "< // fprintf(pfile,"@ : %k",binary);

}
if(sub_root->karakter == '\n'){//satir sonu gelirse > işareti yap
dosya<<">"<<" "< // fprintf(pfile,"> : %s",binary);
}

else{// geri kalanalrı döndür..
dosya<karakter<<" "< // fprintf(pfile,"  : %s",binary);
}
//txtYaz<karakter<<" : "< }


if(sub_root->left != NULL)
{
KoduYaz(sub_root->left,binary+"0");
}
if(sub_root->right != NULL)
{
KoduYaz(sub_root->right,binary+"1");
}
dosya.close();

///////////////
}
void HuffmanTree::tabloKullan(){
char S1;
string B1;
ofstream bityaz;
    bityaz.open("bit.data",ios::out | ios::binary);
ifstream oku;
    oku.open("deneme.txt");
 
while(!oku.eof())
{
ifstream dosya;
dosya.open("Tablo.txt");
char ch;
oku.get(ch);
    while(!dosya.eof()){
    dosya>>S1>>B1;
        if(S1 == ' '){cout<

}   
if(ch == S1){
bityaz< }
}
dosya.close();
}
bityaz.close();
   oku.close();
cout<<"bit.data oluşturuldu..."<}

void HuffmanTree::skstrilmisDosyayaz(){
string temp = "";
ifstream okuma;
okuma.open("deneme.txt");
while(!okuma.eof()){
char oku;
okuma.get(oku);
cout< }
okuma.close();


}
------------------------------------------------------------------
/**
* @file main
* @description main dosyası
* @course Bilgisayar Mühendisliği A grubu 2.öğretim
* @assignment 4.ödev
* @date 1.1.2016
* @author Ahmet YENEN   - yenenahmet@hotmail.com
*/
#include "HuffmanTree.hpp"
#include
int main()
{
setlocale(LC_ALL,"Turkish");
int secim;
cout<<"**********************"< cout<<"1- Dosyayı Sıkıştır"< cout<<"2- Sıkıştırılmış dosyayı ekrana yaz"< cout<<"***********************"< cin>>secim;
if(secim == 1){
ifstream fs("deneme.txt");
if(fs.is_open())
{

HuffmanTree *huffmanAgac = new HuffmanTree();
huffmanAgac->AgacOlustur(fs);
delete huffmanAgac;
cout<<"Tablo Çıkarıldı.."< fs.close();

}
else
{
cout<<"Dosya açılamıyor."< }
HuffmanTree *huffmanAgac = new HuffmanTree();
      huffmanAgac->tabloKullan();
      delete huffmanAgac;
     }
     else if(secim == 2 ){
          HuffmanTree *huffmanAgac = new HuffmanTree();
                 huffmanAgac->skstrilmisDosyayaz();
                 delete huffmanAgac;
}
else{
cout<<"yanlis secim"< }
}
---------------------------------------------------


+Deneme.txt dosyası+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at sem sit amet mauris pellentesque volutpat.
Nunc sem turpis, mattis auctor pulvinar quis, convallis id nisl. Sed rhoncus malesuada facilisis. Sed tincidunt
leo sed sagittis gravida. Maecenas et mauris ac justo sollicitudin dignissim ut sit amet magna.

Pellentesque tristique in augue eu aliquam. Aliquam ac tellus lorem. Pellentesque placerat egestas elit, ut dapibus
magna fringilla et. Nulla feugiat velit eleifend, pretium diam a, bibendum purus. Etiam sit amet tempor neque.
Phasellus elit tortor, tincidunt sed est a, fringilla volutpat arcu. Donec tempor in lacus nec mattis.
Morbi id porttitor erat. Donec ac eros mattis, dignissim diam quis, varius libero.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at sem sit amet mauris pellentesque volutpat.
Nunc sem turpis, mattis auctor pulvinar quis, convallis id nisl. Sed rhoncus malesuada facilisis. Sed tincidunt
leo sed sagittis gravida. Maecenas et mauris ac justo sollicitudin dignissim ut sit amet magna.

Pellentesque tristique in augue eu aliquam. Aliquam ac tellus lorem. Pellentesque placerat egestas elit, ut dapibus
magna fringilla et. Nulla feugiat velit eleifend, pretium diam a, bibendum purus. Etiam sit amet tempor neque.
Phasellus elit tortor, tincidunt sed est a, fringilla volutpat arcu. Donec tempor in lacus nec mattis.
Morbi id porttitor erat. Donec ac eros mattis, dignissim diam quis, varius libero.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at sem sit amet mauris pellentesque volutpat.
Nunc sem turpis, mattis auctor pulvinar quis, convallis id nisl. Sed rhoncus malesuada facilisis. Sed tincidunt
leo sed sagittis gravida. Maecenas et mauris ac justo sollicitudin dignissim ut sit amet magna.

Pellentesque tristique in augue eu aliquam. Aliquam ac tellus lorem. Pellentesque placerat egestas elit, ut dapibus
magna fringilla et. Nulla feugiat velit eleifend, pretium diam a, bibendum purus. Etiam sit amet tempor neque.
Phasellus elit tortor, tincidunt sed est a, fringilla volutpat arcu. Donec tempor in lacus nec mattis.
Morbi id porttitor erat. Donec ac eros mattis, dignissim diam quis, varius libero. Pellentesque tristique in augue eu aliquam. Aliquam ac tellus lorem. Pellentesque placerat egestas elit, ut dapibus
magna fringilla et. Nulla feugiat velit eleifend, pretium diam a, bibendum purus. Etiam sit amet tempor neque.
Phasellus elit tortor, tincidunt sed est a, fringilla volutpat arcu. Donec tempor in lacus nec mattis.
Morbi id porttitor erat. Donec ac eros mattis, dignissim diam quis, varius libero.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at sem sit amet mauris pellentesque volutpat.
Nunc sem turpis, mattis auctor pulvinar quis, convallis id nisl. Sed rhoncus malesuada facilisis. Sed tincidunt
leo sed sagittis gravida. Maecenas et mauris ac justo sollicitudin dignissim ut sit amet magna.

Pellentesque tristique in augue eu aliquam. Aliquam ac tellus lorem. Pellentesque placerat egestas elit, ut dapibus
magna fringilla et. Nulla feugiat velit eleifend, pretium diam a, bibendum purus. Etiam sit amet tempor neque.
Phasellus elit tortor, tincidunt sed est a, fringilla volutpat arcu. Donec tempor in lacus nec mattis.
Morbi id porttitor erat. Donec ac eros mattis, dignissim diam quis, varius libero.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at sem sit amet mauris pellentesque volutpat.
Nunc sem turpis, mattis auctor pulvinar quis, convallis id nisl. Sed rhoncus malesuada facilisis. Sed tincidunt
leo sed sagittis gravida. Maecenas et mauris ac justo sollicitudin dignissim ut sit amet magna.

Pellentesque tristique in augue eu aliquam. Aliquam ac tellus lorem. Pellentesque placerat egestas elit, ut dapibus
magna fringilla et. Nulla feugiat velit eleifend, pretium diam a, bibendum purus. Etiam sit amet tempor neque.
Phasellus elit tortor, tincidunt sed est a, fringilla volutpat arcu. Donec tempor in lacus nec mattis.
Morbi id porttitor erat. Donec ac eros mattis, dignissim diam quis, varius libero. Pellentesque tristique in augue eu aliquam. Aliquam ac tellus lorem. Pellentesque placerat egestas elit, ut dapibus
magna fringilla et. Nulla feugiat velit eleifend, pretium diam a, bibendum purus. Etiam sit amet tempor neque.
Phasellus elit tortor, tincidunt sed est a, fringilla volutpat arcu. Donec tempor in lacus nec mattis.
Morbi id porttitor erat. Donec ac eros mattis, dignissim diam quis, varius libero.