Электронная таблица – код решения

Опубликовано Nov 17, 2011 в Загрузка кода проектов, Наши старые тестовые задания, Тестовые проекты (2-3 часа) | 2 коммент.

,

Электронная таблица – код решения

Мы решили выложить решение для первой стадии
тестового задания на тему “Электронная таблица”, которое нам кажется оптимальным.

Загрузить ZIP-файл c кодом

Смотрите, изучайте, комментируйте, если найдете ошибки – мы рады об этом узнать.


Автор публикации:

2 Коммент. : “Электронная таблица – код решения”

  1. Проверка диапазона в Table::IsNumber и использование atoi в Table::createCell, при том, что NumberCell::val – unsigned int можно считать ошибкой.
    Недочеты:
    - Cell::~Cell желательно сделать виртуальным;
    - void printTable(const Table& table) можно поместить в class Table, а Table::row_cnt, Table::col_cnt сделать закрытыми, либо сделать доступ к элементам таблицы через итераторы;
    - не понятно для чего в конструкторах и деструкторах в параметрах указывается void;
    - в условии задачи сказано: “Ссылки могут задаваться только как “= [A-Z – только одна буква], [0-9 – только одна цифра]”, попробуйте задать A0 … Z0;
    - не видно класса EmptyCell;
    - интересно сделан поиск циклической ссылки, но было бы логично не изменять тип ячейки.

    В целом, с учетом выделенного времени, решение можно считать приемлемым.

    • Галина says:

      Все ваши замечания абсолютно справедливы, спасибо.

      Данный код представляет собой решение реально созданное на собеседовании в офисе примерно за два с половиной часа. Из имеющихся у нас подобных решений мы выбрали то, которое сочли наиболее удачным и выложили его “как есть”. Подобные недочеты для решения, создаваемого в условиях собеседования мы считаем допустимыми, а за отведенное время довести все до идеала – такое требование, все же очень жесткое.

      Про ячейки – “A0 … Z0″ – получилось интересно. Практически все, кто решал эту задачу, держат в голове представление о том, как выглядит электронная таблица в Excel. Так как там нулей в нумерации строк нет – про них забывают.

Оставить комментарий

Ваш адрес email не будет опубликован.


*