Compare commits
78 Commits
@ -0,0 +1,28 @@
|
||||
{
|
||||
"tasks": [
|
||||
{
|
||||
"type": "cppbuild",
|
||||
"label": "C/C++: gcc.exe 生成活动文件",
|
||||
"command": "D:\\mingw64\\bin\\gcc.exe",
|
||||
"args": [
|
||||
"-fdiagnostics-color=always",
|
||||
"-g",
|
||||
"${file}",
|
||||
"-o",
|
||||
"${fileDirname}\\${fileBasenameNoExtension}.exe"
|
||||
],
|
||||
"options": {
|
||||
"cwd": "${fileDirname}"
|
||||
},
|
||||
"problemMatcher": [
|
||||
"$gcc"
|
||||
],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"detail": "调试器生成的任务。"
|
||||
}
|
||||
],
|
||||
"version": "2.0.0"
|
||||
}
|
After Width: | Height: | Size: 160 KiB |
After Width: | Height: | Size: 8.7 KiB |
After Width: | Height: | Size: 110 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 160 KiB |
@ -0,0 +1,407 @@
|
||||
<mxfile host="65bd71144e">
|
||||
<diagram id="e104r4jvqqDXH06fVmpZ" name="Page-1">
|
||||
<mxGraphModel dx="805" dy="664" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="3300" pageHeight="4681" background="none" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="2" value="main" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="20" y="20" width="120" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="3" value="init" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="15" y="120" width="130" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="4" value="dispaly_menu" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="15" y="200" width="130" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="5" value="" style="shape=link;html=1;width=91;" edge="1" parent="1">
|
||||
<mxGeometry width="100" relative="1" as="geometry">
|
||||
<mxPoint x="79.5" y="120" as="sourcePoint"/>
|
||||
<mxPoint x="79.5" y="170" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="6" value="" style="shape=link;html=1;width=92;" edge="1" parent="1">
|
||||
<mxGeometry width="100" relative="1" as="geometry">
|
||||
<mxPoint x="79.5" y="200" as="sourcePoint"/>
|
||||
<mxPoint x="79.5" y="250" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="7" value="c==CMD_READ" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry y="290" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="11" value="c==CMD_SAVE" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry y="390" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="12" value="c==CMD_PRINT" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry y="490" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="13" value="c==CMD_QUERY" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry y="580" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="14" value="c==CMD_INSERT" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry y="670" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="120" value="" style="edgeStyle=none;html=1;" edge="1" parent="1" source="15" target="16">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="15" value="c==CMD_UPDATE" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry y="770" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="16" value="c==CMD_DELETE" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry y="860" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="17" value="c==CMD_SORT" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry y="960" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="18" value="c==CMD_CHART" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry y="1060" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="19" value="c==CMD_QUIT" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry y="1160" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="20" value="确定退出" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry y="1260" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="21" value="quit" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="10" y="1370" width="140" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="22" value="" style="shape=link;html=1;width=100;" edge="1" parent="1">
|
||||
<mxGeometry width="100" relative="1" as="geometry">
|
||||
<mxPoint x="79.5" y="1370" as="sourcePoint"/>
|
||||
<mxPoint x="80" y="1420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="24" value="" style="whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1,"sourcePerimeterSpacing":0,"targetPerimeterSpacing":0};" vertex="1" collapsed="1" parent="1">
|
||||
<mxGeometry x="32.5" y="1460" width="95" height="45" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="25" value="" style="edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;sourcePerimeterSpacing=0;targetPerimeterSpacing=0;" edge="1" visible="0" target="24" parent="1" source="24">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint y="1492" as="sourcePoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="36" value="命令错误,请重新选择" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="277.5" y="1170" width="155" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="40" value="" style="shape=link;html=1;width=192;" edge="1" parent="1">
|
||||
<mxGeometry width="100" relative="1" as="geometry">
|
||||
<mxPoint x="340" y="447.5" as="sourcePoint"/>
|
||||
<mxPoint x="340" y="447.5" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="45" value="read_data" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="280" y="300" width="150" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="46" value="save_data" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="280" y="400" width="150" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="47" value="print_data" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="280" y="500" width="150" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="48" value="query_data" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="280" y="590" width="150" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="50" value="add_data" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="280" y="680" width="150" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="51" value="update_data" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="280" y="780" width="150" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="52" value="delete_data" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="280" y="870" width="150" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="53" value="sort_data" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="280" y="970" width="150" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="54" value="make_data" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="280" y="1070" width="150" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="56" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="17" target="18">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="1170" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="1120" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="57" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="2">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="70" y="80" as="sourcePoint"/>
|
||||
<mxPoint x="80" y="120" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="60" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="3" target="4">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="370" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="320" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="62" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="4" target="7">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="470" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="63" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="7" target="11">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="570" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="520" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="64" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="11" target="12">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="570" as="sourcePoint"/>
|
||||
<mxPoint x="90" y="480" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="65" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="12" target="13">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="770" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="720" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="66" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="13" target="14">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="770" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="720" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="69" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="16" target="17">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="1070" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="1020" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="70" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="18" target="19">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="1070" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="1020" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="71" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="19" target="20">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="1270" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="1220" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="72" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="20">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="1270" as="sourcePoint"/>
|
||||
<mxPoint x="80" y="1370" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="73" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="21" target="24">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="1270" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="1220" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="74" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;" edge="1" parent="1" source="105" target="36">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="1270" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="1220" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="75" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;" edge="1" parent="1" source="103" target="54">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="1070" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="1020" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="76" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;" edge="1" parent="1" source="101" target="53">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="1070" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="1020" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="77" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;" edge="1" parent="1" source="99" target="52">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="1070" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="1020" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="78" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;" edge="1" parent="1" source="97" target="51">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="770" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="720" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="79" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;" edge="1" parent="1" source="95" target="50">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="770" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="720" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="80" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;" edge="1" parent="1" source="93" target="48">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="670" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="620" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="82" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;" edge="1" parent="1" source="91" target="47">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="570" as="sourcePoint"/>
|
||||
<mxPoint x="270" y="525" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="83" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;" edge="1" parent="1" source="89" target="46">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="470" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="84" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;" edge="1" parent="1" source="87" target="45">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="470" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="86" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="20">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="1470" as="sourcePoint"/>
|
||||
<mxPoint x="80" y="180" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="530" y="1295"/>
|
||||
<mxPoint x="530" y="240"/>
|
||||
<mxPoint x="530" y="180"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="88" value="" style="endArrow=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="7" target="87">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="160" y="325" as="sourcePoint"/>
|
||||
<mxPoint x="280" y="325" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="87" value="Y" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="310" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="90" value="" style="endArrow=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="11" target="89">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="160" y="425" as="sourcePoint"/>
|
||||
<mxPoint x="280" y="425" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="89" value="Y" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="410" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="92" value="" style="endArrow=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="12" target="91">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="160" y="525" as="sourcePoint"/>
|
||||
<mxPoint x="280" y="525" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="91" value="Y" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="510" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="94" value="" style="endArrow=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="13" target="93">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="160" y="615" as="sourcePoint"/>
|
||||
<mxPoint x="280" y="615" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="93" value="Y" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="600" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="96" value="" style="endArrow=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="14" target="95">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="160" y="705" as="sourcePoint"/>
|
||||
<mxPoint x="280" y="705" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="95" value="Y" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="690" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="98" value="" style="endArrow=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="15" target="97">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="160" y="805" as="sourcePoint"/>
|
||||
<mxPoint x="280" y="805" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="97" value="Y" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="790" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="100" value="" style="endArrow=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="16" target="99">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="160" y="895" as="sourcePoint"/>
|
||||
<mxPoint x="280" y="895" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="99" value="Y" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="880" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="102" value="" style="endArrow=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="17" target="101">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="160" y="995" as="sourcePoint"/>
|
||||
<mxPoint x="280" y="995" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="101" value="Y" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="980" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="104" value="" style="endArrow=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="18" target="103">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="160" y="1095" as="sourcePoint"/>
|
||||
<mxPoint x="280" y="1095" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="103" value="Y" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="1080" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="106" value="" style="endArrow=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="19" target="105">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="160" y="1195" as="sourcePoint"/>
|
||||
<mxPoint x="287.5" y="1195" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="105" value="N" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="1180" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="107" value="N" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="1270" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="108" value="N" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="55" y="250" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="109" value="N" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="50" y="360" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="110" value="N" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="50" y="460" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="111" value="N" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="45" y="555" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="112" value="N" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="50" y="640" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="116" value="" style="endArrow=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="15">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="80" y="840" as="sourcePoint"/>
|
||||
<mxPoint x="80" y="840" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="117" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="14" target="15">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="870" as="sourcePoint"/>
|
||||
<mxPoint x="260" y="820" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="119" value="N" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="45" y="740" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="121" value="N" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="45" y="840" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="122" value="N" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="45" y="930" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="123" value="N" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="45" y="1030" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="124" value="N" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="45" y="1130" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="125" value="Y" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="45" y="1230" width="30" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
After Width: | Height: | Size: 12 KiB |
@ -0,0 +1,67 @@
|
||||
<mxfile host="65bd71144e">
|
||||
<diagram id="KfGg7ewQHjnR5lwAaYOd" name="Page-1">
|
||||
<mxGraphModel dx="832" dy="563" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" background="#ffffff" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="5" value="" style="edgeStyle=none;html=1;strokeColor=#130b0b;" parent="1" source="3" target="4" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="3" value="<font color="#0d0808">save_data</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#000000;" parent="1" vertex="1">
|
||||
<mxGeometry x="90" y="70" width="170" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="7" value="" style="edgeStyle=none;html=1;strokeColor=#000000;" parent="1" source="4" target="6" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="4" value="<font color="#000000">输入文件名</font>" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#FFFFFF;strokeColor=#000000;" parent="1" vertex="1">
|
||||
<mxGeometry x="90" y="180" width="170" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="9" value="" style="edgeStyle=none;html=1;strokeColor=#000000;" parent="1" source="6" target="8" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="6" value="<font color="#000000">打开文件</font>" style="rounded=1;whiteSpace=wrap;html=1;gradientColor=#FFFFFF;fillColor=#FFFFFF;strokeColor=#000000;" parent="1" vertex="1">
|
||||
<mxGeometry x="100" y="260" width="150" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="11" value="" style="edgeStyle=none;html=1;strokeColor=#000000;" parent="1" source="8" target="10" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="17" value="" style="edgeStyle=none;html=1;strokeColor=#000000;" parent="1" source="8" target="16" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="430" y="380"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="8" value="<font color="#000000">打开文件成功?</font>" style="rhombus;whiteSpace=wrap;html=1;rounded=1;fillColor=#FFFFFF;strokeColor=#000000;" parent="1" vertex="1">
|
||||
<mxGeometry x="90" y="340" width="170" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="13" value="" style="edgeStyle=none;html=1;strokeColor=#000000;" parent="1" source="10" target="12" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="10" value="<font color="#000000">把所有库存记录写入文档</font>" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;rounded=1;fillColor=#FFFFFF;strokeColor=#000000;" parent="1" vertex="1">
|
||||
<mxGeometry x="100" y="450" width="150" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="15" value="" style="edgeStyle=none;html=1;strokeColor=#000000;" parent="1" source="12" target="14" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="12" value="<font color="#000000">关闭文件</font>" style="whiteSpace=wrap;html=1;rounded=1;fillColor=#FFFFFF;strokeColor=#000000;" parent="1" vertex="1">
|
||||
<mxGeometry x="100" y="560" width="150" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="14" value="" style="ellipse;whiteSpace=wrap;html=1;rounded=1;fillColor=#FFFFFF;strokeColor=#000000;" parent="1" vertex="1">
|
||||
<mxGeometry x="90" y="670" width="170" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="18" style="edgeStyle=none;html=1;strokeColor=#000000;" parent="1" source="16" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="170" y="650" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="430" y="650"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="16" value="<font color="#000000">提示打开文件失败</font>" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rounded=1;fillColor=#FFFFFF;strokeColor=#000000;" parent="1" vertex="1">
|
||||
<mxGeometry x="350" y="510" width="160" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
@ -0,0 +1,55 @@
|
||||
<mxfile host="65bd71144e">
|
||||
<diagram id="XFK3w_GTDJXIYlRDLBu6" name="Page-1">
|
||||
<mxGraphModel dx="598" dy="531" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" background="#ffffff" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="8" value="" style="edgeStyle=none;html=1;strokeColor=#000000;" edge="1" parent="1" source="2" target="7">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="2" value="" style="ellipse;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#000000;" vertex="1" parent="1">
|
||||
<mxGeometry x="100" y="50" width="120" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="10" value="" style="edgeStyle=none;html=1;strokeColor=#000000;" edge="1" parent="1" source="7" target="9">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="7" value="" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#FFFFFF;strokeColor=#000000;" vertex="1" parent="1">
|
||||
<mxGeometry x="80" y="160" width="160" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="12" value="" style="edgeStyle=none;html=1;strokeColor=#000000;" edge="1" parent="1" source="9" target="11">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="16" value="" style="edgeStyle=none;html=1;strokeColor=#000000;" edge="1" parent="1" source="9" target="15">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="380" y="290"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="9" value="" style="rhombus;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#000000;" vertex="1" parent="1">
|
||||
<mxGeometry x="60" y="250" width="200" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="18" value="" style="edgeStyle=none;html=1;strokeColor=#000000;" edge="1" parent="1" source="11" target="17">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="11" value="" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#FFFFFF;strokeColor=#000000;" vertex="1" parent="1">
|
||||
<mxGeometry x="80" y="360" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="20" style="edgeStyle=none;html=1;strokeColor=#000000;" edge="1" parent="1" source="15">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="160" y="470" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="380" y="470"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="15" value="" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#FFFFFF;strokeColor=#000000;" vertex="1" parent="1">
|
||||
<mxGeometry x="300" y="360" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="17" value="" style="ellipse;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#000000;" vertex="1" parent="1">
|
||||
<mxGeometry x="80" y="500" width="160" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
@ -0,0 +1,354 @@
|
||||
#define NAME_LEN 31
|
||||
#define MAX_PARTS 100
|
||||
//保存学生成绩信息的结构
|
||||
struct students
|
||||
{
|
||||
int number;
|
||||
char name[NAME_LEN + 1];
|
||||
int score;
|
||||
};
|
||||
static struct students stu[MAX_PARTS];
|
||||
static int num_parts = 0;
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
//定义常量
|
||||
#define CMD_QUIT 0
|
||||
#define CMD_QUERY 4
|
||||
#define CMD_INSERT 5
|
||||
#define CMD_UPDATE 6
|
||||
#define CMD_DELETE 7
|
||||
#define CMD_READ 1
|
||||
#define CMD_SAVE 2
|
||||
#define CMD_PRINT 3
|
||||
#define CMD_SORT 8
|
||||
#define CMD_CHART 9
|
||||
// 菜单命令的编号
|
||||
|
||||
// 函数声明
|
||||
void init(void);
|
||||
void quit(void);
|
||||
void display_menu(void);
|
||||
int make_choice(void);
|
||||
void read_data(void); // 读取
|
||||
void save_data(void); // 保存
|
||||
void print_data(void); // 打印
|
||||
void query_data(void); // 查询
|
||||
void add_data(void); // 添加
|
||||
void update_data(void); // 修改
|
||||
void delete_data(void); // 删除
|
||||
void sort_data(void); // 排序
|
||||
void make_chart(void); // 图表
|
||||
int confirm(const char *msg);
|
||||
|
||||
// 主程序
|
||||
int main(void)
|
||||
{
|
||||
init(); // 程序启动
|
||||
while (1)
|
||||
{
|
||||
display_menu();
|
||||
int c = make_choice();
|
||||
switch (c)
|
||||
{
|
||||
case CMD_QUERY:
|
||||
query_data();
|
||||
break;
|
||||
case CMD_INSERT:
|
||||
add_data();
|
||||
break;
|
||||
case CMD_UPDATE:
|
||||
update_data();
|
||||
break;
|
||||
case CMD_DELETE:
|
||||
delete_data();
|
||||
break;
|
||||
case CMD_READ:
|
||||
read_data();
|
||||
break;
|
||||
case CMD_SAVE:
|
||||
save_data();
|
||||
break;
|
||||
case CMD_PRINT:
|
||||
print_data();
|
||||
break;
|
||||
case CMD_SORT:
|
||||
sort_data();
|
||||
break;
|
||||
case CMD_CHART:
|
||||
make_chart();
|
||||
break;
|
||||
default:
|
||||
puts("命令错误,请重新选择");
|
||||
break;
|
||||
case CMD_QUIT:
|
||||
if (confirm("确定要退出吗?"))
|
||||
quit(); // 仅在确认后退出
|
||||
break;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 函数定义
|
||||
void init(void)
|
||||
{
|
||||
puts("程序启动");
|
||||
}
|
||||
void quit(void)
|
||||
{
|
||||
puts("程序退出");
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
void display_menu(void)
|
||||
{
|
||||
printf("\n%d 读取 | %d 保存 | %d 打印 | %d 查询 | %d 添加\n%d 修改 | %d 删除 | %d 排序 | %d 图表 | %d 退出\n\n", CMD_READ, CMD_SAVE, CMD_PRINT, CMD_QUERY, CMD_INSERT, CMD_UPDATE, CMD_DELETE, CMD_SORT, CMD_CHART, CMD_QUIT);
|
||||
}
|
||||
int make_choice(void)
|
||||
{
|
||||
int c; // 用户输入
|
||||
int n = 0; // 正确读入的数据项个数
|
||||
while (n == 0)
|
||||
{
|
||||
printf("请选择:");
|
||||
n = scanf("%d", &c); // 尝试读入整数 c
|
||||
scanf("%*[^\n]"); // 跳过一行中剩余的字符
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
//查询
|
||||
void query_data(void)
|
||||
{
|
||||
int num;
|
||||
printf("输入学生学号: ");
|
||||
scanf("%d", &num);
|
||||
int f = -1;
|
||||
for (int i = 0; i < num_parts; i++)
|
||||
{
|
||||
if (num == stu[i].number)
|
||||
{
|
||||
f = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (f == -1)
|
||||
{
|
||||
printf("学生不存在");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("学生学号:%d\n", stu[f].number);
|
||||
printf("学生姓名:%s\n", stu[f].name);
|
||||
printf("学生成绩:%d\n", stu[f].score);
|
||||
}
|
||||
}
|
||||
|
||||
//打印
|
||||
void print_data(void)
|
||||
{
|
||||
printf("NUMBER | NAME score\n");
|
||||
for (int i = 0; i < num_parts; i++)
|
||||
{
|
||||
printf("%d | %s %d\n", stu[i].number, stu[i].name, stu[i].score);
|
||||
}
|
||||
}
|
||||
|
||||
//添加
|
||||
void add_data(void)
|
||||
{
|
||||
int num;
|
||||
printf("输入学生学号:");
|
||||
scanf("%d", &num);
|
||||
int f = 0;
|
||||
for (int i = 0; i < num_parts; i++)
|
||||
{
|
||||
if (num == stu[i].number)
|
||||
{
|
||||
f = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (f == 0)
|
||||
{
|
||||
stu[num_parts].number = num;
|
||||
printf("输入学生姓名:");
|
||||
scanf("%s", &stu[num_parts].name);
|
||||
printf("输入学生成绩:");
|
||||
scanf("%d", &stu[num_parts].score);
|
||||
num_parts++;
|
||||
printf("学生 %d 添加成功\n", num);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("学生已存在");
|
||||
}
|
||||
}
|
||||
|
||||
//修改
|
||||
void update_data(void)
|
||||
{
|
||||
int num;
|
||||
printf("输入学生学号:");
|
||||
scanf("%d", &num);
|
||||
int f = 0;
|
||||
for (int i = 0; i < num_parts; i++)
|
||||
{
|
||||
if (num == stu[i].number)
|
||||
{
|
||||
f = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (f == 0)
|
||||
{
|
||||
printf("学生不存在");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("输入学生学号:");
|
||||
scanf("%d", &stu[num].number);
|
||||
printf("输入学生姓名:");
|
||||
scanf("%s", stu[num].name);
|
||||
printf("输入学生成绩:");
|
||||
scanf("%d", &stu[num].score);
|
||||
printf("学生 %d 已更新", num);
|
||||
}
|
||||
}
|
||||
|
||||
//删除
|
||||
void delete_data(void)
|
||||
{
|
||||
int num;
|
||||
printf("输入学生学号:");
|
||||
scanf("%d", &num);
|
||||
int f = 0, i, j;
|
||||
for (i = 0; i < num_parts; i++)
|
||||
{
|
||||
if (num == stu[i].number)
|
||||
{
|
||||
f = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (f == 0)
|
||||
{
|
||||
printf("学生不存在");
|
||||
}
|
||||
else
|
||||
{
|
||||
for (j = i; j < num_parts - 1; j++)
|
||||
{
|
||||
stu[j] = stu[j + 1];
|
||||
}
|
||||
num_parts--;
|
||||
printf("删除成功");
|
||||
}
|
||||
}
|
||||
|
||||
void read_data(void)
|
||||
{
|
||||
puts("读取数据");
|
||||
printf("请输入文件名");
|
||||
char filename[256];
|
||||
scanf("%s", filename);
|
||||
|
||||
FILE *fp = fopen(filename, "r");
|
||||
if (fp == NULL)
|
||||
{
|
||||
perror(filename);
|
||||
return;
|
||||
}
|
||||
int i = 0;
|
||||
while (fscanf(fp, "%d,%[^,],%d", &stu[i].number, stu[i].name, &stu[i].score) == 3)
|
||||
{
|
||||
i++;
|
||||
}
|
||||
fclose(fp);
|
||||
num_parts = i;
|
||||
printf("读取 %d 记录\n", num_parts);
|
||||
}
|
||||
|
||||
void save_data(void)
|
||||
{
|
||||
puts("保存数据");
|
||||
printf(" 请输入文件名");
|
||||
char filename[256];
|
||||
scanf("%s", filename);
|
||||
FILE *fp = fopen(filename, "r");
|
||||
if (fp == NULL)
|
||||
{
|
||||
perror(filename);
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < num_parts; i++)
|
||||
{
|
||||
fprintf(fp, "%d,%s,%d\n", stu[i].number, stu[i].name, stu[i].score);
|
||||
}
|
||||
fclose(fp);
|
||||
printf("保存%d 成功", num_parts);
|
||||
}
|
||||
|
||||
//排序
|
||||
void sort_data(void)
|
||||
{
|
||||
printf("排序\n");
|
||||
for (int i = 0; i < num_parts; i++)
|
||||
{
|
||||
int change = 0;
|
||||
static struct students t;
|
||||
for (int j = 0; j < num_parts - i - 1; j++)
|
||||
{
|
||||
if (stu[j].number > stu[j + 1].number)
|
||||
{
|
||||
t = stu[j + 1];
|
||||
stu[j + 1] = stu[j];
|
||||
stu[j] = t;
|
||||
change = 1;
|
||||
}
|
||||
}
|
||||
if (!change)
|
||||
break;
|
||||
}
|
||||
for (int i = 0; i < num_parts; i++)
|
||||
{
|
||||
int change = 0;
|
||||
static struct students t;
|
||||
for (int j = 0; j < num_parts - i - 1; j++)
|
||||
{
|
||||
if (stu[j].score > stu[j + 1].score)
|
||||
{
|
||||
t = stu[j + 1];
|
||||
stu[j + 1] = stu[j];
|
||||
stu[j] = t;
|
||||
change = 1;
|
||||
}
|
||||
}
|
||||
if (!change)
|
||||
break;
|
||||
}
|
||||
printf("排序已完成");
|
||||
}
|
||||
|
||||
void make_chart(void)
|
||||
{
|
||||
printf("NUMBER | NAME score\n");
|
||||
for (int i = 0; i < num_parts; i++)
|
||||
{
|
||||
printf("%d | %s ", stu[i].number, stu[i].name);
|
||||
for (int j = 0; j < stu[i].score; j++)
|
||||
{
|
||||
printf("*");
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
printf("图表\n");
|
||||
}
|
||||
|
||||
int confirm(const char *msg)
|
||||
{
|
||||
char c = 'n'; // 默认选择是 no
|
||||
printf("%s(Y/N): ", msg); // 提示输入 yes/no 进行确认
|
||||
scanf(" %c%*[^\n]", &c); // 读取第一个字符,忽略剩余字符
|
||||
return c == 'y' || c == 'Y'; // 返回确认结果
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
<mxfile host="65bd71144e">
|
||||
<diagram id="4rOLv9Xi8nasrVEhpD6I" name="第 1 页">
|
||||
<mxGraphModel dx="633" dy="615" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<<<<<<< HEAD
|
||||
<mxCell id="2" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
||||
<mxGeometry x="250" y="180" width="80" height="80" as="geometry"/>
|
||||
=======
|
||||
<mxCell id="8" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="3" target="5">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="3" value="make_chart" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="260" y="120" width="140" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="4" value="" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="260" y="490" width="140" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="9" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="5" target="6">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="5" value="读取文件" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="260" y="250" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="10" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="6" target="4">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="6" value="显示文件" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="260" y="370" width="140" height="60" as="geometry"/>
|
||||
>>>>>>> 456f225eb01b97142f653b827d7c303650179ba6
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
After Width: | Height: | Size: 41 KiB |