Как я могу улучшить дизайн этой программы для простого менеджера списка задач? - PullRequest
1 голос
/ 02 ноября 2010

Для простого менеджера задач командной строки (который должен быть реализован в C), вот что я подумал о дизайне:

  • Утилита будет поддерживать несколько пользователей, сохраняя задачи в разных файлах для каждого

  • Во время работы программа будет хранить все данные в самой памяти. Это позволило бы избежать ненужного ввода-вывода и также вполне подходит, когда вы не ожидаете, что у пользователя будет более 20 задач (я предполагаю, что это правда). Таким образом, если пользователь уже существует, файл todo пользователя будет считан, и все данные, записанные в память (в виде массивов строк (структур)), и затем, когда пользователь выйдет из файла, будут обновлены.

Цель проекта - показать, как это можно сделать, не усложняя жизнь.

Этот псевдопсевдокод описывает структуру

// define data structure memory limits
// and other constants

bootup() {
    // initialize data structures
}

readfile() {
    use rot13();
}

writefile() {
    use rot13();
}

login() {
    ask_for_username
    search for file or create one
    if file present
        readfile();
    ... and populate data structures
}

//1.
enter_new_task() {
    read
    record_time
    is_starred
    optional_due_date
}

//2.
...

fetch_commands() {
    show_command_menu();
    // 1. enter a new task
    // 2. see the list of tasks
    // 3. delete a task
    // 4. edit a task
    // 5. sort tasks by
}

while_not_logout() {
    display_ui();
    fetch_command();
    while(command != logout) {
        execute_command();
        update_ui();
        fetch_command();
    }
    writefile();
}

cleanup() {
    // free memory
}

int main() {
    bootup();
    login();
    while_not_logout();
    cleanup();
}

Как улучшить структуру программы / поток выполнения?

Я хочу знать, где все можно улучшить структуру программы, прежде чем начинать вставлять фактический код. Любые предложения / комментарии приветствуются.

1 Ответ

1 голос
/ 02 ноября 2010

Если вы хотите сохранить все в памяти, тогда звоните только writefile с cleanup или с main после while_not_logout.Почему бы не поддерживать нескольких пользователей, сохраняя их список задач в их собственном домашнем каталоге?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...