精华内容
下载资源
问答
  • 按照软件工程方法完成的图书管理系统总体设计说明书,内容包含设计的总体框架等。
  • 关于图书管理系统总体设计,包括该系统的总体设计图和相关信息
  • 图书管理系统总体设计报告,花了我很多精力做的,蛮好的。
  • 1.1编写目的 ...开发软件名称:图书管理系统开发软件。 项目任务提出者是学校图书馆管理人员提出,用户是校内在读或者在职的全体师生以及职工。 本产品能具体化、合理化管理图书馆,用结构化的思维方式..

    1.1编写目的

    运用软件对在校全体学生以及职工的借阅图书行为进行管理,科学而有效,不仅可以减少图书管管理员的工作量,而且还给借阅者提供了更方便的借阅方式。一款优秀的管理软件,可以满足当今市场需求,也可以取得一定的市场效益。本说明书明确了客户的各项需求,为程序开发人员明确了所开发软件应具有的功能和注意事项。

    1.2项目背景

    1. 开发软件名称:图书管理系统开发软件。
    2. 项目任务提出者是学校图书馆管理人员提出,用户是校内在读或者在职的全体师生以及职工。
    3. 本产品能具体化、合理化管理图书馆,用结构化的思维方式去了解计算机的基本工作原理。

    1.3定义

    1. 数据流图简称 DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的。主要表达工具及用于表示软件模型的一种图示方法。
    展开全文
  • 确定用例 通过对系统需求的分析可以确定系统有三个执行者图书管理员行为者 读者行为者及系统管理员行为者简要描述如下 1) 图书管理员行为者管理员按系统授权维护和使用系统不同功能可以 创建修改删除读者信息和图书...
  • 校园网-图书管理系统总体设计说明书校园网-图书管理系统总体设计说明书
  • 项目名称 总统设计说明书 图书管理系统 作 者 姚楦楦罗燕梅陈玲玲黄文秀黎俊麟 完成日期 2010 年 3 月 28 日 签 收 人 签收日期 目录 1 引言 1.1 编写目的 1 1.2 范围 1 1.3 定义 1 1.4 参考资料 2 2 总体设计 2 2.1...
  • C语言图书管理系统设计报告

    万次阅读 多人点赞 2017-06-20 17:37:54
    源代码:https://blog.csdn.net/k_young1997/article/details/73480766 XXXX大学 ...C语言课程设计报告 ...题 目 图书管理系统设计 专业班级 XXXX级计算机科学与技术本科X班 组 别 计科第...

     

    源代码:https://blog.csdn.net/k_young1997/article/details/73480766

     

     

     

    XXXX大学

     

    C语言课程设计报告

     

     

     

     

     

    题    目            图书管理系统设计         

    专业班级     XXXX级计算机科学与技术本科X班

    组    别            计科第29组               

    学生姓名          XXX、XXX、XXX           

    (系)           信息工程系               

    指导教师(职称)       XXX(教授)          

    完成时间            xxxx年x月xx日          

     

    XXX大学

    课程设计任务书

     

    题目                图书管理系统设计                  

    班级              xxxx级计算机科学与技术本科x班     

    学号         xxxxxxxxxxxx         姓名      xxx      

    学号         xxxxxxxxxxxx         姓名      xxx      

    学号         xxxxxxxxxxxx         姓名      xxx      

    一、主要内容:

    本课程设计结合本学期所学C语言知识,数组、函数、结构体、指针、链表、文件读取操作等等,准备设计开发一个简单的图书管理系统。设计开发这个系统需要用到链表、文件读取操作、结构体、函数、指针、等C语言知识。本课程设计将会实现对图书信息的账号登录、注册账号、密码修改、密码查找、查找、输出、排序、备份、恢复、图书借阅和归还功能。本着简单、易用的设计原则,本课程设计在尽量优化界面在保证输入输出美观的同时又不失友好的交互界面。

    本次设计主要学习内容包括:

    (一)进一步学习并熟练掌握C语言语法和编程思想。

    (二)学习C语言提供的库函数,熟悉CodeBlocks的开发工具。

    (三)学习C语言函数、链表、结构体、文件读取、指针等知识。

    (四)学习软件的设计与开发过程中所需要思想和细节。

    二、基本要求:

    (一)质量要求

    (1)图书管理系统的基本功能模块的设计应包括:账号登录和修改、图书信息的浏览和保存、图书的借阅和归还。

    (2)对图书管理系统设计并进行调试、修复、完善、测试。测试图书信息的输入输出是否正确、测试文件的读取与存储是否正常、测试账号切换后是否各项功能是否正常运行、测试评估界面是否合理,友好。

    (3)定期主动向指导教师汇报任务进度,认真填写相关报告文档。

    (4)按时完成各阶段工作,不突击,不抄袭。

    (二)进度要求

    (2)明确课程设计任务,搜集资料:xxxx年x月xx日—x月xx日。

    (3)完成程序的设计与实现,撰写课程设计论文初稿:xxxx年x月xx日—x月xx日。

    (4)与指导教师沟通,完成课程设计论文定稿:xxxx年x月xx日—xxxx年x月xx日。

    (5)进入课程设计论文审阅阶段,准备答辩:xxxx年x月xx日—x月xx日。

     

    三、主要参考资料:

    [1] 甘勇,李晔,卢冰.中国铁道出版.《C语言程序设计(第二版) 》 

    [2] 河南工业大学同学的图书管理系统的功能的借鉴。

    [3] 啊哈磊.人民邮电出版社.《啊哈!算法》

    [4] 程杰,清华大学出版社.《大话数据结构》

     

     

     完 成 期 限:     xxxx年x月xx日 

    指导教师签名:                 

     

    年   月   日

     

     

    目   录

    1概述.1

    1.1 设计思想. 1

    1.2 设计原则. 1

    1.3 课程设计报告内容及分工情况. 1

    1.3.1 课程设计报告内容. 1

    1.3.2 课程设计分工情况. 2

    2总体设计.3

    2.1 功能模块图. 3

    2.2 主函数 main()3

    2.3 程序流程图. 4

    3详细设计.5

    3.1函数.5

    3.2函数流程图.7

    4运行结果与调试.13

    4.1 运行结果. 13

    4.2 软件调试. 15

    结束语.17

    参考资料.18

    附录.19

     

    1概述

     

    1.1设计思想

    (1)该系统的设计分成几个相对独立的模块,这些模块都进行集中式管理。

    (2)分层的模块化程序设计思想,整个系统采用模块化结构设计作为应用程序,有较强的可操作性和扩展性。

    (3)合理的数据设计,在应用系统设计中,相对独立的模块间以数据相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性 。     

    1.2设计原则

    为了使本系统功能齐全完备,操作简便,最大限度的提高用户的使用的体验,从而满足用户的实际需要,在设计开发过程中遵循了如下原则:

    (1)合法性原则:规范录入各种图书信息和各种数据,对用户的账号信息进行规范保存。

    (2)实用性原则:根据用户对图书信息浏览和借阅的基本需求设计各种功能,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能。

    (3)易操作原则:要求设计的系统功能齐全,界面友好,操作方便,必要的地方进行提示。

    (4)源程序可读性原则:为了便于其他设计,维护人员读懂代码或以后的代码修改,软件升级维护,即可能做好代码注释工作。

     

    1.3 课程设计报告内容及分工情况

    1.3.1课程设计报告内容

    (1)系统功能模块结构图和程序流程图

    (2)数据结构设计及用法说明

    (3)程序结构(画功能模块图或流程图)

    (4)各模块的功能

    (5).实验结果(包括输入数据和输出结果)

    (6)设计体会

    (7)参考文献

     

    1.3.2 课程设计分工情况

    本组共有3人,具体分工情况如下:

    (1)学号:xxxxxxxxxxx,姓名:xxx,具体负责xxxxxx。

    (2)学号:xxxxxxxxxxx,姓名:xxx,具体负责xxxxxx。

    (3)学号:xxxxxxxxxxx,姓名:xxx,具体负责xxxxxx。

     

     

    2总体设计

    2.1功能模块图

           本图书管理系统分为三个功能模块,分别是账号管理功能、图书信息管理功能、图书借还管理功能。账号管理功能可以进行账号登录、注册账号、找回密码、修改密码:图书信息管理功能可以对图书信息进行查找、排序、修改、恢复、和备份功能:图书借还管理功能可以查询用户的借书记录、借书、还书功能。功能模块图如图2-1所示。

     

     

    图2-1图书管理系统模块图

    2.2主函数 main()                                        

    函数的功能:用于联系各个功能函数模块,以及退出程序时的退出画面提示。

    函数的入口:整个程序是从主函数开始的。

    函数的出口:当从main()的ove函数开始中进入,即显示出欢迎使用界面;跳出while循环,然后退出main()函数,即:退出整个程序。

    函数调用关系:该函数不被其它函数调用。

     

    2.3程序流程图

           本图书管理系统在启动后会先进入登录界面进行登录或各种账号操作,然后进入图书信息管理、图书借还管理等实用性功能的操作。程序流程图如图2-2所示。


    图2-2图书管理系统流程图

    3       详细设计

    3.1      函数

    (1)功能函数ling()

    函数的功能:登录账号

    函数的入口:从main()中进入。

    函数调用关系:被主函数调用。

    函数的出口:当账号登录成功返回1然后结束该函数,或输入密码错误超过三次结束结束整个程序。

    (2)功能函数FindByNum()

    函数的功能:按书号对图书进行查找并输出。

    函数的入口:程序从Find()的switch()开关结构中进入,即sclele的值为1时,开始进入该函数,进入函数后,在存储图书信息的stu结构数组中进行查找,找到后进行输出,若没找到则输出“未找到该数”。

    函数调用关系:被Find()函数调用。由switch()开关结构中进入,并在文中无返回值的空值void函数。

    函数的出口:当输出结果信息用printf()标准输出到屏幕上,然后结束该函数,而执行Find()函数中“break;”跳出switch()开关函数,继续执行while循环结构。

    (3)功能函数SortByScore()

    函数的功能:对所有图书信息按书名的首字母进行排序,并保存到文件“缓存区”中。

    函数的入口:从Sort()的switch()开关结构中进入,即sexh的值为1的时侯,进入该函数,开始对图书信息按书名的首字母进行排序,然后将排序结果保存到文件“缓存区”中。

    函数调用关系:被Sort()函数调用。由switch()开关结构中进入,并在文中无返回值的空值void函数。

    函数的出口:把“排序完成”用printf()标准输出到屏幕上,然后结束该函数,而执行Sort()函数中“break;”跳出switch()开关函数,继续执行while循环结构。

    (4)功能函数output()

    函数的功能:输出所有图书信息

    函数的入口:从Find()的switch()开关结构中进入,即sclele的值为4时,进入该函数。并调用PrintRecord()函数对每一条图书信息进行输出。

    函数调用关系:被Find()函数调用。由switch()开关结构中进入,并在文中无返回值的空值void函数。

    函数的出口:将所有图书信息都输入到屏幕上后,执行Find()函数中“break;”跳出switch()开关函数,继续执行while循环结构。

    (5)功能函数Huifu ()

    函数的功能:将所有图书的信息恢复至备份时的状态

    函数的入口:从Menu()的switch()开关结构中进入,即select的值为4时,进入该函数。用freopen("图书信息库.txt","r",stdin)将里边的所有图书信息都存入内存,然后再调用save()将所有图书信息都存入到“缓存区”中。

    函数调用关系:被Menu()函数调用。由switch()开关结构中进入,并在文中无返回值的空值void函数。

    函数的出口:将所有图书信息都存入到“缓存区”中后,执行Menu()函数中“break;”跳出switch()开关函数,继续执行while循环结构。

    (6)功能函数BorrowBook()

    函数的功能:借阅图书

    函数的入口:从Borrow()的switch()开关结构中进入,即shl的值为2时,进入该函数。之后对用户的信誉值进行判断,若低于60将无法借书。然后调用FindByName()函数对所借图书进行搜索,若存在则输入借书时间,否则借书失败。

    函数调用关系:被Borrow()函数调用。由switch()开关结构中进入,并在文中无返回值的空值void函数。

    函数的出口: 将借书结果输入到屏幕上后,执行Borrow ()函数中“break;”跳出switch()开关函数,继续执行while循环结构。

    (7)功能函数SendBook ()

    函数的功能:归还图书     

    函数的入口:从Borrow ()的switch()开关结构中进入,即shl的值为3时,进入该函数。之后先判断该用户是否有借书记录,并调用FindByName()函数找到还的图书并对其数量进行修改,最后判断是否按期归还图书和图书有无破损。

    函数调用关系:被Borrow ()函数调用。由switch()开关结构中进入,并在文中无返回值的空值void函数。

    函数的出口: 还书完成后后,执行Borrow()函数中“break;”跳出switch()开关函数,继续执行while循环结构。

    3.2      函数流程图

    (1)账号登录流程如图3-1所示。


    图3-1 账号登录流程图

    (2)按书号查找图书流程如图3-2所示。


     图3-2按书号查找流程图

    (3)按书名首字母排序流程图如图3-3所示 。


    图3-3按书名首字母排序流程图

    (4)输出所有图书信息流程如图3-4所示。


    图3-4输出所有图书信息流程图

    (5)恢复备份功能流程如图3-5所示。


    图3-5恢复备份流程图

    (6)借阅图书流程如图3-6所示。

     

           图3-6借阅图书流程图

    (7)归还图书流程如图3-7所示。


            图3-7归还图书流程图

     

     

     4、运行结果与调试

    4.1运行结果

    (1)在程序开始是进入登录界面进行登录界面或选择切换账号时输出登录界面。该界面可以进行登录操作、注册新账号、找回账号密码、修改密码和退出系统。

    账号登录界面如图4-1所示。

        
         

    图4-1 账号登陆界面

    (2)该界面为主界面,在登录完成后或者从下一级界面返回后输出该界面。该主界面可以选择图书信息管理功能、图书借还功能、查看系统功能介绍、开发人员信息和退出系统的操作。主界面如图4-2所示。

      
       

    图4-2 主界面

    (3)该界面为图书管理功能的主界面,可以选择执行查找、排序、修改、恢复图书信息、备份图书信息的操作、返回上一级菜单的功能。图书信息管理功能界面如图4-3所示。

     
         

    图4-3图书信息管理功能界面

    (4)该界面可以实现图书信息查找功能,可以按书号查找、按书名查找、按作者查找、查看全部图书信息、返回上一级菜单的功能。查找功能界面如图4-4所示。

                

          图4-4 查找功能界面

    (5)该界面可以进行排序的操作。可以进行按书名首字母排序、按图书单价升序排序、按图书单价降序排序,还可以返回上一级菜单。排序功能是在内存中进行,所以不进行输出。排序功能界面如图4-5所示。

                 

        图4-5排序功能界面

    (6)该界面可以实现添加图书、删除图书、删除全部图书信息、返回上一级菜单的功能。修改功能界面如图4-6所示。

              

    图4-6修改功能界面

    (7)该界面可以实现对用户借书记录查询、图书借阅、图书归还、返回上一级菜单的功能。图书借还管理功能界面如图4-7所示。

                

    图4-7图书借还管理功能界面

    4软件调试

    (1)每个选择界面之后,前一屏幕的内容依旧存在,影响界面的美观;经过老会长的帮助及上网搜索,发现利用“system(“cls”);”可以消去前一屏幕的内容;然而接下来又出现新的问题:每次在执行完讲数据保存到文件的函数后都会输出紊乱。经过多次调试和修改后,发现把是因为freopen(”CON”,stdout)运行不稳定导致,在更换了保存数据的方法后结决了此问题。

    (2)在增加了切换账号功能后,在创建新账号后保存到文件的用户借还书记录总是出错但内存中没错,经过调试发现是因为在新增账号时用于存储新账号借还书记录的指针名与一个变量名相同造成每次都判断错误。最后更换了变量名,并使该指针每次使用前都指向NULL。

    (3)在借书时不能判断是因为图书数量不足导致不能借阅还是因为没用该图书导致的不能借阅,最后给每种情况标记变量都设置了一不同的值来区分两种不同的情况。

    (4)最开始在每次关闭程序后在下次使用前需要手动恢复文件中的数据,不能连续的使用数据,最后加了一个文件来保存各类数据的数量以使数据能够连续自主的调用,不需要再人工修改。

     

     

    结束语

     

    本系统包含51个函数,实现了图书管理系统所需的基本功能。系统功能大致分为三个模块,分别是登录模块、图书信息管理模块和图书借还模块。启动程序后首先执行的是登录功能。在此功能中可以实现账号登录、注册账号、找回账号密码、修改账号密码功能。登录时,若输入密码错误次数达到三次系统将自动关闭。在注册账号时若注册的账号已存在则不能再进行注册。修改密码时增加了验证码功能。在图书信息管理模块中可以进行图书的查找、排序、添加、删除、备份图书信息、恢复图书信息和切换账号功能。在图书借还功能模块可以进行图书的借阅、归还、借书记录查询功能。本系统在信息存储时采用了两种方式。在存储图书信息和账号信息时用的是结构数组,在存储用户借书记录时用的是链表。通过此次图书管理系统的设计熟练了结构数组、链表、文件的操作,同时对编写小型的系统有了一定的了解,对于细节方面考虑的比以前有很大提升。

     

    xxx:在该设计中主要完成了所有代码的实现,并最终调试实现了该图书管理系统的全部功能并完成了大部分的设计报告。在设计的过程中熟练了对文件的各种操作,链表和结构数组的使用,清屏函数和暂停函数的使用,对做一个项目的过程有了一个大概的认识,知道了大致的规划。在设计过程中发现一些文件的操作和清屏函数会有冲突,通过改变对文件的操作解决了此问题;

    xxx:除了xxx设计的这个图书管理系统,我自己也尝试着设计了一个图书管理系统的功能,因此也发现了很多问题,比如说:在用add()函数添加新增图书信息时,我就忘了字符型数据本身会吃掉回车的这一特点,忘了在%c前面加上空格,导致程序在循环的过程中一直无法正常显示结果。但是,通过仔细耐心的检查与对错误的分析,又在课本的相关章节进行了查阅,最终发现了这一问题。同时,我更加熟悉了结构体的使用,对函数的调用方式更加清楚。还有就是初步了解了函数指针的概念,能够使用基础的函数指针。同时,这也是我第一次尝试画各种各样的流程图,虽然画的不好,但这确实是我的第一次尝试,也觉得充满了乐趣。

    xxx:在本系统的设计中我参加设计了少量函数语句以及制作流程图等任务,在这次的设计前我原本对函数和结构体等了解并不太清楚,通过这次的设计我清楚了这些语句的运用,并且我学会了文件的操作,在文件的修改等地方出现了问题,后来通过查阅资料和讨论解决了这个问题。

    参考资料

     

    [1] 《C语言程序设计(第二版)》,甘勇等编著,中国铁道出版社,2015年9月

     

    [2] 《C语言程序设计》,苏小红等主编,高等教育出版社,2011年

    [3] 《C和指针》,徐波译,人民邮电出版社,2008年

    [4] 《C Primer Plus第6版 中文版》,姜佑 译,人民邮电出版社,2016年

    [5] 《大话数据结构》,程杰,清华大学出版社,2011年6月

    [6] 《啊哈!算法》,啊哈磊,人民邮电出版社

     

     

    附录

     

    源代码

     

     

     

    展开全文
  • 图书管理主要是借书、还书以及其他一些附带操作(例如,超期罚款、催还图书等)的处理。一个简单的图书管理系统应提供如下功能
  • 确定用例 通过对系统需求的分析可以确定系统有三个执行者图书管理员行为者 读者行为者及系统管理员行为者简要描述如下 图书管理员行为者管理员按系统授权维护和使用系统不同功能可 以创建修改删除读者信息和图书信息...
  • 图书管理系统报告(包括需求分析、总体设计、概要设计、例程)
  • 3.2.1系统总体概述 5 3.2.2系统性能需求 6 3.3数据流程图 6 4系统设计 9 4.1系统设计原则 9 4.2系统功能模块设计 9 4.2.1系统功能组成 9 4.2.2管理员模块 10 4.2.3用户管理模块 10 4.3数据库设计 11 4.3.1设计原则 ...
  • 3.2.1系统总体概述 5 3.2.2系统性能需求 6 3.3数据流程图 6 4系统设计 9 4.1系统设计原则 9 4.2系统功能模块设计 9 4.2.1系统功能组成 9 4.2.2管理员模块 10 4.2.3用户管理模块 10 4.3数据库设计 11 4.3.1设计原则 ...
  • 4.1系统总体设计 10 4.2系统详细设计 12 4.2.1数据库设计 12 4.2.2数据库表设计 13 4.2.3系统结构设计 14 第5章 系统实现与测试 16 5.1管理员功能实现 16 5.1.1登录首页 16 5.1.2后台管理主界面 16 5.1.3会员管理 17...
  • 图书管理系统(课程设计

    万次阅读 多人点赞 2019-12-29 19:01:47
    本项目开发的是一个图书管理系统,该项目计划书提供一个系统开发的实施步骤。对项目中的需求分析,总体设计,详细设计等步骤都有详细的说明。实现对图书系统的管理 1.2系统概述 本项目采用B/S工作模式:采用MVC三...

    1 绪论

    1.1选题目的及意义

     本项目开发的是一个图书管理系统,该项目计划书提供一个系统开发的实施步骤。对项目中的需求分析,总体设计,详细设计等步骤都有详细的说明。实现对图书系统的管理

    1.2系统概述

         本项目采用B/S工作模式:采用MVC三层架构模式,使用idea开发工具。选用MySQL作为后台数据库。主要实现管理员和学生的登陆。学生登陆后可以进行搜索目前书库中剩余的书,并且可以实现借书与还书。管理员登陆后可以进行查看学生借阅书籍的情况。查看书库书的剩余数量,并对书库中书进行管理。

    1.3人员的组成机分工

    人员1:业务层和服务处代码的编写及项目所有代码的整合,需求分析的编写

    人员2:持久层代码的编写及数据库的设计与建立,总体设计的编写

    人员3:前端JSP页面的编写,详细设计的、系统实现、测试用例

    2.面向对象分析

    2.1功能需求

    (1)登陆管理:管理员和学生可以通过输入用户名和密码进行登陆

    (2)图书管理:管理员登陆后可以对书库中的书进行管理

    (3)借书管理:学生可以借书与还书

    (4)图书检索:学生和管理员可以搜索书库中的书

    数据库设计

    设计三个表:用户表、检阅书籍记录表、书库书籍信息表

    4.详细设计 

    4.1总体关系

         项目整体采用MVC模式

    项目的整体结构

    4.1登陆模块

        登陆系统模块:当用户进入系统时调用的模块。系统根据用户名和密码判断用户类型,跳转到该用户界面。

       本模块的功能点包括:              

    判断用户名和密码是否匹配              

    根据用户权限类型,登录系统指定界面进行操作。 

     

     

    5.1开发环境

    开发工具:idea2019

    数据库:MySQL

    服务器:apache-tomcat-7.0.56

    5.2关键技术

    JSP表示所有前端界面

    通过JavaEE进行服务层的处理

    利用mybatis框架进行数据库的查询

    5.3运行结果

    登陆界面:

    学生登陆后的界面

    学生搜索图书

    学生搜索后的结果

    进行借阅

    借书超过上限

    管理员登陆后的界面

    查询所有书籍:

    添加书籍

    总结:

    以上是这次课程设计的主要成果的展示,只有基础的一些功能,通过本次课设,使我们加深了在实际情况中软件开发的的基本流程与步骤。对软件开发步骤有了更深的了解,对团队合作有了更号的默契。并且通过本次课程设计使得我们进一步的熟悉了JavaEE的知识及数据库的操作。

     

    展开全文
  • 2. 总体设计 S2. 2.1. 需求规定 S2.1. 2.2. 运行环境 S2.2. 2.3. 基本设计概念和处理流程 S2.3. 2.4. 概要设计模块结构图与描述表 S2.4. 3. 接口设计 S3. 4. 运行设计 S4. 5. 系统数据结构设计 S5. 6. 系统...
  • 3.1系统总体设计-----------------------------------------------------------5 3.2数据库设计与实现-------------------------------------------------------5 3.3功能更详细设计与实现 3.3.1学生端登录界面功能...
  • 大神们帮帮忙,现在有两个表,书籍信息表和书架表,想将这两个表关联起来,书籍信息表里面有书架编号的字段,...我需要怎么设计才能将这两个表关联起来,求助!</p>
  • 图书管理系统数据库设计实验报告

    万次阅读 多人点赞 2018-01-16 09:28:00
    图书管理系统设计实验报告 PB15051157 茹思淞 一、实验题目及其要求 编写一个图书管理系统,要求具有以下内容: 1)存储图书信息、采购和淘汰情况、租借情况 2)实现图书采购、淘汰...

    图书管理系统设计实验报告

    一、实验题目及其要求

    编写一个图书管理系统,要求具有以下内容:

    1)存储图书信息、采购和淘汰情况、租借情况

    2)实现图书采购、淘汰、租借功能。

    3)实现图书信息、采购和淘汰、库存、和租借情况查询

    4)实现图书的采购、库存、淘汰、租借情况等统计

    二、具体实现

    在本次系统设计中,我采用了袁老师推荐的Delphi7来进行图书馆管理系统的开发,因为对比其他工具来说用Delphi进行图形界面(GUI)应用程序开发更加简便,而且其与数据库的连接也相当紧密和直接,使得整个开发过程事半功倍。

    而对于DBMS,考虑到整个个开发过程的简便,我决定采用Microsoft SQL Server来进行开发,由于之前的实验已经对SQL Server已经比较熟悉,而且该服务器由于是搭建在学校服务器上,所以检查起来也就更加方便。

    下面是具体的数据库设计:

    1.数据库设计

    首先,在得到题目后,我认真地研究了中国科大图书馆的图书管理系统,并且向图书馆管理人员咨询了一些细节设计问题,最终我设计了如下的5张表来作为本次图书管理系统的后台数据,如下:

    首先是我们的E-R图,在这里我们的E-R图中省略了实体的属性值,因为在后面每张表中我们都会一一涉及到,所以在这里为了版面原因不再赘述。可以看到,我们的E-R图主要包含了三个实体:用户,书本,书目。其中用户具有多重身份,这是由于其中包含了多级用户,既可以对图书进行借阅、采购,又可以进行下架。在一个书目下又包含了多个书本信息,这是由于在图书馆中,同样的书不可能只有一本所造成。

    未命名文件(1)

    下面是第一张表:用户(读者)信息表。

    /* 表Reader :用户信息表*/
    create table PB15051157_LibrarySys_Reader
    (
    	学工号 char(20) not null, constraint PK_学工号 primary key(学工号),
    	姓名 char(50) not null,
    	联系方式 char(100) not null,
    	已借书数目 int not null, constraint CK_已借书数目 check (已借书数目>= 0),
    	读者级别 int not null, constraint CK_读者级别 check (读者级别in (0, 1, 2)),
    	--0:开发人员	1:图书馆管理员	 2:普通读者
    	密码char(100) not null,
      )
    

    这是一张用户信息表,用以存放各个读者(包括图书管理人员)的信息,学工号是主键这里定义了读者级别,0级也就是最高级是图书馆系统维护人员,最主要的工作是管理图书馆管理人员的帐户,同时也可以进行修改、添加图书信息的工作;1级也就是图书馆管理人员,主要工作是修改、添加图书信息,同时管理普通读者的帐户;2级也就是普通读者,可以借书还书还有查看自己的信息。

    /* 表TypeBook :每一种图书信息表*/
    create table PB15051157_LibrarySys_TypeBook
    (
    	书目号 char(10) not null, constraint PK_书目号 primary key(书目号),
    	图书位置 char(50) not null,
    	书名 char(100) not null,
    	作者 char(100) not null,
    	出版社 char(100) not null,
    	出版时间 char(50) not null,
    	关键词 char(200),
    	库存 int not null, constraint CK_库存 check (库存>= 0),
    	可借阅数量 int not null, constraint CK_可借阅数量 check (库存>= 可借阅数量 and 可借阅数量>=0),
    	单价 float not null, constraint CK_单价 check (单价>= 0)
    );
    

    这张表主要存放每种书的信息,比如说“数据库系统原理教程”就是当中的一个元素,同时书目号作为主键,这里要注意区别于下表之中的图书编号,这两个是完全不一样的两个概念,前者意味着两本相同的书具有相同的书目号,而后者则是每一本书都具有一个唯一的编号。“关键词”的设计主要是考虑到检索的时候可以更加方便读者利用关键词进行查询,而不必记得书本的全名。

    /* 表SingleBook:每一本图书信息表*/
    create table PB15051157_LibrarySys_SingleBook
    ( 
    	图书编号 char(20) not null, constraint PK_图书编号 primary key(图书编号),
    	书目号 char(10) not null, constraint FK_书目号 foreign key(书目号) references PB14209054_LibraryTable_TypeBook(书目号),
    	采购号 char(10) not null, constraint FK_采购号 foreign key(采购号) references PB14209054_LibraryTable_InBook(采购号),
    	下架号 char(10), constraint FK_下架号 foreign key(下架号) references PB14209054_LibraryTable_OutBook(下架号),
    	借出状态 char(6) not null, constraint CK_借出状态 check (借出状态in ('可借阅','已下架', '已借出')),
    	借出时间 char(50),
    	应归还时间 char(50),
    	借阅人 char(20), constraint FK_借阅人 foreign key(借阅人) references PB15051157_LibrarySys_Reader(学工号),
    );
    

    这张表主要用于存放每一本书的具体信息,比如说“数据库系统原理教程”这种数有n本这样的数,而每一本书的信息就是存放在这张表里。“书目号”、**“采购号”还有“下架号”**分别对应着这本书所属书的种类、以及采购和下架时对应的编号,并且作为外键可以查阅到相关的书籍信息、采购、下架信息,这里借阅人存储的是对应的借出的同学的学工号,并且作为外键方便查询对方信息。

    /* 表BookIn :图书采购信息表*/
    create table PB15051157_LibrarySys_BookIn
    (
    	采购号 char(10) not null, constraint PK_采购号 primary key(采购号),
    	采购时间 char(50) not null,
    	采购人 char(20) not null, constraint FK_采购人 foreign key(采购人) references PB14209054_LibraryTable_Reader(学工号),
    	供应商 char(100) not null,
    	采购数量 int not null, constraint CK_采购数量 check (采购数量>= 0),
    	采购总额 float not null, constraint CK_采购总额 check (采购总额>= 0)
    );
    
    /* 表BookOut :图书下架信息表*/
    create table PB15051157_LibrarySys_BookOut
    (
    	下架号char(10) not null, constraint PK_下架号p rimary key(下架号),
    	下架时间char(50) not null,
    	下架人char(20) not null, constraint FK_下架人 foreign key(下架人) references PB14209054_LibraryTable_Reader(学工号),
    	下架数量int not null, constraint CK_下架数量 check (下架数量>= 0)
    );
    

    这两张表分别为采购表及下架表,用以记录采购信息及下架信息,在这里不做详细介绍。

    2.SQL Server服务器的搭建

    对于数据库的搭建,我们使用MicroSoft SQLServer 登陆了202.38.88.99并且在数据库中建立了如图的五个表格:

    ![Image 1](C:\Users\rusis\Documents\数据库报告\Image 1.png)

    然后使用SQLServer的GUI工具向其中插入了相应的读者,图书,采购,淘汰信息,在这里所执行的SQL语句详情可见附件中的SQL文件。

    3.Delphi 7图书管理系统应用的开发

    在Delphi 7的设计当中,我们主要考虑了三个界面。

    • 主界面,主要是供读者进行查询图书以及归还和借阅图书的操作

    • 开发者界面,主要是供开发者进行新读者注册,读者密码重置,新图书上架,旧图书淘汰,添加采购信息的功能。

      在开发者界面里,还内嵌了一个图书情况统计的页面,可以详细统计以下:

      • 图书情况统计
      • 下架信息统计
      • 借阅信息统计
      • 采购信息统计
    • 读者界面,读者可以查询相关的借阅信息。

    下面我们来按照题目要求逐步分析该系统的功能:

    #####1、存储图书信息、采购和淘汰情况、租借情况

    对于该点,由于我们采用了微软的SQL Server,因此相应的图书信息,采购和淘汰情况,租借情况全都储存在了学校机房上的SQL Server 服务器上,因此不必担心,只要通过我们的应用程序就可以实现对我们所存储的信息的读写。

    #####2、实现图书采购、淘汰、租借功能

    在我们的系统设计当中,有三类不同的账户,其中一二类账户登陆进去之后可以进行图书采购、淘汰、租借功能。而三类账户即读者账户,仅仅可以实现租借功能。如下图,先是登录了-0级账户,在蓝色方框出进行登录,然后上面显示了读者级别,并且会自动弹出开发者管理界面。

    main

    下图即为管理界面:

    捕获

    该界面比较直观,主要具备了以下功能:

    • 注册新用户/重置旧用户的密码

    register

    resetPNG

    • 对图书进行淘汰下架

      bookout

    • 添加采购信息

    addbuy

    • 添加采购的图书信息

      • 若采购的图书的类别信息已在数据库内,从添加采购图书处管理即可,登记完之后,库存数量增加,可借阅图书增加,对图书类别信息无影响。

        Buy

      • 若采购的图书的类别信息不在数据库内,需要在添加图书信息处,先把图书的信息添加进去,然后再在添加采购图书处添加图书数量。

      addbook

    下面再介绍租借功能的实现:

    在主界面上用读者账号进行登录,登录成功后左上角会显示已登录信息,则可以进行借阅和归还操作。若未登录则会出现提示登录信息。

    借阅图书效果如下:

    boorrow

    归还图书如下:

    reborrow

    之所以设计成如上的原因主要是因为在实际上的图书管理系统中,更多使用的是RFID技术存储和读取图书对应的图书编号,因此在这一步中,实际输入编号的操作是由RFID感应器来自动实现的,所以这样可以免去读者自己输入图书编号的麻烦,而且在一定程度上也可以防止误操作,保证我们系统的强壮可用性。

    3&4、实现图书信息、采购和淘汰、库存、和租借情况查询和统计:

    如下图,这是对图书信息、采购、淘汰、库存和租借情况的查询和统计。

    主要分为如下四个部分:

    • 对于图书情况的查询统计:

      由于对于图书信息的详细查询在主页上也可以做到,因此在这里功能上不再赘余。只统计图书的总数,以及其中的类别和已下架的图书数。

    searchbook

    • 对于借阅信息的查询和统计:

      在这里可以查询到每一本书的借阅情况,包括借阅人,借出时间和应归还时间,方便图书管理员进行管理。同时在这里,下面一栏还显示了未下架的图书总数,已借出的图书数以及尚可借阅的图书数。

    lend

    • 对于采购信息的查询和统计:

      这里的设计主要是考虑到管理信息的需求,所以统计了不同供应商的数量,总共的采购次数以及到目前为止总共的采购总额。

    outbook

    5、系统额外的功能设计

    在我们的设计的系统比题目要求增添了一些额外的功能,其设计的依据主要是来自于现实我们中国科大的图书馆系统。

    • 读者中心功能:主要是提供给读者用户,支持的功能有两个:修改账号的密码,以及查询本账号的借阅图书信息(包括借阅的图书的图书编号,书名,借出时间,应归还时间)

    reader

    • 图书借阅额限制:

      和科大图书馆系统类似,我们这里也对每一个读者的借阅额做出了限制,每个人最多的可借阅量为8本,一旦达到8本就不可继续借阅,必须在归还相应的图书之后再进行借阅。

    fullborrow

    • 多样化的图书搜索功能:

      在我们的系统中,提供了搜索图书馆中搜索库存图书的功能,并且提供了多种搜索方式,可以依照书名、作者、出版社,关键字进行模糊搜索,方便读者进行查询借阅,而且无需登录。

      search

    • 合理的人性化设计:

      在我们的系统中基本每一个界面都会带有一个退出/返回按钮,这是为了防止用户误操作造成无故退出,也更加符合系统的设计原则。

    以上则为我们系统的所有功能介绍。

    4、设计体会

    在本次的大作业中,综合使用了本次课程中所教授的基本所有东西。例如有:

    • SQL 的基本使用
    • Dephi 7的用户程序设计
    • GUI的设计基本原则
    • 数据库的设计理论

    在本次的设计过程中,首先必须要清楚我们所需要的设计的图书信息管理系统的结构。一个完善的图书馆系统所需要的基本模块都必须要先设计好才能让我们的设计过程不会被各种突然遇到的问题打断。

    而在本次的锻炼实践中,我们也得到了从理论到实践的机会。在课程中学到的很多东西都可以有所得,有所悟,而不只是单纯的纸上谈兵。

    同时,借此机会,我们也学到了很多课堂上学不到的东西,掌握了许多实用的工具,例如学会了SQL Server的基本使用,Dephi7 的基本使用,它们都是非常有用的工具,不仅仅是在课堂作业中,更会在我们日后的职业生涯中有着不可估摸的作用。其次本次系统的设计也对我学习用户界面设计有所启发,一个系统不仅仅需要具有合理的功能模块设计,而且也需要有更加人性化的界面设计,便于用户学习使用和掌握,这样才能使系统能够让更多的人接受!

    展开全文
  • 问题背景在调研农村中学时发现这些农村中学图书室都藏书达六、七万余册,但其现行图书管理工作都是采用传统的手工管理,经过对其图书管理工作中的图书信息、读者管理及借阅管理工作做全面调查研究,其现行手工流程...
  • 系统总体设计 3.1. 系统总体设计 对于图书馆主要负责提供的功能是指从图书的购入开始直到该图书过期下架的整个流通过程,这其中包括图书入库、借出、归还以及对参与此流通过程的读者的信息管理 。 (1) 新图书信息...
  • 总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对系统进行功能测试,并对测试结果...
  • 开发本图书管理系统目的是为了实现对图书馆的图书,借阅等进行科学化的管理,便于图书信息以及借阅信息的查询和安全控制,提高设备使用效率,减少维护成本。 图书管理系统实现对图书的管理和借阅管理,利用PHP及...
  • 一、绪论 二、系统的分析 三、系统总体设计统 四、数据库的设计 五、程序模块的界面设计 六、系统测试 结 论 参考文献 致 谢
  • 自己绘制的图书管理系统的软件结构设计
  • 软件工程,图书管理系统详细设计说明书,包括各模块的程序描述、模块说明、流程图、功能描述等
  • 1 图书管理系统的需求分析 2 系统的UML基本模型 3 系统中的类 4 系统的配置与实现
  • 图书管理系统 总体设计报告 学院 信电学院 专业班级计算机 1401 姓名 冯嘉龙 学号 140210109 指导教师吴迪 2016 年 3 月 20 日 . 一引言 1.1 编写目的 总体设计说明书是进行编程的依据 此说明书的目的是为编程人员...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,260
精华内容 2,904
关键字:

图书管理系统总体设计