<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="drawio" version="26.0.0">
  <diagram name="用例图">
    <mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="900" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />

        <!-- 标题 -->
        <mxCell id="title" value="12306旅客管理系统 - 用例图" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=20;fontStyle=1" vertex="1" parent="1">
          <mxGeometry x="600" y="20" width="400" height="40" as="geometry" />
        </mxCell>

        <!-- ============ 参与者 ============ -->

        <!-- 普通用户 -->
        <mxCell id="actor1" value="普通用户" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="80" y="150" width="40" height="80" as="geometry" />
        </mxCell>

        <!-- 管理员 -->
        <mxCell id="actor2" value="管理员" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="80" y="350" width="40" height="80" as="geometry" />
        </mxCell>

        <!-- 支付平台 -->
        <mxCell id="actor3" value="支付平台" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;fontSize=12;dashed=1" vertex="1" parent="1">
          <mxGeometry x="80" y="550" width="40" height="80" as="geometry" />
        </mxCell>

        <!-- ============ 系统边界框 ============ -->
        <mxCell id="system" value="12306系统" style="swimlane;startSize=30;fillColor=#f5f5f5;strokeColor=#666666;fontStyle=1;fontSize=14;align=center;" vertex="1" parent="1">
          <mxGeometry x="200" y="80" width="1200" height="600" as="geometry" />
        </mxCell>

        <!-- ============ 用例 ============ -->

        <!-- 第一列：用户基本功能 -->
        <mxCell id="uc1" value="注册账号" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="300" y="120" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="uc2" value="登录系统" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="300" y="190" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="uc3" value="管理旅客" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="300" y="260" width="120" height="50" as="geometry" />
        </mxCell>

        <!-- 第二列：购票相关 -->
        <mxCell id="uc4" value="查询车次" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="550" y="120" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="uc5" value="购买车票" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="550" y="190" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="uc6" value="支付订单" style="ellipse;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="550" y="260" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="uc7" value="查看订单" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="550" y="330" width="120" height="50" as="geometry" />
        </mxCell>

        <!-- 第三列：订单操作 -->
        <mxCell id="uc8" value="退票" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="800" y="120" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="uc9" value="改签" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="800" y="190" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="uc10" value="候补购票" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="800" y="260" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="uc11" value="设置默认旅客" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="800" y="330" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="uc12" value="取消默认旅客" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="800" y="400" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="uc13" value="查看乘车记录" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="800" y="470" width="120" height="50" as="geometry" />
        </mxCell>

        <!-- 管理员用例 -->
        <mxCell id="uc14" value="管理用户" style="ellipse;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="1100" y="400" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="uc15" value="系统配置" style="ellipse;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontSize=12" vertex="1" parent="1">
          <mxGeometry x="1100" y="470" width="120" height="50" as="geometry" />
        </mxCell>

        <!-- ============ 关系线 ============ -->

        <!-- 用户到用例的关系 -->
        <mxCell id="rel1" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeColor=#666666;" edge="1" parent="1" source="actor1" target="uc1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="rel2" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeColor=#666666;" edge="1" parent="1" source="actor1" target="uc2">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="rel3" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeColor=#666666;" edge="1" parent="1" source="actor1" target="uc3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="rel4" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeColor=#666666;" edge="1" parent="1" source="actor1" target="uc4">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="rel5" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeColor=#666666;" edge="1" parent="1" source="actor1" target="uc5">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="rel6" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeColor=#666666;" edge="1" parent="1" source="actor1" target="uc7">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="rel7" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeColor=#666666;" edge="1" parent="1" source="actor1" target="uc8">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="rel8" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeColor=#666666;" edge="1" parent="1" source="actor1" target="uc9">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="rel9" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeColor=#666666;" edge="1" parent="1" source="actor1" target="uc10">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="rel10" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeColor=#666666;" edge="1" parent="1" source="actor1" target="uc11">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="rel11" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeColor=#666666;" edge="1" parent="1" source="actor1" target="uc12">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="rel12" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeColor=#666666;" edge="1" parent="1" source="actor1" target="uc13">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <!-- 管理员到用例 -->
        <mxCell id="rel13" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeColor=#666666;" edge="1" parent="1" source="actor2" target="uc14">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="rel14" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;strokeColor=#666666;" edge="1" parent="1" source="actor2" target="uc15">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <!-- 支付平台到支付订单 -->
        <mxCell id="rel15" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#82b366;dashed=1;" edge="1" parent="1" source="actor3" target="uc6">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <!-- include关系：购买车票 -> 支付订单 -->
        <mxCell id="rel16" value="&lt;&lt;include&gt;&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#6c8ebf;dashed=1;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1" source="uc5" target="uc6">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <!-- extend关系：候补购票 -> 购买车票 -->
        <mxCell id="rel17" value="&lt;&lt;extend&gt;&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#b85450;dashed=1;exitX=0;exitY=0.5;entryX=1;entryY=0.5;" edge="1" parent="1" source="uc10" target="uc5">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <!-- extend关系：设置默认旅客 -> 管理旅客 -->
        <mxCell id="rel18" value="&lt;&lt;extend&gt;&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#b85450;dashed=1;exitX=0;exitY=0.5;entryX=1;entryY=0.5;" edge="1" parent="1" source="uc11" target="uc3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <!-- extend关系：取消默认旅客 -> 管理旅客 -->
        <mxCell id="rel19" value="&lt;&lt;extend&gt;&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#b85450;dashed=1;exitX=0;exitY=0.5;entryX=1;entryY=0.5;" edge="1" parent="1" source="uc12" target="uc3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
