JAVA I TY.....

  • Nie jesteś zalogowany.
  • Polecamy: Moda

#1 2011-04-25 22:13:22

OskarF

Użytkownik

Zarejestrowany: 2011-02-03
Posty: 38
Punktów :   

6.5

Zadanie polega na stworzeniu dwóch funkcji:
void szyfruj(string nazwaPlikuWe, int przesun)
void deszyfruj(string nazwaPlikuWe, int przesun)
Funkcja szyfruj dokonuje szyfrowania pliku, którego nazwa podana została jako
pierwszy parametr. Szyfrowanie polega na zamianie każdej litery na znak przesunięty
o wartość podana drugim parametrem np. dla przesunięcia równego 2 literka
’a’ powinna zostać zastąpiona literką ’c’, literka ’z’ literką ’b’ itp.
Wynikiem działania funkcji ma być plik o nazwie utworzonej na podstawie nazwy
pliku wejściowego poprzez dołączenie znaku ’_’ np. dla pliku dane.txt zaszyfrowana
postać powinna mieć nazwę _dane.txt. Funkcja deszyfruj powinna deszyfrować
plik (niekoniecznie ten sam) zaszyfrowany przez funkcje szyfruj.





#include <iostream>
#include <fstream>
#include <cctype>

using namespace std;

void szyfruj(string nazwaPlikuWe, int przesun);
void deszyfruj(string nazwaPlikuWe, int przesun);

int main()
{
    unsigned int przesuniecie;
    cout<<"Witaj w programie szyfrujacym/deszyfrujacym podany plik tekstowy."<<endl;
    cout<<"Podaj wartosc calkowita przesuniecia."<<endl;
    cin>>przesuniecie;

    szyfruj("zad5plik.txt",przesuniecie);
    deszyfruj("_zad5plik.txt",przesuniecie);

    cin.get();
    return 0;
}

void szyfruj(string nazwaPlikuWe, int przesun)
{
    char z;
    ifstream plik1;
    ofstream plik2;
    plik1.open(nazwaPlikuWe.c_str());
    plik2.open(("_"+nazwaPlikuWe).c_str());

    plik1>>noskipws;
    while(plik1>>z)
    {
        if(isspace(z)) plik2<<z;
        if(isalpha(z))
        {
            if(isupper(z)) z=tolower(z);
            if(z>='a' && z<='z')
            {
                z+=przesun;
                if(z>'z') z-=26;
            }
            plik2<<z;
        }
    }
    plik1.close();
    plik2.close();
    cout<<"Szyfrowanie zakonczone."<<endl;
}

void deszyfruj(string nazwaPlikuWe, int przesun)
{
    char z;
    ifstream plik1;
    ofstream plik2;
    plik1.open(nazwaPlikuWe.c_str());
    plik2.open(("zdeszyfrowany"+nazwaPlikuWe).c_str());

    plik1>>noskipws;
    while(plik1>>z)
    {
        if(z>='a' && z<='z')
        {
            z-=przesun;
            if(z<'a') z+=26;
        }
        plik2<<z;
    }
    plik1.close();
    plik2.close();
    cout<<"Deszyfrowanie zakonczone."<<endl;
}

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
przegrywanie kaset vhs warszawa przegrywanie filmów 8mm warszawa ciechocinek nocleg BoĂŽte de vitesses Mini