[C++]Słownik angielsko polski i polsko angielski

student000
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 9 gru 2015, o 18:47
Płeć: Mężczyzna
Lokalizacja: Polska

[C++]Słownik angielsko polski i polsko angielski

Post autor: student000 »

Witam. Mam wykonać projekt słownika w języku C++, a jako że jestem raczej słaby w te klocki, dużo korzystałem z internetu czy czasami pomocy kolegów, lecz projekt jest nieco do poprawy z czym nie mogę w ogóle sobie poradzić :? O to co udało mi się do tej pory stworzyć:

Kod: Zaznacz cały

#include <fstream>
#include <iostream>
#include <string>
#include <conio.h>

using namespace std;


int main()
{
 ifstream od("slowa.txt");
 char wybor;
 unsigned roz;
 string szukany, PL, ENG;
 bool znaleziono, koniec = 0;
 od >> roz;

 string** tab = new string*[roz];

 for (unsigned i = 0; i<roz; i++)
 {
  tab[i] = new string[2];
 }

 for (unsigned i = 0; i<roz; i++)
 {
  for (unsigned j = 0; j<2; j++)
  {
   od >> tab[i][j];
  }
 }
 od.close();

 while (koniec == 0)
 {
  cout << "1. Slownik" << endl;
  cout << "2. Dodaj do slownika" << endl;
  cout << "3. Pokaz slownik" << endl; 	
  cout << "4. Wygenerowanie strony" << endl;
  cout << "5. Exit" << endl;  	
  wybor=_getch();
  switch (wybor)
  {
  case '1':
  {

   znaleziono = 0;
   cout << "Szukany wyraz: ";
   cin >> szukany;

   
   for (unsigned i = 0; i<roz; i++)
   {
    for (unsigned j = 0; j<2; j++)
    {
     if (tab[i][j] == szukany)
     {
      if (j == 0)
      {
       cout << "Tlumaczenie:   " << tab[i][1] << endl;
      }
      else if (j == 1)
      {
       cout << "Tlumaczenie:   " << tab[i][0] << endl;
      }
      else
      {
       cout << "Error" << endl;
      }
      znaleziono = 1;
     }
    }
   }


   if ((znaleziono == 0) && (koniec == 0))
   {
    cout << "Nie znaleziono tlumaczenia" << endl;
   }
   break;
  }
  case '2':
  {
   fstream od;
   od.open("slowa.txt", ios::out);
   cout << "Podaj PL" << endl; cin >> PL;
   cout << "Podaj ENG" << endl; cin >> ENG;
   int dodatek = roz + 1;
   od << roz + 1 << endl;
   for (unsigned i = 0; i<roz; i++)
   {
    od << tab[i][0] << " " << tab[i][1] << endl;
   }
   
   od << PL << " " << ENG << endl;

   break;

  }
  case '3':
   {
   	cout << endl;
   	cout << "-----SLOWNIK-----" << endl;
   	cout << endl;
    for (unsigned i = 0; i<roz; i++)
   {
    cout << tab[i][0] << "\t-\t" << tab[i][1] << endl;
   }
   	cout << endl;
   break;

   }
   
   case '4':
    {
     ofstream od;
     od.open("strona.html");

     if(od.good()==false)
      {
       cout << "Plik nie istnieje!";
       exit(0);
      }

    	html(od,tab,roz);
        od.close();
		cout << endl;
        break;
    }
    
    case '5':
   {
  	koniec = 1;
    break;	
   }
   
   
   	case '6':
   {
  
	   break;		
   }

  default: cout << "Wcisnieto niewlasciwy klawisz" << endl;
  }
 }

 for (unsigned i = 0; i<roz; i++)
 {
  delete[] tab[i];
 }
 delete[] tab;

 return 0;
}

Oczywiście pierwsze co rzuca się w oczy to brak funkcji czy struktur, które muszę w tym programie umieścić. Kolejne rzeczy które powinny się jeszcze znaleźć lub są do poprawy to: dodanie case'a z sortowanie alfabetycznym wyrazów polskich oraz angielskich, dodanie case'ów które wyświetlą podzbiory tego słownika(wyrazy na daną literę, same przymiotniki, rzeczowniki, czasowniki), dodanie case'a który umożliwi poprawę(korektę) ewentualnych literówek w wyrazach. Ostatnia racze to poprawa case'a nr 3, który wyświetla cały słownik, lecz, zaraz po uruchomieniu programu gdy korzystam z case'a, za pomocą którego dodaję sobie wyrazy do słownika, program musi być uruchomiony ponownie, aby te słowa mi wyświetliło, a mają być one wczytywane na bieżąco. Plik, który posiadam do tego programu wygląda mniej więcej tak:(tablica dwuwymiarowa)

2
wyrazPL wyrazENG
wyrazPL wyrazENG

Mam nadzieję, że w miarę dobrze to wytłumaczyłem, będę wdzięczny za jakąkolwiek pomoc przy czymkolwiek czego mi brakuje, gdyż jak mówiłem bardzo słabo mi to idzie..
lukequaint
Użytkownik
Użytkownik
Posty: 219
Rejestracja: 5 maja 2010, o 18:27
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 1 raz
Pomógł: 75 razy

[C++]Słownik angielsko polski i polsko angielski

Post autor: lukequaint »

Oto jestem - Twoja pierwsza pomoc ;-). Dopiero się uczysz, więc możesz nie rozumieć czegoś, co napisałem poniżej - pytaj jak najszybciej, to świetny program do nauczenia się czegoś nowego.

Kilka dobrych rad:
  • musisz korzystać z dynamicznie alokowanych tablic? Jeśli nie, użyj kontenerów z biblioteki standardowej - przerobiłem Twój program tak, by używał dwóch obiektów typu std::map (pol.-ang., ang.-pol.), ale pod względem pamięci lepiej będzie używać jednej albo std::vector<std::pair<std::string,std::string> > > (wtedy będziemy przeszukiwać ten wektor tak jak to teraz robisz z tablicami)

    Kod: Zaznacz cały

    using Slownik = std::map<std::string, std::string>;
    
    tworzy alias dla typu std::map<std::string, std::string>
  • nie pisz using namespace std;, to bardzo zły zwyczaj, gdyż wprowadza do programu zmienne z przestrzeni nazw biblioteki standardowej
  • nie pisz dwóch instrukcji w jednej linii, oddzielając je średnikiem
  • nie deklaruj dwóch zmiennych w jednej linii - unikniesz dzięki temu problemów ze znalezieniem błędów w kodzie
  • deklaruj zmienne zaraz przed ich użyciem, nie na początku funkcji, łatwiej jest wtedy zrozumieć kod, a kompilator i tak świetnie sobie z tym radzi
Niżej poprawiona wersja, z wyświetlaniem słów na daną literę, poprawianiem literówek i dopisywaniem słów do słownika w programie. Sortownie słów można zrobić, przepisując klucze słownika do np. kontenera std::vector i wywołując funkcję std::sort z biblioteki standardowej (nagłówek <algorithm>). Jeśli chcesz, mogę to zapisać w inny sposób (np. lambdy jako zwykłe funkcje) albo zamiast std::map zapisać to za pomocą std::vector, ale naprawdę dobrze byłoby, gdybyś spróbował wszystko najpierw zrozumieć. Komentarze powinny rozwiać wątpliwości :-).

Kilka rzeczy, którymi możesz się zająć:
  • przerobić to na klasę SlownikPolAng i z tych wszystkich funkcji zrobić jej metody
  • przerobić to z map na vectory
  • dodać strukturę na przechowywanie słow - dzięki temu pozbędziemy się potrzeby przechowywania map oraz będziemy mogli przechowywać informację o typie słowa i wzbogacić filtrowanie o wybieranie przymiotników, czasowników i rzeczowników
  • poprawić obsługę błędów

Kod: Zaznacz cały

#include <fstream>
#include <iostream>
#include <string>
#include <map>
#include <utility>

// deklarujemy aliasy typow, ktorych uzywamy w calym programie
using Slownik = std::map<std::string, std::string>;
using ParaSlownikow = std::pair<Slownik, Slownik>;

// plik, z ktorego odczytujemy i do ktorego zapisujemy slowa
const std::string PLIK_SLOWNIK = "slowa.txt";

void dodaj_slowo_do_slownika(std::string polskie, std::string angielskie, ParaSlownikow& para)
{
    // zapisujemy slowo w obu slownikach:
    // polsko-angielskim
    para.first[polskie] = angielskie;
    // i angielsko-polskim
    para.second[angielskie] = polskie;
}

void zapisz_caly_slownik_do_pliku(Slownik& slownik, const std::string& nazwa_pliku)
{
    std::fstream od(nazwa_pliku, std::ios::out);
    // zapisujemy liczbe slow w slowniku do pliku
    od << slownik.size() << '\n';
    // zapisujemy slowa, nizej sprawdzanie bledow
    for (const auto& slowo : slownik) {
        od << slowo.first << " " << slowo.second << '\n';
    }
    if (!od) {
        std::cout << "Nie udalo sie zapisac slow do pliku" << std::endl;
        exit(1);
    } else {
        std::cout << "Zapisano slownik do pliku" << std::endl;
    }
}

void dopisz_slowo_do_pliku(const std::string& PL,
                           const std::string& ENG,
                           const std::string& nazwa_pliku)
{
    // app - dopisujemy do konca pliku
    std::fstream od(nazwa_pliku, std::ios::app);
    od << PL << " " << ENG << std::endl;
}

std::pair<Slownik, Slownik> wczytaj_slowa_z_pliku(const std::string& nazwa_pliku)
{
    // para slownikow, ktora zwrocimy po wczytaniu wszystkich slow
    std::pair<Slownik,Slownik> para;
    int liczba_slow = 0;
    std::ifstream od(nazwa_pliku);
    std::string polskie;
    std::string angielskie;
    // najpierw wczytujemy liczbe slow
    od >> liczba_slow;
    if (!od) {
        std::cerr << "Nie udalo sie wczytac slow z pliku\n";
        exit(1);
    }
    // ta petla wczyta dowolna liczbe par slow - nie bierzemy pod uwage
    // wartosci liczba_slow
    while (od >> polskie >> angielskie) {
        dodaj_slowo_do_slownika(polskie, angielskie, para);
    }
    return para;
}

void wyswietl_tlumaczenie(const std::string& szukany, ParaSlownikow& para)
{
    // sprawdzamy czy slowo wystepuje w slowniku polsko-angielskim jako klucz
    // tj. slowo polskie
    if (para.first.find(szukany) != std::end(para.first)) {
        // ...i wyswietlamy
        std::cout << "Tlumaczenie:   " << para.first[szukany] << std::endl;
    // to samo dla ang.-pol.
    } else if (para.second.find(szukany) != std::end(para.second)) {
        std::cout << "Tlumaczenie:   " << para.second[szukany] << std::endl;
    } else {
        std::cout << "Nie znaleziono tlumaczenia" << std::endl;
    }
}

void wyswietl_slowa_na_litere(ParaSlownikow& para, char litera='\0', bool polskie=true)
{
    // pomocnicza funkcja wyswietlajaca slowo, sprawdzajac wczesniej, czy jest
    // na litere, po ktorej filtrujemy (jesli chcemy filtrowac - w przeciwnym
    // razie zmienna  litera ma wartosc domyslna - '\0'
    auto wyswietl_slowa = [&para, &litera](Slownik slownik)
    {
        for (const auto& slowo : slownik) {
            if (litera != '\0') {
                // sprawdzamy pierwszy znak slowa
                if (slowo.first.front() == litera) {
                    std::cout << slowo.first << "\t-\t" << slowo.second << std::endl; 
                }
            }  else {
                std::cout << slowo.first << "\t-\t" << slowo.second << std::endl; 
            }
        } 
    };
    // jesli szukamy polskich, to wywolujemy powyzsza funkcje
    if (polskie) {
        // dla slownika pol.-ang.
        wyswietl_slowa(para.first);
    } else {
        // w przeciwnym wypadku ang.-pol.
        wyswietl_slowa(para.second);
    }
}

void poprawa_literowki(ParaSlownikow& para,
                       const std::string& poprzednia_wersja,
                       const std::string& nowa_wersja)
{
    // pomocnicza funkcja poprawiajaca literowke
    auto popraw_slowo = [&poprzednia_wersja,&nowa_wersja](Slownik& s1, Slownik s2)
    {
        // najpierw zapisujemy sobie tlumaczenie danego slowa
        std::string tlumaczenie = s1[poprzednia_wersja];
        // usuwamy stara wersje slowa ze slownika s1
        s1.erase(poprzednia_wersja);
        // dodajemy nowa wersje
        s1[nowa_wersja] = tlumaczenie;
        // do drugiego slownika zapisujemy nowa wersje (slowo w przeciwnym
        // jezyku, czyli tlumaczenie - zostaje bez zmian)
        s2[tlumaczenie] = nowa_wersja;
    };
    if (para.first.find(poprzednia_wersja) != std::end(para.first)) {
        // jesli to slowo polskie, to w powyzszej funkcji przyjmujemy:
        // s1 - pol.-ang.
        // s2 - ang.-pol.
        popraw_slowo(para.first, para.second);
        // no i zapisujemy poprawke do pliku
        zapisz_caly_slownik_do_pliku(para.first, PLIK_SLOWNIK);
        std::cout << "Poprawiono :-)!" << std::endl;
    } else if (para.second.find(poprzednia_wersja) != std::end(para.second)) {
        // analogicznie jesli to slowo angielskie
        popraw_slowo(para.second, para.first);
        zapisz_caly_slownik_do_pliku(para.first, PLIK_SLOWNIK);
        std::cout << "Poprawiono :-)!" << std::endl;
    } else {
        std::cout << "Nie znaleziono slowa: " << poprzednia_wersja << std::endl;
    }
}

int main()
{
    bool koniec = 0;
    auto para_slownikow = wczytaj_slowa_z_pliku("slowa.txt");

    while (!koniec)
    {
        std::cout << "1. Slownik" << std::endl;
        std::cout << "2. Dodaj do slownika" << std::endl;
        std::cout << "3. Pokaz slownik" << std::endl;    
        std::cout << "4. Wygenerowanie strony" << std::endl;
        std::cout << "5. Exit" << std::endl;     
        std::cout << "6. Wyswietl slowa na dana litere" << std::endl;     
        std::cout << "7. Popraw literowke" << std::endl;     
        char wybor = '\0';
        std::cin >> wybor;
        // wewnatrz instrukcji switch po prostu wywolujemy powyzsze funkcje
        // zadnej magii ;-)
        switch (wybor)
        {
            case '1':
                {
                    std::string szukany;
                    std::cout << "Szukany wyraz: ";
                    std::cin >> szukany;
                    wyswietl_tlumaczenie(szukany, para_slownikow);
                    break;
                }
            case '2':
                {
                    std::string PL;
                    std::string ENG;
                    std::cout << "Podaj PL" << std::endl;
                    std::cin >> PL;
                    std::cout << "Podaj ENG" << std::endl;
                    std::cin >> ENG;

                    dodaj_slowo_do_slownika(PL, ENG, para_slownikow);
                    dopisz_slowo_do_pliku(PL, ENG, "slowa.txt");
                    break;

                }
            case '3':
                {
                    std::cout << "\n-----SLOWNIK-----\n" << std::endl;
                    wyswietl_slowa_na_litere(para_slownikow);
                    std::cout << std::endl;
                    break;
                }

            case '4':
                {
                    std::ofstream od;
                    od.open("strona.html");

                    if (od.good()==false)
                    {
                        std::cout << "Plik nie istnieje!";
                        exit(1);
                    }
                    //html(od,tab,roz);
                    od.close();
                    std::cout << std::endl;
                    break;
                }

            case '5':
                {
                    koniec = 1;
                    break;   
                }

            case '6':
                {
                    char litera = '\0';
                    std::cout << "Podaj litere, od ktorej maja zaczynac sie wyswietlone slowa: ";
                    std::cin >> litera;
                    wyswietl_slowa_na_litere(para_slownikow, litera);
                    break;      
                }
            case '7':
                {
                    std::string stara;
                    std::string nowa;
                    std::cout << "Podaj slowo, w ktorym chcesz poprawic literowke: ";
                    std::cin >> stara;
                    std::cout << "Podaj poprawiona wersje: ";
                    std::cin >> nowa;
                    poprawa_literowki(para_slownikow, stara, nowa);
                    break;      
                }

            default: std::cout << "Wcisnieto niewlasciwy klawisz" << std::endl;
        }
    }
    return 0;
}
student000
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 9 gru 2015, o 18:47
Płeć: Mężczyzna
Lokalizacja: Polska

[C++]Słownik angielsko polski i polsko angielski

Post autor: student000 »

Dzisiaj konkretniej się tym zajmę i dam znać jakbym czegoś nie wiedział lub chciał jeszcze coś poprawić, wielkie dzięki za pomoc :)

-- 10 gru 2015, o 19:14 --

Na tę chwilę kod wygląda tak:

Kod: Zaznacz cały

#include <fstream>
#include <iostream>
#include <string>

using namespace std;

struct SSlowo
{
 string polski;
 string angielski;
 string czesc_mowy;
 bool wypisanie;
};

struct SSlownik
{
 unsigned rozmiar;
 SSlowo *slowko;
};

void wczytaj_plik(ifstream &wczytaj, SSlownik &slownik)
{
 wczytaj >> slownik.rozmiar;

 slownik.slowko = new SSlowo[slownik.rozmiar];
 for (unsigned i = 0; i < slownik.rozmiar; i++)
 {
  wczytaj >> slownik.slowko[i].polski;
  wczytaj >> slownik.slowko[i].angielski;
  wczytaj >> slownik.slowko[i].czesc_mowy;
  slownik.slowko[i].wypisanie = 0;
 }
}

void wyszukaj_slowka(SSlownik &slownik, string wyraz_szukany)
{
 bool znaleziono = 0;

 for (unsigned i = 0; i<slownik.rozmiar; i++)
 {
  if (slownik.slowko[i].polski == wyraz_szukany)
  {
   cout << "Tlumaczenie:   " << slownik.slowko[i].angielski << endl;
   znaleziono = 1;
  }
  else if (slownik.slowko[i].angielski == wyraz_szukany)
  {
   cout << "Tlumaczenie:   " << slownik.slowko[i].polski << endl;
   znaleziono = 1;
  }
 }

 if (znaleziono == 0)
 {
  cout << "Nie znaleziono tlumaczenia" << endl;
 }
}

void wypisz_strukture(const SSlownik slownik, string twoja_czesc_mowy)
{
 cout << "Ilosc wszstkich slow w slowniku:  " << slownik.rozmiar << endl << endl;

 if (twoja_czesc_mowy == "0")
 {
  for (unsigned i = 0; i<slownik.rozmiar; i++)
  {
   cout << slownik.slowko[i].polski << " " << slownik.slowko[i].angielski << endl;;
  }
 }
 else
 {
  for (unsigned i = 0; i < slownik.rozmiar; i++)
  {
   if (slownik.slowko[i].czesc_mowy == twoja_czesc_mowy)
   {
    cout << slownik.slowko[i].polski << " " << slownik.slowko[i].angielski << endl;
   }
  }
 }
 cout << endl;
}

void wypisanie_html_calosc(ofstream &wyjscie, SSlownik slownik, string twoja_czesc_mowy)
{
 wyjscie << "<!DOCTYPE HTML>";
 wyjscie << "<html lang=" << "pl" << ">";
 wyjscie << "<head>";
 wyjscie << "<meta charset=" << "utf-8" << "/>";
 wyjscie << "<title>Slownik angielsko-polski i polsko-angielski</title>";
 wyjscie << "<meta name=" << "description" << "content=" << "Jeden z najlepszych slownikow na internecie!" << "/>";
 wyjscie << "<meta name=" << "keywords" << "content=" << "slownik,slowa" << "/>";
 wyjscie << "<meta http-equiv=" << "X-UA-Compatible" << "content=" << "IE=edge,chrome=1" << ">";
 wyjscie << "</head>";
 wyjscie << "<body><center>";
 wyjscie << "<h1><b>-----Slownik-----</b></h1>";
 wyjscie << "<b>Sprawdz rowniez: </b><a href=" << "http:/" << "/translate.google.pl/?hl=pl/" << ">Translate Google</a></br>";

 wyjscie << "<b>Spis wyrazow: </b></br>";
 
 
 if (twoja_czesc_mowy == "0")
 {
  for (unsigned i = 0; i<slownik.rozmiar; i++)
  {
   wyjscie << slownik.slowko[i].polski << " " << slownik.slowko[i].angielski << endl;
  }
 }
 else
 {
  for (unsigned i = 0; i < slownik.rozmiar; i++)
  {
   if (slownik.slowko[i].czesc_mowy == twoja_czesc_mowy)
   {
    wyjscie << slownik.slowko[i].polski << " " << slownik.slowko[i].angielski << endl;
   }
  }
 }

 wyjscie << "</center></body>";
 wyjscie << "</html>";
}


SSlownik wczytaj_slowko(SSlownik &slownik)
{
 SSlownik nowy_slownik;

 nowy_slownik.rozmiar = slownik.rozmiar + 1;

 nowy_slownik.slowko = new SSlowo[nowy_slownik.rozmiar];

 for (unsigned i = 0; i < slownik.rozmiar; i++)
 {
  nowy_slownik.slowko[i] = slownik.slowko[i];
 }

 cout << "Podaj polski: ";
 cin >> nowy_slownik.slowko[nowy_slownik.rozmiar-1].polski;

 cout << "Podaj angielski: ";
 cin >> nowy_slownik.slowko[nowy_slownik.rozmiar-1].angielski;

 cout << "Podaj czesc mowy: ";
 cin >> nowy_slownik.slowko[nowy_slownik.rozmiar-1].czesc_mowy;
 
 ofstream plik("slowa.txt");

 if (plik.good() == false)
 {
  cout << "Plik nie istnieje!";
  exit(0);
 }

 plik << nowy_slownik.rozmiar << endl;

 for (unsigned i = 0; i < nowy_slownik.rozmiar; i++)
 {
  plik << nowy_slownik.slowko[i].polski << " " << nowy_slownik.slowko[i].angielski << " " << nowy_slownik.slowko[i].czesc_mowy << endl;
 }

 plik.close();
 
 
 
 


 return nowy_slownik;
}


int main()
{
 SSlownik slowniczek;

 ifstream od("slowa.txt");

 if (od.good() == false)
 {
  cout << "Plik nie istnieje!";
  exit(0);
 }

 wczytaj_plik(od, slowniczek);
 od.close();
 
 string szukany;
 char wybor;
 bool koniec = 0;

 while (koniec == 0)
 {
  cout << "1. Slownik" << endl;
  cout << "2. Dodaj do slownika" << endl;
  cout << "3. Pokaz slownik" << endl;
  cout << "4. Wygenerowanie strony" << endl;
  cout << "5. Exit" << endl;

  cin >> wybor;
  switch (wybor)
  {
  case '1':
  {
   cout << "Szukany wyraz: ";
   cin >> szukany;

   wyszukaj_slowka(slowniczek, szukany);

   break;
  }
  case '2':
  {
   slowniczek = wczytaj_slowko(slowniczek);
  }
  case '3':
  {
   cout << endl;
   cout << "-----SLOWNIK-----" << endl;
   cout << endl;
   
   char wybor1;

   cout << "w - caly slownik" << endl << "r - rzeczowniki" << endl << "c - czasowniki" << endl << "p - przymiotniki" << endl; 
   cin >> wybor1;
   switch (wybor1)
   {
   case 'c':
   {
    wypisz_strukture(slowniczek, "czasownik");
    break;
   }
   case 'a':
   {
    wypisz_strukture(slowniczek, "0");
    break;
   }
   case 'r':
   {
    wypisz_strukture(slowniczek, "rzeczownik");
    break;
   }
   case 'p':
   {
    wypisz_strukture(slowniczek, "przymiotnik");
    break;
   }
   }

   cout << endl;
   break;
  }

  case '4':
  {
   char wyborek;

   ofstream html("strona.html");

   if (html.good() == false)
   {
    cout << "Plik nie istnieje!";
    exit(0);
   }
    cout << "w - caly slownik" << endl << "r - rzeczowniki" << endl << "c - czasowniki" << endl << "p - przymiotniki" << endl; 
    cin >> wyborek;
    switch (wyborek)
    {
    case 'c':
    {
    wypisanie_html_calosc(html, slowniczek, "czasownik");
    break;
    }
    case 'w':
    {
    wypisanie_html_calosc(html, slowniczek, "0");
    break;
    }
    case 'r':
    {
    wypisanie_html_calosc(html, slowniczek, "rzeczownik");
    break;
    }
    case 'p':
    {
    wypisanie_html_calosc(html, slowniczek, "przymiotnik");
    break;
    }
   }
   html.close();
   cout << endl;
   break;
  }

  case '5':
  {
   koniec = 1;
   break;
  }


  default: cout << "Wcisnieto niewlasciwy klawisz" << endl;
  }
  }

 
 delete[] slowniczek.slowko;
 
 system("PAUSE");
 return 0;
}
Muszę napisać go w taki właśnie sposób, brakuje mi jeszcze sortowania według alfabetu, chcę umieścić to w case'ie 3(żeby wyświetlało słownik alfabetycznie) i w case'ie 4(również wyświetlenie całego słownika alfabetycznie, lecz na wygenerowanej stronie), wyświetlenie wyrazów na daną literę(również case 3 i 4), oraz poprawa literówek w nowym case'ie. Przepraszam @lukequaint, że nie użyłem Twojego kodu, ale niestety muszę zrobić to w taki, a nie inny sposób. Liczę na Twoją pomoc, bądź kogoś innego :)
lukequaint
Użytkownik
Użytkownik
Posty: 219
Rejestracja: 5 maja 2010, o 18:27
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 1 raz
Pomógł: 75 razy

[C++]Słownik angielsko polski i polsko angielski

Post autor: lukequaint »

To możesz zrobić w ten sam sposób, co jest w kodzie, który wysłałem. Zamiast metod find kontenerów biblioteki standardowej, użyj pętli for. Będzie to wyglądać bardzo podobnie (słowa na literę są wypisywane u mnie w liniach 86-112), poprawa literówki niżej.

Z czym masz problem ?
ODPOWIEDZ