Kezdőoldal » Számítástechnika » Programozás » Üdv! Régebben feltettem itt...

Üdv! Régebben feltettem itt egy kérdést egy könyvkód megfejtéséhez. Hogyan tovább? Többi lent.

Figyelt kérdés

A régi kérdésem:Van egy könyv kód, szeretnék egy olyan programot irni ami bekérné a könyvet és a kód alapján megkeresi az adott szót majd ezt egy külön fájlban kimenti. Aki esetleg nem értené, könyv kód pl 5 14 67 367 na most a számok eggyes szavakat jelölnek

Lefelé hajlott a nap. Búcsúzóul betekintett még az erdőbe, hol hosszúra nyúlt az árnyék.Az 5=Búcsúzóul 14=árnyék és igy tovább.

Született egy épkézláb megoldás, de nagyon sok probléma volt vele.Pdf helyett a txt formátumnál kötöttem ki(igy egyszerübb)A program röviden:van 3 txt fájl,1.a kód ebbe mentek a számok,2.a szöveg ebbe került a szöveg,3.a visszafejtett szöveg.A hibái a programnak az volt hogy pl ha egy szám többször szerepelt a kódban akkor hibával kilépett, vagy a szövegben az entert is új szónak vette igy elszúszott az egész igy használhatatlan volt.Szóval nem volt hülye biztos.Annak is örülnék ha objektum orientált lenne pl elinditanánk a programot betallóznánk a szügséges fájlokat és a dekódol gomb megnyomásával már megis kapnánk a kész fájlt bár ez már csak a külcsin.

Szóval kérnék segitséget,ötletet vagy akár kész programot ezekben a dolgokban.Illetve c+ nyelv helyett mi mást tudnátok mondani ami valamivel egyszerübb és objektum orientált is?Ez pedig maga a program:

#include <fstream>

#include <iterator>

#include <algorithm>


using namespace std;


int main()

{

ifstream ifsNumbers("numbers.txt");

ifstream ifsText("text.txt");

ofstream ofs("words.txt");


vector<int> vNumbers( istream_iterator<int>(ifsNumbers), (istream_iterator<int>()) );

sort(vNumbers.begin(), vNumbers.end());


int cnt = 0;

auto cit = vNumbers.cbegin();

copy_if( istream_iterator<string>(ifsText), istream_iterator<string>(), ostream_iterator<string>(ofs, "\n"), [&] (const string&)

{

if (cit != vNumbers.cend() && cnt++ == *cit)

{

cit++;

return true;

}

else

{

return false;

}

});


ifsNumbers.close();

ifsText.close();

ofs.close();

return 0;

}



2014. márc. 8. 21:17
1 2 3
 1/22 Tengor ***** válasza:
Java? Objektum orientált. Abban szívesen el is kezdeném a feladatot. C++-hoz nem fűlik a fogam :)
2014. márc. 8. 23:41
Hasznos számodra ez a válasz?
 2/22 anonim ***** válasza:

Az objektum orientáltság nem azt jelenti, hogy van grafikus felület. :)


Ha grafikus felületet szeretnél, akkor a legegyszerűbb, ha fogsz egy Visual Studio-t és az új projektnél olyat választasz, ami Windows form-os alkalmazást csinál. Összekattintgatod a felületet és a gombok eseményeihez hozzárendeled a megfelelő kódrészletet a fenti programból, illetve hozzáguglizod a tallózást.


C++ helyett más nyelv: szinte bármelyikkel megoldhatod, akár GUI-val, akár anélkül. Kipróbálhatnád a Python-t esetleg.

Vagy megcsinálhatnád PHP-val is, és ha kész, még egy webtárhelyre is felrakhatod, hogy bárki tudjon "könyvkódolni". :)

2014. márc. 8. 23:46
Hasznos számodra ez a válasz?
 3/22 A kérdező kommentje:
Tengor azt megköszönném.
2014. márc. 9. 13:21
 4/22 uno20001 ***** válasza:

Írtam egy Pascal verziót, nagyjából azt csinálja, amit te akarsz.

Van 2 fájl:

-be.txt:

ebben vannak a számok szöközzel elválasztva

például:

1 2 3 5 2 8 3 8

-szotar.txt

ebben van a "szótár", ilyen formában, különböző sorokban

például:

1=alma

2=körte

stb...


A program egy "ki.txt" állományt csinál, amelyben a dekódolt szöveg van.

Persze biztos lehetne javítani a kódon, de működik. :-)


Ha C++ verziót szeretnél, akkor írd át, legyen valami kis kihívás. :-)


http://pastebin*com/T4s6tK96

(csillag helyett pont)

2014. márc. 9. 14:50
Hasznos számodra ez a válasz?
 5/22 SimkoL ***** válasza:
[link] Ha ilyesmire gondolsz. A számokat szóközzel elválasztva tárold, a szöveget szétszedi szóköz és tab mentén.
2014. márc. 9. 17:16
Hasznos számodra ez a válasz?
 6/22 A kérdező kommentje:
Simkol a programot te magad irtad vagy csak találtad valahol?Pontosan ilyenre gondoltam egyébként az az egy kis bökkenő van hogy több ezer számmal és több ezer szóval dolgoznék, ennyit viszont már nemtud kezelni.A kérdésemből kifelejtettem nem gondoltam hogy ezis fontos.Hogylehetne megoldani hogy kezeljen több ezer számot,szót?
2014. márc. 9. 18:36
 7/22 SimkoL ***** válasza:
kb. 30 éve nem ékeskedem idegen tollakkal :) A listboxoknak kb. 130 millió-ig kellene kezelni a sorokat ezért nem értem hogy miért nem kezeli. Nem hülyebiztos, kb. 30 perc alatt készült, szórakozásból csak a 'pofát' akartam bemutatni. Küldjél fájlokat, hogy mivel dolgozol lehet akkor többet látok vagy ha lesz időm írok neked egy kódoló-dekódolót. Vagy ha gondolod elküldöm as Delphi-s forrást, picike az egész :)
2014. márc. 9. 19:22
Hasznos számodra ez a válasz?
 8/22 SimkoL ***** válasza:
A C++ könyv 305.310 szót tartalmaz 1291 oldal :) Simán kezeli. A hiba a te készülékedben van, a könyvet pdf-ből generáltam txt formátumba és tökéletes.
2014. márc. 9. 19:32
Hasznos számodra ez a válasz?
 9/22 A kérdező kommentje:
Egy email-t kaphatnék amire elküldöm?Igen örülnék a delphi-s kódnak.
2014. márc. 9. 19:39
 10/22 SimkoL ***** válasza:
2014. márc. 9. 19:44
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!