c++ proje yardım

giz_em
31-10-2017, 21:24   |  #1  
OP Yeni Üye
Teşekkür Sayısı: 0
46 mesaj
Kayıt Tarihi:Kayıt: Nis 2009

'Klavyeden girilen bir cümleyi şifreleyen “sifrele” isimli bir fonksiyonun yazılması
istenmektedir. Kullanıcı bir cümle girdikten sonra bu cümle “sifrele” fonksiyonuna referans
şeklinde parametre olarak gönderilecektir. Fonksiyona referans olarak gönderilen cümle
ekrana yazdırılacak sonra ise cümle tersten şifreli olarak ekrana tekrar yazdırılacaktır. Tersten
ekrana yazdırılır iken a yerine !, e yerine ?, i veya ı yerine (, ö veya o yerine = ve ü veya u
yerine # karakterleri kullanılacaktır. Cümlede kaç tane karakter şifrelendi, kaç tanesi
şifrelenmedi bilgisi de ekrana yazdırılacaktır.'


Bu örneği bir türlü yapamıyorum yardımcı olabilir misiniz ?

Murozo
01-11-2017, 00:15   |  #2  
Taze Üye
Teşekkür Sayısı: 1
19 mesaj
Kayıt Tarihi:Kayıt: Haz 2016

Basit amator onemli yazilari sifreleri msdos c++ bi kod yazip icine sifreledim bu video isinize yararsa kodlari veririm

https://youtu.be/Xr4XHiwxIkE

Son Düzenleme: Murozo ~ 01 Kasım 2017 06:56
Murozo bu faydalı yanıtı için aşağıdaki 1 kişiden teşekkür aldı... [ Göster ]
tu_ha
01-11-2017, 12:06   |  #3  
Taze Üye
Teşekkür Sayısı: 1
2 mesaj
Kayıt Tarihi:Kayıt: Kas 2017

#include<iostream>
#include<cstring>
#include<string.h>
#include<locale.h>
using namespace std;
string sifrele(string a)
{
   
    string b;
   
int  i=a.size();
int sifreli=0;
    while(i>=0)
    {
      cout<<a<<endl;

      if (a=='a')
      {
        a='!';
        sifreli=sifreli+1;
      }
      else if (a=='e')
      {
        a='?';
        sifreli=sifreli+1;
      }
      else if (a=='i')
      {
        a='ı';
        sifreli=sifreli+1;
      }
      else if (a=='ö' || a=='o')
      {
        a='=';
        sifreli=sifreli+1;
      }

      else if (a=='ü' || a=='u')
      {
        a='#';
        sifreli=sifreli+1;
      }

      b=b+a;
      i--;
    }
    cout<<"*****"<<endl;
    for (int s=0;s<=b.size();s++)
    {
      cout<<b;
    }
    cout<<endl;
    cout<<"şifreli sayisi="<<sifreli<<endl;
    cout<<"şifresiz sayisi="<<a.size()-sifreli<<endl;

}

int main()
{
  setlocale(LC_ALL,"Turkish");
  string a;
  string b;

  cout<<"giris";
  cin>>a;
  sifrele(a);
}


// ü,u ve o,ö ler biraz sıkıntılı olabilir

Son Düzenleme: tu_ha ~ 01 Kasım 2017 13:08
tu_ha bu faydalı yanıtı için aşağıdaki 1 kişiden teşekkür aldı... [ Göster ]
giz_em
01-11-2017, 18:35   |  #4  
OP Yeni Üye
Teşekkür Sayısı: 0
46 mesaj
Kayıt Tarihi:Kayıt: Nis 2009

Çok teşekkür ederim tamda aradığım ;)

Yalnız bi kod satırında sorun var sanırım. 

  if (a=='a') satırında hata veriyor.

giz_em
01-11-2017, 18:40   |  #5  
OP Yeni Üye
Teşekkür Sayısı: 0
46 mesaj
Kayıt Tarihi:Kayıt: Nis 2009
Alıntı: Murozo  
Basit amator onemli yazilari sifreleri msdos c++ bi kod yazip icine sifreledim bu video isinize yararsa kodlari veririm

https://youtu.be/Xr4XHiwxIkE

 Evet videoyu izledim belge şifreleme işlemi yapıyor ama bahsettiğim uygulama böyle değil. Yinede çok teşekkür ederim sağolun :)

giz_em
01-11-2017, 18:44   |  #6  
OP Yeni Üye
Teşekkür Sayısı: 0
46 mesaj
Kayıt Tarihi:Kayıt: Nis 2009
Alıntı: tu_ha  
#include
#include
#include
#include
using namespace std;
string sifrele(string a)
{

string b;

int i=a.size();
int sifreli=0;
while(i>=0)
{
cout<<a<<endl;

if (a=='a')
{
a='!';
sifreli=sifreli+1;
}
else if (a=='e')
{
a='?';
sifreli=sifreli+1;
}
else if (a=='i')
{
a='ı';
sifreli=sifreli+1;
}
else if (a=='ö' || a=='o')
{
a='=';
sifreli=sifreli+1;
}

else if (a=='ü' || a=='u')
{
a='#';
sifreli=sifreli+1;
}

b=b+a;
i--;
}
cout<<"*****"<<endl;
for (int s=0;s<=b.size();s++)
{
cout<<b;
}
cout<<endl;
cout<<"şifreli sayisi="<<sifreli<<endl;
cout<<"şifresiz sayisi="<<a.size()-sifreli<<endl;

}

int main()
{
setlocale(LC_ALL,"Turkish");
string a;
string b;

cout<<"giris";
cin>>a;
sifrele(a);
}


// ü,u ve o,ö ler biraz sıkıntılı

 çok teşekkür ederim sanırım tam aradığımda bu ancak derleyince bir satırda sorun var.

if (a=='a') satırında hata veriyor

tu_ha
02-11-2017, 10:10   |  #7  
Taze Üye
Teşekkür Sayısı: 1
2 mesaj
Kayıt Tarihi:Kayıt: Kas 2017

' -> " diye değiştirerek dene.

online complier kullanıyorum, hata arama biraz sıkıntılı oluyor. 

Bu mantıkla soru çözülebiliyor. Kendin baştan yazmayı deneyebilirsin.