Skip to content

normanmenes/2022-02_project_bcf

Repository files navigation

BCF zadanie rekrutacyjne - Menes Norman

url: https://github.com/normanmenes/2022-02_project_bcf

Uruchamianie programu

Pobierz wszystkie pliki programu (archiwum SFX): download lub całą zawartość katalogu: /Release
Uruchom program: 2022-02_project_bcf.exe

Treść zadania

Create the application that will analyze and show statistics of specified directory that will handle recursive directories. It should print number of files and total number of lines (might as well count non-empty and empty lines). Provide unit tests for solutions.- Application should use multithreading (keep in mind system limitations, you might need to control number of concurrent calls, e.g., use thread pool).

  • Use std::filesystem
  • Use GTest for Unit Tests
  • As a bonus, you could also count words and letters and provide performance benchmarks (e.g., measure the impact of using the different number of threads)

Podstawowe funkcje i zmienne

  • funkcja "main" - uruchamia funkcję "main_function", a następnie testy jednostkowe

  • funkcja "main_function" - uruchamia funkcję zawierającą główne działanie programu (gdyby nie test, byłaby to funkcja główna)

  • zmienna "count_numOfLines" - zapisuje zsumowane liczby linijek z kolejnych plików

  • zmienna "count_numOfFiles" - licznik plików

  • funkcja "numOfLines" - funkcja zliczająca liczbę linijek w pliku z przekazaną do niego ścieżką jako argument. Zwraca liczbę linijek w danym pliku

Działanie programu

Program otwiera wszystkie pliki znajdujące się w folderze z uruchomionym programem, a także w ich subfolderach (recursive directories).
pętla {
Funkcja "numOfLines" zwraca wartość liczby linijek w pliku z przekazaną do niego ścieżką jako argument. Zwrócona wartość dodawana jest do zmiennej "count_numOfLines".
Następuje inkrementacja zmiennej "count_numOfFiles" liczącej liczbę plików.
}

Program zliczył również wartości z programu realizującego to zadanie. Po przeliczeniu wartości linijek i liczby plików nastąpi ponowne zliczenie liczby linijek tego programu i odjęcie od zmiennej "count_numOfLines".
Program przekazuje do funkcji "numOfLines" swoją pełną nazwę i zwróconą wartość odejmuje ze zmiennej "count_numOfLines".
Następuje dekrementacja zmiennej "count_numOfFiles" liczącej liczbę plików.

Na zakończenie uruchamiany jest test sprawdzający poprawność zwracanych wartości przez funkcję "numOfLines". Pliki testowe zostały wygenerowane za pomocą programu test_file_generator, a liczba linijek w plikach testowych została sprawdzona w Notepad++ v8.1.9.3.

Parametry techniczne

OS: Windows 10
Standard języka: C++17
Platforma: Visual Studio 2019 (v142)

Autor rozwiązania

Norman Menes, Poznań
dla Bright Coders' Factory Opole

About

Zadanie rekrutacyjne dla BCF Opole

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages