Для простого менеджера задач командной строки (который должен быть реализован в 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();
}
Как улучшить структуру программы / поток выполнения?
Я хочу знать, где все можно улучшить структуру программы, прежде чем начинать вставлять фактический код. Любые предложения / комментарии приветствуются.