Программа для создания кроссвордов, Обсуждение программы и кода |
Здравствуйте, гость ( Вход | Регистрация )
Программа для создания кроссвордов, Обсуждение программы и кода |
xwicked |
2.8.2011, 14:50
Сообщение
#1
|
Студент Группа: Участник Сообщений: 66 Регистрация: 2.8.2011 Из: Старый Оскол Пользователь №: 2781 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте! Есть одна программа для создания кроссвордов. Она состоит из двух частей: создание и отгадывание. Прошу её код хорошо покритиковать. Для остальных, чтобы могли посмотреть на её работу, дам ссылки на бинарники 32-бит: создание, отгадывание. Qt-4.5.3. Проекты OpenSource под GPLv2. Ссылки на SourceForge.net - создание, отгадывание. Это мой первый код на C++(Qt). Жду комментариев Добавлю небольшое описание: Сетка кроссворда представлена обычной таблицей TableCrosswordEdit(QTableWidget), слова загружаются в список слов ListWord(QStringList), толкования(вопросы) находятся в списке вопросов ListQuestions(QListWidget). Структура файла - динамическая. Когда писал программы на Delphi - использовал статику - расходовалось лишнее дисковое пространство . XWC: Пароль, количество строк, количество столбцов, ширина(высота) ячейки таблицы, шрифт, структура таблицы(w + 1(x) - белая ячейка, b + 1( c ) - чёрная), строка с данными CrosswordData(QString).
CrosswordData: цикл по количеству слов(q, QChar(номер слова), QChar(координата строки в сетке), QChar(координата столбца в сетке), направление слова в сетке), цикл по количеству слов(W, QChar(номер слова), QChar(длина слова), само слово), цикл по количеству вопросов(Q, QChar(номер вопроса), QChar(длина вопроса), сам вопрос).
Шаблон кроссворда(XWTPL) таже структура, но без пароля и без CrosswordData. Состояние сохранения(tmpcross): цикл по количеству слов(W, QChar(номер слова), QChar(длина слова), само слово). |
|
|
Алексей1153 |
23.8.2011, 11:15
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
xwicked, я прекрасно осведомлён о содержимом и устройстве простейшего XML, который использую очень часто
Я не навязываю. К этому сам потом придёшь, когда будешь зарабатывать на жизнь программированием. XML против бинарников - это экономия сил, времени и , соответственно, денег. Я советую именно потому, что всё это прошёл и знаю разницу. Есть выбор: 1) бинарник + малый объём + много гемора при отладке и совместимости версий 2) XML + чуть побольше объём + удобная отладка, поддержка и совместимость А рост объёма сейчас мало кого волнует - ресурсы машин растут несоизмеримо быстрее. Цитата # Размер XML-документа существенно больше бинарного представления тех же данных. В грубых оценках величину этого фактора принимают за 1 порядок (в 10 раз). # Размер XML-документа существенно больше, чем документа в альтернативных текстовых форматах передачи данных (например JSON[4], YAML, Protocol Buffers) и особенно в форматах данных, оптимизированных для конкретного случая использования. # Избыточность XML может повлиять на эффективность приложения. Возрастает стоимость хранения, обработки и передачи данных. # XML содержит метаданные (об именах полей, классов, вложенности структур), и одновременно XML позиционируется как язык взаимодействия открытых систем. При передаче между системами большого количества объектов одного типа (одной структуры), передавать метаданные повторно нет смысла, хотя они содержатся в каждом экземпляре XML описания. # Для большого количества задач не нужна вся мощь синтаксиса XML и можно использовать значительно более простые и производительные решения. глупость. Никто не заставляет постоянно читать и записывать - загрузи в память в любом привычном виде и работай. XML - это хранилище, совместимое во времени с другими версиями программы и между запусками. Метаданные - архиватор спасёт от избыточности . Цитата Вручную это делать глупо зато эффективно и не делает Цитата 3. Увеличение размера Win и Mac сборок программы, за счёт добавления лишней библиотеки. В общем-то , не хотел "зафлуживать" тему , я дал совет - тебе решать. Я думал, плюсы и так очевидны xwicked, но всёж-таки, интересно, каков у тебя ответ на вопрос Цитата B b; int i=sizeof(B ); //сколько ? void* p=&b; //что там ? и какова будет реакция деструктора переменной при попытке считывания из файла Сообщение отредактировал Алексей1153 - 23.8.2011, 11:17 |
|
|
Текстовая версия | Сейчас: 23.11.2024, 1:26 |