<?xml version='1.0' encoding='UTF-8'?>
<mxfile host="app.diagrams.net" modified="2026-10-13T10:55:00.000Z" agent="ChatGPT" version="24.0.0" type="device">
  <diagram id="jackson_2" name="2 归还处理(1.5)">
    <mxGraphModel dx="1550" dy="980" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="0" fold="1" page="1" pageScale="1" pageWidth="3580" pageHeight="1200" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <mxCell id="j2_node_1" value="图书管理系统 · Jackson 程序结构图  |  课程作业三  ·  南宁数字科技学院图书馆信息化建设项目" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#EAF0F8;strokeColor=#6C89AB;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=27;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="115.0" y="30.0" width="3350" height="60" as="geometry"/>
        </mxCell>
        <mxCell id="j2_node_2" value="对应 0 层 DFD 1.5：批量归还借阅记录（更新 D4）；逾期生成罚单（写入 D5）。" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFF6DE;strokeColor=#DCB55D;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="115.0" y="113.0" width="3350" height="50" as="geometry"/>
        </mxCell>
        <mxCell id="j2_node_3" value="归还处理（1.5）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F2F5FA;strokeColor=#697C94;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=28;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1475.0" y="194.0" width="630" height="82" as="geometry"/>
        </mxCell>
        <mxCell id="j2_node_4" value="输入：复本条码&#10;（支持批量归还）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="165.0" y="397.0" width="470" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j2_node_5" value="重复：还有未处理的借阅记录？" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#E0F2E5;strokeColor=#66A480;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=23;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1465.0" y="397.0" width="650" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j2_symbol_6" value="*" vertex="1" parent="1" style="ellipse;whiteSpace=wrap;html=0;fillColor=#FFFFFF;strokeColor=#66A480;strokeWidth=1.9;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;fontColor=#66A480;align=center;verticalAlign=middle;">
          <mxGeometry x="2093.0" y="383.0" width="40" height="40" as="geometry"/>
        </mxCell>
        <mxCell id="j2_node_7" value="结束" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F2F4F7;strokeColor=#8896A6;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=23;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="3010.0" y="397.0" width="340" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j2_edge_8" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1790" y="276.0" as="sourcePoint"/>
            <mxPoint x="1790" y="352" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_edge_9" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="400" y="352" as="sourcePoint"/>
            <mxPoint x="3180" y="352" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_edge_10" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="400" y="352" as="sourcePoint"/>
            <mxPoint x="400" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_edge_11" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1790" y="352" as="sourcePoint"/>
            <mxPoint x="1790" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_edge_12" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="3180" y="352" as="sourcePoint"/>
            <mxPoint x="3180" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_node_13" value="取一条借阅记录&#10;计算应还日" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="407.5" y="609.0" width="365" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j2_node_14" value="选择：归还日 &gt; 应还日？" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFE7C6;strokeColor=#E4A145;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="920.0" y="609.0" width="440" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j2_symbol_15" value="○" vertex="1" parent="1" style="ellipse;whiteSpace=wrap;html=0;fillColor=#FFFFFF;strokeColor=#E4A145;strokeWidth=1.9;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;fontColor=#E4A145;align=center;verticalAlign=middle;">
          <mxGeometry x="1338.0" y="595.0" width="40" height="40" as="geometry"/>
        </mxCell>
        <mxCell id="j2_node_16" value="写实还日&#10;更新借阅记录（D4）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1510.0" y="609.0" width="420" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j2_node_17" value="选择：复本有损坏？" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFE7C6;strokeColor=#E4A145;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="2085.0" y="609.0" width="390" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j2_symbol_18" value="○" vertex="1" parent="1" style="ellipse;whiteSpace=wrap;html=0;fillColor=#FFFFFF;strokeColor=#E4A145;strokeWidth=1.9;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;fontColor=#E4A145;align=center;verticalAlign=middle;">
          <mxGeometry x="2453.0" y="595.0" width="40" height="40" as="geometry"/>
        </mxCell>
        <mxCell id="j2_node_19" value="输出：归还回执&#10;（含罚金提示）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="2630.0" y="609.0" width="390" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j2_edge_20" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1790" y="493.0" as="sourcePoint"/>
            <mxPoint x="1790" y="580" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_edge_21" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="590" y="580" as="sourcePoint"/>
            <mxPoint x="2825" y="580" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_edge_22" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="590" y="580" as="sourcePoint"/>
            <mxPoint x="590" y="609.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_edge_23" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1140" y="580" as="sourcePoint"/>
            <mxPoint x="1140" y="609.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_edge_24" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1720" y="580" as="sourcePoint"/>
            <mxPoint x="1720" y="609.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_edge_25" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2280" y="580" as="sourcePoint"/>
            <mxPoint x="2280" y="609.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_edge_26" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2825" y="580" as="sourcePoint"/>
            <mxPoint x="2825" y="609.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_node_27" value="是：计算逾期罚金&#10;=逾期天数×0.5元/天&#10;生成罚单写 D5，罚标=1" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#E5EDFC;strokeColor=#8EA6CC;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=18;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="720.0" y="820.0" width="460" height="116" as="geometry"/>
        </mxCell>
        <mxCell id="j2_node_28" value="否：不生成罚单&#10;（空操作）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FBFBFC;strokeColor=#B7BCC8;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=18;fontStyle=0;align=center;verticalAlign=middle;spacing=10;dashed=1;dashPattern=5 5;" vertex="1" parent="1">
          <mxGeometry x="1260.0" y="828.0" width="340" height="100" as="geometry"/>
        </mxCell>
        <mxCell id="j2_edge_29" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1140" y="705.0" as="sourcePoint"/>
            <mxPoint x="1140" y="786" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_edge_30" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="950" y="786" as="sourcePoint"/>
            <mxPoint x="1430" y="786" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_edge_31" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="950" y="786" as="sourcePoint"/>
            <mxPoint x="950" y="820.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_label_32" value="是" style="text;whiteSpace=wrap;html=0;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=1;fontColor=#8B560A;" vertex="1" parent="1">
          <mxGeometry x="925.0" y="789.0" width="70" height="28" as="geometry"/>
        </mxCell>
        <mxCell id="j2_edge_33" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1430" y="786" as="sourcePoint"/>
            <mxPoint x="1430" y="828.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_label_34" value="否" style="text;whiteSpace=wrap;html=0;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=1;fontColor=#8B560A;" vertex="1" parent="1">
          <mxGeometry x="1405.0" y="793.0" width="70" height="28" as="geometry"/>
        </mxCell>
        <mxCell id="j2_node_35" value="是：复本状态→损坏待修&#10;进行送修登记" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#E5EDFC;strokeColor=#8EA6CC;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=18;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1970.0" y="828.0" width="410" height="100" as="geometry"/>
        </mxCell>
        <mxCell id="j2_node_36" value="否：复本状态→在馆可借" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#E5EDFC;strokeColor=#8EA6CC;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=18;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="2435.0" y="828.0" width="390" height="100" as="geometry"/>
        </mxCell>
        <mxCell id="j2_edge_37" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2280" y="705.0" as="sourcePoint"/>
            <mxPoint x="2280" y="786" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_edge_38" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2175" y="786" as="sourcePoint"/>
            <mxPoint x="2630" y="786" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_edge_39" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2175" y="786" as="sourcePoint"/>
            <mxPoint x="2175" y="828.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_label_40" value="是" style="text;whiteSpace=wrap;html=0;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=1;fontColor=#8B560A;" vertex="1" parent="1">
          <mxGeometry x="2150.0" y="793.0" width="70" height="28" as="geometry"/>
        </mxCell>
        <mxCell id="j2_edge_41" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2630" y="786" as="sourcePoint"/>
            <mxPoint x="2630" y="828.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j2_label_42" value="否" style="text;whiteSpace=wrap;html=0;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=1;fontColor=#8B560A;" vertex="1" parent="1">
          <mxGeometry x="2605.0" y="793.0" width="70" height="28" as="geometry"/>
        </mxCell>
        <mxCell id="j2_node_43" value="阅读规则：同一父节点下，自左向右为顺序执行   ｜   ○ 表示选择（仅执行一条分支）   ｜   * 表示重复（可执行 0～N 次）   ｜   线段均为结构分解线，无流程箭头" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFF6DE;strokeColor=#DCB55D;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=18;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="125.0" y="1012.0" width="3330" height="58" as="geometry"/>
        </mxCell>
        <mxCell id="j2_node_44" value="结构校验：批量处理为重复结构；每册依次执行“取记录 → 逾期判断 → 更新 D4 → 损坏判断 → 输出回执”。仅逾期分支写 D5；无损坏分支恢复可借状态。" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F5F8FC;strokeColor=#ABB7C8;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=17;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="125.0" y="1088.0" width="3330" height="66" as="geometry"/>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
  <diagram id="jackson_3" name="3 图书入库(2.1)">
    <mxGraphModel dx="1550" dy="980" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="0" fold="1" page="1" pageScale="1" pageWidth="3580" pageHeight="1200" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <mxCell id="j3_node_1" value="图书管理系统 · Jackson 程序结构图  |  课程作业三  ·  南宁数字科技学院图书馆信息化建设项目" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#EAF0F8;strokeColor=#6C89AB;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=27;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="115.0" y="30.0" width="3350" height="60" as="geometry"/>
        </mxCell>
        <mxCell id="j3_node_2" value="对应 0 层 DFD 2.1：维护 D2 书目，按购入册数 N 逐册生成唯一条码并写入 D3 复本。" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFF6DE;strokeColor=#DCB55D;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="115.0" y="113.0" width="3350" height="50" as="geometry"/>
        </mxCell>
        <mxCell id="j3_node_3" value="图书入库（2.1）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F2F5FA;strokeColor=#697C94;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=28;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1470.0" y="194.0" width="640" height="82" as="geometry"/>
        </mxCell>
        <mxCell id="j3_node_4" value="输入：题名、作者、ISBN&#10;出版社、单价、购入册数 N" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="117.5" y="397.0" width="505" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j3_node_5" value="按 ISBN 查重&#10;查询书目记录（D2）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="715.0" y="397.0" width="370" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j3_node_6" value="选择：书目已存在？" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFE7C6;strokeColor=#E4A145;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1137.5" y="397.0" width="425" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j3_symbol_7" value="○" vertex="1" parent="1" style="ellipse;whiteSpace=wrap;html=0;fillColor=#FFFFFF;strokeColor=#E4A145;strokeWidth=1.9;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;fontColor=#E4A145;align=center;verticalAlign=middle;">
          <mxGeometry x="1540.5" y="383.0" width="40" height="40" as="geometry"/>
        </mxCell>
        <mxCell id="j3_node_8" value="重复：已生成复本数 &lt; N？" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#E0F2E5;strokeColor=#66A480;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=22;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1860.0" y="397.0" width="560" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j3_symbol_9" value="*" vertex="1" parent="1" style="ellipse;whiteSpace=wrap;html=0;fillColor=#FFFFFF;strokeColor=#66A480;strokeWidth=1.9;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;fontColor=#66A480;align=center;verticalAlign=middle;">
          <mxGeometry x="2398.0" y="383.0" width="40" height="40" as="geometry"/>
        </mxCell>
        <mxCell id="j3_node_10" value="输出：入库清单&#10;（册数、条码区间）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="2635.0" y="397.0" width="410" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j3_node_11" value="结束" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F2F4F7;strokeColor=#8896A6;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=23;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="3112.5" y="397.0" width="315" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j3_edge_12" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1790" y="276.0" as="sourcePoint"/>
            <mxPoint x="1790" y="352" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_edge_13" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="370" y="352" as="sourcePoint"/>
            <mxPoint x="3270" y="352" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_edge_14" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="370" y="352" as="sourcePoint"/>
            <mxPoint x="370" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_edge_15" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="900" y="352" as="sourcePoint"/>
            <mxPoint x="900" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_edge_16" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1350" y="352" as="sourcePoint"/>
            <mxPoint x="1350" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_edge_17" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2140" y="352" as="sourcePoint"/>
            <mxPoint x="2140" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_edge_18" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2840" y="352" as="sourcePoint"/>
            <mxPoint x="2840" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_edge_19" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="3270" y="352" as="sourcePoint"/>
            <mxPoint x="3270" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_node_20" value="是：沿用已有书目&#10;（不新增 D2 记录）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FBFBFC;strokeColor=#B7BCC8;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=0;align=center;verticalAlign=middle;spacing=10;dashed=1;dashPattern=5 5;" vertex="1" parent="1">
          <mxGeometry x="975.0" y="624.0" width="390" height="100" as="geometry"/>
        </mxCell>
        <mxCell id="j3_node_21" value="否：新增该类别下&#10;书目记录（D2）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#E5EDFC;strokeColor=#8EA6CC;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1385.0" y="624.0" width="390" height="100" as="geometry"/>
        </mxCell>
        <mxCell id="j3_edge_22" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1350" y="493.0" as="sourcePoint"/>
            <mxPoint x="1350" y="574" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_edge_23" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1170" y="574" as="sourcePoint"/>
            <mxPoint x="1580" y="574" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_edge_24" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1170" y="574" as="sourcePoint"/>
            <mxPoint x="1170" y="624.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_label_25" value="是" style="text;whiteSpace=wrap;html=0;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=1;fontColor=#8B560A;" vertex="1" parent="1">
          <mxGeometry x="1145.0" y="585.0" width="70" height="28" as="geometry"/>
        </mxCell>
        <mxCell id="j3_edge_26" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1580" y="574" as="sourcePoint"/>
            <mxPoint x="1580" y="624.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_label_27" value="否" style="text;whiteSpace=wrap;html=0;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=1;fontColor=#8B560A;" vertex="1" parent="1">
          <mxGeometry x="1555.0" y="585.0" width="70" height="28" as="geometry"/>
        </mxCell>
        <mxCell id="j3_node_28" value="生成唯一复本条码&#10;（条码 ≠ ISBN）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1870.0" y="624.0" width="360" height="100" as="geometry"/>
        </mxCell>
        <mxCell id="j3_node_29" value="写入复本记录（D3）&#10;状态=在馆；所属书目=当前书目" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=18;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="2262.5" y="624.0" width="475" height="100" as="geometry"/>
        </mxCell>
        <mxCell id="j3_node_30" value="已生成复本数 + 1" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="2780.0" y="624.0" width="320" height="100" as="geometry"/>
        </mxCell>
        <mxCell id="j3_edge_31" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2140" y="493.0" as="sourcePoint"/>
            <mxPoint x="2140" y="574" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_edge_32" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2050" y="574" as="sourcePoint"/>
            <mxPoint x="2940" y="574" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_edge_33" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2050" y="574" as="sourcePoint"/>
            <mxPoint x="2050" y="624.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_edge_34" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2500" y="574" as="sourcePoint"/>
            <mxPoint x="2500" y="624.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_edge_35" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2940" y="574" as="sourcePoint"/>
            <mxPoint x="2940" y="624.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j3_node_36" value="阅读规则：同一父节点下，自左向右为顺序执行   ｜   ○ 表示选择（仅执行一条分支）   ｜   * 表示重复（可执行 0～N 次）   ｜   线段均为结构分解线，无流程箭头" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFF6DE;strokeColor=#DCB55D;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=18;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="125.0" y="1012.0" width="3330" height="58" as="geometry"/>
        </mxCell>
        <mxCell id="j3_node_37" value="结构校验：先按 ISBN 查重并在“沿用 / 新建”中二选一；再执行重复结构，每次生成 1 个复本条码，写 D3 并累加计数；达到 N 后输出清单。" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F5F8FC;strokeColor=#ABB7C8;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=17;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="125.0" y="1088.0" width="3330" height="66" as="geometry"/>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
  <diagram id="jackson_4" name="4 读者注册(3.1)">
    <mxGraphModel dx="1550" dy="980" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="0" fold="1" page="1" pageScale="1" pageWidth="3580" pageHeight="1200" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <mxCell id="j4_node_1" value="图书管理系统 · Jackson 程序结构图  |  课程作业三  ·  南宁数字科技学院图书馆信息化建设项目" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#EAF0F8;strokeColor=#6C89AB;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=27;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="115.0" y="30.0" width="3350" height="60" as="geometry"/>
        </mxCell>
        <mxCell id="j4_node_2" value="对应 0 层 DFD 3.1：校验证件并查重，成功写入 D1 读者记录并发借书证，否则拒绝。" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFF6DE;strokeColor=#DCB55D;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="115.0" y="113.0" width="3350" height="50" as="geometry"/>
        </mxCell>
        <mxCell id="j4_node_3" value="读者注册（3.1）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F2F5FA;strokeColor=#697C94;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=28;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1470.0" y="194.0" width="640" height="82" as="geometry"/>
        </mxCell>
        <mxCell id="j4_node_4" value="输入：读者基本信息&#10;证件类型与号码" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="160.0" y="397.0" width="500" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j4_node_5" value="校验证件真实性&#10;按证件号码查重（D1）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="782.5" y="397.0" width="535" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j4_node_6" value="选择：证件有效 且 未重复注册？" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFE7C6;strokeColor=#E4A145;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=22;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1620.0" y="397.0" width="660" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j4_symbol_7" value="○" vertex="1" parent="1" style="ellipse;whiteSpace=wrap;html=0;fillColor=#FFFFFF;strokeColor=#E4A145;strokeWidth=1.9;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;fontColor=#E4A145;align=center;verticalAlign=middle;">
          <mxGeometry x="2258.0" y="383.0" width="40" height="40" as="geometry"/>
        </mxCell>
        <mxCell id="j4_node_8" value="结束" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F2F4F7;strokeColor=#8896A6;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=23;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="3085.0" y="397.0" width="330" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j4_edge_9" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1790" y="276.0" as="sourcePoint"/>
            <mxPoint x="1790" y="352" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_edge_10" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="410" y="352" as="sourcePoint"/>
            <mxPoint x="3250" y="352" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_edge_11" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="410" y="352" as="sourcePoint"/>
            <mxPoint x="410" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_edge_12" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1050" y="352" as="sourcePoint"/>
            <mxPoint x="1050" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_edge_13" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1950" y="352" as="sourcePoint"/>
            <mxPoint x="1950" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_edge_14" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="3250" y="352" as="sourcePoint"/>
            <mxPoint x="3250" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_node_15" value="是：注册成功（顺序处理）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#E5EDFC;strokeColor=#8EA6CC;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1310.0" y="608.0" width="500" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j4_node_16" value="否：输出拒绝&#10;（证件无效或已注册）&#10;告知原因" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FBFBFC;strokeColor=#B7BCC8;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="2352.5" y="596.0" width="495" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="j4_edge_17" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1950" y="493.0" as="sourcePoint"/>
            <mxPoint x="1950" y="568" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_edge_18" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1560" y="568" as="sourcePoint"/>
            <mxPoint x="2600" y="568" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_edge_19" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1560" y="568" as="sourcePoint"/>
            <mxPoint x="1560" y="608.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_label_20" value="是" style="text;whiteSpace=wrap;html=0;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=1;fontColor=#8B560A;" vertex="1" parent="1">
          <mxGeometry x="1535.0" y="574.0" width="70" height="28" as="geometry"/>
        </mxCell>
        <mxCell id="j4_edge_21" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2600" y="568" as="sourcePoint"/>
            <mxPoint x="2600" y="596.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_label_22" value="否" style="text;whiteSpace=wrap;html=0;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=1;fontColor=#8B560A;" vertex="1" parent="1">
          <mxGeometry x="2575.0" y="568.0" width="70" height="28" as="geometry"/>
        </mxCell>
        <mxCell id="j4_node_23" value="写读者记录（D1）&#10;角色、单位、状态=正常" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="802.5" y="820.0" width="435" height="110" as="geometry"/>
        </mxCell>
        <mxCell id="j4_node_24" value="生成借书证号&#10;初始化已借数=0" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1367.5" y="820.0" width="425" height="110" as="geometry"/>
        </mxCell>
        <mxCell id="j4_node_25" value="输出：发放借书证" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1895.0" y="820.0" width="390" height="110" as="geometry"/>
        </mxCell>
        <mxCell id="j4_edge_26" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1560" y="704.0" as="sourcePoint"/>
            <mxPoint x="1560" y="782" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_edge_27" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1020" y="782" as="sourcePoint"/>
            <mxPoint x="2090" y="782" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_edge_28" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1020" y="782" as="sourcePoint"/>
            <mxPoint x="1020" y="820.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_edge_29" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1580" y="782" as="sourcePoint"/>
            <mxPoint x="1580" y="820.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_edge_30" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2090" y="782" as="sourcePoint"/>
            <mxPoint x="2090" y="820.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j4_node_31" value="阅读规则：同一父节点下，自左向右为顺序执行   ｜   ○ 表示选择（仅执行一条分支）   ｜   * 表示重复（可执行 0～N 次）   ｜   线段均为结构分解线，无流程箭头" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFF6DE;strokeColor=#DCB55D;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=18;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="125.0" y="1012.0" width="3330" height="58" as="geometry"/>
        </mxCell>
        <mxCell id="j4_node_32" value="结构校验：一次校验决定两条互斥路径。满足“证件有效且未重复”时依次写 D1、生成借书证号、发证；否则拒绝并说明原因。两路均结束。" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F5F8FC;strokeColor=#ABB7C8;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=17;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="125.0" y="1088.0" width="3330" height="66" as="geometry"/>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
  <diagram id="jackson_5" name="5 逾期扫描(4.1)">
    <mxGraphModel dx="1550" dy="980" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="0" fold="1" page="1" pageScale="1" pageWidth="3580" pageHeight="1200" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <mxCell id="j5_node_1" value="图书管理系统 · Jackson 程序结构图  |  课程作业三  ·  南宁数字科技学院图书馆信息化建设项目" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#EAF0F8;strokeColor=#6C89AB;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=27;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="115.0" y="30.0" width="3350" height="60" as="geometry"/>
        </mxCell>
        <mxCell id="j5_node_2" value="对应 0 层 DFD 4.1：每日检索 D4 未归还借阅记录，发现逾期则催还并按需生成 D5 待缴罚单。" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFF6DE;strokeColor=#DCB55D;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="115.0" y="113.0" width="3350" height="50" as="geometry"/>
        </mxCell>
        <mxCell id="j5_node_3" value="逾期扫描（4.1）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F2F5FA;strokeColor=#697C94;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=28;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1470.0" y="194.0" width="640" height="82" as="geometry"/>
        </mxCell>
        <mxCell id="j5_node_4" value="输入：系统当前日期&#10;（每日定时触发）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="85.0" y="397.0" width="470" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j5_node_5" value="定位 D4 中所有&#10;未归还借阅记录" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="657.5" y="397.0" width="465" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j5_node_6" value="重复：还有未检查的借阅记录？" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#E0F2E5;strokeColor=#66A480;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=23;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1580.0" y="397.0" width="620" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j5_symbol_7" value="*" vertex="1" parent="1" style="ellipse;whiteSpace=wrap;html=0;fillColor=#FFFFFF;strokeColor=#66A480;strokeWidth=1.9;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;fontColor=#66A480;align=center;verticalAlign=middle;">
          <mxGeometry x="2178.0" y="383.0" width="40" height="40" as="geometry"/>
        </mxCell>
        <mxCell id="j5_node_8" value="输出：逾期清单&#10;（读者、条码、逾期天数）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="2675.0" y="397.0" width="470" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j5_node_9" value="结束" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F2F4F7;strokeColor=#8896A6;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=23;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="3250.0" y="397.0" width="300" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j5_edge_10" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1790" y="276.0" as="sourcePoint"/>
            <mxPoint x="1790" y="352" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_edge_11" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="320" y="352" as="sourcePoint"/>
            <mxPoint x="3400" y="352" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_edge_12" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="320" y="352" as="sourcePoint"/>
            <mxPoint x="320" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_edge_13" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="890" y="352" as="sourcePoint"/>
            <mxPoint x="890" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_edge_14" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1890" y="352" as="sourcePoint"/>
            <mxPoint x="1890" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_edge_15" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2910" y="352" as="sourcePoint"/>
            <mxPoint x="2910" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_edge_16" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="3400" y="352" as="sourcePoint"/>
            <mxPoint x="3400" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_node_17" value="取一条借阅记录&#10;读取应还日" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1255.0" y="607.0" width="390" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j5_node_18" value="选择：当前日期 &gt; 应还日？" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFE7C6;strokeColor=#E4A145;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1750.0" y="607.0" width="500" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j5_symbol_19" value="○" vertex="1" parent="1" style="ellipse;whiteSpace=wrap;html=0;fillColor=#FFFFFF;strokeColor=#E4A145;strokeWidth=1.9;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;fontColor=#E4A145;align=center;verticalAlign=middle;">
          <mxGeometry x="2228.0" y="593.0" width="40" height="40" as="geometry"/>
        </mxCell>
        <mxCell id="j5_node_20" value="标记该记录“已检查”" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="2362.5" y="607.0" width="435" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j5_edge_21" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1890" y="493.0" as="sourcePoint"/>
            <mxPoint x="1890" y="573" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_edge_22" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1450" y="573" as="sourcePoint"/>
            <mxPoint x="2580" y="573" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_edge_23" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1450" y="573" as="sourcePoint"/>
            <mxPoint x="1450" y="607.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_edge_24" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2000" y="573" as="sourcePoint"/>
            <mxPoint x="2000" y="607.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_edge_25" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2580" y="573" as="sourcePoint"/>
            <mxPoint x="2580" y="607.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_node_26" value="是：逾期天数=当前日期－应还日&#10;生成催还通知；未建罚单则&#10;写入 D5（待缴）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#E5EDFC;strokeColor=#8EA6CC;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=18;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1590.0" y="816.0" width="490" height="120" as="geometry"/>
        </mxCell>
        <mxCell id="j5_node_27" value="否：不生成通知及罚单&#10;（空操作）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FBFBFC;strokeColor=#B7BCC8;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=0;align=center;verticalAlign=middle;spacing=10;dashed=1;dashPattern=5 5;" vertex="1" parent="1">
          <mxGeometry x="2125.0" y="822.0" width="390" height="108" as="geometry"/>
        </mxCell>
        <mxCell id="j5_edge_28" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2000" y="703.0" as="sourcePoint"/>
            <mxPoint x="2000" y="790" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_edge_29" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1835" y="790" as="sourcePoint"/>
            <mxPoint x="2320" y="790" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_edge_30" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1835" y="790" as="sourcePoint"/>
            <mxPoint x="1835" y="816.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_label_31" value="是" style="text;whiteSpace=wrap;html=0;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=1;fontColor=#8B560A;" vertex="1" parent="1">
          <mxGeometry x="1810.0" y="789.0" width="70" height="28" as="geometry"/>
        </mxCell>
        <mxCell id="j5_edge_32" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2320" y="790" as="sourcePoint"/>
            <mxPoint x="2320" y="822.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j5_label_33" value="否" style="text;whiteSpace=wrap;html=0;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=1;fontColor=#8B560A;" vertex="1" parent="1">
          <mxGeometry x="2295.0" y="792.0" width="70" height="28" as="geometry"/>
        </mxCell>
        <mxCell id="j5_node_34" value="阅读规则：同一父节点下，自左向右为顺序执行   ｜   ○ 表示选择（仅执行一条分支）   ｜   * 表示重复（可执行 0～N 次）   ｜   线段均为结构分解线，无流程箭头" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFF6DE;strokeColor=#DCB55D;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=18;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="125.0" y="1012.0" width="3330" height="58" as="geometry"/>
        </mxCell>
        <mxCell id="j5_node_35" value="结构校验：重复遍历 D4 未归还记录；每条记录判断是否逾期，只有“是”分支计算逾期天数、催还并按需写 D5；最后标记已检查，循环结束后输出清单。" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F5F8FC;strokeColor=#ABB7C8;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=17;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="125.0" y="1088.0" width="3330" height="66" as="geometry"/>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
  <diagram id="jackson_6" name="6 借阅排行统计(5.1)">
    <mxGraphModel dx="1550" dy="980" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="0" fold="1" page="1" pageScale="1" pageWidth="3580" pageHeight="1200" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <mxCell id="j6_node_1" value="图书管理系统 · Jackson 程序结构图  |  课程作业三  ·  南宁数字科技学院图书馆信息化建设项目" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#EAF0F8;strokeColor=#6C89AB;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=27;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="115.0" y="30.0" width="3350" height="60" as="geometry"/>
        </mxCell>
        <mxCell id="j6_node_2" value="对应 0 层 DFD 5.1：根据统计周期聚合 D4 借阅次数，关联 D2 书目，输出 TOP-10 排行。" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFF6DE;strokeColor=#DCB55D;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="115.0" y="113.0" width="3350" height="50" as="geometry"/>
        </mxCell>
        <mxCell id="j6_node_3" value="借阅排行统计（5.1）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F2F5FA;strokeColor=#697C94;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=28;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1440.0" y="194.0" width="700" height="82" as="geometry"/>
        </mxCell>
        <mxCell id="j6_node_4" value="输入：统计周期&#10;（起始日期、截止日期）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="102.5" y="397.0" width="455" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j6_node_5" value="按书目聚合 D4 借阅次数&#10;关联 D2 获取书名" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="677.5" y="397.0" width="525" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j6_node_6" value="重复：还有未比较的书目？" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#E0F2E5;strokeColor=#66A480;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=22;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1540.0" y="397.0" width="600" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j6_symbol_7" value="*" vertex="1" parent="1" style="ellipse;whiteSpace=wrap;html=0;fillColor=#FFFFFF;strokeColor=#66A480;strokeWidth=1.9;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;fontColor=#66A480;align=center;verticalAlign=middle;">
          <mxGeometry x="2118.0" y="383.0" width="40" height="40" as="geometry"/>
        </mxCell>
        <mxCell id="j6_node_8" value="按次数从高到低排序" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="2445.0" y="397.0" width="390" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j6_node_9" value="输出：借阅排行&#10;TOP-10 报表" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="2822.5" y="397.0" width="355" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j6_node_10" value="结束" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F2F4F7;strokeColor=#8896A6;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=22;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="3242.5" y="397.0" width="295" height="96" as="geometry"/>
        </mxCell>
        <mxCell id="j6_edge_11" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1790" y="276.0" as="sourcePoint"/>
            <mxPoint x="1790" y="352" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_edge_12" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="330" y="352" as="sourcePoint"/>
            <mxPoint x="3390" y="352" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_edge_13" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="330" y="352" as="sourcePoint"/>
            <mxPoint x="330" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_edge_14" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="940" y="352" as="sourcePoint"/>
            <mxPoint x="940" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_edge_15" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1840" y="352" as="sourcePoint"/>
            <mxPoint x="1840" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_edge_16" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2640" y="352" as="sourcePoint"/>
            <mxPoint x="2640" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_edge_17" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="3000" y="352" as="sourcePoint"/>
            <mxPoint x="3000" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_edge_18" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="3390" y="352" as="sourcePoint"/>
            <mxPoint x="3390" y="397.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_node_19" value="取下一个书目&#10;的借阅次数" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#DFEBFF;strokeColor=#7A9AC7;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1365.0" y="607.0" width="430" height="100" as="geometry"/>
        </mxCell>
        <mxCell id="j6_node_20" value="选择：次数 &gt; 当前榜内最小值？" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFE7C6;strokeColor=#E4A145;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1892.5" y="607.0" width="575" height="100" as="geometry"/>
        </mxCell>
        <mxCell id="j6_symbol_21" value="○" vertex="1" parent="1" style="ellipse;whiteSpace=wrap;html=0;fillColor=#FFFFFF;strokeColor=#E4A145;strokeWidth=1.9;fontFamily=Microsoft YaHei;fontSize=21;fontStyle=1;fontColor=#E4A145;align=center;verticalAlign=middle;">
          <mxGeometry x="2445.5" y="593.0" width="40" height="40" as="geometry"/>
        </mxCell>
        <mxCell id="j6_edge_22" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1840" y="493.0" as="sourcePoint"/>
            <mxPoint x="1840" y="579" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_edge_23" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1580" y="579" as="sourcePoint"/>
            <mxPoint x="2180" y="579" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_edge_24" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1580" y="579" as="sourcePoint"/>
            <mxPoint x="1580" y="607.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_edge_25" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2180" y="579" as="sourcePoint"/>
            <mxPoint x="2180" y="607.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_node_26" value="是：替换榜内最小项&#10;保持 TOP-10 有序" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#E5EDFC;strokeColor=#8EA6CC;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="1825.0" y="822.0" width="450" height="104" as="geometry"/>
        </mxCell>
        <mxCell id="j6_node_27" value="否：跳过本项&#10;（不修改排行榜）" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FBFBFC;strokeColor=#B7BCC8;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=0;align=center;verticalAlign=middle;spacing=10;dashed=1;dashPattern=5 5;" vertex="1" parent="1">
          <mxGeometry x="2375.0" y="822.0" width="440" height="104" as="geometry"/>
        </mxCell>
        <mxCell id="j6_edge_28" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2180" y="707.0" as="sourcePoint"/>
            <mxPoint x="2180" y="784" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_edge_29" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2050" y="784" as="sourcePoint"/>
            <mxPoint x="2595" y="784" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_edge_30" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2050" y="784" as="sourcePoint"/>
            <mxPoint x="2050" y="822.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_label_31" value="是" style="text;whiteSpace=wrap;html=0;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=1;fontColor=#8B560A;" vertex="1" parent="1">
          <mxGeometry x="2025.0" y="789.0" width="70" height="28" as="geometry"/>
        </mxCell>
        <mxCell id="j6_edge_32" style="edgeStyle=none;rounded=0;orthogonal=0;jettySize=auto;html=0;strokeColor=#566575;strokeWidth=2.2;startArrow=none;endArrow=none;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="2595" y="784" as="sourcePoint"/>
            <mxPoint x="2595" y="822.0" as="targetPoint"/>
          </mxGeometry>
        </mxCell>
        <mxCell id="j6_label_33" value="否" style="text;whiteSpace=wrap;html=0;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=19;fontStyle=1;fontColor=#8B560A;" vertex="1" parent="1">
          <mxGeometry x="2570.0" y="789.0" width="70" height="28" as="geometry"/>
        </mxCell>
        <mxCell id="j6_node_34" value="阅读规则：同一父节点下，自左向右为顺序执行   ｜   ○ 表示选择（仅执行一条分支）   ｜   * 表示重复（可执行 0～N 次）   ｜   线段均为结构分解线，无流程箭头" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#FFF6DE;strokeColor=#DCB55D;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=18;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="125.0" y="1012.0" width="3330" height="58" as="geometry"/>
        </mxCell>
        <mxCell id="j6_node_35" value="结构校验：先汇总 D4 并关联 D2；重复取书目并比较次数，只在“大于当前榜内最小值”时替换；遍历结束后排序，输出借阅排行 TOP-10。" style="rounded=0;whiteSpace=wrap;html=0;fillColor=#F5F8FC;strokeColor=#ABB7C8;strokeWidth=1.9;fontColor=#25394B;fontFamily=Microsoft YaHei;fontSize=17;fontStyle=0;align=center;verticalAlign=middle;spacing=10;" vertex="1" parent="1">
          <mxGeometry x="125.0" y="1088.0" width="3330" height="66" as="geometry"/>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
