图书管理系统设计 | 您所在的位置:网站首页 › 图书管理系统概念设计 › 图书管理系统设计 |
具体实现_ https://blog.csdn.net/birdy_/article/details/75201980
1.设计要求 设计并实现一个精简的图书管理系统,要求具有图书入库、查询、借书、还书、借书证管理等功能。 通过该图书馆系统的设计与实现,提高学生的系统编程能力,加深对数据库系统原理及应用的理解。 2.数据对象 2.1书籍 book
数据类型 约束 编号 Book_ID int primary key 类别 Type nvarchar(10) FOREIGN KEY(Type) REFERENCES type(Book_type) 书名 Title nvarchar
出版社 Publisher nvarchar
年份 Publish_year int check(publish_year>1800) 作者 Author NVARCHAR
价格 Price decimal(6,2)
总藏书量 Number int check(Number>=0) 库存 Stocks int check(Stocks>=0) 2.2书籍类型 type
数据类型 约束 类型 Book_type nvarchar(10) primary key 编号 Type_number int NOT NULL UNIQUE,check (Type_number >0) 2.3借书证 library_card
数据类型 约束 借书证号 card_ID int primary key 姓名 Username varchar(10)
单位 Company nvarchar
类别 (教师 学生等) Type varchar(10) check (Type in ( 'student', 'teacher' ) ) 2.4管理员 manager
数据类型 约束 管理员ID manager_ID int primary key 密码 Password varchar(10) not null 姓名 Name varchar(10)
联系方式 Connection int
2.5记录 record
数据类型 约束 书号 Book_ID int REFERENCES book(Book_ID) 借书证号 card_ID int REFERENCES Library_card(card_ID) 借期 borrow_data date
还期 return_data date
经手人 manager_ID int REFERENCES manager(manager_ID) 3 触发器设计 3.1 约束(未在逻辑结构设计中涉及的部分) -出版年份不大于当前年份 -检查输入时,库存与总藏书量是否相等 -借出时检查是否有余量 -借出时检查借书证,如果类型为老师则最多借出5本书,学生最多借出3本书(目前仅考虑这两种类型)。 3.2 性质 -插入record(借出)更新库存 -删除record(还书)更新库存 -插入book检查是否已有信息完全相同的column,有则合并
4 基于IDE的图书管理系统设计 这一部分是对基本功能模块的思考
4.1.管理员登陆 -获取用户输入账号及密码 -在manager表中查找相应信息,判断是否正确 -记录登录状态
4.2.图书入库
————单本入库———— -输入书名、出版社等信息,输入数量 -输入的数量是小数、或者负数小数,则输出错误提示框。 -如果类型不存在,输出错误提示框 -如果出版年份大于现在年份,则数据库底层给出错误。 -如果信息完全相同借助于DB底层的触发器,自动合并
————单本删除———— 在这里提供删除操作,对于书籍遗失等现象进行处理 -根据ID和数量,进行数据的更新 -如果删除数量大于库存,提供错误信息 -等于库存,根据总量选择update或者delete -小于库存,进行update
————批量入库———— -从文档中读取数据,txt中信息类似于单本插入 -创建临时表,可在临时表上修改数据
4.3.图书查询 -提供信息匹配 -在book中选择符合条件的信息 4.4.借书 -输入book_ID和card_ID -根据card_ID显示该借书证已借书籍 -判断库存,如果库存为0,返回record中该本书最早的还书时间 -考虑到生活中人工计算书号的可能性不大,在这里根据类别生成编号 由于图书馆的书需要用到的删除操作较少,我们考虑的编号方式是第一位是类别的ID,后三位是这本书的在该类书中的编号,比如小说对应1,则书籍编号为1000~1999。新插入的书的编号默认为现有该类型书最大的编号加一。如果某一类的书编号超出1000,入库无法继续进行,数据库会发出重新编码的要求。考虑到有可能的删除(比如书籍遗失),并且对于图书馆,删除的操作不会太多,这种编码方式在实现较快查找的同时,可以保证较高的利用率。 -读取管理员信息,现有时间,以40天为借阅期限,自动生成日期 -用DB底层的触发器,更改库存 4.5.还书 -选择记录 -删除选中记录 -用DB底层的触发器,更改库存
4.6.借书证管理 ————查找借书证———— -根据输入ID查找记录
————删除借书证———— -删除选中记录 -如果没有已借书籍,直接删除 -如果有已借书籍,继续删除则默认书籍全都返回,或者停止以进行进一步操作。
5.交互设计 这一部分主要是建立在Qt的基础上,对已有的IDE部分的设计进行补充。
5.1.管理员登陆 -欢迎以及显示当前登录状态 -密码显示* -显示除查询界面以外的界面
5.2.图书入库 ————单本入库———— -在输入书名的时候,会对显示的书籍进行查找 -如果在图书馆系统中已经存在,可以直接点击该信息,会自动将书名、出版社等信息自动填入输入框 -点击左侧类别,会自动填入类别
————单本删除———— -单击记录,会自动填入数量(总量)和ID
————批量入库———— -设置清空、删除此条的命令,方便用户进行处理 -双击信息可以对其进行编辑 -插入后错误信息会留下以方便用户对可能的错误信息进行处理
5.3.图书查询 -借助编辑文本以及按钮状态转变的信号,考虑不使用查询按钮,在用户操作时实时进行查询 -多种排序方式方便浏览(这一块由于中文特殊的编码方式,对于与此相关的排序效果不好) -可以选择是否显示无余量的书目
5.4.借书 -根据card_ID显示用户信息,帮助管理员查看用户信息 -根据book_ID显示书籍信息,帮助确认书籍
5.5.还书 -单击借书记录可以读取Book_ID和card_ID
5.6.借书证管理 -新建借书证的时候,新建ID的方式与图书相似 -借书证类别选取 -返回对话框显示ID
5.7.显示 -borrow_info和manager在前面的要求里没有直接的完整的显示,考虑到这一点新增和两栏,以对数据库信息进行更好的观察。考虑到我对这个书籍管理系统的定位是方便用户和管理员的操作,认为管理员的信息应该由上层负责人直接导入,管理员不应该对自己的信息进行随意的修改,所以这一块只提供浏览不提供修改。
5.8.撤销操作 -考虑到管理员错误操作的可能性,希望能提供撤销操作的事件。
|
CopyRight 2018-2019 实验室设备网 版权所有 |