sergeythrees/Object-Oriented-Programming

Замечания по Dictionary

Opened this issue · 4 comments

2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C2143: syntax error: missing ';' before '-'
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C2059: syntax error: '-'
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C2059: syntax error: 'public'
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C2143: syntax error: missing ';' before '{'
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C2447: '{': missing function header (old-style formal list?)
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C2182: 'should_add_new_pair_to_non': illegal use of type 'void'
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C2086: 'int FillDictionaryFromInputStream_function::should_add_new_pair_to_non': redefinition
2>  c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): note: see declaration of 'FillDictionaryFromInputStream_function::should_add_new_pair_to_non'
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C3927: '->': trailing return type is not allowed after a non-function declarator
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C3484: syntax error: expected '->' before the return type
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C3613: missing return type after '->' ('int' assumed)
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C2373: 'boost::unit_test::`anonymous-namespace'::unit_test_log': redefinition; different type modifiers
2>  c:\sdk\boost_1_60_0\boost\test\unit_test_log.hpp(130): note: see declaration of 'boost::unit_test::`anonymous-namespace'::unit_test_log'
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C2888: 'boost::unit_test::unit_test_log_t &boost::unit_test::`anonymous-namespace'::unit_test_log': symbol cannot be defined within namespace 'FillDictionaryFromInputStream_function'
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C2146: syntax error: missing ';' before identifier 'set_checkpoint'
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C2146: syntax error: missing ';' before identifier 'test_method'
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C2512: 'boost::unit_test::ut_detail::auto_test_unit_registrar': no appropriate default constructor available
2>  c:\sdk\boost_1_60_0\boost\test\tree\auto_registration.hpp(38): note: see declaration of 'boost::unit_test::ut_detail::auto_test_unit_registrar'
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C2371: 'should_add_new_pair_to_non': redefinition; different basic types
2>  c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): note: see declaration of 'should_add_new_pair_to_non'
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(126): error C2653: 'empty_dictionary': is not a class or namespace name
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(127): error C2143: syntax error: missing ';' before '{'
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(127): error C2447: '{': missing function header (old-style formal list?)
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(138): error C2059: syntax error: '}'
2>c:\teaching\2016\new\stepanenko\oop\2\minidictionarytests\minidictionarytests.cpp(138): error C2143: syntax error: missing ';' before '}'
  • программа не компилируется
  • Не стоит использовать глобальные переменные
bool wasChangedDictionary = false;

Ну а если вдруг, резко, в них имеется надобность, то добавляйте префикс g_

  • Неудачное имя для переменной tCurrent
for (auto tCurrent : translations)
  • Следует избавиться от if
	if (answer == "Y" || answer == "y")
	{
		return true;
	}

	return false;
  • string word, translation;
    e7oh5ziaki0

  • Чем плох boost::to_lower / boost::to_lower_copy ? =)

string ToLower(const string &line)
{
	string result;
	for (auto symbol : line)
	{
		if (symbol >= 'А' && symbol <= 'Я')
			result += symbol + 32;
		else
			result += tolower(symbol);
	}
	return result;
}
  • Лучше использовать конструкцию с const auto & - копия объекта нам тут не нужна
for (auto tCurrent : dictionary)
  • Переменные, модификация которых не планируется в дальнейшем, лучше объявлять константными
string lWord = ToLower(word);
  • Используем lowerCamelCase
	multimap<string, string> EmptyDictionary;
	multimap<string, string> Dictionary =
Введите слово для перевода, ":" для ввода нового(варианта) перевода
или "..." для завершения работы со словарем
>ёлка
Перевод не найден.
Введите cлово или пустую строку для отмены
слово: ёлка
перевод: yolka
Новая пара в словаре обязательно должна содержать одно русское
и одно английское слово, которые состоят только из букв своего алфавита

>ёлка
Перевод не найден.
Введите cлово или пустую строку для отмены
слово: ёлка
перевод:

>yolka
Перевод не найден.
Введите cлово или пустую строку для отмены
слово: yolka
перевод: ёлка
Новая пара в словаре обязательно должна содержать одно русское
и одно английское слово, которые состоят только из букв своего алфавита
  • программа не работает. пока баллов не ставлю