|
|
@ -12,30 +12,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
项目开发过程中采用 Kanban(看板)进行任务管理和分工协作,并使用 Git 对程序代码和文档进行版本管理。任务分工情况如下:
|
|
|
|
项目开发过程中采用 Kanban(看板)进行任务管理和分工协作,并使用 Git 对程序代码和文档进行版本管理。任务分工情况如下:
|
|
|
|
|
|
|
|
|
|
|
|
| 任务 | 设计 | 开发 | 测试 | 文档 |
|
|
|
|
| 任务 | 设计 | 开发 | 测试 | 文档 |
|
|
|
|
| ---- | ---- | ---- | ---- | ---- |
|
|
|
|
| ------------------------- | ----- | ----- | ------------ | ----- |
|
|
|
|
| C1-C3 菜单驱动的用户界面 | 成员1 | 成员1 | 成员2,成员3 | 成员1 |
|
|
|
|
| C1-C3 菜单驱动的用户界面 | 成员1 | 成员1 | 成员2,成员3 | 成员1 |
|
|
|
|
| C4 添加库存记录 | 成员2 | 成员2 | 成员3 | 成员2 |
|
|
|
|
| C4 添加库存记录 | 成员2 | 成员2 | 成员3 | 成员2 |
|
|
|
|
| ... | ... | ... | ... | ... |
|
|
|
|
| c5 | ... | ... | ... | ... |
|
|
|
|
| ... | ... | ... | ... | ... |
|
|
|
|
| c6 | ... | ... | ... | ... |
|
|
|
|
|
|
|
|
|
|
|
|
每个成员的工作量(百分比):
|
|
|
|
每个成员的工作量(百分比):
|
|
|
|
|
|
|
|
|
|
|
|
| 成员1 | 成员2 | 成员3 |
|
|
|
|
| 成员1 | 成员2 | 成员3 |
|
|
|
|
| ---- | ---- | ---- |
|
|
|
|
| ----- | ----- | ----- |
|
|
|
|
| 40 | 30 | 30 |
|
|
|
|
| 40 | 30 | 30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 关于零件库存管理系统
|
|
|
|
## 关于零件库存管理系统
|
|
|
|
|
|
|
|
|
|
|
|
设计一个库存零件管理系统,要求采用命令行菜单界面进行交互,具备读取、保存、打印、查询、修改、插入、删除和排序等基本功能,能够以表格和图表形式展示数据,采用 CSV 格式保存数据。
|
|
|
|
设计一个库存零件管理系统,要求采用命令行菜单界面进行交互,具备读取、保存、打印、查询、修改、插入、删除和排序等基本功能,能够以表格和图表形式展示数据,采用 CSV 格式保存数据。
|
|
|
|
|
|
|
|
|
|
|
|
系统的功能性需求:
|
|
|
|
系统的功能性需求:
|
|
|
|
|
|
|
|
|
|
|
|
- 数据的读取、保存、打印、查询、修改、插入、删除、排序和图表展示。
|
|
|
|
- 数据的读取、保存、打印、查询、修改、插入、删除、排序和图表展示。
|
|
|
|
|
|
|
|
|
|
|
|
系统的非功能性需求:
|
|
|
|
系统的非功能性需求:
|
|
|
|
- 菜单驱动的命令行交互界面。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 菜单驱动的命令行交互界面。
|
|
|
|
|
|
|
|
|
|
|
|
## 需求分析
|
|
|
|
## 需求分析
|
|
|
|
|
|
|
|
|
|
|
@ -44,6 +44,7 @@
|
|
|
|
#### C1: 启动程序
|
|
|
|
#### C1: 启动程序
|
|
|
|
|
|
|
|
|
|
|
|
命令行中执行命令 `./app`,系统启动,显示提示信息,然后显示功能菜单,等待用户输入命令。
|
|
|
|
命令行中执行命令 `./app`,系统启动,显示提示信息,然后显示功能菜单,等待用户输入命令。
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
库存管理系统启动
|
|
|
|
库存管理系统启动
|
|
|
|
|
|
|
|
|
|
|
@ -53,8 +54,6 @@
|
|
|
|
请选择:
|
|
|
|
请选择:
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### C2: 显示命令菜单
|
|
|
|
#### C2: 显示命令菜单
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
@ -64,8 +63,6 @@
|
|
|
|
请选择:
|
|
|
|
请选择:
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### C3: 退出程序
|
|
|
|
#### C3: 退出程序
|
|
|
|
|
|
|
|
|
|
|
|
选择菜单命令 `0`,再输入 `y` 确认,则退出程序。
|
|
|
|
选择菜单命令 `0`,再输入 `y` 确认,则退出程序。
|
|
|
@ -76,8 +73,6 @@
|
|
|
|
程序退出
|
|
|
|
程序退出
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### C4: 添加库存记录
|
|
|
|
#### C4: 添加库存记录
|
|
|
|
|
|
|
|
|
|
|
|
选择菜单命令 `5`,提示输入零件编号,若该零件不存在,则继续输入零件名称、库存数量,添加零件,并提示完成;若零件编号已存在,则提示零件已存在,并结束。
|
|
|
|
选择菜单命令 `5`,提示输入零件编号,若该零件不存在,则继续输入零件名称、库存数量,添加零件,并提示完成;若零件编号已存在,则提示零件已存在,并结束。
|
|
|
@ -93,11 +88,10 @@
|
|
|
|
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
|
|
|
|
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
|
|
|
|
|
|
|
|
|
|
|
|
请选择:5
|
|
|
|
请选择:5
|
|
|
|
输入零件编号:101
|
|
|
|
输入学号:101
|
|
|
|
零件已存在.
|
|
|
|
零件已存在.
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### C5: 查询库存记录
|
|
|
|
#### C5: 查询库存记录
|
|
|
|
|
|
|
|
|
|
|
|
选择菜单命令 `4`,提示输入零件编号,若该零件存在,则输出零件信息;否则提示零件不存在并结束。
|
|
|
|
选择菜单命令 `4`,提示输入零件编号,若该零件存在,则输出零件信息;否则提示零件不存在并结束。
|
|
|
@ -118,8 +112,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### C6: 打印库存列表
|
|
|
|
#### C6: 打印库存列表
|
|
|
|
|
|
|
|
|
|
|
|
选择菜单命令 `3`,打印
|
|
|
|
选择菜单命令 `3`,打印
|
|
|
@ -134,8 +126,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### C7: 修改库存记录
|
|
|
|
#### C7: 修改库存记录
|
|
|
|
|
|
|
|
|
|
|
|
选择菜单命令 `6`,根据提示输入零件编号,若零件存在,则继续输入新的零件名和库存数量,并修改库存记录;否则,提示零件不存在并结束。
|
|
|
|
选择菜单命令 `6`,根据提示输入零件编号,若零件存在,则继续输入新的零件名和库存数量,并修改库存记录;否则,提示零件不存在并结束。
|
|
|
@ -166,8 +156,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### C8: 删除库存记录
|
|
|
|
#### C8: 删除库存记录
|
|
|
|
|
|
|
|
|
|
|
|
选择菜单命令 `7`,根据提示输入零件编号,若零件存在,则删除之;否则提示零件不存在并结束。
|
|
|
|
选择菜单命令 `7`,根据提示输入零件编号,若零件存在,则删除之;否则提示零件不存在并结束。
|
|
|
@ -195,8 +183,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### C9: 库存记录排序
|
|
|
|
#### C9: 库存记录排序
|
|
|
|
|
|
|
|
|
|
|
|
选择菜单命令 `8`,对库存记录按零件编号从小到大排序。
|
|
|
|
选择菜单命令 `8`,对库存记录按零件编号从小到大排序。
|
|
|
@ -230,8 +216,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### C10: 从文件中读取库存记录
|
|
|
|
#### C10: 从文件中读取库存记录
|
|
|
|
|
|
|
|
|
|
|
|
选择菜单命令 `1`,提示输入文件名,若文件存在,则打开文件读取 CSV 格式保存的所有库存记录;否则,若文件不存在,则给出错误信息并结束。
|
|
|
|
选择菜单命令 `1`,提示输入文件名,若文件存在,则打开文件读取 CSV 格式保存的所有库存记录;否则,若文件不存在,则给出错误信息并结束。
|
|
|
@ -276,8 +260,6 @@ a: No such file or directory
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### C11: 将库存保存保存到文件
|
|
|
|
#### C11: 将库存保存保存到文件
|
|
|
|
|
|
|
|
|
|
|
|
选择菜单命令 `2`,提示输入文件名,将所有库存记录以 CSV 格式保存到指定的文件中。
|
|
|
|
选择菜单命令 `2`,提示输入文件名,将所有库存记录以 CSV 格式保存到指定的文件中。
|
|
|
@ -290,8 +272,6 @@ a: No such file or directory
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### C12: 以图表方式显示库存记录
|
|
|
|
#### C12: 以图表方式显示库存记录
|
|
|
|
|
|
|
|
|
|
|
|
选择菜单命令 `9`,以图表方式显示库存记录。
|
|
|
|
选择菜单命令 `9`,以图表方式显示库存记录。
|
|
|
@ -309,7 +289,6 @@ a: No such file or directory
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 概要设计
|
|
|
|
## 概要设计
|
|
|
|
|
|
|
|
|
|
|
|
系统主要分为用户界面和数据处理两大模块。
|
|
|
|
系统主要分为用户界面和数据处理两大模块。
|
|
|
@ -318,7 +297,6 @@ a: No such file or directory
|
|
|
|
|
|
|
|
|
|
|
|
上述各模块通过主程序(main)进行调用,系统模块图如下。
|
|
|
|
上述各模块通过主程序(main)进行调用,系统模块图如下。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
![picture.draw](/picture.drawio.svg)
|
|
|
|
![picture.draw](/picture.drawio.svg)
|
|
|
|
|
|
|
|
|
|
|
|
各模块的主要功能如下:
|
|
|
|
各模块的主要功能如下:
|
|
|
@ -335,7 +313,6 @@ a: No such file or directory
|
|
|
|
|
|
|
|
|
|
|
|
显示菜单命令。
|
|
|
|
显示菜单命令。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 详细设计
|
|
|
|
## 详细设计
|
|
|
|
|
|
|
|
|
|
|
|
针对概要设计
|
|
|
|
针对概要设计
|
|
|
@ -351,10 +328,8 @@ Step 2.4: if c == CMD_SAVE then 保存数据
|
|
|
|
Step 2.5: if c == CMD_PRINT then 打印数据
|
|
|
|
Step 2.5: if c == CMD_PRINT then 打印数据
|
|
|
|
Step 2.6:
|
|
|
|
Step 2.6:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
![主程序流程图](images/main.drawio.svg)
|
|
|
|
![主程序流程图](images/main.drawio.svg)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### save_data
|
|
|
|
#### save_data
|
|
|
|
|
|
|
|
|
|
|
|
Step 1: 输入文件名
|
|
|
|
Step 1: 输入文件名
|
|
|
@ -363,7 +338,6 @@ Step 3: if 打开文件失败 then 提示打开文件失败并结束
|
|
|
|
Step 4: 将所有库存记录写入文件
|
|
|
|
Step 4: 将所有库存记录写入文件
|
|
|
|
Step 5: 关闭文件
|
|
|
|
Step 5: 关闭文件
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
![保存数据流程图](images/save_data.drawio.svg)
|
|
|
|
![保存数据流程图](images/save_data.drawio.svg)
|
|
|
|
|
|
|
|
|
|
|
|
#### add_data
|
|
|
|
#### add_data
|
|
|
@ -376,4 +350,3 @@ Step 5: 添加新零件到数据
|
|
|
|
Step 6: 提示添加成功
|
|
|
|
Step 6: 提示添加成功
|
|
|
|
|
|
|
|
|
|
|
|
![添加库存记录流程图](images/add_data.drawio.svg)
|
|
|
|
![添加库存记录流程图](images/add_data.drawio.svg)
|
|
|
|
|
|
|
|
|
|
|
|