1、目录目录 一、需求分析. - 1 - 二、概要设计. - 1 - 2.1 设计思想 - 1 - 2.2 运行平台及开发环境 . - 1 - 2.3 数据结构 - 2 - 2.4 系统结构图 - 2 - 三、详细设计. - 2 - 3.1 主函数 . - 2 - 3.2 图书基本信息输入 - 3 - 3.3 查询模块 - 4 - 3.4 删除模块 - 5 - 3.5 办理借书手续模块 - 6 - 3.6 办理还书手续模块 - 7 - 四、测试结果分析 - 8 - 4.1 输入图书信息模块效果. - 8 - 4.2 查询模块效果示意 - 9 - 4.3 删除模块效果图 . - 11 - 4.4 借
2、阅图书模块效果示意图 . - 11 - 4.5 归还图书模块效果示意图 . - 12 - 五、总结 - 13 - 5.1 优缺点分析 - 13 - 5.2 心得体会与收获 . - 14 - 六、参考文献. - 14 - 七、附录 - 15 - - 1 - 一、需求分析 先分析我所拿到的题目,我需要设计一个简单的图书管理系统。分为两个方面,一 方面是对图书的管理。 首先需将图书的基本信息写入到指定的储存图书信息的文件中; 接下 来是查询功能,要实现根据图书的序号和书名查询图书的基本信息;然后是删除功能,要求 根据输入序号删除对应图书所有信息。另一方面是学生借书和还书系统。借书后,要求输入 学生信
3、息,并且与所借书本对应,并且借出后,书本所存状态随之发生改变,并储存;还书 时,要求输入学生的信息,并且将还书信息储存。 根据以上分析可知, 由于图书的信息是存放在文件中, 所以要有文件的写入读出等操作; 同时要对图书信息和对应学生的信息进行浏览、 查找或删除等一系列的操作, 就要对文件的 内容进行读出写入保存,就要涉及到一些简单的算法;此外,由于是一个操作系统,就需要 有主菜单实现选择操作。 二、概要设计 2.1 设计思想 根据以上的需求分析可以将整个系统的设计分为六个模块: 1、 输入图书基本信息模块, 2、查询图书基本信息模块,3、删除图书信息模块,4、办理借书手续模块,5、办理还书手
4、续模块。另外加上系统主菜单的选择的设计。 2.2 运行平台及开发环境 此程序是在 Microsoft Visual C+软件平台上编译的,具有集成开发环境,可提供编辑 C 语言,C+以及 C+/CLI 等等编程语言。VC+整合了便利的除错工具,特别是整合了微软 视窗程式设计(Windows API) 、三维动画 DirectX API,Microsoft .NET 框架。 - 2 - 2.3 数据结构 综合以上的分析及开发平台特点, 我决定采用结构体数据结构, 将图书的基本信息设计 为结构体数据,用来存放多种图书的信息,把图书的名称、编号、单价、作者、存在状态, 包括与之对应的借书人姓名、 性
5、别、 学号作为结构体成员, 然后将结构体数据存储到文件中, 以便实现信息之间的对应输入输出,以及存储。 2.4 系统结构图 根据以上分析,可得以下图书管理系统设计的框图: 图 2-1 图书管理系统设计框图 三、详细设计 3.1 主函数 主函数的设计主要是为调用菜单函数,在菜单函数中实现各个模块功能子函数的调用, 同时为用户提供一个较为人性化的操作界面, 能够提示用户进行正确的操作, 在输入出错后 可以有出错提示。具体流程图如图: 图书信息管理系统 图书信息 输入模块 图书信息 查询模块 旧书信息 删除模块 办理借书手 续删除模块 办理还书手 续删除模块 - 3 - 图 3-1 主函数操作流程图
6、 实现这部分功能是主要采用 switch 语句。 首先用 printf 函数在运行界面上打出学籍管理 系统和个功能模块及其对应的数字选项。然后输入要进行的操作选项,利用 switch 语句进 行判断,而后进入到不同的功能函数中,进行不同的操作。当然,要在进行完某一项操作要 调用 main 函数,方便用户进行线下一项的操作 3.2 图书图书基本信息输入基本信息输入 在定义变量时采用结构体数据结构,图书编号、储存的数量是整型,图书的价格在此定 义为整型(本也可以定义为 float 型) ,图书名称、图书的作者是字符型,采用字符型数组, 但数组长度一定要足够,否则会出现数据丢失错误,考虑到图书名称、作者的字符长度,在 此定义它们的长度要足够。将涉及到的图书和对应学生的基本信息定义为结构体。 在将图书的基本信息输入时,要将其保存为 book_list1.txt,用来存放所有输入的图书的 信息。这时就涉及到文件的建立和写入,选取较为简单的 fprintf 函数作为写入文件的函数。 首先定义一个指向文件的指针,再定义一个整型变量,该整型变量 count 是人为输入的,其 目的是为了实现