如何为简单的待办事项列表管理器改进此程序设计?

时间:2010-11-02 09:42:44

标签: c algorithm

对于一个简单的命令行待办事项管理器(即用C实现),这就是我对设计的看法:

  • 该实用程序通过将todo存储在每个

    的不同文件中来支持多个用户

  • 运行程序时会将所有数据保存在内存中。这样可以避免不必要的IO,并且当您不希望用户拥有超过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 个答案:

答案 0 :(得分:1)

如果您想将所有内容保留在内存中,则只需在writefile之后拨打cleanup,或在main之后从while_not_logout拨打电话。为什么不通过将他们的待办事项列表保存在自己的homedir中来支持多个用户?