An open API service indexing awesome lists of open source software.

https://github.com/vitkarpov/thespellchecker

Writing a real C++ program
https://github.com/vitkarpov/thespellchecker

Last synced: about 2 months ago
JSON representation

Writing a real C++ program

Awesome Lists containing this project

README

        

# The Spell Checker

```
____ ____ ____ _________ ____ ____ ____ ____ ____
||T |||h |||e ||| |||S |||p |||e |||l |||l ||
||__|||__|||__|||_______|||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/_______\|/__\|/__\|/__\|/__\|/__\|
____ ____ ____ ____ ____ ____ ____
||C |||h |||e |||c |||k |||e |||r ||
||__|||__|||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|/__\|/__\|

```

Консольная утилита для проверки орфографии текстов.

### Зачем нужна эта программа?

Это учебная программа. Ее разработка специально разбита на 10 условных уроков — каждый зафиксирован тегом, чтобы можно было удобно переключаться между основными этапами разработки:

```
git co lesson-2
...
git co lesson-5
```

По мере прохождения этапов в папке `doc` появляется очередной файл с описанием того, что сделано, фиксацией ключевых идей и описанием подходов.

Рассчитано на начинающих программистов, которые знают основы языка `C++`, но не имеют достаточного опыта в разработке реальных программ.

Будут рассмотрены следующие темы:

* проектирование и продумывание концепции;
* ОО архитектура: классы и их интерфейсы;
* обработка ошибок;
* использование стандартной библиотеки;
* ...

Автор оригинальных уроков: [Neil Butterworth](https://bitbucket.org/neilb)

### Что в итоге получится

```
spc [-n] [[-d special.dict] …] [file …]
```

```
article1.txt: 2 errors
7, thre, perhaps thre is a reaction
12, phiton, low-energy phiton is emitted
```

### Уроки

* [Введение и предыстория: откуда взялась задача](doc/intro.md)
* [Глава 1](doc/lesson-1.md): проектирование
* [Глава 2](doc/lesson-2.md): класс Dictionary, ошибки компиляции и линковки,
* [Глава 3](doc/lesson-3.md): работа с файлами, обработка ошибок и производительность
* Глава 4
* Глава 5
* Глава 6
* Глава 7
* Глава 8
* Глава 9
* Глава 10

### Файловая структура

```
bin
| spellchecker.exe
data
| sample-dictionary.dat
| ..
inc
| dictionary.h
| ...
doc
| lesson1.md
| lesson2.md
| ...
src
| dictionary.cpp
| main.cpp
| ...
```

### Сборка

Для сборки в корне лежит `Makefile`. Требуется установленный `g++`.