Compare commits

..

4 Commits

@ -3,7 +3,7 @@
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "C:\\mingw64\\bin\\g++.exe",
"command": "C:\\mingw64\\mingw64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",

@ -1,186 +0,0 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="491px" height="801px" viewBox="-0.5 -0.5 491 801" content="&lt;mxfile&gt;&lt;diagram id=&quot;BCGw69St5jXQmBpSYWn4&quot; name=&quot;Page-1&quot;&gt;5VlLc9sgEP41XHLo6P04Sn60l3Y6k0ObI7GIzBQLD8ax3V/fRUJPlMZOFDdtLwksLIJvv29ZycidbY4fBd6uP/OMMORY2RG5c+Q4YWjBX2U4VYbAsitDLmhWmTqGW/qTaKP2y/c0I7veRMk5k3TbN654UZCV7NmwEPzQn/bAWf+pW5wTw3C7wsy0fqOZXFfWyLda+ydC83X9ZNvSIxtcT9aG3Rpn/NAxuQvkzgTnsmptjjPCFHY1LpXf8onRZmOCFPIcB69yeMRsr8+m9yVP9WFJBmfX3YIX8C9dyw2Dng3NB15IHSA7hn7lrnye3JE27fherPQs/VSJRU70LLdBA1hE+IZIcYIpgjAs6WN/dazjmTfz2iNDQ596HAHHQGDOkyxLOf9hQsEYUEwhcFhTSW63uDzAAUg+gor2exqlRyIkOf4eJxOB2iHQFNIainT30BLSrgm57pCxnvcazKIpWRO8mDWuyZrwSqyxowtPTI5Ufu+076BtffB1b66CatWdU90pYFff24mqe9cda93KXu33ZujGr0S3dE2EwKfOhC2nhdx1Vv6qDC3Rfa9PdMe3BpGqVmzj1mztrFC6JpkXAYp9lFqqEc1RskAL6CYodpUlTVFio8USpTMULw0eiDXf3O93ZyaJTpiGSWOKJOGFQJ0eevZIngj9t8kTDa0uVUmrjLvOyLhKhjC+VDUvU0loquTVV9e4Dhy3H8nIG0So2oP2GgTpMkmE45KIUApKCFHiKTFoASRnqWVIA6h7tqoJ6GLGCOO5wBsIwpYIChslYjj2tR14Vlf0SOqi8Vo6G8TG9UyVOdbIbexPoDLbfh/XcWxKwbbGYZv8Po5HGFvSVZHQR5GPEl814rTkMBA4RkmgyKw4HJRzgM/huyLqBMT0BlXiGDGbSnJyYvrvg5j1lddjpnclZtYPv5iaYLFUPv3HGen512TkyM32RxjpjTAyuBYjR176z2Jkc8/HKApVvvzHqekHV6TmxUz8+2rliuFXKpaHX0fOK5Zf+3JaP2d5bhFvTfsyW0P8TOluahsay/K1Fmp4GyWg7YBBiNJ7Aa1ctUovB0Wzm5ubJMtIBv8Nyl74yjuFaP0+okHkm6INR0QbTHGfmHXnFwMTOJvsw4AZzQtor+CMZe5TCNAVZoke2NAsU+6pIDv6E9+XSynhaT7Cun6K/Llaay/5rk2LOyn4DzLjjIs2azxQxoam6SPhxoNPDY6ZPr2RQLhTZE+zyrr7bwPR1Jx1IGIzEO5bBWLkc9owDoLvC8gfGqjrp4zme1edhN2Re96Z5p6HbvtrTpXQ25/E3MUv&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<path d="M 100 80 L 100 123.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 100 128.88 L 96.5 121.88 L 100 123.63 L 103.5 121.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<ellipse cx="100" cy="40" rx="75" ry="40" 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: 148px; height: 1px; padding-top: 40px; margin-left: 26px;">
<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: 19px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
DoAddBook
</div>
</div>
</div>
</foreignObject>
<text x="100" y="46" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="19px" text-anchor="middle" font-weight="bold">
DoAddBook
</text>
</switch>
</g>
<path d="M 100 210 L 100 253.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 100 258.88 L 96.5 251.88 L 100 253.63 L 103.5 251.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 187.5 170 L 395 170 Q 405 170 405 180 L 405 253.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 405 258.88 L 401.5 251.88 L 405 253.63 L 408.5 251.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 100 130 L 187.5 170 L 100 210 L 12.5 170 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: 173px; height: 1px; padding-top: 170px; margin-left: 14px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
数据库满?
</div>
</div>
</div>
</foreignObject>
<text x="100" y="175" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
数据库满?
</text>
</switch>
</g>
<path d="M 100 310 L 100 743.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 100 748.88 L 96.5 741.88 L 100 743.63 L 103.5 741.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 0 310 L 20 260 L 200 260 L 180 310 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: 198px; height: 1px; padding-top: 285px; 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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
显示:数据库满
</div>
</div>
</div>
</foreignObject>
<text x="100" y="290" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
显示:数据库满
</text>
</switch>
</g>
<path d="M 405 310 L 405 363.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 405 368.88 L 401.5 361.88 L 405 363.63 L 408.5 361.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 325 310 L 345 260 L 485 260 L 465 310 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: 158px; height: 1px; padding-top: 285px; margin-left: 326px;">
<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: 16px; 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="405" y="290" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle">
输入图书编号
</text>
</switch>
</g>
<path d="M 405 420 L 405 473.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 405 478.88 L 401.5 471.88 L 405 473.63 L 408.5 471.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 325 420 L 345 370 L 485 370 L 465 420 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: 158px; height: 1px; padding-top: 395px; margin-left: 326px;">
<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: 16px; 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="405" y="400" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle">
输入图书名
</text>
</switch>
</g>
<path d="M 405 530 L 405 598.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 405 603.88 L 401.5 596.88 L 405 598.63 L 408.5 596.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 325 530 L 345 480 L 485 480 L 465 530 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: 158px; height: 1px; padding-top: 505px; margin-left: 326px;">
<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: 16px; 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="405" y="510" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle">
输入图书数量
</text>
</switch>
</g>
<path d="M 405 665 L 405 710 Q 405 720 395 720 L 110 720 Q 100 720 100 730 L 100 743.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 100 748.88 L 96.5 741.88 L 100 743.63 L 103.5 741.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="320" y="605" width="170" height="60" 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: 168px; height: 1px; padding-top: 635px; margin-left: 321px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
显示图书信息
<br/>
和***Added***
</div>
</div>
</div>
</foreignObject>
<text x="405" y="640" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle">
显示图书信息
和***Added***
</text>
</switch>
</g>
<rect x="260" y="140" width="40" 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: 155px; margin-left: 280px;">
<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: 16px; 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="280" y="160" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle">
N
</text>
</switch>
</g>
<rect x="75" y="210" 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: 225px; margin-left: 90px;">
<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: 16px; 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="90" y="230" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="40" y="750" width="120" height="50" rx="7.5" ry="7.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
</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>

Before

Width:  |  Height:  |  Size: 16 KiB

@ -1,249 +0,0 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="706px" height="821px" viewBox="-0.5 -0.5 706 821" content="&lt;mxfile&gt;&lt;diagram id=&quot;QEEwPKbDbDdqIUOv00vG&quot; name=&quot;Page-1&quot;&gt;7VrJcts4EP0aHCfFndSR1JKpSk2SKk/VjI8wCUsoQ4JCQraUrx+ABBeAkK2FUqx4coiJJhai+/XrR4jAHS+3n3O4XvxFM0SAY2Vb4E6A44Sux/8Xhl1l8NywMsxznFUmuzXc4Z9IGi1p3eAMFUpHRilheK0aU7paoZQpNpjn9EXt9kiJuuoazlHPcJdC0rf+gzO2qKyRb7X2PxGeL+qVbUveWcK6szQUC5jRl47JnQJ3nFPKqqvldoyI8F3tl2rcbM/d5sFytGKHDHCqAc+QbOTegBMQPjR5EE/HdnLLwY+NeKTkka7YH0UZkJh3sP01j2nS3udXc/mX1P3PmmhCEyoillD6VE/Kt1PNq67FzQ+tzVGWdfi2OTp4I3lZYIbu1jAVd144PrltwZaEt2z5YBJxtt/M1PWodPIzyhnadkzSw58RXSKW73gXedepw7+rYSzbLy14bE/aFh3gRNIGJV7nzdRtSPmFjKo5wr4hwrpvVlksfMxbKYFFgdPXXSLaY0poXg53rfLfa65CmZJPfUd1HOEb/FDbckQgw89qFpqcI1f4TnEJvzoOweiTr0ZC93BBN3mK5Lhu3uhThWpIHU+biMF8jlhvIu5nuOt0W4sOxSmP3Ia/mrMFQ+PXg/ARnckA3j4GmAZgFIF4BqY+GFkgDsRFPBFGYRmDmF+UHWK/tCQgmYKpB5KR6HxIUnP2XItLDjlICCJ0nsMl77hGOeYuQLl+73t7400ewFtUlx49CTwtCTL0CDeEXYYtGmi9xRbBAGwxuh5boC1m/3Kb9cmXrXs5g7ieCG/U3SY72djr3ipvFUS/F9LRmMK1B6Icd3QhytHXcYYlnBq6XUjxUN3J5oqukAqoU4BydsnqAsr2DkTUwFCJ9IzeE+ETglBv6WDav6DEE5UimokaMQ1BzPk/BtMZSMZgFAvVV4gXBcigCMByzXbnqMCmYOQ0RUXxdhV4gOnTPKebVfZtwwheXb0a2L5a/pus77AXx3OfvobQjrZJPDYoUeq8KN169ER55/aRK8p75JvrPB8lOpfqgKMgCT9u5fc8rfI7hsofXCrWv6D01xx+r7C7mdG5W/NdVQYsz6kN1cjAq9vt2LKlDO5A4GgxUTGvmhXvRGC4er22ThQYPfiFFys/NbD/fyvl0zgDxa830YHxO1Yg7nvgoQSia8DC+xaIByNqYKh4OvEPl6FudGIQjuH0mwxCGKlBCJzLpJm+jjdwmjX65FVx19dr/UOcSu7NDhJupZZGmQTAEWexl1VewR7q7Covx1ADhjhzcdxDAqGr7G9fPq5QDlzbzIPXCJd3e+UpvA4z6ucXoX8dAVKvMxgzhqckpHJoYTis+GA5qr9NBLYhR00vs7pqPSVHXf/WctS90hmjnjuBfhw9oIQMjwzCTTo00HDuX9Chrx7adnjJB4kFpiMQheJITUi3CEQTodi4XVpiEE2t30iyXVcD2D0vvXd+Gf0aDRAdmA5Hvx0F5nUGO4QwHYe+rQFkF9wmUzfHGvNXKrYyE4nF//69wOJHDu0Tlw+mFwItoIHh8Lv5aXxoveCZXsH20qB9HA2elLtHfC9ga5kQXJMI+yXpvuc5vhGmugcSPF/x65Rvu0Sl2C5OIYnljSXOMjE8yVGBf8KHcirhMMkLfF4/Af5EzLVhtGgBW7CcPqHa15KJHzEhmmmPmw3B2Ot5/eTd9KWG6ac5dwjH93+a+3objjd/YHdWIBxNg7mXCwRvtl9nVnWl/cTVnf4H&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<ellipse cx="115" cy="40" rx="70" ry="40" 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: 138px; height: 1px; padding-top: 40px; margin-left: 46px;">
<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: 15px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<b style="font-size: 15px;">
<font style="font-size: 15px;">
DoBorrowBook
</font>
</b>
</div>
</div>
</div>
</foreignObject>
<text x="115" y="45" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="15px" text-anchor="middle">
DoBorrowBook
</text>
</switch>
</g>
<path d="M 114.5 80 L 114.95 133.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 114.99 138.88 L 111.43 131.91 L 114.95 133.63 L 118.43 131.85 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 45 200 L 65 140 L 185 140 L 165 200 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: 138px; height: 1px; padding-top: 170px; margin-left: 46px;">
<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: 14px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<b style="font-size: 14px;">
是否存在该图书
</b>
</div>
</div>
</div>
</foreignObject>
<text x="115" y="174" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="14px" text-anchor="middle">
是否存在该图书
</text>
</switch>
</g>
<path d="M 115 200 L 115 210 Q 115 220 115 230 L 115 283.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 115 288.88 L 111.5 281.88 L 115 283.63 L 118.5 281.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 115 370 L 115 753.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 115 758.88 L 111.5 751.88 L 115 753.63 L 118.5 751.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="0" y="290" width="230" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
<path d="M 23 290 L 23 370 M 207 290 L 207 370" fill="none" 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: 182px; height: 1px; padding-top: 330px; margin-left: 24px;">
<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: 14px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<b style="">
<font style="font-size: 15px;">
提示Books data empty
</font>
</b>
</div>
</div>
</div>
</foreignObject>
<text x="115" y="334" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="14px" text-anchor="middle">
提示Books data empty
</text>
</switch>
</g>
<path d="M 285 200 L 305 120 L 445 120 L 425 200 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: 158px; height: 1px; padding-top: 160px; margin-left: 286px;">
<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: 14px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<b>
显示:输入图书编号
</b>
</div>
</div>
</div>
</foreignObject>
<text x="365" y="164" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="14px" text-anchor="middle">
显示:输入图书编号
</text>
</switch>
</g>
<path d="M 175 170 L 285.35 171.13" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 290.6 171.19 L 283.57 174.62 L 285.35 171.13 L 283.64 167.62 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 365 200 L 365 263.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 365 268.88 L 361.5 261.88 L 365 263.63 L 368.5 261.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 365 330 L 365 373.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 365 378.88 L 361.5 371.88 L 365 373.63 L 368.5 371.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 425 300 L 615 300 Q 625 300 625 310 L 625 513.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 625 518.88 L 621.5 511.88 L 625 513.63 L 628.5 511.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="305" y="270" width="120" height="60" 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: 300px; margin-left: 306px;">
<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: 14px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<b>
图书存在?
</b>
</div>
</div>
</div>
</foreignObject>
<text x="365" y="304" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="14px" text-anchor="middle">
图书存在?
</text>
</switch>
</g>
<path d="M 476 440 L 496 380 L 596 380 L 576 440 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: 410px; margin-left: 477px;">
<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: 14px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<b>
显示OK
</b>
</div>
</div>
</div>
</foreignObject>
<text x="536" y="414" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="14px" text-anchor="middle">
显示OK
</text>
</switch>
</g>
<path d="M 365 580 L 365 640 Q 365 650 355 650 L 121.37 650" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 116.12 650 L 123.12 646.5 L 121.37 650 L 123.12 653.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 285 580 L 305 510 L 445 510 L 425 580 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: 158px; height: 1px; padding-top: 545px; margin-left: 286px;">
<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: 14px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<b>
显示Book empty
</b>
</div>
</div>
</div>
</foreignObject>
<text x="365" y="549" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="14px" text-anchor="middle">
显示Book empty
</text>
</switch>
</g>
<path d="M 365 440 L 365 503.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 365 508.88 L 361.5 501.88 L 365 503.63 L 368.5 501.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 425 410 L 478.63 410" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 483.88 410 L 476.88 413.5 L 478.63 410 L 476.88 406.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="305" y="380" width="120" height="60" 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: 410px; margin-left: 306px;">
<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: 14px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<b>
数量不小于0
</b>
</div>
</div>
</div>
</foreignObject>
<text x="365" y="414" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="14px" text-anchor="middle">
数量不小于0
</text>
</switch>
</g>
<path d="M 605 590 L 605 700 Q 605 710 595 710 L 121.37 710" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 116.12 710 L 123.12 706.5 L 121.37 710 L 123.12 713.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 505 590 L 525 520 L 705 520 L 685 590 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: 198px; height: 1px; padding-top: 555px; margin-left: 506px;">
<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: 14px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
<b>
显示
<i>
</i>
Not Found This Book
</b>
</div>
</div>
</div>
</foreignObject>
<text x="605" y="559" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="14px" text-anchor="middle">
显示 Not Found This Book
</text>
</switch>
</g>
<rect x="55" y="760" width="120" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
<rect x="215" y="140" 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: 155px; margin-left: 230px;">
<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="230" y="159" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="85" y="240" 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: 255px; margin-left: 100px;">
<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: 15px; 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="260" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="15px" 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>

Before

Width:  |  Height:  |  Size: 21 KiB

@ -1,166 +0,0 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="430px" height="801px" viewBox="-0.5 -0.5 430 801" content="&lt;mxfile&gt;&lt;diagram id=&quot;9VLeLbqcEoHo9Ky9rnhR&quot; name=&quot;Page-1&quot;&gt;5VhNc5swEP01umYQWAaOYOP20jQzObQ5KkbBmsiIEXJs59dXAmGMBY6bOG6SXhJppdXH09t9a4A3WW6+CVwsfvCUMOA66QZ4U+C6vu+ov9qwrQ0jz68NmaBpbYKt4ZY+E2M0ftmKpqTsTJScM0mLrnHO85zMZceGheDr7rQHzrq7FjgjluF2jplt/UVTuaitAXJa+3dCs0WzM3TMyBI3k42hXOCUr/dMXgK8ieBc1q3lZkKYxq7BpfabDYzuDiZILk9xGNUOT5itzN3MueS2uSxJ1d1NN+e5+hcv5JKpHlTNB55L80BwrPq1u/YZPJExlXwl5maW2VVikREzy9uhoVhE+JJIsVVTBGFY0qfu6ti8Z7ab115ZNcyt+xFwLQSmfEoYkSTm/NFGgzHFMg3CekEluS1wdYe14nkPMMZvGKgnIiTZHIfKBsE4uA2ttk14mP66JSVsSLnYI2TgvB03GPwlU8iGyt+q7Vwh07vbG5nqOzlNZ2s6h6ApYMR2bxHdvWscdaddpuo167yOlZ7NSnQhVnp2XCYBiBMQeiBBIEAgQroRxtqYjEAcgmgMEh/EExCOqzkzEPvWG6mEU+hmIficlOXLPL7H88dM8FWe/lxJRvMhPh/y/Sz8dq9Qh+Eu6mH4CNkMH5+B4cHHyI3IZqF/IRbCDyIPPRDAS+kD6onEMQgDEM2qAHSquFPxONVGbZmAKNDRqib0BulgSGKBGSOMZwIvFVYFEVQdl4jDsZt24EUVohvSFFAXiloY+gdR64V9uvROUburrC6pS6+j9VvD2LjecKo2abOm30U/GB2gWoeR8ToAdneMk7D2h2JD090HkWJ8BJJZpUnRNZdVra2U5FOrEgzHV24XYuT2EXwXBuemeGjBfm0hqu4nu5BhRrNctefqnlXq0ChQ9aMmMgNLmqbaPRakpM/4vlpKs73QVKnOi2KApnqtleRlm1VKKfgjmXDGRRtiD5SxQ9M71MBetwYe+fZTjHpKYO8cJfD4Y8gj7ClU4aUqVdhXqtpJwC5VVUMJJNSTA6jF8ovr4o6Z/0IVYfhpVPHNzB2SxS78fniaLEZC4O3eNJMMB/dBqH+f9qHqFV+ruXCwIO0T3fpLxhHB/ZqxhbxLxpZdBt39t3q8y2pHspz3TnrcyO8xPT7lq90eIlWJSdLzMVUlhKuB+nwPofA8VFXd9lNynWva7/Fe8gc=&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<path d="M 79 80 L 79 143.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 79 148.88 L 75.5 141.88 L 79 143.63 L 82.5 141.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<ellipse cx="79" cy="40" rx="75" ry="40" 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: 148px; height: 1px; padding-top: 40px; margin-left: 5px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
DoDeleteBook
</div>
</div>
</div>
</foreignObject>
<text x="79" y="45" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
DoDeleteBook
</text>
</switch>
</g>
<path d="M 79 210 L 79 283.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 79 288.88 L 75.5 281.88 L 79 283.63 L 82.5 281.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="6.5" y="150" width="145" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
<path d="M 21.5 150 L 21.5 210 M 136.5 150 L 136.5 210" fill="none" 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: 114px; height: 1px; padding-top: 180px; margin-left: 23px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
输入图书编号
</div>
</div>
</div>
</foreignObject>
<text x="80" y="185" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
输入图书编号
</text>
</switch>
</g>
<path d="M 79 350 L 79 413.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 79 418.88 L 75.5 411.88 L 79 413.63 L 82.5 411.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 146.5 320 L 277.63 320" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 282.88 320 L 275.88 323.5 L 277.63 320 L 275.88 316.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 1.5 350 L 21.5 290 L 156.5 290 L 136.5 350 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: 153px; height: 1px; padding-top: 320px; margin-left: 3px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
是否存在该图书
</div>
</div>
</div>
</foreignObject>
<text x="79" y="325" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
是否存在该图书
</text>
</switch>
</g>
<path d="M 79 480 L 79 733.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 79 738.88 L 75.5 731.88 L 79 733.63 L 82.5 731.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="0.25" y="420" width="157.5" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
<path d="M 16.25 420 L 16.25 480 M 141.75 420 L 141.75 480" fill="none" 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: 124px; height: 1px; padding-top: 450px; margin-left: 17px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
显示Not found
</div>
</div>
</div>
</foreignObject>
<text x="79" y="455" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
显示Not found
</text>
</switch>
</g>
<rect x="34" y="370" width="40" 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: 385px; margin-left: 54px;">
<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: 16px; 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="54" y="390" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle">
N
</text>
</switch>
</g>
<path d="M 351.5 350 L 351.5 423.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 351.5 428.88 L 348 421.88 L 351.5 423.63 L 355 421.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 274 350 L 294 290 L 429 290 L 409 350 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: 153px; height: 1px; padding-top: 320px; margin-left: 275px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
显示图书信息
</div>
</div>
</div>
</foreignObject>
<text x="352" y="325" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
显示图书信息
</text>
</switch>
</g>
<path d="M 351.5 490 L 353.88 680 Q 354 690 344 690 L 80.37 690" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75.12 690 L 82.12 686.5 L 80.37 690 L 82.12 693.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 274 490 L 294 430 L 429 430 L 409 490 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: 153px; height: 1px; padding-top: 460px; margin-left: 275px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
显示Deleted
</div>
</div>
</div>
</foreignObject>
<text x="352" y="465" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
显示Deleted
</text>
</switch>
</g>
<rect x="194" y="290" 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: 305px; margin-left: 209px;">
<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: 16px; 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="209" y="310" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="31.5" y="740" width="95" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
</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>

Before

Width:  |  Height:  |  Size: 15 KiB

@ -1,154 +0,0 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="704px" height="811px" viewBox="-0.5 -0.5 704 811" content="&lt;mxfile&gt;&lt;diagram id=&quot;0JUMHuX0zm64q-0W1Kxc&quot; name=&quot;Page-1&quot;&gt;3VlLc5swEP41umYQIARHsE17aSczObQ5UqNgphgxshzb/fWVQLxxQgx23VwSaaVF0u737SMBxmJ7/MKCbPONhiQBuhYegbEEuo6xJn5KwakQWBosBBGLw0LUEDzFf4gSKr1oH4dk19rIKU14nLWFa5qmZM1bsoAxemhve6FJ+9QsiEhP8LQOkr70RxzyTSG1kVbLv5I42pQnQ02tbINysxLsNkFIDw2RsQLGglHKi9H2uCCJtF1pl0LPP7NaXYyRlI9RMAuF1yDZq7epe/FT+VgSireraUpT8cvb8G0iZlAMX2jKlYOgJeaFutQ5eyMl2tE9W6td6lQesIioXUZlDYEiQreEs5PYwkgS8Pi1/fVA+TOq9tVPFgP16mEL6D0LLKkfp6FH6e++LZJEYEya4LCJOXnKgvwFB4HyAbMovfNmeiWMk+PbhuqbQCnoJagUiWAJv0MNyUq2acDR1qZbzboP3Bh93KAb4cb+4IPJMeY/G+NnMdYekJotpVO1cnJSk66RhCnY6WetKKfPpaKc1J/JZ+V3ZjMunmhcpfpIY3FuhWSErRaSDdxBaHEFpVW7yGUsODW2ZXLD7gPnQK3j8eKLtf+rN46ChNEnxQoBxwPeCqxM4DnAtaTEc4FjgBUGriPHKx94C+D4PUCJ5JDJofBTkCQkoRELtsKdGWGxuBZh3bXHeuHdABUfSZlZh/jYDWAzBCxo4wfUckAVipohC6N+yLJmCFkQX8jYmqXPjZV7ZCzqM7ZRVcxJWR23k4/dTSpnKHsBq9AAqyzg2DmrBIfMBofcUYTrwmBMLr8uNbq53NRG5vJZiNEvgf5JMsd99MIzZps9m+MBkOUIk7hBwEbARUPYwjnscpDZAoL9EHM/MXw6SlEHpYY1EqVoDpTeSasCy4azCdNbNSvwTuruQSPcqvIuD3+3znKXMk3IpQVw7fN11qT4Pz+tTBvdMPhf2sdMqYouBN1Ulo0rZXDXrLN1H2jwnLm6DzjUfnQLpe9U3sin+zT81KnKdNrGtvQBTlnX4pTz/3BqatAe2R6Y1+GUXYavzjmzcWpc89FPPmLgAxfKzTYErsg5ViK84P1iYhTJUb7kA0ervvP5WYnNNisHM515pf6//JP7W7XTBysBJj1GQjBfHwjbvHGG+kB9nrAlpvX/GQpu1P+sMVZ/AQ==&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<path d="M 88 80 L 88 123.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 88 128.88 L 84.5 121.88 L 88 123.63 L 91.5 121.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<ellipse cx="88" cy="40" rx="75" ry="40" 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: 148px; height: 1px; padding-top: 40px; margin-left: 14px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
DoFindBook
</div>
</div>
</div>
</foreignObject>
<text x="88" y="45" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
DoFindBook
</text>
</switch>
</g>
<path d="M 88 190 L 88 243.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 88 248.88 L 84.5 241.88 L 88 243.63 L 91.5 241.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 165.5 160 L 379 160 Q 389 160 388.8 170 L 388.13 203.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 388.02 208.88 L 384.66 201.81 L 388.13 203.63 L 391.66 201.95 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 0.5 190 L 20.5 130 L 175.5 130 L 155.5 190 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: 173px; height: 1px; padding-top: 160px; margin-left: 2px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
图书库空?
</div>
</div>
</div>
</foreignObject>
<text x="88" y="165" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
图书库空?
</text>
</switch>
</g>
<path d="M 88 310 L 83.07 743.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 83.01 748.88 L 79.59 741.84 L 83.07 743.63 L 86.59 741.92 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="13" y="250" width="150" height="60" 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: 148px; height: 1px; padding-top: 280px; margin-left: 14px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
显示:图书库空
</div>
</div>
</div>
</foreignObject>
<text x="88" y="285" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
显示:图书库空
</text>
</switch>
</g>
<path d="M 388 260 L 388 328.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 388 333.88 L 384.5 326.88 L 388 328.63 L 391.5 326.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 313 260 L 333 210 L 463 210 L 443 260 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: 148px; height: 1px; padding-top: 235px; margin-left: 314px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
输入图书编号
</div>
</div>
</div>
</foreignObject>
<text x="388" y="240" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
输入图书编号
</text>
</switch>
</g>
<path d="M 388 395 L 388 468.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 388 473.88 L 384.5 466.88 L 388 468.63 L 391.5 466.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 463 365 L 561.63 365" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 566.88 365 L 559.88 368.5 L 561.63 365 L 559.88 361.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="313" y="335" width="150" height="60" 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: 148px; height: 1px; padding-top: 365px; margin-left: 314px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
图书存在?
</div>
</div>
</div>
</foreignObject>
<text x="388" y="370" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
图书存在?
</text>
</switch>
</g>
<path d="M 388 535 L 388 600 Q 388 610 378 610 L 89.37 610" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 84.12 610 L 91.12 606.5 L 89.37 610 L 91.12 613.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 308 535 L 328 475 L 468 475 L 448 535 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: 158px; height: 1px; padding-top: 505px; margin-left: 309px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
显示Not Found
</div>
</div>
</div>
</foreignObject>
<text x="388" y="510" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
显示Not Found
</text>
</switch>
</g>
<path d="M 630.5 395 L 630.98 680 Q 631 690 621 690 L 89.37 690" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 84.12 690 L 91.12 686.5 L 89.37 690 L 91.12 693.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 558 395 L 578 335 L 703 335 L 683 395 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: 143px; height: 1px; padding-top: 365px; margin-left: 559px;">
<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: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
显示图书信息
<br/>
提示Found
</div>
</div>
</div>
</foreignObject>
<text x="631" y="370" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle" font-weight="bold">
显示图书信息
提示Found
</text>
</switch>
</g>
<rect x="23" y="750" width="120" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
</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>

Before

Width:  |  Height:  |  Size: 14 KiB

@ -1,91 +0,0 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="171px" height="631px" viewBox="-0.5 -0.5 171 631" content="&lt;mxfile&gt;&lt;diagram id=&quot;xMo0FtDOu13e51XkXaJP&quot; name=&quot;Page-1&quot;&gt;3ZdNj5swEIZ/zdwhDl9HyJL2UnWlHHp2YRasNRg5zld/fQ2YEBZoIjVJV70k9uuZ2PP6wThAVsXxi6RV/k2kyGFhpUcgL7BYeJ6lP2vh1ApL4rVCJlnaSnYvbNgvNKLJy3Ysxe0gUAnBFauGYiLKEhM10KiU4jAMexN8OGtFMxwJm4TysfqDpSpvVd+xev0rsizvZrYtM1LQLtgI25ym4nAhkRjISgqh2lZxXCGvvet8afPWM6PnhUks1S0JyzZhT/nO1GbWpU5dsZjq2k23FKX+inJVcN2zdfNNlMpskO3pfpte58yuyEhbsZOJiTKzKiozNFHk7IamCEWBSp50iEROFdsPf52a/czOcX3JumGqnnZgMXLgRbxKVqpIiPexGZxryGoPDjlTuKloU8JBYz7hi8mb92mPUuHxz06NPTAJC9dAZJ6iwHQPPZJ2F5Jf4Ohbf++a+zm4IWNunCdxQ8YOxC74a9DbEHsQLiEKIfYhiiEgEDvge42iYwLQW6AbwapuxzoygNCtsyIb/JeRk/qQqOpmJUWC2+11+H7S5D2TYlem33eKs3IOwo+Q3gVKZwDl+aS7pNKZoNK9A5X+56DSGVPpPYlKZ5LKoMGwp/IGBmtlDaHdBNsQrueppJJyjlxkkhbaswol0+tG+XHstR+4enqyI3bv/WeB6wzBJf4EuN6DwO0uNv+aXG9MbvAkcr1bybUgimaA9SFsYgIHImtk4H8OrDN10j4K2OA6r837B1NT8C3XpQf75Q/9ct0Jv+z7+KW7/R2+Gbv4I0Ti3w==&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<path d="M 85 80 L 85 123.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 85 128.88 L 81.5 121.88 L 85 123.63 L 88.5 121.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<ellipse cx="85" cy="40" rx="80" ry="40" 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: 158px; height: 1px; padding-top: 40px; margin-left: 6px;">
<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: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
DoPrintBook
</div>
</div>
</div>
</foreignObject>
<text x="85" y="45" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
DoPrintBook
</text>
</switch>
</g>
<path d="M 85 190 L 85 283.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 85 288.88 L 81.5 281.88 L 85 283.63 L 88.5 281.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="10" y="130" width="150" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
<path d="M 25 130 L 25 190 M 145 130 L 145 190" fill="none" 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: 160px; margin-left: 26px;">
<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: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
提示输出所有书籍
</div>
</div>
</div>
</foreignObject>
<text x="85" y="165" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
提示输出所有书籍
</text>
</switch>
</g>
<path d="M 85 350 L 85 423.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 85 428.88 L 81.5 421.88 L 85 423.63 L 88.5 421.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 0 350 L 20 290 L 170 290 L 150 350 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: 168px; height: 1px; padding-top: 320px; 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: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
显示所有书籍信息
</div>
</div>
</div>
</foreignObject>
<text x="85" y="325" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
显示所有书籍信息
</text>
</switch>
</g>
<path d="M 85 490 L 85 563.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 85 568.88 L 81.5 561.88 L 85 563.63 L 88.5 561.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 0 490 L 20 430 L 170 430 L 150 490 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: 168px; height: 1px; padding-top: 460px; 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: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
显示总书籍个数
</div>
</div>
</div>
</foreignObject>
<text x="85" y="465" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
显示总书籍个数
</text>
</switch>
</g>
<rect x="30" y="570" width="110" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
</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>

Before

Width:  |  Height:  |  Size: 8.3 KiB

@ -1,148 +0,0 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="375px" height="741px" viewBox="-0.5 -0.5 375 741" content="&lt;mxfile&gt;&lt;diagram id=&quot;TgriccfKKwNxxR0kH169&quot; name=&quot;Page-1&quot;&gt;1VhNl5sgFP01bOeoSNSlRjPtou2czqLtkomM4QwRD5JJMr++oDjGYDqZNh+dTQKXx8e77/IAAZwuN7cCV4svPCcMeE6+ATAFnue6ofrVwLYFfBi0QCFobmx64J6+EAM6Bl3RnNQDQ8k5k7QagnNelmQuBxgWgq+HZo+cDWetcEEs4H6OmY3+oLlctGiInB7/RGix6GZ2HdOyxJ2xAeoFzvl6B4IZgFPBuWxLy82UMM1dx0vbb3ag9XVhgpTymA5+2+EZs5XxzaxLbjtnSa58N9WSl+ovWcglUzVXFR95KU2A3EDV7QWYNdV8JeZmSDOJxKIgxgq2kJ5sp5tZ9C3hSyLFVhkIwrCkz8NAYBPP4tWud1kVjNfjDHgWAyn/TipM84TzJ5sNxpTKNAnrBZXkvsKNU2ul8xFiTL93EfVMhCSbP5JgWj2I2i5mG4VGVOtek+7EmCx29NjZ/Qtt0VWEA23hhNcSDrQZyCYgnIHIAVkAYh8kMchCkGQggiBDIEQgRroQJRrMlEEE4snn1GJOZYVKFyvB56Su3xbbA54/FYKvyvzbSjJaHhLdvihPIUIU3AxlCN0RHXYJb1eHkxPoEI1GIWpoH0RhpsGO88OMY4EZI4wXAi8VQRURVK2JiP22u77hzUxAN6Q7xM6VCbzJjTeMgjcWhdC7GckHp4iD69qBuEBCCO2E0Pl9+YzgXuc0HePgasdpOLIf9zOeRuK02Y+qaQpiVZiBZAqi2X+1MS+SLX3vgtnSnVxFod2WHEgUXW2bOhYJKY/z8fvehzqKfW9PXGgyIi50LnHZV+mvFp/KFTkkDDNalKo8V443u1Y7TNVjKzYNS5rnunsiSE1f8EMzlKNzAKelbBaMEoBSPdZK8rrf0LUU/IlMOeOiF/MjZWwfOsOJ3F2yu0h0et+JhD8SCHiKQATv3NRkQ+VPTaqST1v7tdOSbgzfTWVrKn+XCE5+Lpmud1oKPfvQG7IfeHu0tpnI9OqZjYXA2x0zo7CD8yA4Pk8fqHbEPmyvPh4XybFHhn2cqgsvAol6dkQgDPQTRL82YhA7riWEj5TP/OMOS/98l9qR18U+oQ01JDdeH/NR4MyHQGA9BYLAZm38JYDeT5qq9p+rWon33/xg9hs=&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<path d="M 91.5 80 L 91.5 223.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 91.5 228.88 L 88 221.88 L 91.5 223.63 L 95 221.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<ellipse cx="91.5" cy="40" rx="82.5" ry="40" 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: 163px; height: 1px; padding-top: 40px; margin-left: 10px;">
<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: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
DoRepaidBook
</div>
</div>
</div>
</foreignObject>
<text x="92" y="45" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
DoRepaidBook
</text>
</switch>
</g>
<path d="M 91.5 290 L 91.5 333.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 91.5 338.88 L 88 331.88 L 91.5 333.63 L 95 331.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="31.5" y="230" width="120" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
<path d="M 43.5 230 L 43.5 290 M 139.5 230 L 139.5 290" fill="none" 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: 94px; height: 1px; padding-top: 260px; 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: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
提示输入图书ID
</div>
</div>
</div>
</foreignObject>
<text x="92" y="265" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
提示输入图书ID
</text>
</switch>
</g>
<path d="M 0.25 190 L 20.25 130 L 182.75 130 L 162.75 190 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: 181px; height: 1px; padding-top: 160px; 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: 17px; 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="92" y="165" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">
显示还书
</text>
</switch>
</g>
<path d="M 91.5 400 L 91.5 473.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 91.5 478.88 L 88 471.88 L 91.5 473.63 L 95 471.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 141.5 370 L 225.13 370" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 230.38 370 L 223.38 373.5 L 225.13 370 L 223.38 366.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 31.5 400 L 51.5 340 L 151.5 340 L 131.5 400 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: 370px; margin-left: 33px;">
<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: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
图书存在?
</div>
</div>
</div>
</foreignObject>
<text x="92" y="375" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
图书存在?
</text>
</switch>
</g>
<path d="M 91.5 540 L 91.5 683.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 91.5 688.88 L 88 681.88 L 91.5 683.63 L 95 681.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="16.5" y="480" width="150" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
<path d="M 31.5 480 L 31.5 540 M 151.5 480 L 151.5 540" fill="none" 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: 510px; margin-left: 33px;">
<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: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
DoAddBook
</div>
</div>
</div>
</foreignObject>
<text x="92" y="515" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
DoAddBook
</text>
</switch>
</g>
<rect x="54" y="435" width="40" 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: 74px;">
<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: 17px; 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="74" y="455" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle">
N
</text>
</switch>
</g>
<path d="M 302.75 400 L 303.95 630 Q 304 640 294 640 L 100.37 640" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 95.12 640 L 102.12 636.5 L 100.37 640 L 102.12 643.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="231.5" y="340" width="142.5" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
<path d="M 245.5 340 L 245.5 400 M 360 340 L 360 400" fill="none" 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: 112px; height: 1px; padding-top: 370px; margin-left: 247px;">
<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: 17px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
图书数量加1
</div>
</div>
</div>
</foreignObject>
<text x="302" y="375" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
图书数量加1
</text>
</switch>
</g>
<rect x="50.25" y="690" width="82.5" height="50" rx="7.5" ry="7.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/>
</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>

Before

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 122 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

@ -1,5 +1,5 @@
# 图书管理系统
2023年5月1
2023年4月22
杨腾泽,孙英皓,李聪颖,刘彩月
## 项目简介
@ -7,24 +7,21 @@
本系统是自建设计项目,实现了图书管理中的借书和还书,查询书籍,以及书籍的添加、删除和显示所有书籍等功能。项目采用 C/C++ 语言编程实现,在 VS Code 集成开发环境IDE中用 GCC 进行编译。系统采用模块化设计,程序结构清晰,采用菜单驱动的命令行界面,操作便捷,能够用 CSV 格式读取和保存数据,通用性强,能够用图表展示数据,直观清楚。
下载地址: https://bdgit.educoder.net/pkcs2aq9m/text1.git
项目开发过程中采用 Kanban看板进行任务管理和分工协作并使用 Git 对程序代码和文档进行版本管理。任务分工情况如下:
| 任务 | 设计 | 开发 | 测试 | 文档 |
|-----------|----------|-----------|-------------|------------|
| Ca-Cb | 孙英皓 | 孙英皓 | 孙英皓 | 孙英皓 |
| C0-C2 | 杨腾泽 | 杨腾泽 | 杨腾泽 | 杨腾泽 |
| C3-C5 | 刘彩月 | 刘彩月 | 刘彩月 | 刘彩月 |
| C6-C8 | 李聪颖 | 李聪颖 | 李聪颖 | 李聪颖 |
|任务 |设计 |开发 |测试 |文档 |
|------ |-------|-------|--------|-------|
|Ca-Cb | | | | 杨腾泽 |
|C0-C2 | | | | 孙英皓 |
|C3-C5 | | | | 刘彩月 |
|C6-C8 | | | | 李聪颖 |
每个成员的工作量(百分比):
|杨腾泽|孙英皓|李聪颖|刘彩月|
|------|-----|------|-----|
| 25% | 25% | 25% | 25% |
|-----|----|-----|-----|
| 0 | 0 | 0 | 0 |
## 关于图书管理系统
设计一个图书管理系统,要求采用命令行菜单界面进行交互,具备查书、借书、还书、打印书籍 、添加、删除等基本功能,能够以表格和图表形式展示数据,采用 CSV 格式保存数据。
\
系统的功能性需求:
- 数据的查书、借书、还书、打印书籍、添加、删除展示。
@ -33,7 +30,7 @@
## 需求分析
分析系统的功能需求和界面需求,编制用户手册如下。
### Ca启动程序
### Ca: 启动程序
命令行中执行命令,系统启动,显示提示信息,然后显示功能菜单,等待用户输入命令。
```
*******图书管理系统启动*******
@ -43,7 +40,7 @@
————————————————————————————————————————————
请选择:
```
### Cb显示命令菜单
### Cb: 显示命令菜单
```
————————————————————————————————————————————
| 1 查书 | 2 借书 | 3 还书 | 4 打印 | 5 添加 |
@ -51,7 +48,7 @@
————————————————————————————————————————————
请选择:
```
### C0退出程序
### C0: 退出程序
选择菜单命令:0 再输入:y,确认,则退出程序。若输入:n则继续程序。
```
请选择0
@ -63,77 +60,26 @@
确定要退出吗?(Y/N): n
程序退出
```
### C1查找图书
选择菜单命令: 1 提示Find Book 和 Enter book ID: 字样若本身书籍库为空则提示Book data empty。继续输入图书编号。若没找到提示Not found;若找到提示Found 并 打印书籍信息。
```
请选择1
Find Book
Book data empty
```
```
请选择1
Find Book
Enter book ID: 1
Not found
```
```
请选择1
Find Book
Enter book ID: 1
Found
************
Book
**************** id: 1 ****************
**** title: 《 2 》****
************** Number: 3 **************
```
### C2借用图书
选择菜单命令2提示 Boorow Book若本身书籍库为空则提示Book data empty。提示 Which book you wanna boorow ?则继续输入图书编号。若该书本身不存在则提示NOT FOUND THIS BOOK如图书存在则提示OK。
```
请选择2
Boorow Book
Book data empty
```
```
请选择2
Boorow Book
Enter book ID:2
NOT FOUND THIS BOOK
```
```
请选择2
Boorow Book
Enter book ID:1
*********
OK
*********
```
### C3归还图书
选择菜单命令3提示归还图书 和 你想要归还哪一本书?输入图书编号,若在系统中没有该图书,则添加图书并输入图书的编号,数量和数目,显示相关信息并归还成功,否则直接退出。
### C3:归还图书
选择菜单命令3 提示归还图书 和 你想要归还哪一本书?输入图书编号,若在系统中没有该图书,则添加图书并输入图书的编号,数量和数目,显示相关信息并归还成功,否则直接退出。
`````
请选择3
Repaid Book
Enter book ID:2
Which book you wanna repaid ?
2
Add Book
ID : 2
ID : 1
TITLE : 1
Number : 1
Book
**************** id: 2 ****************
**************** id: 1 ****************
**** title: 《 1 》****
************** Number: 1 **************
`````
@ -143,11 +89,13 @@ Book
请选择3
Repaid Book
Enter book ID:1
Which book you wanna repaid ?
1
`````
### C4打印书籍
选择菜单命令4提示打印书籍并打印图书信息若没有书则输出Total: 0 books若有书则输出书籍信息
选择菜单命令4 提示打印书籍并打印图书信息若没有书则输出Total: 0 books若有书则输出书籍信息
```
请选择4
@ -169,12 +117,8 @@ Book
Total: 1 books
```
### C5添加图书
选择菜单命令5 提示添加图书若图书库满提示Books full.提示输入想添加的图书编号标题和数目并输出Book输出添加完后图书的相关信息和“Added”。
```
请选择5
Books full
```
### C5:添加图书
选择菜单命令5 提示添加图书提示输入想添加的图书编号标题和数目并输出Book输出添加完后图书的相关信息和“Added”。
```
请选择5
@ -198,6 +142,8 @@ Book
请选择6
Delete Book
Which book you wanna delelet?
Enter book ID: 4
Book
@ -207,12 +153,13 @@ Book
************************
Deleted
************************
```
```
请选择6
Delete Book
Which book you wanna delelet?
Enter book ID: 5
Not found
```
@ -222,7 +169,9 @@ Not found
请选择7
Revise Book
Enter book ID : 1
Which book you wanna revise ?
1
Original book number : 1
Revised number :2
**********************
@ -234,24 +183,11 @@ Revise success
请选择7
Revise Book
Enter book ID : 2
Which book you wanna revise ?
2
No such book
``````
### C8排序图书
选择菜单命令8提示Sort Books若图书库为空则提示Book data empty否则提示Sort success。
```
请选择8
Sort Books
Book data empty
```
```
请选择8
Sort Books
*****************************
Sort success
```
# 概要设计
系统主要分为用户界面和数据处理两大模块。
@ -261,10 +197,17 @@ Sort success
其中查询、添加、修改和删除数据还会用到根据编号查询数据的方法find
上述各模块通过主程序main进行调用系统模块图如下。
各模块的主要功能如下:
```
![Outline](Graph\Outline.drawio.svg)
```
各模块的主要功能如下:
## main
系统主函数模块,显示菜单,根据用户选择的菜单命令,执行相关操作。
## init
@ -279,83 +222,64 @@ Step 1: 初始化
Step 2: 根据用户选择的命令执行对应的操作
Step 2.1: 显示菜单
Step 2.2: 选择菜单命令 c
Step 2.3: if c == CMD_QUERY then 查找书籍
Step 2.4: if c == CMD_BOOROW then 借用书籍
Step 2.5: if c == CMD_REPAID then 归还书籍
Step 2.6: if c == CMD_PRINT then 打印书籍
Step 2.7: if c == CMD_INSERT then 添加书籍
Step 2.8: if c == CMD_DELETE then 删除书籍
Step 2.9: if c == CMD_UPDATE then 修改书籍
Step 2.10: if c == CMD_SORT then 排序书籍
Step 2.11: if c == CMD_QUIT then 选择退出
Step 2.3: if c == CMD_PRINT then 打印数据
Step 2.4:
```
![main](Graph\Main.drawio.svg)
```
```
## DoAddBook
```
Step 1: if 图书库满 then 提示图书库满
Step 1: if 数据库满 then 提示数据库满并结束
Step 2: 输入图书编号
Step 3: 输入图书名
Step 4: 输入图书数量
Step 3: 输入图书名和书籍数量
Step 4: 添加新书籍
Step 5: 提示添加成功
```
![add](Graph\DoAddBook.drawio.svg)
## DoFindBook
```
Step 1: 提示添加书籍
Step 2: if 图书库空 then 提示库空
Step 3: 提示输入图书编号
Step 4: 输入图书编号
Step 5: if 找到图书 then 输出图书信息 并提示Found
Step 6: if 没找到 then 提示Not found
```
![find](Graph\DoFindBook.drawio.svg)
## DoDeleteBook
```
Step 1: 提示删除图书
Step 2: 输入图书编号
Step 3: if 存在此图书 then 输出图上述信息 并提示 Deleted
Step 4: if 不存在此图书 then 提示 Not found
```
![delete](Graph\DoDeleteBook.drawio.svg)
## DoPrintBook
```
Step 1: 提示输出所有书籍
Step 2: 输出所有书籍
Step 3: 显示总书籍个数
```
![print](Graph\DoPrintBook.drawio.svg)
## DoRepaidBook
```
Step 1: 提示归还图书
Step 2: 输入图书编号
Step 3: if 存在该书 then 图书数量变化 1
Step 4: if 不存在该书 then 添加此图书
```
![repaid](Graph\DoRepaidBook.drawio.svg)
## DoBoorowBook
```
Step 1: 提示借用图书
Step 2: if 图书库为空 then 提示 Books data empty
Step 3: 输入图书编号
Step 4: if 此书存在 if 数量不小于0 then 进行程序并提示 OK 以表示完成 else 提示 Book empty
Step 5: if 此书不存在 then 提示 NOT FOUND THIS BOOK
```
![boorow](Graph\DoBorrowBook.drawio.svg)
## DoReviseBook
```
Step 1: 提示修改图书
Step 2: 输入图书编号
Step 3: if 图书编号不存在,输出没有那样的书
Step 4: if 图书编号存在,提示原图书数量,输出需要修改的图书数量并输出修改成功信息
```
![修改图书](Graph\修改图书.png)
## DoSortBook
```
Step 1: 提示排序图书
Step 2: if 没有图书编号 输出图书为空并输出排序成功
Step 3: if 有图书编号 直接输出排序成功
```
![排序图书](Graph\排序图书.png)
```

@ -1,246 +1,231 @@
#ifndef DATA_H_INCLUDED
#define DATA_H_INCLUDED
#include <stdio.h>
#include "sqlist.h"
struct Book {
int id; // 编号
string title; // 标题
int number; // 数量
};
SqList <Book> books;
// 函数声明
bool bookempty(); // 书籍库判空
void input(Book& b); // 输入一本书的信息
void print(const Book& b);// 打印一本书的信息
int find(int id); // 根据 id 查找图书 || 若找到,返回元素的位序,找不到时返回 0
void DoAddBook(); // 添加图书
void DoFindBook(); // 查找图书
void DoDeleteBook(); // 删除图书
void DoPrintBook(); // 打印所有图书
void DoRepaidBook(); // 归还图书
void DoBoorowBook(); // 借用图书
void DoReviseBook(); // 修改图书
void DoSortBook(); // 排序图书
// 输入一本书的信息
void input(Book& b)
{
cout << "ID : ";
cin >> b.id;
cin.ignore(1024, '\n'); // skip rest chars of the line
cout << "TITLE : ";
getline(cin, b.title);
cout << "Number : ";
while (1){
cin >> b.number;
if (b.number>0) break;
cout << "Number ERROR" << endl;
cout << "Input again" << endl;
}
}
// 打印一本书的信息
void print(const Book& b)
{
cout << endl << "Book " << endl
<<"**************** id: " << b.id << " ****************" << endl
<< "**** title: 《 " << b.title << " 》****" << endl
<< "************** Number: " << b.number << " **************" << endl << endl;
}
// 根据 id 查找图书
// 若找到,返回元素的位序,找不到时返回 0
int find(int id)
{
for (int i = 1; i <= books.length; i++)
{
if (id == books.elem[i].id){
return i;
}
}
return 0; // not found
}
// 书籍库判空
bool bookempty()
{
int a=0;
for (int i=1;i<=books.length;i++)
{
if (find(i)==0) a++;
}
if (a==books.length) return true;
else return false;
}
// 添加图书
void DoAddBook()
{
cout << endl << "Add Book"<< endl<<endl;
if (books.length == 256) cout << "Books full" << endl;
else{
Book book;
input(book); //输入图书
books.elem[books.length + 1] = book;
books.length++;
print(book);
cout << "*******Added********" << endl;
}
}
// 查找图书
void DoFindBook()
{
cout << endl << "Find Book" << endl;
if (bookempty()) cout << "Book data empty"<< endl;
else {
int id;
cout << "Enter book ID: ";
cin >> id;
Book book;
if (find(id) == 0)
{
cout << "************" << endl;
cout << "Not found" << endl;
cout << "************" << endl;
}
else
{
book = books.elem[find(id)];
cout << "************" << endl;
cout << "Found" << endl;
cout << "************" << endl;
print(book);
}
}
}
// 删除图书
void DoDeleteBook()
{
cout << endl << "Delete Book" << endl;
int id;
cout << "Enter book ID: ";
cin >> id;
Book e;
if (find(id) == 0)
cout << "Not found" << endl;
else
{
e = books.elem[find(id)];
print(e);
for (int i = find(id); i < books.length; i++)
{
books.elem[i] = books.elem[i + 1];
}
--books.length;
cout << "************************" << endl;
cout << "Deleted" << endl;
cout << "************************" << endl;
}
}
// 打印所有图书
void DoPrintBook()
{
cout << endl << "Print All Books" << endl <<endl;
int number = 0;
for (int i = 0; i < books.length; i++)
{
Book e;
e = books.elem[i + 1];
print(e);
number++;
}
cout << "Total: ";
cout << number;
cout << " books" << endl;
}
// 归还图书
void DoRepaidBook()
{
cout << endl << "Repaid Book" << endl;
int id;
cout << "Enter book ID :";
cin >> id;
cout << endl;
if (find(id)){
Book e;
e = books.elem[find(id)];
++books.elem[find(id)].number;
}else{
cout << "Add Book" << endl;
DoAddBook();
}
}
// 借用图书
void DoBoorowBook()
{
cout << endl << "Boorow Book" << endl ;
int id;
if (bookempty()) cout << "Books data empty"<< endl;
else{
cout << "Enter book ID :";
cin >> id;
if (find(id)){
if (books.elem[find(id)].number>0) {
Book e;
e = books.elem[find(id)];
cout<< "*********"<< endl << "OK" << endl << "*********"<<endl;
--books.elem[find(id)].number;
}else cout << "***************************"<< endl
<< "Book empty" << endl << "***************************" << endl;
}else cout<< "NOT FOUND THIS BOOK"<<endl;}
}
// 修改图书
void DoReviseBook()
{
cout <<endl<< "Revise Book" <<endl ;
int id;
cout << "Enter book ID :";
cin >> id;
if ( find(id)!=0 ) {
printf ( "Original book number : %d\n", books.elem[find(id)].number );
printf ( "Revised number :" );
int xiugai;
scanf ( "%d", &xiugai );
books.elem[id].number=xiugai;
cout << "**********************" << endl;
printf ( "Revise success \n" );
cout << "**********************" << endl;
}
else printf ( "No such book\n");
}
// 排序图书
void DoSortBook()
{
cout << endl << "Sort Books" << endl;
int a=0;
if (bookempty()) cout << "Book data empty"<< endl;
else {
for (int i=1;i<books.length-1;i++)
for (int j=2;j<books.length;j++)
{
if (books.elem[i].id>books.elem[j].id) {
Book temp=books.elem[i];books.elem[i]=books.elem[j];books.elem[j]=temp;}
}
}
cout << "*****************************" <<endl;
cout << "Sort success"<<endl;
cout << "*****************************" <<endl;
}
#ifndef DATA_H_INCLUDED
#define DATA_H_INCLUDED
#include <stdio.h>
#include "sqlist.h"
struct Book {
int id; // 编号
string title; // 标题
int number; // 数量
};
SqList <Book> books;
// 函数声明
bool bookempty(); // 书籍库判空
void input(Book& b); // 输入一本书的信息
void print(const Book& b);// 打印一本书的信息
int find(int id); // 根据 id 查找图书 || 若找到,返回元素的位序,找不到时返回 0
void DoAddBook(); // 添加图书
void DoFindBook(); // 查找图书
void DoDeleteBook(); // 删除图书
void DoPrintBook(); // 打印所有图书
void DoRepaidBook(); // 归还图书
void DoBoorowBook(); // 借用图书
void DoReviseBook(); // 修改图书
void DoSortBook(); // 排序图书
// 输入一本书的信息
void input(Book& b)
{
cout << "ID : ";
cin >> b.id;
cin.ignore(1024, '\n'); // skip rest chars of the line
cout << "TITLE : ";
getline(cin, b.title);
cout << "Number : ";
while (1){
cin >> b.number;
if (b.number>0) break;
cout << "Number ERROR" << endl;
cout << "Input again" << endl;
}
}
// 打印一本书的信息
void print(const Book& b)
{
cout << "Book " << endl << endl
<<"**************** id: " << b.id << " ****************" << endl
<< "**** title: 《 " << b.title << " 》****" << endl
<< "************** Number: " << b.number << " **************" << endl << endl;
}
// 根据 id 查找图书
// 若找到,返回元素的位序,找不到时返回 0
int find(int id)
{
for (int i = 1; i <= books.length; i++)
{
if (id == books.elem[i].id){
return i;
}
}
return 0; // not found
}
// 书籍库判空
bool bookempty()
{
int a=0;
for (int i=1;i<=books.length;i++)
{
if (find(i)==0) a++;
}
if (a==books.length) return true;
else return false;
}
// 添加图书
void DoAddBook()
{
cout << endl << "Add Book"<< endl<<endl;
Book book;
input(book); //输入图书
books.elem[books.length + 1] = book;
books.length++;
print(book);
cout << "*******Added********" << endl;
}
// 查找图书
void DoFindBook()
{
cout << endl << "Find Book" << endl <<endl;
int id;
cout << "Enter book ID: ";
cin >> id;
Book book;
if (find(id) == 0)
cout << "Not found" << endl;
else
{
book = books.elem[find(id)];
cout << "Found" << endl;
cout << "************" << endl;
print(book);
}
}
// 删除图书
void DoDeleteBook()
{
cout << endl << "Delete Book" << endl << endl;
int id;
cout << "Which book you wanna delelet?"<<endl;
cout << "Enter book ID: ";
cin >> id;
Book e;
if (find(id) == 0)
cout << "Not found" << endl;
else
{
e = books.elem[find(id)];
print(e);
for (int i = find(id); i < books.length; i++)
{
books.elem[i] = books.elem[i + 1];
}
--books.length;
cout << "************************" << endl;
cout << "Deleted" << endl;
}
}
// 打印所有图书
void DoPrintBook()
{
cout << endl << "Print All Books" << endl <<endl;
int flag = 0;
for (int i = 0; i < books.length; i++)
{
Book e;
e = books.elem[i + 1];
print(e);
flag++;
}
cout << "Total: ";
cout << flag;
cout << " books" << endl;
}
// 归还图书
void DoRepaidBook()
{
cout << endl << "Repaid Book" << endl<<endl;
int id;
cout << "Which book you wanna repaid ? " << endl;
cin >> id;
cout << endl;
if (find(id)){
Book e;
e = books.elem[find(id)];
++books.elem[find(id)].number;
}else{
DoAddBook();
}
}
// 借用图书
void DoBoorowBook()
{
cout << endl << "Boorow Book" << endl <<endl;
int id;
cout << "Which book you wanna boorow ? " << endl;
cin >> id;
cout << endl;
if (find(id)){
if (books.elem[find(id)].number>0) {
Book e;
e = books.elem[find(id)];
cout<< "*********"<< endl << "OK" << endl << "*********"<<endl;
--books.elem[find(id)].number;
}else cout << "***************************"<< endl
<< "Book empty" << endl << "***************************" << endl;
}else cout<< "NOT FOUND THIS BOOK"<<endl;
}
// 修改图书
void DoReviseBook()
{
cout <<endl<< "Revise Book" <<endl <<endl;
int id;
printf( "Which book you wanna revise ?\n" );
cin >> id;
if ( find(id)!=0 ) {
printf ( "Original book number : %d\n", books.elem[id].number );
printf ( "Revised number :" );
int xiugai;
scanf ( "%d", &xiugai );
books.elem[id].number+=xiugai;
cout << "**********************" << endl;
printf ( "Revise success \n" );
}
else printf ( "No such book\n");
}
// 排序图书
void DoSortBook()
{
cout << endl << "Sort Books" << endl << endl;
int a=0;
if (bookempty()) cout << "Book data empty"<< endl;
else {
for (int i=1;i<books.length;i++)
for (int j=books.length;j>0;j--)
{
if (books.elem[i].id>books.elem[j].id) {
Book temp=books.elem[i];books.elem[i]=books.elem[j];books.elem[j]=temp;}
}
}
cout << "*****************************" <<endl;
cout << "Sort success"<<endl;
}
#endif // DATA_H_INCLUDED

@ -1,177 +1,177 @@
///////////////////////////////////////
/// file: sqlist.h
/// Sequential list
///////////////////////////////////////
#pragma once
#include <stdexcept> // for std::out_of_range
using std::out_of_range; // 导入名称
using std::length_error;
///////////////////////////////////////
/// 存储结构
///
/// 线性表的顺序存储结构
///
template <typename E, int MAXSIZE = 256>
struct SqList
{
E elem[MAXSIZE];
int length;
};
///////////////////////////////////////
/// 基本操作
///
/// 构造空的顺序表 L
///
template <typename E, int M>
void InitList(SqList<E, M> &L)
{
L.length = 0; // 空表长度为 0
}
///
/// 销毁顺序表 L
///
template <typename E, int M>
void DestroyList(SqList<E, M> &L)
{
// do nothing
}
///
/// 将顺序表 L 置为空表
///
template <typename E, int M>
void ClearList(SqList<E, M> &L)
{
L.length = 0;
}
///
/// 若 L 为空表,则返回 true否则返回 false
///
template <typename E, int M>
bool ListEmpty(const SqList<E, M> &L)
{
return L.length == 0;
}
///
/// 返回顺序表 L 中数据元素个数
///
template <typename E, int M>
int ListLength(const SqList<E, M> &L)
{
return L.length;
}
///
/// 用 e 返回顺序表 L 中第 i 个数据元素1<=i<=length
///
template <typename E, int M>
bool GetElem(const SqList<E, M> &L, int i, E &e)
{
// 若 i 值不合法,则返回 false
if (i < 1 || i > L.length)
return false;
// 取第 i 个元素
e = L.elem[i - 1];
// 返回 true 表示操作成功
return true;
}
///
/// 取顺序表 L 中第 i 个元素
///
template <typename E, int M>
const E &GetElem(const SqList<E, M> &L, int i)
{
// 若 i 值不合法,不能取元素
if (i < 1 || i > L.length)
throw out_of_range("i out of range");
// 返回第 i 个元素
return L.elem[i - 1];
}
///
/// 在顺序表 L 中第 i 个位置之前插入新的数据元素 e
///
template <typename E, int MAXSIZE>
void ListInsert(SqList<E, MAXSIZE> &L, int i, E e)
{
// 若表满,则不能插入
if (L.length == MAXSIZE)
throw length_error("L is full");
// 若 i 值不合法,则不能插入
if (i < 1 || i > L.length + 1)
throw out_of_range("i out of range");
// 插入位置及之后的元素后移
for (int j = L.length - 1; j >= i - 1; j--)
{
L.elem[j + 1] = L.elem[j];
}
// 插入元素
L.elem[i - 1] = e;
// 表长增 1
L.length++;
}
///
/// 在顺序表 L 中删除第 i 个元素,用 e 返回
///
template <typename E, int M>
void ListDelete(SqList<E, M> &L, int i, E &e)
{
// 若 i 值不合法,则不能删除
if (i < 1 || i > L.length)
throw out_of_range("i out of range");
// 取出被删除元素
e = L.elem[i - 1];
// 被删除元素之后的元素前移
for (int j = i; j < L.length; j++)
{
L.elem[j - 1] = L.elem[j];
}
// 表长减 1
L.length--;
}
///
/// 返回顺序表 L 中第一个与 e 满足关系 compare 的数据元素的位序
/// 若这样的数据元素不存在,则返回 0。
///
template <typename E, int M, typename Cmp>
int LocateElem(const SqList<E, M> &L, const E &e, Cmp compare)
{
// 逐个取出元素与 e 比较
for (int i = 0; i < L.length; i++)
{
// 若满足条件,则返回位序
if (compare(L.elem[i], e))
return i + 1;
}
return 0; // 不存在
}
///
/// 遍历顺序表,依次对 L 中的每个数据元素调用函数 visit
///
template <typename E, int M, typename Func>
void ListTraverse(const SqList<E, M> &L, Func visit)
{
for (int i = 0; i < L.length; i++)
{
visit(L.elem[i]);
}
///////////////////////////////////////
/// file: sqlist.h
/// Sequential list
///////////////////////////////////////
#pragma once
#include <stdexcept> // for std::out_of_range
using std::out_of_range; // 导入名称
using std::length_error;
///////////////////////////////////////
/// 存储结构
///
/// 线性表的顺序存储结构
///
template <typename E, int MAXSIZE = 256>
struct SqList
{
E elem[MAXSIZE];
int length;
};
///////////////////////////////////////
/// 基本操作
///
/// 构造空的顺序表 L
///
template <typename E, int M>
void InitList(SqList<E, M> &L)
{
L.length = 0; // 空表长度为 0
}
///
/// 销毁顺序表 L
///
template <typename E, int M>
void DestroyList(SqList<E, M> &L)
{
// do nothing
}
///
/// 将顺序表 L 置为空表
///
template <typename E, int M>
void ClearList(SqList<E, M> &L)
{
L.length = 0;
}
///
/// 若 L 为空表,则返回 true否则返回 false
///
template <typename E, int M>
bool ListEmpty(const SqList<E, M> &L)
{
return L.length == 0;
}
///
/// 返回顺序表 L 中数据元素个数
///
template <typename E, int M>
int ListLength(const SqList<E, M> &L)
{
return L.length;
}
///
/// 用 e 返回顺序表 L 中第 i 个数据元素1<=i<=length
///
template <typename E, int M>
bool GetElem(const SqList<E, M> &L, int i, E &e)
{
// 若 i 值不合法,则返回 false
if (i < 1 || i > L.length)
return false;
// 取第 i 个元素
e = L.elem[i - 1];
// 返回 true 表示操作成功
return true;
}
///
/// 取顺序表 L 中第 i 个元素
///
template <typename E, int M>
const E &GetElem(const SqList<E, M> &L, int i)
{
// 若 i 值不合法,不能取元素
if (i < 1 || i > L.length)
throw out_of_range("i out of range");
// 返回第 i 个元素
return L.elem[i - 1];
}
///
/// 在顺序表 L 中第 i 个位置之前插入新的数据元素 e
///
template <typename E, int MAXSIZE>
void ListInsert(SqList<E, MAXSIZE> &L, int i, E e)
{
// 若表满,则不能插入
if (L.length == MAXSIZE)
throw length_error("L is full");
// 若 i 值不合法,则不能插入
if (i < 1 || i > L.length + 1)
throw out_of_range("i out of range");
// 插入位置及之后的元素后移
for (int j = L.length - 1; j >= i - 1; j--)
{
L.elem[j + 1] = L.elem[j];
}
// 插入元素
L.elem[i - 1] = e;
// 表长增 1
L.length++;
}
///
/// 在顺序表 L 中删除第 i 个元素,用 e 返回
///
template <typename E, int M>
void ListDelete(SqList<E, M> &L, int i, E &e)
{
// 若 i 值不合法,则不能删除
if (i < 1 || i > L.length)
throw out_of_range("i out of range");
// 取出被删除元素
e = L.elem[i - 1];
// 被删除元素之后的元素前移
for (int j = i; j < L.length; j++)
{
L.elem[j - 1] = L.elem[j];
}
// 表长减 1
L.length--;
}
///
/// 返回顺序表 L 中第一个与 e 满足关系 compare 的数据元素的位序
/// 若这样的数据元素不存在,则返回 0。
///
template <typename E, int M, typename Cmp>
int LocateElem(const SqList<E, M> &L, const E &e, Cmp compare)
{
// 逐个取出元素与 e 比较
for (int i = 0; i < L.length; i++)
{
// 若满足条件,则返回位序
if (compare(L.elem[i], e))
return i + 1;
}
return 0; // 不存在
}
///
/// 遍历顺序表,依次对 L 中的每个数据元素调用函数 visit
///
template <typename E, int M, typename Func>
void ListTraverse(const SqList<E, M> &L, Func visit)
{
for (int i = 0; i < L.length; i++)
{
visit(L.elem[i]);
}
}

@ -1,126 +1,126 @@
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
#include "data.h"
#include "sqlist.h"
enum {
CMD_QUIT, // 退出程序
CMD_QUERY, // 查书(数量)
CMD_BOOROW, // 借用书籍
CMD_REPAID, // 归还书籍
CMD_PRINT, // 打印书籍
CMD_INSERT, // 添加书籍
CMD_DELETE, // 删除书籍
CMD_UPDATE, // 修改书籍
CMD_SORT, // 排序书籍
};
// 函数声明
void init(void); // 程序启动
void quit(void); // 程序退出
void display_menu(void); // 显示命令菜单
int make_choice(void); // 选择命令
int confirm(const char* msg); // 确认
// 主函数
int main(void)
{
init(); // 程序启动
InitList(books);
for(;;) {
display_menu(); //
int c = make_choice();
switch(c) {
case CMD_REPAID:// 还书
{DoRepaidBook();
break;}
case CMD_BOOROW:// 借书
{DoBoorowBook();
break;}
case CMD_PRINT:// 打印所有书籍
{DoPrintBook();
break;}
case CMD_QUERY:// 查找书籍
{DoFindBook();
break;}
case CMD_INSERT:// 添加书籍
{DoAddBook();
break;}
case CMD_DELETE:// 删除书籍
{DoDeleteBook();
break;}
case CMD_UPDATE:// 修改书籍
{DoReviseBook();
break;}
case CMD_SORT: // 排序书籍
{DoSortBook();
break;}
case CMD_QUIT:// 退出程序
{if (confirm("确定要退出吗?")) quit(); // 仅在确认后退出
break;}
default:
puts("命令错误,请重新选择");
break;}
}
quit(); // 程序退出
DestroyList(books);
return 0;
}
void init(void)
{
puts("*******图书管理系统启动*******");
}
void quit(void)
{
puts("系统退出");
exit(EXIT_SUCCESS);
}
void display_menu(void)
{
cout << "————————————————————————————————————————————————————————————————"<<endl;
printf("| %d 查书 | %d 借书 | %d 还书 | %d 打印 | %d 添加 |\n| %d 删除 | %d 修改 | %d 排序 | %d 退出 |\n",
CMD_QUERY,CMD_BOOROW,CMD_REPAID,CMD_PRINT,CMD_INSERT,CMD_DELETE,CMD_UPDATE,CMD_SORT,CMD_QUIT);
cout << "————————————————————————————————————————————————————————————————"<<endl;
}
int make_choice(void)
{
int c; // 用户输入
int n = 0; // 正确读入的数据项个数
while (n == 0) {
printf("请选择:");
n = scanf("%d", &c); // 尝试读入整数 c
scanf("%*[^\n]"); // 跳过一行中剩余的字符
}
return c;
}
int confirm(const char* msg)
{
char c = 'n'; // 默认选择是 no
printf("%s(Y/N): ", msg); // 提示输入 yes/no 进行确认s
scanf(" %c%*[^\n]", &c); // 读取第一个字符,忽略剩余字符
return c == 'y' || c == 'Y'; // 返回确认结果
}
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
#include "data.h"
#include "sqlist.h"
enum {
CMD_QUIT, // 退出程序
CMD_QUERY, // 查书(数量)
CMD_BOOROW, // 借用书籍
CMD_REPAID, // 归还书籍
CMD_PRINT, // 打印书籍
CMD_INSERT, // 添加书籍
CMD_DELETE, // 删除书籍
CMD_UPDATE, // 修改书籍
CMD_SORT, // 排序书籍
};
// 函数声明
void init(void); // 程序启动
void quit(void); // 程序退出
void display_menu(void); // 显示命令菜单
int make_choice(void); // 选择命令
int confirm(const char* msg); // 确认
// 主函数
int main(void)
{
init(); // 程序启动
InitList(books);
for(;;) {
display_menu(); //
int c = make_choice();
switch(c) {
case CMD_REPAID:// 还书
{DoRepaidBook();
break;}
case CMD_BOOROW:// 借书
{DoBoorowBook();
break;}
case CMD_PRINT:// 打印所有书籍
{DoPrintBook();
break;}
case CMD_QUERY:// 查找书籍
{DoFindBook();
break;}
case CMD_INSERT:// 添加书籍
{DoAddBook();
break;}
case CMD_DELETE:// 删除书籍
{DoDeleteBook();
break;}
case CMD_UPDATE:// 修改书籍
{DoReviseBook();
break;}
case CMD_SORT: // 排序书籍
{DoSortBook();
break;}
case CMD_QUIT:// 退出程序
{if (confirm("确定要退出吗?")) quit(); // 仅在确认后退出
break;}
default:
puts("命令错误,请重新选择");
break;}
}
quit(); // 程序退出
DestroyList(books);
return 0;
}
void init(void)
{
puts("*******图书管理系统启动*******");
}
void quit(void)
{
puts("系统退出");
exit(EXIT_SUCCESS);
}
void display_menu(void)
{
cout << "————————————————————————————————————————————————————————————————"<<endl;
printf("| %d 查书 | %d 借书 | %d 还书 | %d 打印 | %d 添加 |\n| %d 删除 | %d 修改 | %d 排序 | %d 退出 |\n",
CMD_QUERY,CMD_BOOROW,CMD_REPAID,CMD_PRINT,CMD_INSERT,CMD_DELETE,CMD_UPDATE,CMD_SORT,CMD_QUIT);
cout << "————————————————————————————————————————————————————————————————"<<endl;
}
int make_choice(void)
{
int c; // 用户输入
int n = 0; // 正确读入的数据项个数
while (n == 0) {
printf("请选择:");
n = scanf("%d", &c); // 尝试读入整数 c
scanf("%*[^\n]"); // 跳过一行中剩余的字符
}
return c;
}
int confirm(const char* msg)
{
char c = 'n'; // 默认选择是 no
printf("%s(Y/N): ", msg); // 提示输入 yes/no 进行确认s
scanf(" %c%*[^\n]", &c); // 读取第一个字符,忽略剩余字符
return c == 'y' || c == 'Y'; // 返回确认结果
}

@ -1,10 +0,0 @@
*******图书管理系统启动*******
————————————————————————————————————————————————————————————————
| 1 查书 | 2 借书 | 3 还书 | 4 打印 | 5 添加 |
| 6 删除 | 7 修改 | 8 排序 | 0 退出 |
————————————————————————————————————————————————————————————————
请选择:
OK
Loading…
Cancel
Save