yujia jin 2 years ago
commit c62f6e832f

@ -29,7 +29,7 @@
| 姚震 | 金雨佳 | 宋岱瑾 | 费良荣 |
| ---- | ---- | ---- | ---- |
| 30| 20 | 30 | 20 |
| 25 | 25 | 25 | 25 |
## 关于图书管理系统
@ -51,7 +51,7 @@
命令行中执行命令 `./app`,系统启动,显示提示信息,然后显示功能菜单,等待用户输入命令。
```
学生成绩管理系统启动
图书管理系统启动
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
@ -90,17 +90,17 @@
```
请选择5
输入学生学101
输入学生姓名:李
输入学生成绩80
学生 101 已添加
输入图书编101
输入图书名称:老人与海
输入图书索引号123456
图书 101 已添加
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择5
输入学生学101
学生已存在.
输入图书编101
图书已存在.
```
@ -110,17 +110,17 @@
```
请选择4
输入学生学101
学生学101
学生姓名:李
学生成绩80
输入图书编101
图书编101
图书名称:老人与海
图书索引号123456
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择4
输入学生学100
学生不存在.
输入图书索引100
图书不存在.
```
@ -135,7 +135,7 @@
-------------------------------------------------------
| NUMBER | NAME | ON HAND |
-------------------------------------------------------
| 101 | | 80 |
| 101 | 老人与海 | 80 |
-------------------------------------------------------
```
@ -148,10 +148,10 @@
```
请选择6
输入学生学101
输入学生姓名:张
输入学生成绩90
学生 101 已更新
输入图书编101
输入图书名称:张
输入图书索引号90
图书 101 已更新
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
@ -160,15 +160,15 @@
-------------------------------------------------------
| NUMBER | NAME | ON HAND |
-------------------------------------------------------
| 101 | | 90 |
| 101 | 老人与海 | 90 |
-------------------------------------------------------
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择6
输入学生学100
学生不存在.
输入图书编100
图书不存在.
```
@ -180,15 +180,15 @@
```
请选择7
输入学生学100
学生不存在.
输入图书编100
图书不存在.
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择7
输入学生学101
学生 101 已删除
输入图书编101
图书 101 已删除
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
@ -212,8 +212,8 @@
-------------------------------------------------------
| NUMBER | NAME | ON HAND |
-------------------------------------------------------
| 101 | | 80 |
| 100 | | 90 |
| 101 | 老人与海 | 80 |
| 100 | 战争与和平 | 90 |
-------------------------------------------------------
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
@ -230,8 +230,8 @@
-------------------------------------------------------
| NUMBER | NAME | ON HAND |
-------------------------------------------------------
| 100 | | 90 |
| 101 | | 80 |
| 100 | 战争与和平 | 90 |
| 101 | 老人与海 | 80 |
-------------------------------------------------------
```
@ -245,10 +245,10 @@
假设文件 `a.csv` 中,以 CSV Comma-Separated Values格式保存了如下记录
```
103,,80
104,,88
101,,90
102,,100
103,程序设计,80
104,离散数学,88
101,老人与海,90
102,高等数学,100
```
则读取记录的过程如下:
@ -266,10 +266,10 @@
-------------------------------------------------------
| NUMBER | NAME | ON HAND |
-------------------------------------------------------
| 103 | | 80 |
| 104 | | 88 |
| 101 | | 90 |
| 102 | | 100 |
| 103 | 程序设计 | 80 |
| 104 | 离散数学 | 88 |
| 101 | 老人与海 | 90 |
| 102 | 高等数学 | 100 |
-------------------------------------------------------
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
@ -305,10 +305,10 @@ a: No such file or directory
```
请选择9
图表
103 : | ******** (80)
104 : | ************ (88)
101 : | ******************** (90)
102 : | ********** (100)
103 : 程序设计 | ******** (80)
104 : 离散数学 | ************ (88)
101 : 老人与海 | ******************** (90)
102 : 高等数学 | ********** (100)
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
@ -358,7 +358,7 @@ Step 2.5: if c == CMD_PRINT then 打印数据
Step 2.6:
![主程序流程图](images/main.drawio.svg)
![主程序流程图](picture-main.svg)
#### save_data
@ -375,46 +375,46 @@ Step 5: 关闭文件
#### add_data
Step 1: if 数据库满 then 提示数据库满并结束
Step 2: 输入学生编号
Step 3: if 学生已存在 then 提示学生已存在并结束
Step 4: 输入学生名和学生数量
Step 5: 添加新学生到数据
Step 2: 输入图书编号
Step 3: if 图书已存在 then 提示图书已存在并结束
Step 4: 输入图书名和图书数量
Step 5: 添加新图书到数据
Step 6: 提示添加成功
![添加库存记录流程图](images/add_data.drawio.svg)
![添加库存记录流程图](picture-add.svg)
### query_data
Step 1:提示输入学生学号,并输入学
Step 1:提示输入图书编号,并输入编
Step 2for i = 0 to num_parts开始查询
Step 3查询最后一个学生结束
Step 4if未查询到提示学生不存在
Step 5else打印学生信息
Step 3查询最后一个图书结束
Step 4if未查询到提示图书不存在
Step 5else打印图书信息
![查询流程图](images/query_data.drawio.svg)
![查询流程图](query_data.svg)
### printf_data
Step 1:打印学生学号和学生姓
Step 1:打印图书编号和图书
Step 2for i = 1 to num_parts
Step 3:打印学生成绩
Step 3:打印借阅次数
![打印记录流程图](images/printf_data.drawio.svg)
![打印记录流程图](printf_data.svg)
#### update_data
Step 1输入学生学
Step 2查找学生是否已录入
Step 1输入图书编
Step 2查找图书是否已录入
Step 3if 不存在then 直接退出
Step 4else 输出学生信息
Step 4else 输出图书信息
![修改学生信息](images/update_data.drawio.svg)
#### delete_data
Step 1: 输入学生学
Step 2: 查找学生所在的位置
Step 3: if 没有该学生 then 则输出学生不存在
Step 4: 将查找到的学生后面的依次往前移动信息
Step 5: 将学生总数减一
Step 1: 输入图书编
Step 2: 查找图书所在的位置
Step 3: if 没有该图书then 则输出图书不存在
Step 4: 将查找到的图书后面的依次往前移动信息
Step 5: 将图书总数减一
Step 6: 提示删除成功
![打印记录流程图](deletesortupdate.svg)
@ -422,9 +422,9 @@ Step 6: 提示删除成功
#### sort_data
Step 1: 进行冒泡排序
Step 2: 将按照学生成绩排序,若前面的比后面的大,则交换
Step 2: 将按图书借阅次数排序,若前面的比后面的大,则交换
Step 3: 每次遍历记录是否交换,若没有交换,则排序结束
Step 4: 若成绩相同,则按照学号从小到大排序
Step 4: 若借阅次数相同,则按照编号从小到大排序
![打印记录流程图](images/sort_data.drawio.svg)
@ -433,15 +433,15 @@ Step 1:输入文件名
Step 2查看输入的文件名是否和已有的文化相匹配
Step 3若匹配成功则打开文件
Step 4若不成功则返回错误值
Step 5打开后利用循环依次输出文件里各个学生的学号,姓名和成绩
Step 5打开后利用循环依次输出文件里各个图书信息
Step 6关闭文件
![读取流程图](images/read_data.drawio.svg)
![读取流程图](read_data.svg)
#### make_chart
Step 1打印表头
Step 2循环打印学生姓名和学
Step 2循环打印图书名和图书编
Step 3循环套循环打印图表
Step 4打印结束后换行继续循环
Step 5打印成功
![读取流程图](images/make_chart.drawio.svg)
![读取流程图](make_chart.svg)

@ -0,0 +1,447 @@
# 图书管理系统
2023年4月22日
姚震、金雨佳、宋岱瑾、费良荣
## 项目简介
本系统是程序设计与问题求解课程设计项目,实现了库存零件 CSV 格式数据文件的读取和保存以及数据的增删改查CRUD、排序和图表显示等功能。项目采用 C 语言编程实现,在 VS Code 集成开发环境IDE中用 GCC 进行编译。系统采用模块化设计,程序结构清晰,采用菜单驱动的命令行界面,操作便捷,能够用 CSV 格式读取和保存数据,通用性强,能够用图表展示数据,直观清楚。
下载地址https://gitee.com/wangqian12345/students
项目开发过程中采用 Kanban看板进行任务管理和分工协作并使用 Git 对程序代码和文档进行版本管理。任务分工情况如下:
| 任务 | 设计 | 开发 | 测试 | 文档 |
| ---- | ---- | ---- | ---- | ---- |
| C1-C3 菜单驱动的用户界面 | 宋岱瑾 | 宋岱瑾 | 金雨佳 | 宋岱瑾 |
| C4 添加图书记录 | 姚震 | 姚震 | 费良荣 | 姚震 |
| C5 查询图书记录 | 金雨佳 | 金雨佳 | 宋岱瑾 | 金雨佳 |
| C6 打印图书列表 | 金雨佳 | 金雨佳 | 姚震 | 金雨佳 |
| C7 修改图书记录 | 费良荣 | 费良荣 | 宋岱瑾 | 费良荣 |
| C8 删除图书记录 | 姚震 | 姚震 | 费良荣 | 姚震 |
| C9 图书记录排序 | 姚震 | 姚震 | 金雨佳 | 姚震 |
| C10 从文件中读取图书记录 | 费良荣 | 费良荣 | 宋岱瑾 | 费良荣 |
| C11 将图书保存到文件 | 宋岱瑾 | 宋岱瑾 | 费良荣 | 宋岱瑾 |
| C12 以图表方式显示图书记录 | 宋岱瑾 | 宋岱瑾 | 金雨佳. | 宋岱瑾 |
每个成员的工作量(百分比):
| 姚震 | 金雨佳 | 宋岱瑾 | 费良荣 |
| ---- | ---- | ---- | ---- |
| 25 | 25 | 25 | 25 |
## 关于图书管理系统
设计一个图书管理系统,要求采用命令行菜单界面进行交互,具备读取、保存、打印、查询、修改、插入、删除和排序等基本功能,能够以表格和图表形式展示数据,采用 CSV 格式保存数据。
系统的功能性需求:
- 数据的读取、保存、打印、查询、修改、插入、删除、排序和图表展示。
系统的非功能性需求:
- 菜单驱动的命令行交互界面。
## 需求分析
分析系统的功能需求和界面需求,编制用户手册如下。
#### C1: 启动程序
命令行中执行命令 `./app`,系统启动,显示提示信息,然后显示功能菜单,等待用户输入命令。
```
学生成绩管理系统启动
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择:
```
#### C2: 显示命令菜单
```
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择:
```
#### C3: 退出程序
选择菜单命令 `0`,再输入 `y` 确认,则退出程序。
```
请选择0
确定要退出吗?(Y/N): y
程序退出
```
#### C4: 添加记录
选择菜单命令 `5`,提示输入图书编号,若该图书不存在,则继续输入图书名、图书编号、图书借阅次数,并提示完成;若图书编号已存在,则提示学图书已存在,并结束。
```
请选择5
输入学生学号101
输入学生姓名:李
输入学生成绩80
学生 101 已添加
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择5
输入学生学号101
学生已存在.
```
#### C5: 查询图书记录
选择菜单命令 `4`,提示输入图书编号,若该图书存在,则输出图书信息;否则提示图书不存在并结束。
```
请选择4
输入学生学号101
学生学号101
学生姓名:李
学生成绩80
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择4
输入学生学号100
学生不存在.
```
#### C6: 打印图书列表
选择菜单命令 `3`,打印
```
请选择3
-------------------------------------------------------
| NUMBER | NAME | ON HAND |
-------------------------------------------------------
| 101 | 李 | 80 |
-------------------------------------------------------
```
#### C7: 修改图书记录
选择菜单命令 `6`,根据提示输入图书编号,若图书存在,则继续输入新的图书编号和图书,并修改图书记录;否则,提示图书不存在并结束。
```
请选择6
输入学生学号101
输入学生姓名:张
输入学生成绩90
学生 101 已更新
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择3
-------------------------------------------------------
| NUMBER | NAME | ON HAND |
-------------------------------------------------------
| 101 | 张 | 90 |
-------------------------------------------------------
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择6
输入学生学号100
学生不存在.
```
#### C8: 删除图书记录
选择菜单命令 `7`,根据提示输入图书编号,若图书存在,则删除之;否则提示图书不存在并结束。
```
请选择7
输入学生学号100
学生不存在.
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择7
输入学生学号101
学生 101 已删除
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择3
-------------------------------------------------------
| NUMBER | NAME | ON HAND |
-------------------------------------------------------
-------------------------------------------------------
```
#### C9: 图书记录排序
选择菜单命令 `8`,对库存记录按图书借阅次数由高到低排序,若次数相同,则按编号从小到大排序。
```
请选择3
-------------------------------------------------------
| NUMBER | NAME | ON HAND |
-------------------------------------------------------
| 101 | 李 | 80 |
| 100 | 张 | 90 |
-------------------------------------------------------
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择8
排序
排序已完成
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择3
-------------------------------------------------------
| NUMBER | NAME | ON HAND |
-------------------------------------------------------
| 100 | 张 | 90 |
| 101 | 李 | 80 |
-------------------------------------------------------
```
#### C10: 从文件中读取图书记录
选择菜单命令 `1`,提示输入文件名,若文件存在,则打开文件读取 CSV 格式保存的所有库存记录;否则,若文件不存在,则给出错误信息并结束。
假设文件 `a.csv` 中,以 CSV Comma-Separated Values格式保存了如下记录
```
103,张,80
104,李,88
101,王,90
102,樊,100
```
则读取记录的过程如下:
```
请选择1
读取数据
请输入文件名a.csv
读取 4 记录
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择3
-------------------------------------------------------
| NUMBER | NAME | ON HAND |
-------------------------------------------------------
| 103 | 张 | 80 |
| 104 | 李 | 88 |
| 101 | 王 | 90 |
| 102 | 樊 | 100 |
-------------------------------------------------------
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
请选择1
读取数据
请输入文件名a
a: No such file or directory
```
#### C11: 将图书保存保存到文件
选择菜单命令 `2`,提示输入文件名,将所有库存记录以 CSV 格式保存到指定的文件中。
```
请选择2
保存数据
请输入文件名b.csv
保存 4 记录
```
#### C12: 以图表方式显示图书记录
选择菜单命令 `9`,以图表方式显示库存记录。
```
请选择9
图表
103 : 张 | ******** (80)
104 : 李 | ************ (88)
101 : 王 | ******************** (90)
102 : 樊 | ********** (100)
1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加
6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出
```
## 概要设计
系统主要分为用户界面和数据处理两大模块。
用户界面模块包括系统初始化init显示菜单display_menu选择菜单命令make_choice、确认confirm、退出quit等子模块。
数据处理模块包括读取数据read_data、保存数据save_data、打印数据print_data、查询数据query_data、添加数据add_data、更新数据update_data、删除数据delete_data、数据排序sort_data和生成图表make_chart等子模块。其中查询、添加、更新和删除数据还会用到根据编号查询数据的方法find
上述各模块通过主程序main进行调用系统模块图如下。
![系统模块图](images/module.drawio.svg)
各模块的主要功能如下:
#### main
系统主函数模块,显示菜单,根据用户选择的菜单命令,执行相关操作。
#### init
系统初始化。
#### display_menu
显示菜单命令。
## 详细设计
针对概要设计
#### main
Step 1: 初始化
Step 2: 根据用户选择的命令执行对应的操作
Step 2.1: 显示菜单
Step 2.2: 选择菜单命令 c
Step 2.3: if c == CMD_READ then 读取数据
Step 2.4: if c == CMD_SAVE then 保存数据
Step 2.5: if c == CMD_PRINT then 打印数据
Step 2.6:
![主程序流程图](images/main.drawio.svg)
#### save_data
Step 1: 输入文件名
Step 2: 打开文件
Step 3: if 打开文件失败 then 提示打开文件失败并结束
Step 4: 将所有库存记录写入文件
Step 5: 关闭文件
![保存数据流程图](images/save_data.drawio.svg)
#### add_data
Step 1: if 数据库满 then 提示数据库满并结束
Step 2: 输入图书编号
Step 3: if 图书已存在 then 提示图书已存在并结束
Step 4: 输入图书名和图书数量
Step 5: 添加新图书到数据
Step 6: 提示添加成功
![添加库存记录流程图](images/add_data.drawio.svg)
### query_data
Step 1:提示输入图书编号,并输入编号
Step 2for i = 0 to num_parts开始查询
Step 3查询最后一个图书结束
Step 4if未查询到提示图书不存在
Step 5else打印图书信息
![查询流程图](images/query_data.drawio.svg)
### printf_data
Step 1:打印图书编号和图书名
Step 2for i = 1 to num_parts
Step 3:打印借阅次数
![打印记录流程图](images/printf_data.drawio.svg)
#### update_data
Step 1输入图书编号
Step 2查找图书是否已录入
Step 3if 不存在then 直接退出
Step 4else 输出图书信息
![修改学生信息](images/update_data.drawio.svg)
#### delete_data
Step 1: 输入图书编号
Step 2: 查找图书所在的位置
Step 3: if 没有该图书then 则输出图书不存在
Step 4: 将查找到的图书后面的依次往前移动信息
Step 5: 将图书总数减一
Step 6: 提示删除成功
![打印记录流程图](images/delete_data.drawio.svg)
#### sort_data
Step 1: 进行冒泡排序
Step 2: 将按图书借阅次数排序,若前面的比后面的大,则交换
Step 3: 每次遍历记录是否交换,若没有交换,则排序结束
Step 4: 若借阅次数相同,则按照编号从小到大排序
![打印记录流程图](images/sort_data.drawio.svg)
#### read_data
Step 1:输入文件名
Step 2查看输入的文件名是否和已有的文化相匹配
Step 3若匹配成功则打开文件
Step 4若不成功则返回错误值
Step 5打开后利用循环依次输出文件里各个图书信息
Step 6关闭文件
![读取流程图](read_data.svg)
#### make_chart
Step 1打印表头
Step 2循环打印图书名和图书编号
Step 3循环套循环打印图表
Step 4打印结束后换行继续循环
Step 5打印成功
![读取流程图](make_chart.svg)

413
daima

@ -0,0 +1,413 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//图书存储结构
struct book{
int id;//图书编号
char name[20];//图书名称
char author[20];//图书作者
float price;//图书价格
struct book *next; // 指向下一图书
}*books;
///////////////////
// 用户界面模块 //
// 系统初始化,读取数据文件到内存
void init();
// 显示主菜单
void display_menu();
// 选择菜单命令,调用相应的功能函数
void make_choice();
// 确认操作
void confirm();
// 退出系统,释放内存,保存数据到文件
void quit();
///////////////////
// 数据处理模块 //
// 从文件读取数据到内存
void read_data();
// 保存内存数据到文件
void save_data();
// 打印图书信息
void print_data();
// 根据图书编号查询图书信息
book *find(int id);
// 查询图书信息
void query_data();
// 添加新图书信息
void add_data();
// 更新图书信息
void update_data();
// 删除图书信息
void delete_data();
// 对图书信息进行排序
void sort_data();
// 生成图表报表
void make_chart();
/////////////
int main()
{
display_menu();
make_choice();
return 0;
}
// 用户界面模块 //
// 系统初始化,读取数据文件到内存
void init()
{
read_data();
}
// 显示主菜单
void display_menu()
{
printf("*************************\n");
printf("***** 图书管理系统 *****\n");
printf("*************************\n");
printf("1. 打印图书信息\n");
printf("2. 查询图书信息\n");
printf("3. 添加新图书\n");
printf("4. 更新图书信息\n");
printf("5. 删除图书信息\n");
printf("6. 对图书排序\n");
printf("7. 生成图表报表\n");
printf("0. 退出系统\n");
printf("请选择:");
}
// 选择菜单命令,调用相应的功能函数
void make_choice()
{
int choice;
scanf("%d", &choice);
confirm();
switch(choice)
{
case 1:
print_data(); // 打印图书信息
break;
case 2:
query_data(); // 查询图书信息
break;
case 3:
add_data(); // 添加新图书
break;
case 4:
update_data();// 更新图书信息
break;
case 5:
delete_data();// 删除图书信息
break;
case 6:
sort_data(); // 对图书排序
break;
case 7:
make_chart(); // 生成图表报表
break;
case 0:
quit(); // 退出系统
break;
default:
printf("无效选择,请重新选择:");
break;
}
}
// 确认操作
void confirm()
{
char choice;
printf("您确定要执行该操作吗?(Y/N):");
scanf(" %c", &choice);
if(choice == 'Y' || choice == 'y')
{
printf("操作成功执行!\n");
}
else if(choice == 'N' || choice == 'n')
{
printf("操作已取消!\n");
}
else
{
printf("输入错误,请重新输入(Y/N):");
confirm(); // 递归调用自己
}
}
// 退出系统,释放内存,保存数据到文件
void quit()
{
char choice;
printf("您确定要退出系统吗?(Y/N):");
scanf(" %c", &choice);
if(choice == 'Y' || choice == 'y')
{
save_data(); // 保存数据到文件
printf("数据已保存,系统退出!\n");
exit(0); // 退出系统
}
else if(choice == 'N' || choice == 'n')
{
printf("退出操作已取消!\n");
}
else
{
printf("输入错误,请重新输入(Y/N):");
quit(); // 递归调用自己
}
}
// 数据处理模块//
// 从文件读取数据到内存
void read_data()
{
FILE *fp;
struct book *head, *p;
if((fp = fopen("books.dat", "rb")) == NULL)
{
printf("打开数据文件失败!\n");
exit(0);
}
head = NULL;
while(!feof(fp))
{
p = (struct book*)malloc(sizeof(struct book));
fread(p, sizeof(struct book), 1, fp);
p->next = head;
head = p;
}
fclose(fp); // 关闭文件
// 将链表的头指针作为全局变量,供其他函数使用
books = head;
}
// 保存内存数据到文件
void save_data()
{
FILE *fp;
struct book *p;
if((fp = fopen("books.dat", "wb")) == NULL)
{
printf("打开数据文件失败!\n");
exit(0);
}
p = books; // 从全局链表头开始
while(p != NULL)
{
fwrite(p, sizeof(struct book), 1, fp);
p = p->next;
}
fclose(fp);
}
// 打印图书信息
void print_data()
{
struct book *p;
p = books; // 从全局链表头开始
while(p != NULL)
{
printf("图书编号:%d\n", p->id);
printf("图书名称:%s\n", p->name);
printf("图书作者:%s\n", p->author);
printf("图书价格:%.2f\n", p->price);
printf("----------------------\n");
p = p->next;
}
}
// 根据图书编号查询图书信息
book *find(int id)
{
struct book *p;
p = books; // 从全局链表头开始
while(p != NULL)
{
if(p->id == id)
return p; // 返回找到的图书指针
p = p->next;
}
return NULL; // 未找到返回空指针 *p;
}
// 查询图书信息
void query_data()
{
int id;
struct book *p;
printf("请输入要查询的图书编号:");
scanf("%d", &id);
p = find(id); // 查找编号为id的图书
if(p != NULL)
{
printf("图书信息如下:\n");
printf("图书编号:%d\n", p->id);
printf("图书名称:%s\n", p->name);
printf("图书作者:%s\n", p->author);
printf("图书价格:%.2f\n", p->price);
}
else
{
printf("没有找到编号为%d的图书!\n", id);
}
}
// 添加新图书信息
void add_data()
{
struct book *p, *q;
p = (struct book*)malloc(sizeof(struct book));
printf("请依次输入图书信息:\n");
printf("图书编号:");
scanf("%d", &p->id);
printf("图书名称:");
scanf("%s", p->name);
printf("图书作者:");
scanf("%s", p->author);
printf("图书价格:");
scanf("%f", &p->price);
q = books;
while(q != NULL && p->id > q->id)
q = q->next;
p->next = q; // 指向下一个节点
books = p; // 新节点成为链表头
printf("图书信息添加成功!\n");
}
// 更新图书信息
void update_data()
{
int id;
struct book *p;
printf("请输入要修改的图书编号:");
scanf("%d", &id);
p = find(id); // 查找编号为id的图书
if(p != NULL)
{
printf("请依次输入修改后的图书信息:\n");
printf("图书名称:");
scanf("%s", p->name);
printf("图书作者:");
scanf("%s", p->author);
printf("图书价格:");
scanf("%f", &p->price);
printf("图书信息修改成功!\n");
}
else
{
printf("没有找到编号为%d的图书!\n", id);
}
}
// 删除图书信息
void delete_data()
{
int id;
struct book *p, *q;
printf("请输入要删除的图书编号:");
scanf("%d", &id);
p = books;
q = NULL;
while(p != NULL && p->id != id)
{
q = p;
p = p->next;
}
if(p != NULL) // 找到该节点
{
if(q == NULL) // 第一个节点
books = p->next;
else
q->next = p->next;
free(p);
printf("图书信息删除成功!\n");
}
else
{
printf("没有找到编号为%d的图书!\n", id);
}
}
// 对图书信息进行排序
void sort_data()
{
struct book *p, *q; // 两节点指针
struct book temp; // 临时图书结构体
p = books;
while(p != NULL)
{
q = p->next;
while(q != NULL)
{
if(p->id > q->id) // 交换节点
{
temp = *p;
*p = *q;
*q = temp;
}
q = q->next;
}
p = p->next;
}
printf("图书信息排序成功!\n");
}
// 生成图表报表
void make_chart()
{
struct book *p;
char name[20];
int i, n;
float price;
printf("请输入要生成的图书数量:");
scanf("%d", &n);
for(i=1; i<=n; i++)
{
p = (struct book*)malloc(sizeof(struct book));
sprintf(name, "图书%d", i); // 生成图书名称
p->id = i; // 图书编号
strcpy(p->name, name); // 图书名称
strcpy(p->author, "作者"); // 作者
price = (i+1)*10.0; // 价格
p->price = price; // 图书价格
p->next = books; // 新节点指向原链表头
books = p; // 新节点成为链表头
}
printf("随机图书信息生成成功!\n");
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 52 KiB

@ -0,0 +1,156 @@
<mxfile host="65bd71144e">
<diagram id="LXTJZ-hhDcvatKULC71N" name="第 1 页">
<mxGraphModel dx="832" dy="568" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="9" style="sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;edgeStyle=elbowEdgeStyle;" edge="1" parent="1" source="3" target="6">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="210" y="110"/>
<mxPoint x="210" y="140"/>
<mxPoint x="190" y="260"/>
<mxPoint x="240" y="140"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="31" style="edgeStyle=orthogonalEdgeStyle;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1" source="3" target="10">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="210" y="445"/>
<mxPoint x="210" y="110"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="32" style="edgeStyle=orthogonalEdgeStyle;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1" source="3" target="14">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="210" y="445"/>
<mxPoint x="210" y="185"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="34" style="edgeStyle=orthogonalEdgeStyle;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1" source="3" target="13">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="210" y="445"/>
<mxPoint x="210" y="330"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="35" style="edgeStyle=orthogonalEdgeStyle;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1" source="3" target="12">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="210" y="450"/>
<mxPoint x="210" y="390"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="36" style="edgeStyle=orthogonalEdgeStyle;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1" source="3" target="11">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="37" style="edgeStyle=orthogonalEdgeStyle;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1" source="3" target="21">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="210" y="455"/>
<mxPoint x="210" y="530"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="38" style="edgeStyle=orthogonalEdgeStyle;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1" source="3" target="22">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="210" y="455"/>
<mxPoint x="210" y="590"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="39" style="edgeStyle=orthogonalEdgeStyle;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1" source="3" target="23">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="210" y="455"/>
<mxPoint x="210" y="660"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="40" style="edgeStyle=orthogonalEdgeStyle;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1" source="3" target="24">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="210" y="455"/>
<mxPoint x="210" y="720"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="41" style="edgeStyle=orthogonalEdgeStyle;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1" source="3" target="25">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="210" y="455"/>
<mxPoint x="210" y="775"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="42" style="edgeStyle=orthogonalEdgeStyle;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1" source="3" target="26">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="210" y="455"/>
<mxPoint x="210" y="830"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="43" style="edgeStyle=orthogonalEdgeStyle;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1" source="3" target="28">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="210" y="455"/>
<mxPoint x="210" y="890"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="3" value="main" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="30" y="430" width="110" height="50" as="geometry"/>
</mxCell>
<mxCell id="6" value="系统初始化init" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="440" y="20" width="240" height="40" as="geometry"/>
</mxCell>
<mxCell id="10" value="显示菜单display_menu" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="440" y="90" width="270" height="40" as="geometry"/>
</mxCell>
<mxCell id="11" value="保存数据save_data" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="455" y="435" width="240" height="40" as="geometry"/>
</mxCell>
<mxCell id="12" value="读取数据read_data" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="470" y="370" width="220" height="40" as="geometry"/>
</mxCell>
<mxCell id="13" value="退出quit" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="500" y="310" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="14" value="&lt;div style=&quot;text-align: justify;&quot;&gt;选择命令菜单make_choice&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="440" y="160" width="290" height="50" as="geometry"/>
</mxCell>
<mxCell id="15" value="确认confirm" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="445" y="235" width="260" height="40" as="geometry"/>
</mxCell>
<mxCell id="21" value="打印数据print_data" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="450" y="500" width="240" height="40" as="geometry"/>
</mxCell>
<mxCell id="22" value="查询数据query_data" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="450" y="570" width="250" height="40" as="geometry"/>
</mxCell>
<mxCell id="23" value="添加数据add_data" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="450" y="640" width="240" height="40" as="geometry"/>
</mxCell>
<mxCell id="24" value="更新数据update_data" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="450" y="700" width="240" height="40" as="geometry"/>
</mxCell>
<mxCell id="25" value="删除数据delete_data" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="450" y="760" width="250" height="30" as="geometry"/>
</mxCell>
<mxCell id="26" value="数据排序sort_data" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="450" y="810" width="240" height="40" as="geometry"/>
</mxCell>
<mxCell id="28" value="生成图表make_chart" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="450" y="870" width="240" height="40" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

@ -0,0 +1,151 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="219px" height="497px" viewBox="-0.5 -0.5 219 497" content="&lt;mxfile&gt;&lt;diagram id=&quot;uQQbMF64MJPfOjwho-in&quot; name=&quot;Page-1&quot;&gt;7VpLc+I4EP41qpo5kPIDO+Zog8nsIVNbRbZ2cpoStrC1sS1GFgHm169kSX5ChlAk2anlAlJ3q9Xdan0tCYA9zXd3FK7TexKjDFhGvAP2DFiWZ1v8UxD2kuC4niQkFMeSZDaEBf6JFNFQ1A2OUdkRZIRkDK+7xIgUBYpYhwYpJduu2Ipk3VnXMEEDwiKC2ZD6N45ZqtxyjIb+BeEk1TObhuIsYfSUULIp1HwFKZDk5FCrUaJlCmOybZHsENhTSgiTrXw3RZmIqo6YHDc/wq1NpqhgJw2YKDvYXruNYh4F1a0st4OU5Rnvmbw5nEDNWZINjXTk1EILVS0hZcIdIjlidM8FKMogw8/dgEO1bkktVw/9k2A+rWWoFDNvVRhVhpk6rFoFgzRBTI1qwsAbLTMaUhWcI4FSLj3DbKPMBZabMRGdcSeA7o+NWL1gSXajEv/ERQJsX2QFoTGiI06uwshzgSa4kDwT5fzTWO9E210riTWM43q4oakRyQiVNJos4Sfu8lTwu183nvNZaSElZpiomZqIC16GCzRKVRJXhtyMJWdFCibMR5puOdzGhrWCOc72ksl9hvmaM5Xn9ziipCQrsVKPkO+RvoC08QvKnhHDEZTdgRaE6Z5wxl9/HB4/GACzZFNwxh1hKY5OG7RACUGvmOSBouUmSpHw7X5xeMw9KWBEZDsnBSnXkO+MqvsAU5IrhxcP33AqglPNEzrAmwEvBKELJi7wbkF4C4IAeC4IJ6IxMfUwHlGGD5vXiqnxFfFMPcmpGSU8z7lqWJSnjdii4scGFnssXBTLzb/TYws9pwhJ1aLnU5yTugkz5RXOF2LxdCz8EHgBCMcgmIGJrROm8buOSVek5NOMSkTxSuYqQzs2ghlOVPr/sykZXu0ls8HpUXdTfbIcR+prN+R+cmvXNDZoSg6f0PcohZS1pdxkwMskZy6AQ7KHIJxlvMyJXbpNMUOLKoPs2ZYX2hPx+BlR7vyL6LurC1cHRXWB2zZFrwbWtFXwxsZxvO4g7QuwWlePi9Yfbe171x/LfrP6o106UH84vBQHK1AvqR0FIM335yugXwH99wL0/rmkPiy9JdIrkOYL6U2EZXJpg8qvSQCCsDJ6Any3asyBb1bCJvDnLbyXG/UI4lfWoVjB3Pujfg3xv4J99xKwb18K9t8a4usqp8PUr3pHIH6oyO7VCndy43RVyRI2UOVTCvctsbUQKI+bbFu9mW6NFy0byJuvk9chadZeWnx2qXNfmRxoh9k33jZ4QGXvscWZCbMN3dmrTsnXjfnilaBR+WFJ1j9H2N6ZSTZQ1N+sR1LsnFUaDw8kotJ5AvMELhoVHB6CTFEKphWFtz0QzkEwBZP5EBJ5aV1uyg+Bw3q7/goO+0t1Fhw6g1h+HURDFLiu26razSLuNuI1LRDu8qNC5itGjuNYDA8o4iUTLitVIvsVhHC9TgCcmdC1YUSW1Up1ySh5QlNZK/X+WOEs65EuEHnLdXqRdwaRtw8Evn/WPifw9vBU/fi/CbzZK2229Y6BNweBv15nrteZ63XmY68znOKJyi0oflWST7u8fORz1XhyYqV2LoFb49eeTQs+Q+twKrqP+kAqOs3xtOrp8+nRQLXfufQvbPJ42EXWy51ZT46NdcX0K6ZfMf0/hunVigoKX+OZwHR5OZOrzmV8fm/zxIuVuJNVwr7OA38mhIMQ+L6g8CG/z3tWfYd+j/cs2z4AfW/+hoGKuPeC8abVRt/4O9XGunS1OfFh47a3ame/kJg9RWe/kPBu878NKd78LcYO/wU=&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<path d="M 60 46 L 60 69.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 60 74.88 L 56.5 67.88 L 60 69.63 L 63.5 67.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<ellipse cx="60" cy="26" rx="60" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 26px; margin-left: 1px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<h4 id="make_chart" style="box-sizing: border-box; margin: 1em 0px 16px; padding: 0px; color: rgba(0, 0, 0, 0.85); position: relative; line-height: 1.4; font-size: 1.25em; font-family: &quot;Microsoft YaHei&quot;, Helvetica, &quot;Meiryo UI&quot;, &quot;Malgun Gothic&quot;, &quot;Segoe UI&quot;, &quot;Trebuchet MS&quot;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &quot;Helvetica Neue&quot;, &quot;Droid Sans&quot;, &quot;wenquanyi micro hei&quot;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; text-align: justify; background-color: rgb(255, 255, 255);">
make_chart
</h4>
</div>
</div>
</div>
</foreignObject>
<text x="60" y="30" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
make_chart
</text>
</switch>
</g>
<path d="M 60 136 L 60 179.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 60 184.88 L 56.5 177.88 L 60 179.63 L 63.5 177.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="0" y="76" width="120" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 106px; margin-left: 1px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<span style="color: rgb(51, 51, 51); font-family: &quot;Microsoft YaHei&quot;, Helvetica, &quot;Meiryo UI&quot;, &quot;Malgun Gothic&quot;, &quot;Segoe UI&quot;, &quot;Trebuchet MS&quot;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &quot;Helvetica Neue&quot;, &quot;Droid Sans&quot;, &quot;wenquanyi micro hei&quot;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 16px; text-align: justify; background-color: rgb(255, 255, 255);">
打印图书信息
</span>
</div>
</div>
</div>
</foreignObject>
<text x="60" y="110" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
打印图书信息
</text>
</switch>
</g>
<path d="M 120 225.5 L 200 225.94 Q 210 226 210 216 L 210 176 Q 210 166 210 156 L 210 106 Q 210 96 200 96 L 136.37 96" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 131.12 96 L 138.12 92.5 L 136.37 96 L 138.12 99.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 60 316 L 60 329.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 60 334.88 L 56.5 327.88 L 60 329.63 L 63.5 327.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 60 186 L 120 226 L 60 266 L 0 226 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 226px; margin-left: 1px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
是否打印完全?
</div>
</div>
</div>
</foreignObject>
<text x="60" y="230" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
是否打印完全?
</text>
</switch>
</g>
<rect x="155" y="191" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 206px; margin-left: 170px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
N
</div>
</div>
</div>
</foreignObject>
<text x="170" y="210" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
N
</text>
</switch>
</g>
<rect x="30" y="281" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 296px; margin-left: 45px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
Y
</div>
</div>
</div>
</foreignObject>
<text x="45" y="300" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<ellipse cx="60" cy="471" rx="60" ry="25" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 471px; margin-left: 1px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<span style="color: rgb(51, 51, 51); font-family: &quot;Microsoft YaHei&quot;, Helvetica, &quot;Meiryo UI&quot;, &quot;Malgun Gothic&quot;, &quot;Segoe UI&quot;, &quot;Trebuchet MS&quot;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &quot;Helvetica Neue&quot;, &quot;Droid Sans&quot;, &quot;wenquanyi micro hei&quot;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 16px; text-align: justify; background-color: rgb(255, 255, 255);">
打印成功
</span>
</div>
</div>
</div>
</foreignObject>
<text x="60" y="475" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
打印成功
</text>
</switch>
</g>
<path d="M 60 396 L 60 439.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 60 444.88 L 56.5 437.88 L 60 439.63 L 63.5 437.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="0" y="336" width="120" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 366px; margin-left: 1px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<span style="color: rgb(51, 51, 51); font-family: &quot;Microsoft YaHei&quot;, Helvetica, &quot;Meiryo UI&quot;, &quot;Malgun Gothic&quot;, &quot;Segoe UI&quot;, &quot;Trebuchet MS&quot;, Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, &quot;Helvetica Neue&quot;, &quot;Droid Sans&quot;, &quot;wenquanyi micro hei&quot;, FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 16px; text-align: justify; background-color: rgb(255, 255, 255);">
打印结束后换行继续循环
</span>
</div>
</div>
</div>
</foreignObject>
<text x="60" y="370" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
打印结束后换行继续循环
</text>
</switch>
</g>
<path d="M 60 266 L 60 336" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
</g>
<switch>
<g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/>
<a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank">
<text text-anchor="middle" font-size="10px" x="50%" y="100%">
Text is not SVG - cannot display
</text>
</a>
</switch>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

@ -0,0 +1,273 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="424px" height="841px" viewBox="-0.5 -0.5 424 841" content="&lt;mxfile&gt;&lt;diagram id=&quot;5sBLNUMCJy76M6u4WCoL&quot; name=&quot;Page-1&quot;&gt;7Vpdk5sgFP01vHb8QvFRE7N9aacz+9D2qcNGNnFqQgbJJtlfX1A0KmSbyUS3aTYPu3DBD+7hHO4FgTtZ7R8Y3iy/0JTkwLHSPXCnwHFc2xV/peFQGaCPKsOCZWllso+Gx+yVKKOlrNssJUWnI6c059mma5zT9ZrMeceGGaO7brdnmnefusELohke5zjXrd+zlC8rK4LW0f6ZZItl/WTbUi1PeP57weh2rZ4HHPe5/FXNK1zfS/Uvljilu5bJTYA7YZTyqrTaT0guXVu7rbpudqK1eW9G1vycCxROBT/UQyep8ISqrula/IuXfJWLmi2KZJ/xH6JsfYKq9rPVMpX4W3XloCrPdM0nNKesfIBrlT9hLzijv4mpRR+FGlhBt2yuXtSpTPJ9W33UMB8IXRHODqIDIznm2UsXWawmyKLp11z6jWbiqY6l5rLtKqjUVLYDq3sLjtmCcHXV0dWi0HqNo6kEwAyGGtELzrfqbXGa/koxxzpKeS64IMHZLTNOHje4dMtOsLEL2HOW5y0Xz8rfm84/BddJUF4I42T/JgaqNei60lfV3ZFidk2MZYteyDoNWsfdb/gWXjjR7dY0P05680S/ok/bE91TAljOM+W5cea+a3UBa/T5+nMfjSBEw+IzthA54WBgeJoQgcQHIQSxJQtoCqIEJKIagdCVljgGkQ2SGYgnIJxpULIlXT1ti7+rVY6fSB43a+h1hOuUBF5B0CA0rw1tRYMDKdotS9pI+tWnDDpTvyLG8KHVbSM7FKef4wVmnZyd2R91+4tC9QaX8tc38hfNgJCMJACRJ5l7DqM1IktWklRNjv+MzA0razajM+MT/wpsDjTIfmreF+PgXRfjPFusRXkuRk2ES2I52kzkMZFqWGVpKi+PGSmyV/xU3kr6UU1pcV8YAziV99pyWlSZmK1Bo9Sk7f3aNFy42EhcI69QA8Q14OFeAY9Qw+Pr3eNhu108muVvBDxsXYxuJkCsV512BG+/U/rqDRfC13fuLDsIxEm5pECAIIigLISxNCZiFQpB5MsVSYaNftlHhJCBvuzcSfzYhPRjxI/2pXs//0D8OBZ7+iGB15eyK7LHv2GBeycxgwOKmb4Zd5Z0iUI0BSEqO09AhD6yYndMVXMupdG/oGoj7ST1088hVc28ldRPRXViQUmm2DHw6a5zUs8aMSe1oQbeR1LaT0o9a8QkSN8l+MhK+1mpN+IugR3ecNCmpLSdldZKMnYg5w+4AiHDCnRRVir7OABNWjunIUCBbL3X0K4JwEcJ7W54C8gxbAE575Q1Bc5gZHNMW0B+GcrFJZEiEJUHDoJXkj+muA8hdSjRO524V475o3JsjA+ChuKYY+DYOx3OowE5ZtqZMJ3u6awT1AotZbnjDYlgVEaZMuASmeqgNZyaoDj7+65bg6J/8u2cmc9eAIWoHj+krIh2/FjVTf4A&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);">
<defs/>
<g>
<path d="M 75 80 L 75 103.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 108.88 L 71.5 101.88 L 75 103.63 L 78.5 101.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<ellipse cx="75" cy="40" rx="60" ry="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 40px; margin-left: 16px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
add_data
</div>
</div>
</div>
</foreignObject>
<text x="75" y="44" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
add_data
</text>
</switch>
</g>
<path d="M 150 150 L 218.63 150" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 223.88 150 L 216.88 153.5 L 218.63 150 L 216.88 146.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 190 L 75 223.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 228.88 L 71.5 221.88 L 75 223.63 L 78.5 221.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 110 L 150 150 L 75 190 L 0 150 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 150px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
数据库满?
</div>
</div>
</div>
</foreignObject>
<text x="75" y="154" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
数据库满?
</text>
</switch>
</g>
<path d="M 345 150 L 405 150 Q 415 150 415 160 L 415 740 Q 415 750 405 750 L 81.37 750" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 76.12 750 L 83.12 746.5 L 81.37 750 L 83.12 753.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="225" y="120" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 150px; margin-left: 226px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
提示数据库满
</div>
</div>
</div>
</foreignObject>
<text x="285" y="154" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
提示数据库满
</text>
</switch>
</g>
<rect x="170" y="115" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 130px; margin-left: 185px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
Y
</div>
</div>
</div>
</foreignObject>
<text x="185" y="134" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="80" y="195" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 210px; margin-left: 95px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
N
</div>
</div>
</div>
</foreignObject>
<text x="95" y="214" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
N
</text>
</switch>
</g>
<path d="M 75 310 L 75 323.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 328.88 L 71.5 321.88 L 75 323.63 L 78.5 321.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 230 L 150 270 L 75 310 L 0 270 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 270px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
输入图书编号
</div>
</div>
</div>
</foreignObject>
<text x="75" y="274" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
输入图书编号
</text>
</switch>
</g>
<path d="M 150 370 L 218.63 370" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 223.88 370 L 216.88 373.5 L 218.63 370 L 216.88 366.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 410 L 75 443.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 448.88 L 71.5 441.88 L 75 443.63 L 78.5 441.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 330 L 150 370 L 75 410 L 0 370 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 370px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
图书编号存在?
</div>
</div>
</div>
</foreignObject>
<text x="75" y="374" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
图书编号存在?
</text>
</switch>
</g>
<path d="M 345 370 L 408.63 370" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 413.88 370 L 406.88 373.5 L 408.63 370 L 406.88 366.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="225" y="340" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 370px; margin-left: 226px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
提示图书已存在
</div>
</div>
</div>
</foreignObject>
<text x="285" y="374" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
提示图书已存在
</text>
</switch>
</g>
<rect x="170" y="345" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 360px; margin-left: 185px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
Y
</div>
</div>
</div>
</foreignObject>
<text x="185" y="364" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="80" y="415" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 430px; margin-left: 95px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
N
</div>
</div>
</div>
</foreignObject>
<text x="95" y="434" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
N
</text>
</switch>
</g>
<path d="M 75 530 L 75 543.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 548.88 L 71.5 541.88 L 75 543.63 L 78.5 541.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 450 L 150 490 L 75 530 L 0 490 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 490px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
输入图书编号和数量
</div>
</div>
</div>
</foreignObject>
<text x="75" y="494" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
输入图书编号和数量
</text>
</switch>
</g>
<path d="M 75 630 L 75 643.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 648.88 L 71.5 641.88 L 75 643.63 L 78.5 641.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 550 L 150 590 L 75 630 L 0 590 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 590px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
添加新图书到数据
</div>
</div>
</div>
</foreignObject>
<text x="75" y="594" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
添加新图书到数据
</text>
</switch>
</g>
<path d="M 75 730 L 75 753.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 758.88 L 71.5 751.88 L 75 753.63 L 78.5 751.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 650 L 150 690 L 75 730 L 0 690 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 690px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
提示添加成功
</div>
</div>
</div>
</foreignObject>
<text x="75" y="694" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
提示添加成功
</text>
</switch>
</g>
<ellipse cx="75" cy="800" rx="60" ry="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 800px; margin-left: 16px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
结束
</div>
</div>
</div>
</foreignObject>
<text x="75" y="804" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
结束
</text>
</switch>
</g>
</g>
<switch>
<g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/>
<a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank">
<text text-anchor="middle" font-size="10px" x="50%" y="100%">
Text is not SVG - cannot display
</text>
</a>
</switch>
</svg>

After

Width:  |  Height:  |  Size: 24 KiB

@ -0,0 +1,759 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="434px" height="1771px" viewBox="-0.5 -0.5 434 1771" content="&lt;mxfile&gt;&lt;diagram id=&quot;Ve7y_Xmv1_xOL1hUhJ5_&quot; name=&quot;Page-1&quot;&gt;7V1Jc6M4GP01Os4UO+gIXnous1T1YaZPXcQoNhVsPICTuH/9SFhik+I4bkuMidxVHRCLLT3e0yfpSQB7tn39UsT7ze95gjJgGckrsOfAsgLfxv+ThOMpwfS84JSyLtKEprUJX9MfiCYaNPWQJqjsnVjleVal+37iKt/t0KrqpcVFkb/0T3vMs/637uM14hK+ruKMT/07TaoNzZdrtOm/oXS9Yd9sGvTIQ7x6Whf5YUe/D1j2Y/05Hd7G7F70/HITJ/lLJ8leAHtW5Hl12tq+zlBGypYV2+m65RtHm99doF11yQUUqLI6sqyjBJcE3d3lO/wn2lTbDO+ZeBO9ptU/eNv41aV73zpH5uQBMNjOke485rtqlmd5UX+BbdQfnJ7FDyiLmgLrnLIMyT98SlkV+RMSXcxnlOa9zA/FiubFOiWRLHXOoSXxBeVbVBVHfEKBsrhKn/vgx/QZWjfnNZf+laf4Wy2DPu+mQ9Fkj3tg9G9RxcUaVfSqFg280fkZbVKNkRgvmqPnODvQX5vu0ooHMcswVQh2L5u0Ql/3cV0kL5itfTwf0yzrFnz9OVvwZ1BjF78F+JuYPaOiQq9nIWLS0i9pj+6+tCQ1GbU2HYIOAeli2kPjTNG7CqjyU5T4cLF3qeJQla2fVFq447CHA+t27HE49oCFB2AAogVY+CB0QBSCRQCCJYAzsHBBMAeQx73GBiUUs3cYdgFfPg7pW7S9PcMaLXuPYt4NKAYnTbGR+GT70vjkCfgEAX5iAkiIFUQghAI+4Q1ogmgOFphwEaHdZ2aYpZJhgQKG4ZIpjp2LyO637rH2snpvfGb6fOV389DxUoR8jlPbON1dH+HdOTt+cRWGeKbJl/NF9DA75Gip8n+rgFjrWnYNZJt9DB1TWg1kWpMOGVjBdZXJtMeJIxwoD0VDEEgEIFyS8ICEDTh+8OpQ3QWRUYcWcxAu+LBhk28fDuX0RNFzxSFdVxRdWaLIh2eTEkVFdBqKomvJo9O0uyrGEkDPkIeYLRBA3DjCujcnAhjOSS+FFsCmLhK1maQJoD9tAVTULzEUQM+RRycVzdzpIzYUQF9iHC/qSvJIPxK0acfRSfe0APbrIhUC2AxWTlQA4TgC6LvS6GRd25FxJwKoCLGhAAa2PAGEQgGESxC6tC0cWloA+bpIiQCqsEmMRyfr5p3dl9EJyosArWl3WqhCbFhlBfLGElmWBgIY+awPMAShjgAFdZESAfSmTSd3HDpBiUaxazst7qTKooj1hmyDcaox05AYyLvisDACkVNveLpdLAwplKjitX6lO1FFRXwaqqJpyBtptK/tyrgTWQx4WbTNkWTRHBqWbiiLgUAWcYwY1DEiBBASV5mWRb6KUqGLtjVpXVRFKE4XLXkDkPa0ezhG00BLXoOZ5WmggcQ0AwXSRzYWANbnRCGx1HxaMTRF00akieG1Zow7EUNnJDG05Q1GOtP2z4wG2aU+0LAo4mPntD05ofyA6rIvah+B0y2vfiCu7f7SD8R5nOR1nLA89WpHH0CHDKmRujAAuJVJZqJE9ewv3HIwQVh7rEhPs9umfNpq0lLpMvWutezcSTWpyLLTmLTlW+9t3rJToDj5nsRVzGFZbuI92dwX+QqVF5CnnUj/56HKUoL+XZJqWAnaKmd7edPuoLT9cUgl0bpt89O/yvgZaVKdJVUDkApSsVpxqqRS1Os/JJVEO7DN9xbvC3xbzaqzrPJEFitprJr21EtbkWNxyCqJHlOWpQ6r/j2g4qhZdZZVvqWSVdakWcWqDNWskmiDY1nqsCpOdKPqPKcCketDGqeuHSq7E04pGiobckqiF45lqcOpwx4zSjerztMKXrr2xk1oNW3HtmONQyuZZiqWpw6vEpQhzat3eGUal65beBNiTXsA2lG0GgBHLIluHIdfDqDMC91f8Q6tTNGAlTRaTXtKhKNoTJijlUxfBz8mvI2f0PfVJi74NXQ1rxqlUzlm5U97tQ1npO71i8031/BK7MYerPFJbNkOcWbT2cxLsFiCaAaCWb1oqE98iu2MFm4ZUU3PN51wKunJmoQTtUI59EHrTqBwxzIPu/ImUHgTj15GWiDi0ikvH3U48moOew7H9y/wbuyIFC1X4deOuUXtQl8AGDIVr312WOCjkHvoPo2ZzlE5Ace1Ji3STJB7Ij3SooCmRN8Cy2dvhFXwto9PGwoN31XgquxXc0VrNtarVZAlyzyyciPkJ9l8lnW7W14oeTcL37L/xhU9zkjVL+M4S9c7vL3C2Ua4TCKS3XQVZyE9sE2ThFweFahMf8QP9a1IQdIKG9/XjYA7J/c6VHl5epGVyWFDFbdb/CxJ3rtymnksjfXU5RCxBYAMF7m6ChB+3QINyBAQByoEhHdra0CGgHiGQkB4p68GZAiIbykEhO/F0oAMAQkEzRhpgPBtTA3IEBDoqmMIi5o1IGcAMQ1PISJ8C1EjwiFi+goRsTQi7yNiKWyKeHw7/Q+NyBARlY1Dj2+ta0SazuAGEYGbRRoiurkuQGTIEcdUyBG+eag50rzZqB1VkYYI3m1fw37qvG/fdW8v/gM=&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);">
<defs/>
<g>
<path d="M 75 190 L 75 223.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 228.88 L 71.5 221.88 L 75 223.63 L 78.5 221.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<ellipse cx="75" cy="150" rx="60" ry="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 150px; margin-left: 16px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
init
</div>
</div>
</div>
</foreignObject>
<text x="75" y="154" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
init
</text>
</switch>
</g>
<path d="M 75 290 L 75 323.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 328.88 L 71.5 321.88 L 75 323.63 L 78.5 321.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="15" y="230" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 260px; margin-left: 16px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
显示菜单
</div>
</div>
</div>
</foreignObject>
<text x="75" y="264" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
显示菜单
</text>
</switch>
</g>
<path d="M 75 390 L 75 413.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 418.88 L 71.5 411.88 L 75 413.63 L 78.5 411.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="15" y="330" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 360px; margin-left: 16px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
选择菜单命令
</div>
</div>
</div>
</foreignObject>
<text x="75" y="364" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
选择菜单命令
</text>
</switch>
</g>
<path d="M 75 80 L 75 103.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 108.88 L 71.5 101.88 L 75 103.63 L 78.5 101.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<ellipse cx="75" cy="40" rx="60" ry="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 40px; margin-left: 16px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
main
</div>
</div>
</div>
</foreignObject>
<text x="75" y="44" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
main
</text>
</switch>
</g>
<path d="M 150 460 L 238.63 460" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 243.88 460 L 236.88 463.5 L 238.63 460 L 236.88 456.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 500 L 75 523.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 528.88 L 71.5 521.88 L 75 523.63 L 78.5 521.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 420 L 150 460 L 75 500 L 0 460 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 460px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
读取数据
</div>
</div>
</div>
</foreignObject>
<text x="75" y="464" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
读取数据
</text>
</switch>
</g>
<path d="M 150 570 L 238.63 570" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 243.88 570 L 236.88 573.5 L 238.63 570 L 236.88 566.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 610 L 75 643.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 648.88 L 71.5 641.88 L 75 643.63 L 78.5 641.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 530 L 150 570 L 75 610 L 0 570 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 570px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
保存数据
</div>
</div>
</div>
</foreignObject>
<text x="75" y="574" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
保存数据
</text>
</switch>
</g>
<path d="M 150 690 L 238.63 690" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 243.88 690 L 236.88 693.5 L 238.63 690 L 236.88 686.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 730 L 75 753.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 758.88 L 71.5 751.88 L 75 753.63 L 78.5 751.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 650 L 150 690 L 75 730 L 0 690 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 690px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
打印数据
</div>
</div>
</div>
</foreignObject>
<text x="75" y="694" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
打印数据
</text>
</switch>
</g>
<path d="M 150 800 L 238.63 800" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 243.88 800 L 236.88 803.5 L 238.63 800 L 236.88 796.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 840 L 75 873.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 878.88 L 71.5 871.88 L 75 873.63 L 78.5 871.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 760 L 150 800 L 75 840 L 0 800 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 800px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
查询数据
</div>
</div>
</div>
</foreignObject>
<text x="75" y="804" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
查询数据
</text>
</switch>
</g>
<path d="M 75 960 L 75 983.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 988.88 L 71.5 981.88 L 75 983.63 L 78.5 981.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 150 920 L 238.63 920" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 243.88 920 L 236.88 923.5 L 238.63 920 L 236.88 916.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 880 L 150 920 L 75 960 L 0 920 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 920px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
添加数据
</div>
</div>
</div>
</foreignObject>
<text x="75" y="924" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
添加数据
</text>
</switch>
</g>
<path d="M 150 1030 L 238.63 1030" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 243.88 1030 L 236.88 1033.5 L 238.63 1030 L 236.88 1026.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 1070 L 75 1093.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 1098.88 L 71.5 1091.88 L 75 1093.63 L 78.5 1091.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 990 L 150 1030 L 75 1070 L 0 1030 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 1030px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
更新数据
</div>
</div>
</div>
</foreignObject>
<text x="75" y="1034" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
更新数据
</text>
</switch>
</g>
<path d="M 150 1140 L 238.63 1140" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 243.88 1140 L 236.88 1143.5 L 238.63 1140 L 236.88 1136.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 1180 L 75 1203.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 1208.88 L 71.5 1201.88 L 75 1203.63 L 78.5 1201.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 1100 L 150 1140 L 75 1180 L 0 1140 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 1140px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
删除数据
</div>
</div>
</div>
</foreignObject>
<text x="75" y="1144" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
删除数据
</text>
</switch>
</g>
<path d="M 150 1250 L 238.63 1250" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 243.88 1250 L 236.88 1253.5 L 238.63 1250 L 236.88 1246.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 1290 L 75 1313.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 1318.88 L 71.5 1311.88 L 75 1313.63 L 78.5 1311.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 1210 L 150 1250 L 75 1290 L 0 1250 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 1250px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
对数据排序
</div>
</div>
</div>
</foreignObject>
<text x="75" y="1254" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
对数据排序
</text>
</switch>
</g>
<path d="M 150 1360 L 238.63 1360" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 243.88 1360 L 236.88 1363.5 L 238.63 1360 L 236.88 1356.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 1400 L 75 1450 Q 75 1460 85 1460 L 238.63 1460" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 243.88 1460 L 236.88 1463.5 L 238.63 1460 L 236.88 1456.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 1400 L 75 1493.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 1498.88 L 71.5 1491.88 L 75 1493.63 L 78.5 1491.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 1320 L 150 1360 L 75 1400 L 0 1360 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 1360px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
生成图表报表
</div>
</div>
</div>
</foreignObject>
<text x="75" y="1364" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
生成图表报表
</text>
</switch>
</g>
<path d="M 365 460 L 418.63 460" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 423.88 460 L 416.88 463.5 L 418.63 460 L 416.88 456.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="245" y="430" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<path d="M 257 430 L 257 490 M 353 430 L 353 490" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 460px; margin-left: 258px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
read_data
</div>
</div>
</div>
</foreignObject>
<text x="305" y="464" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
read_data
</text>
</switch>
</g>
<path d="M 365 570 L 418.63 570" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 423.88 570 L 416.88 573.5 L 418.63 570 L 416.88 566.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="245" y="540" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<path d="M 257 540 L 257 600 M 353 540 L 353 600" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 570px; margin-left: 258px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
save_data
</div>
</div>
</div>
</foreignObject>
<text x="305" y="574" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
save_data
</text>
</switch>
</g>
<path d="M 365 690 L 418.63 690" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 423.88 690 L 416.88 693.5 L 418.63 690 L 416.88 686.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="245" y="660" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<path d="M 257 660 L 257 720 M 353 660 L 353 720" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 690px; margin-left: 258px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
print_data
</div>
</div>
</div>
</foreignObject>
<text x="305" y="694" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
print_data
</text>
</switch>
</g>
<path d="M 365 800 L 418.63 800" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 423.88 800 L 416.88 803.5 L 418.63 800 L 416.88 796.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="245" y="770" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<path d="M 257 770 L 257 830 M 353 770 L 353 830" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 800px; margin-left: 258px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
query_data
</div>
</div>
</div>
</foreignObject>
<text x="305" y="804" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
query_data
</text>
</switch>
</g>
<path d="M 365 920 L 418.63 920" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 423.88 920 L 416.88 923.5 L 418.63 920 L 416.88 916.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="245" y="890" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<path d="M 257 890 L 257 950 M 353 890 L 353 950" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 920px; margin-left: 258px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
add_data
</div>
</div>
</div>
</foreignObject>
<text x="305" y="924" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
add_data
</text>
</switch>
</g>
<path d="M 365 1030 L 418.63 1030" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 423.88 1030 L 416.88 1033.5 L 418.63 1030 L 416.88 1026.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="245" y="1000" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<path d="M 257 1000 L 257 1060 M 353 1000 L 353 1060" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 1030px; margin-left: 258px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
update_data
</div>
</div>
</div>
</foreignObject>
<text x="305" y="1034" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
update_data
</text>
</switch>
</g>
<path d="M 365 1140 L 418.63 1140" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 423.88 1140 L 416.88 1143.5 L 418.63 1140 L 416.88 1136.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="245" y="1110" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<path d="M 257 1110 L 257 1170 M 353 1110 L 353 1170" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 1140px; margin-left: 258px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
delete_data
</div>
</div>
</div>
</foreignObject>
<text x="305" y="1144" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
delete_data
</text>
</switch>
</g>
<path d="M 365 1250 L 418.63 1250" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 423.88 1250 L 416.88 1253.5 L 418.63 1250 L 416.88 1246.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="245" y="1220" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<path d="M 257 1220 L 257 1280 M 353 1220 L 353 1280" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 1250px; margin-left: 258px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
sort_data
</div>
</div>
</div>
</foreignObject>
<text x="305" y="1254" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
sort_data
</text>
</switch>
</g>
<path d="M 365 1360 L 418.63 1360" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 423.88 1360 L 416.88 1363.5 L 418.63 1360 L 416.88 1356.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="245" y="1330" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<path d="M 257 1330 L 257 1390 M 353 1330 L 353 1390" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 1360px; margin-left: 258px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
make_chart
</div>
</div>
</div>
</foreignObject>
<text x="305" y="1364" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
make_chart
</text>
</switch>
</g>
<path d="M 365 1460 L 418.63 1460" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 423.88 1460 L 416.88 1463.5 L 418.63 1460 L 416.88 1456.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="245" y="1430" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<path d="M 257 1430 L 257 1490 M 353 1430 L 353 1490" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 1460px; margin-left: 258px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
命令错误,重新选择
</div>
</div>
</div>
</foreignObject>
<text x="305" y="1464" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
命令错误,重新选择
</text>
</switch>
</g>
<path d="M 75 1580 L 75 1603.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 1608.88 L 71.5 1601.88 L 75 1603.63 L 78.5 1601.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 150 1540 L 415 1540 Q 425 1540 425 1530 L 425 220 Q 425 210 415 210 L 81.37 210" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 76.12 210 L 83.12 206.5 L 81.37 210 L 83.12 213.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 75 1500 L 150 1540 L 75 1580 L 0 1540 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 1540px; margin-left: 1px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
确定退出
</div>
</div>
</div>
</foreignObject>
<text x="75" y="1544" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
确定退出
</text>
</switch>
</g>
<path d="M 75 1670 L 75 1683.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 1688.88 L 71.5 1681.88 L 75 1683.63 L 78.5 1681.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="15" y="1610" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<path d="M 27 1610 L 27 1670 M 123 1610 L 123 1670" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 94px; height: 1px; padding-top: 1640px; margin-left: 28px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
quit
</div>
</div>
</div>
</foreignObject>
<text x="75" y="1644" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
quit
</text>
</switch>
</g>
<ellipse cx="75" cy="1730" rx="60" ry="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 1730px; margin-left: 16px;">
<div data-drawio-colors="color: #000000; background-color: #FFFFFF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">
结束
</div>
</div>
</div>
</foreignObject>
<text x="75" y="1734" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
结束
</text>
</switch>
</g>
<rect x="180" y="435" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 450px; margin-left: 195px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
Y
</div>
</div>
</div>
</foreignObject>
<text x="195" y="454" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="180" y="545" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 560px; margin-left: 195px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
Y
</div>
</div>
</div>
</foreignObject>
<text x="195" y="564" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="180" y="655" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 670px; margin-left: 195px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
Y
</div>
</div>
</div>
</foreignObject>
<text x="195" y="674" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="180" y="775" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 790px; margin-left: 195px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
Y
</div>
</div>
</div>
</foreignObject>
<text x="195" y="794" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="180" y="900" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 915px; margin-left: 195px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
Y
</div>
</div>
</div>
</foreignObject>
<text x="195" y="919" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="180" y="1005" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1020px; margin-left: 195px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
Y
</div>
</div>
</div>
</foreignObject>
<text x="195" y="1024" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="180" y="1115" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1130px; margin-left: 195px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
Y
</div>
</div>
</div>
</foreignObject>
<text x="195" y="1134" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="180" y="1225" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1240px; margin-left: 195px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
Y
</div>
</div>
</div>
</foreignObject>
<text x="195" y="1244" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="180" y="1335" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1350px; margin-left: 195px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
Y
</div>
</div>
</div>
</foreignObject>
<text x="195" y="1354" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="180" y="1435" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1450px; margin-left: 195px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
N
</div>
</div>
</div>
</foreignObject>
<text x="195" y="1454" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
N
</text>
</switch>
</g>
<rect x="85" y="1420" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1435px; margin-left: 100px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
N
</div>
</div>
</div>
</foreignObject>
<text x="100" y="1439" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
N
</text>
</switch>
</g>
<rect x="80" y="1465" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1480px; margin-left: 95px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
Y
</div>
</div>
</div>
</foreignObject>
<text x="95" y="1484" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="150" y="1505" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1520px; margin-left: 165px;">
<div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
N
</div>
</div>
</div>
</foreignObject>
<text x="165" y="1524" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
N
</text>
</switch>
</g>
</g>
<switch>
<g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/>
<a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank">
<text text-anchor="middle" font-size="10px" x="50%" y="100%">
Text is not SVG - cannot display
</text>
</a>
</switch>
</svg>

After

Width:  |  Height:  |  Size: 65 KiB

@ -0,0 +1,76 @@
<mxfile host="65bd71144e">
<diagram id="gGfFuJy0CrLTynzOE54l" name="Page-1">
<mxGraphModel dx="917" dy="664" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" background="#ffffff" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="4" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontColor=#000000;strokeColor=#000000;" edge="1" parent="1" source="3">
<mxGeometry relative="1" as="geometry">
<mxPoint x="140" y="470" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="3" value="save_data" style="ellipse;whiteSpace=wrap;html=1;labelBackgroundColor=#FFFFFF;strokeColor=#000000;fontColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="80" y="350" width="120" height="80" as="geometry"/>
</mxCell>
<mxCell id="6" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeColor=#000000;fontColor=#000000;" edge="1" parent="1" source="5" target="7">
<mxGeometry relative="1" as="geometry">
<mxPoint x="140" y="580" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="5" value="输入文件名" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=#FFFFFF;strokeColor=#000000;fontColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="65" y="470" width="150" height="80" as="geometry"/>
</mxCell>
<mxCell id="8" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeColor=#000000;fontColor=#000000;" edge="1" parent="1" source="7">
<mxGeometry relative="1" as="geometry">
<mxPoint x="140" y="690" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="14" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;strokeColor=#000000;fontColor=#000000;" edge="1" parent="1" source="7">
<mxGeometry relative="1" as="geometry">
<mxPoint x="300" y="620" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="7" value="打开文件" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=#FFFFFF;strokeColor=#000000;fontColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="65" y="580" width="150" height="80" as="geometry"/>
</mxCell>
<mxCell id="10" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeColor=#000000;fontColor=#000000;" edge="1" parent="1" source="9">
<mxGeometry relative="1" as="geometry">
<mxPoint x="140" y="800" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="9" value="将所有库存记录写入文件" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=#FFFFFF;strokeColor=#000000;fontColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="65" y="690" width="150" height="80" as="geometry"/>
</mxCell>
<mxCell id="12" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeColor=#000000;fontColor=#000000;" edge="1" parent="1" source="11" target="13">
<mxGeometry relative="1" as="geometry">
<mxPoint x="140" y="910" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="11" value="关闭文件" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=#FFFFFF;strokeColor=#000000;fontColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="65" y="800" width="150" height="80" as="geometry"/>
</mxCell>
<mxCell id="13" value="" style="ellipse;whiteSpace=wrap;html=1;labelBackgroundColor=#FFFFFF;strokeColor=#000000;fontColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="80" y="900" width="120" height="80" as="geometry"/>
</mxCell>
<mxCell id="18" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;strokeColor=#000000;fontColor=#000000;" edge="1" parent="1" source="15">
<mxGeometry relative="1" as="geometry">
<mxPoint x="140" y="890" as="targetPoint"/>
<Array as="points">
<mxPoint x="460" y="620"/>
<mxPoint x="460" y="890"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="15" value="提示打开文件失败" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=#FFFFFF;strokeColor=#000000;fontColor=#000000;fillColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="300" y="590" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="16" value="N" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="235" y="595" width="30" height="30" as="geometry"/>
</mxCell>
<mxCell id="17" value="Y" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="150" y="660" width="30" height="30" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

@ -0,0 +1,29 @@
<mxfile host="65bd71144e">
<diagram id="u_L9P898_jSC_YZIsbOk" name="µÚ 1 Ò³">
<mxGraphModel dx="832" dy="568" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="4" style="edgeStyle=none;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1" source="3">
<mxGeometry relative="1" as="geometry">
<mxPoint x="255" y="170" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="3" value="printf_data" style="rhombus;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="150" y="30" width="210" height="80" as="geometry"/>
</mxCell>
<mxCell id="6" style="edgeStyle=none;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;html=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1" source="5">
<mxGeometry relative="1" as="geometry">
<mxPoint x="245" y="280" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="5" value="for i = 1 to num_parts" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="120" y="180" width="250" height="40" as="geometry"/>
</mxCell>
<mxCell id="7" value="´òӡͼÊéµÄË÷ÊéºÅ" style="rounded=1;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" vertex="1" parent="1">
<mxGeometry x="150" y="290" width="190" height="40" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 75 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 64 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 72 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

Loading…
Cancel
Save