40 lines
2.3 KiB
Markdown
40 lines
2.3 KiB
Markdown
# 业务要求
|
||
|
||
## 基本要求
|
||
|
||
设计并实现一个书店管理系统。该书店管理系统应当面向三类人员:顾客、销售人员和店长。最终交接物为需求分析文档、总体设计文档(13 周周二前)和源代码(16 周周一前)。关于程序有以下要求:
|
||
|
||
- 编程语言限制:软件主体(除 bonus 部分外)完全使用 C++ 编写;
|
||
- 系统数据需要存储在外存中;
|
||
- 系统首次运行时应当创建店主账户,其具有最高权限;
|
||
- 管理系统应当使用命令行进行交互;
|
||
|
||
- 系统支持嵌套登录,即允许多个帐户同时处于登录状态;允许同一帐户同时多次登录。输入的指令视为最后登录的帐户操作;
|
||
|
||
## 游客
|
||
|
||
游客只能注册/登录用户。
|
||
|
||
## 顾客
|
||
|
||
顾客可以查询和购买图书。
|
||
|
||
- 每种图书包含的信息有:ISBN 号(20 个字符,每本正版书都有惟一的标识)、书名(60 个字符、作者(60 个字符)、关键字(可以有多个,总共不超过 60 个字符)、库存量(整型)、单价(非负实数);
|
||
|
||
- 查询图书时可以根据 ISBN 号、作者名字、关键字、书名中的任意组合进行查询;
|
||
- 购买图书时,我们通过给定的 ISBN 号和购买数量来进行操作;
|
||
|
||
## 销售人员
|
||
|
||
销售人员可以执行所有顾客执行的操作,同时也可以进行进货、图书信息录入、图书信息修改、用户创建。
|
||
|
||
- 进货时需指定 ISBN 号、数量、进货价格;
|
||
- 第一次录入图书时,应当输入其完整信息;
|
||
|
||
## 店长
|
||
|
||
店长可以执行所有销售人员和顾客可以执行的功能,同时也可以查询某段时间的采购信息(即按照采购顺序输出采购图书的 ISBN 号、数量、单价等)、销售情况(即按照销售顺序输出售出图书的 ISBN 号、数量、单价等)、盈利信息(即输出该段时间的收入,支出以及利润)。除此之外,店长也可以查看各员工的工作情况报告(即按操作顺序输出每次操作类型及其对象,如创建用户操作以及对应的用户信息)和系统的整体工作日志。
|
||
|
||
## 性能需求
|
||
|
||
考虑到应用场景下帐户和图书数量较大,故**禁止将主体数据存储于内存**,应实时读写文件数据。运行过程中程序创建的文件数量不得超过 20 个。 |