润色图书管理系统

基本情况:

已有的图书管理系统由c++/c语言混用实现,在Devc++上运行编译。整个系统有完整的功能模块和函数,由主函数调用实现具体功能,数据储存通过外置.txt文件实现。具体功能有对图书信息的存储、更新、查询、统计、输出的功能,功能较为完善,且实际运行也很流畅。系统拥有两个权限系统:管理员权限和用户权限。管理员通过密码登录,可实现对图书的增删改查,并且查看用户信息。用户则可进行图书借阅。

问题描述:

在仔细阅读源代码并且多次完整运行该系统所有功能后,对此图书管理系统拥有了深刻的了解。发现问题有下:1.功能菜单较为简陋,交互上令人不适2.查询功能单一,只能使用书名查询。

分析:

在明了问题所在后,我立刻投入到问题的解决之中去。很明了,问题1是比较好解决的,只需要对交互界面地排版进行优化,同时在功能实现后及时清屏,使得整个界面干净整洁。最重要的是问题2,事实上问题2的困难之处不在于代码,而在于新增的代码不能与原有的代码段出现冲突,这就要求我对原有的其他代码段进行深入了解,原有的走马观花来了解代码基本形式的阅读满足不了需求。当然我也不是先全看透再做,而是粗略查看,而后编写边修改,毕竟借助于便捷的IDE环境,可以清晰地发现问题所在。

 

总结:
此次项目修改之旅,首先就是增加了我的代码阅读量,更重要的阅读的是别人的代码,以往大作业往往是各人写各人的代码,虽然最后都能实现功能,但是在具体的实现方法、代码书写习惯、代码书写逻辑等方面都有或大或小的区别,这一次让我对这些细微之处有了更强烈的认知,以往只是知道个大概。再而我也重拾了学习过的c/c++语言的知识,熟悉而又陌生,似乎在学了java、python等之后对c又有了新的见解。对于项目制作而言,其实我本次所修改的项目已经是一个很成功的代码,功能很多。但是他的交互界面的粗劣,就使得他的整体观感没有那么优秀。再次,发现不管系统再好也总是可以增加新的想法,所以我才能增加新的查询方法。

 

个人见解:
以后的项目开发不能仅停留在功能模块的实现,交互界面做的不好也会使用户产生不好的使用体验;团队开发的代码或者个人开发的要供他人查看的代码要有清晰简单易懂的注释,甚至我认为及时不供他人查看,也应做到这一点,方便以后的自己查看也是好的。总归来说,如果说人如其字的话,代码亦是如此,要将这一点当做好的习惯养成。

 

初始样例:

 

 

 

 

 

 

 

最终结果:

 

 

 

 

 

 

 

 

 

代码更新:

void Library::SearchBookPosWithname(string thebook)//按书名查询

{

    int flag=0;

    for (int i = 0; i <(int)data.size(); i++)

    {

        if (data[i].name==thebook)

        {

            printbook(data[i]);

            flag=1;

        }

    }

    if(!flag) cout<<"查无此书!\n";

}

void Library::SearchBookPosWithAuthor(string theauthor)//按作者查询

{

    bool flag=false;

    for (int i = 0; i <(int)data.size(); i++)

    {

        if (data[i].author==theauthor)

        {

            flag=true;

            printbook(data[i]);

        }

    }

    if(!flag) cout<<"查无此作者的书!";

}

void Library::SearchBookPosWithKind(string kind)//按种类查询

{

    bool flag=false;

    for (int i = 0; i <(int)data.size(); ++i)

    {

        if (data[i].kind==kind)

        {

            flag=true;

            printbook(data[i]);

        }

    }

    if(!flag) cout<<"查无此类书!";

}

int Library::SearchBookPosWithAB(string theauthor,string thebook)//按作者和书名查询

{

    for (int i = 0; i <(int)data.size(); ++i)

    {

        if (data[i].author==theauthor&&data[i].name==thebook)

        {

            printbook(data[i]);

            return i;

        }

    }

    cout<<"查无此书!";

    return -1;

}

posted on 2021-03-10 11:40  芸薹  阅读(64)  评论(0)    收藏  举报