Compare commits

..

37 Commits
sort ... master

Author SHA1 Message Date
xiao dong a486694b2e Merge branch 'master' of https://bdgit.educoder.net/plebkff6w/text4
2 years ago
xiao dong 226fe32008 总结
2 years ago
plebkff6w fbcfd5d48b Update README.md
2 years ago
plebkff6w 52c7e22dd4 Update README.md
2 years ago
plebkff6w 8198403c88 Update README.md
2 years ago
plebkff6w 0d8b31ef31 Update README.md
2 years ago
xiao dong e5a0aa3ad6 Merge branch '总结'
2 years ago
xiao dong 611df6a28d zongjie
2 years ago
xiao dong 1b59a22263 end
2 years ago
xiao dong 151361ebe1 src
2 years ago
xiao dong 116042d327 src
2 years ago
xiao dong 7f75d906b1 src
2 years ago
xiao dong ae8ec7fb4c app.c
2 years ago
xiao dong 65d14fa87a ,,,
2 years ago
xiao dong 59fa0f4dc4 Merge branch 'master' of https://bdgit.educoder.net/plebkff6w/text4
2 years ago
xiao dong c97cbdae35 1
2 years ago
plebkff6w 40a47a64ec Update README.md
2 years ago
xiao dong 2ac05e79c2 Merge branch 'master' of https://bdgit.educoder.net/plebkff6w/text4
2 years ago
xiao dong 79dc6797c2 1
2 years ago
plebkff6w 6c05a2d3e5 Delete '.vscode/extensions.json'
2 years ago
ykhao 050eedc687 ykh
2 years ago
ykhao bf0ccfc35e Merge branch 'master' of https://bdgit.educoder.net/plebkff6w/text4
2 years ago
ykhao 8f76929266 ykh
2 years ago
xiao dong ef309fb943 over
2 years ago
ykhao 1c8303978d ykh
2 years ago
ykhao fb5458f1cd Merge branch 'master' of https://bdgit.educoder.net/plebkff6w/text4
2 years ago
ykhao f121cc6679 ykh
2 years ago
ykhao d92c83346d ykh
2 years ago
bo yu f90163ca9f sort
2 years ago
bo yu e20761e5dd Merge branch 'master' of https://bdgit.educoder.net/plebkff6w/text4
2 years ago
bo yu 76e360be7d sort
2 years ago
ykhao 353b48d18a ykh
2 years ago
bo yu 0657263af4 Merge branch 'sort'
2 years ago
huyunan 8a8cfe9b1d Merge branch 'master' of https://bdgit.educoder.net/plebkff6w/text4
2 years ago
huyunan 4fccc84716 Merge branch 'print'
2 years ago
xiao dong 5494469c66 12
2 years ago
huyunan dbea8e4559 print
2 years ago

@ -128,7 +128,7 @@
------------------------------------------------------- -------------------------------------------------------
| NUMBER | NAME | ON HAND | | NUMBER | NAME | ON HAND |
------------------------------------------------------- -------------------------------------------------------
| 101 | 小 | 80 | | 101 | 小 | 80 |
------------------------------------------------------- -------------------------------------------------------
``` ```
@ -299,10 +299,9 @@ a: No such file or directory
数据处理模块包括读取数据read_data、保存数据save_data、打印数据print_data、查询数据query_data、添加数据add_data、更新数据update_data、删除数据delete_data、数据排序sort_data和生成图表make_chart等子模块。其中查询、添加、更新和删除数据还会用到根据编号查询数据的方法find 数据处理模块包括读取数据read_data、保存数据save_data、打印数据print_data、查询数据query_data、添加数据add_data、更新数据update_data、删除数据delete_data、数据排序sort_data和生成图表make_chart等子模块。其中查询、添加、更新和删除数据还会用到根据编号查询数据的方法find
上述各模块通过主程序main进行调用系统模块图如下。 上述各模块通过主程序main进行调用系统模块图如下。
![](pictures/xitongmoban.drawio.svg)
![](pictures/xitongmoban.drawio.svg)
## 详细设计
各模块的主要功能如下: 各模块的主要功能如下:
@ -365,6 +364,12 @@ Step 5: 关闭文件
![](pictures/save_data.drawio.svg) ![](pictures/save_data.drawio.svg)
#### print_data
Step 1: 输出学号、姓名、成绩
![](pictures/print.drawio.svg)
#### query_data #### query_data
Step 1: 输入学生学号 Step 1: 输入学生学号
@ -373,14 +378,25 @@ Step 3: else 学号存在 then 输出学号、姓名、成绩
![](pictures/query_data.drawio.svg) ![](pictures/query_data.drawio.svg)
#### add_data
#### make_chart Step 1: if 数据库满 then 提示数据库满并结束
Step 2: 输入学号
Step 3: if 学生已存在 then 提示学生已存在并结束
Step 4: 输入学生名字和成绩
Step 5: 添加学生到数据
Step 6: 提示添加成功
Step 1: 读取文件 ![](pictures/add_data.drawio.svg)
Step 2: 显示图表
![](pictures/make_chart.drawio.svg) #### update_data
Step 1: 输入学号
Step 2: if 不存在 then 提示学生不存在并结束
Step 3: else 输入学号、姓名、成绩
Step 4: 已更新
![](pictures/updata_data.drawio.svg)
#### delete_data #### delete_data
@ -388,19 +404,48 @@ Step 1: 输入学号
Step 2: if 不存在 then 提示学生不存在并结束 Step 2: if 不存在 then 提示学生不存在并结束
Step 3: else 删除学生信息 Step 3: else 删除学生信息
Step 4: 提示删除成功 Step 4: 提示删除成功
![](pictures/delete.drawio.svg) ![](pictures/delete.drawio.svg)
sort_data #### sort_data
Step 1: 读取文件 Step 1: 读取文件
Step 2: 进行排序 Step 2: 进行排序
Step 3: 提示排序已完成 Step 3: 提示排序已完成
![](pictures/sort.drawio.svg) ![](pictures/sort.drawio.svg)
#### make_chart
Step 1: 读取文件
Step 2: 显示图表
![](pictures/make_chart.drawio.svg)
#### confirm #### confirm
Step 1: 输出 确定要退出吗 Step 1: 输出 确定要退出吗
Step 2: if 确认 then 退出 Step 2: if 确认 then 退出
![](pictures/confirm.drawio.svg) ![](pictures/confirm.drawio.svg)
## 总结反思
#####董函铄
在这个项目中我们的团队旨在建立一个学生成绩管理系统为了更好的完成这个项目我们团队进行了分工协作将这个项目划分成几个小部分每个人完成自己的工作部分最后再有组长检查整合。在这次团队项目中我们运用VS-code头歌进行工作在工作中我们也会遇到一些问题例如合并请求冲突流程图上传失败等但是在团队和老师的帮助下都一一解决了。在这次项目中我学会了用vs-code画流程图学会了如何建立分支、合并分支也知道了团队协作的重要性团队协作可以高效地完成工作当然团队协作也会出现一些矛盾每个人对待问题的解决方法不同这些都是我们需要讨论协调的。
总之通过这次小组项目我对vscode的功能有了更新的认识了解了更多的功能也明白了小组协作的重要性在小组协作中我们要学会理解信任进行合理有效的沟通。
#####胡煜男
在团队合作中,我学到了以下几点:
1. 理解与包容每个人的思维和行为方式都不同但这并不代表每个人都是错误的。在团队协作中要学会理解和包容其他人的想法不要因为意见不同而产生摩擦和矛盾。2. 合理分工:团队协作需要进行合理分工,每个人应该清楚自己的职责和任务,同时也要关注整个团队的进展和目标。
3. 及时沟通:团队协作需要及时沟通,共享信息和意见。这样可以有效避免误解和错误,并且可以让整个团队更加紧密地协作起来。
总之,小组合作对于实现共同目标和达成工作任务至关重要。在一个整体中,每个人都应该学会互相信任、理解与包容、合理分工以及及时沟通,这样才能够更加高效地完成工作任务。
#####于博
在这次团队合作项目中我学会了很多东西,比如:如何更好的去发挥自己和团队的优势;如何处理好人际关系;如何面对困难与挫折;如何面对压力和挑战;如何调整自己的心态、提升自己的自信……在这次活动中让我感觉到了团队精神的重要性。
我们在训练中每个人都有自己的优势和不足,在合作中要发挥自己的优势,弥补自己的不足,这需要我们在平时的工作中学会沟通与交流,互相学习与信任。当我们站在高坡上向下眺望,心中不免会有些恐惧,但是当我们迈出第一步时,就会发现其实并没有想象中的那么可怕,在经过一段时间后就会发现自己已经完全克服了内心的恐惧,当我们从高处往下看时就像站在云上一样,非常的自在与舒适。在这次训练中我明白了团队合作的重要性,团结力量大。这次训练给我最大的感触就是每个人都离不开团队,在一个团队中每个人都应该发挥自己的长处去服务于这个团队。
#####袁楷昊
通过这次的小组项目合作,我感受到了小组内部明确的分工合作,让我看到了一位认真务实、严谨负责、富有领导力的组长,在她的领导下我们才能快速高效的完成此次的小组项目,让我对小组项目的具体流程,分工合作的方式方法有了一定的认识,学会了如何进行分工协作,提高了小组合作的能力,让我看到了这个专业的一种作用。同时,也让同学之间有了更深的认识,非常感谢老师能够给予的这次小组合作的机会,以及组员之间的默契合作。

@ -0,0 +1,259 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="771px" height="821px" viewBox="-0.5 -0.5 771 821" content="&lt;mxfile&gt;&lt;diagram id=&quot;iDX1ffgfFJTXTWISrrKf&quot; name=&quot;第 1 页&quot;&gt;5VpNc6M4EP01Om4VID7EEWyyc5mtVOUwtactjVFsarDlknHs5NdPC4T5kJwwCVZtZnywRdNC6Ol181oY4cX2/Leg+81XnrMSeU5+RniJPPgQH36k5bmxRCFpDGtR5I3J7QwPxQtTRkdZj0XODgPHivOyKvZD44rvdmxVDWxUCH4auj3ycjjqnq6ZZnhY0VK3fivyatNYSeB09i+sWG/akV1HndnS1lkZDhua81PPhDOEF4LzqmltzwtWSvBaXJp+d1fOXm5MsF01pQNWt1E9t3NjOUxVHe74Dn7STbUt4ciFZuMufa4OqEwHfhQr5eWpNaJizZSXf5kssITxLavEM7gIVtKqeBpenarlWl/8Ll3veQHjeo6iVqhgVbyKneEFmhtQfTpUoNG7ic5UY2XGTc3oiZZHda80z//LaUV1QMsSeClxPG2Kij3saQ3LCULDhO0TExU7v46ujtupo6HbcmvTo2DoXIdyAMMrcw6scMXXuRLa4Irn3IwsxB5ws6OERzC50TSYEiHoc89tLx0OvzDOMHFBo7nie9fA1wIWZSGKA5Q6skGWKMlQBocJirG0pClKXJTdoXSB4jttBcWGb78fD7eNatXhL8+c1vpBH94o6C1FvZUQjyZy9x30Cs30IigFVkUo8SWxFJmSX2AeWaAM+hLplsE3Rumy9omkG/QiCUocbYlAVuxlE1CnZclKvhZ0C4uzZ6KAWTExPnffnXiL0I/FmbWabC6C4yu5uM9wYmC4PwPDI23p/tXwhKlVQxRoWax30F7BFGvUJAAFSMREndgWeS67p4Idihf6vb6UI9egyYRw3SBFwVJe61jxQwfooRL8B1vwkosuwh6LshyZZgAeB8OkGwQa7tgAO54B9liD/Z8/BnbPH+JO7MHu6srVSoJvS7e+rnOvoDQ560+etGNIz3VulhkXkmiAkkA2EkjGYW25kyn2k6dVLx6Fd2RIqyaiBXMQzaC4rBCt3RDoEw3bIlpocY7zyyUyfAxjchutr43jzKv1WwoMwl0L7sYCEg0a8QIl5P8h9i+aptVCoR60F59+0I4X611q3xJ/PxqPk+R+4NopVdtxZqMvNtD3lWLCxGxZH3gGin/2J9o4c0wthWd5ogXauvxBlYI31BLYt6hZ9VrBTppSCnAgJcgHU9fkSet16RXNGikLxAJZfvYID70rGuStHe45tgI8g3CwQjSiE633OujGRCOTiBYiQiTFsnrnKYl/N6L5Bp11O6IZHvE2iOYZqvBmaAtE80xVuLaVKRuk3hu96BpIcL6U5YZt06hOf64G3u11+pg/gW+TP74dunyUGtO25Se+eftomRnNXGa2MTtVp8coTlEa1hv6TeOi03+3Df1xcISuzeAwKCctWmy8lB+/dnpr8u8oUuCw+7NIw+HuLzc4+wk=&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<path d="M 90 60 L 90 83.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 90 88.88 L 86.5 81.88 L 90 83.63 L 93.5 81.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<ellipse cx="90" cy="30" rx="60" ry="30" 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: 30px; margin-left: 31px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
add_data
</div>
</div>
</div>
</foreignObject>
<text x="90" y="34" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
add_data
</text>
</switch>
</g>
<path d="M 90 150 L 90 193.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 90 198.88 L 86.5 191.88 L 90 193.63 L 93.5 191.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 170 120 L 380 120 Q 390 120 390 130 L 390 163.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 390 168.88 L 386.5 161.88 L 390 163.63 L 393.5 161.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 90 90 L 170 120 L 90 150 L 10 120 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: 120px; margin-left: 11px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
数据库满?
</div>
</div>
</div>
</foreignObject>
<text x="90" y="124" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
数据库满?
</text>
</switch>
</g>
<path d="M 90 240 L 90 763.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 90 768.88 L 86.5 761.88 L 90 763.63 L 93.5 761.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 0 240 L 20 200 L 180 200 L 160 240 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: 178px; height: 1px; padding-top: 220px; margin-left: 1px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
显示:数据库满,不能添加
</div>
</div>
</div>
</foreignObject>
<text x="90" y="224" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
显示:数据库满,不能添加
</text>
</switch>
</g>
<rect x="65" y="155" 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: 170px; margin-left: 80px;">
<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="80" y="174" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<rect x="275" y="85" 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: 100px; margin-left: 290px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
N
</div>
</div>
</div>
</foreignObject>
<text x="290" y="104" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
N
</text>
</switch>
</g>
<path d="M 390 220 L 390 253.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 390 258.88 L 386.5 251.88 L 390 253.63 L 393.5 251.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 325 220 L 345 170 L 455 170 L 435 220 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: 128px; height: 1px; padding-top: 195px; 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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
输入学号
</div>
</div>
</div>
</foreignObject>
<text x="390" y="199" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
输入学号
</text>
</switch>
</g>
<path d="M 390 340 L 390 383.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 390 388.88 L 386.5 381.88 L 390 383.63 L 393.5 381.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 510 300 L 700 300 Q 710 300 710 310 L 710 373.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 710 378.88 L 706.5 371.88 L 710 373.63 L 713.5 371.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 390 260 L 510 300 L 390 340 L 270 300 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: 238px; height: 1px; padding-top: 300px; margin-left: 271px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
学号存在?
</div>
</div>
</div>
</foreignObject>
<text x="390" y="304" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
学号存在?
</text>
</switch>
</g>
<path d="M 390 440 L 390 500 Q 390 510 380 510 L 96.37 510" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 91.12 510 L 98.12 506.5 L 96.37 510 L 98.12 513.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 310 440 L 330 390 L 470 390 L 450 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: 158px; height: 1px; padding-top: 415px; margin-left: 311px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
显示:学号已存在
</div>
</div>
</div>
</foreignObject>
<text x="390" y="419" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
显示:学号已存在
</text>
</switch>
</g>
<rect x="355" y="345" width="30" height="30" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 360px; margin-left: 370px;">
<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="370" y="364" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<path d="M 710 420 L 710 453.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 710 458.88 L 706.5 451.88 L 710 453.63 L 713.5 451.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 650 420 L 670 380 L 770 380 L 750 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: 118px; height: 1px; padding-top: 400px; margin-left: 651px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
输入姓名
</div>
</div>
</div>
</foreignObject>
<text x="710" y="404" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
输入姓名
</text>
</switch>
</g>
<path d="M 710 500 L 710 533.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 710 538.88 L 706.5 531.88 L 710 533.63 L 713.5 531.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 650 500 L 670 460 L 770 460 L 750 500 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: 480px; margin-left: 651px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
输入成绩
</div>
</div>
</div>
</foreignObject>
<text x="710" y="484" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
输入成绩
</text>
</switch>
</g>
<path d="M 710 580 L 710 603.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 710 608.88 L 706.5 601.88 L 710 603.63 L 713.5 601.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<rect x="650" y="540" width="120" height="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: 118px; height: 1px; padding-top: 560px; margin-left: 651px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
添加到学生数据科
</div>
</div>
</div>
</foreignObject>
<text x="710" y="564" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
添加到学生数据科
</text>
</switch>
</g>
<path d="M 710 650 L 710 690 Q 710 700 700 700 L 96.37 700" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 91.12 700 L 98.12 696.5 L 96.37 700 L 98.12 703.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 650 650 L 670 610 L 770 610 L 750 650 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: 630px; margin-left: 651px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
显示:零件已添加
</div>
</div>
</div>
</foreignObject>
<text x="710" y="634" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
显示:零件已添加
</text>
</switch>
</g>
<ellipse cx="90" cy="795" rx="60" ry="25" 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>

After

Width:  |  Height:  |  Size: 23 KiB

@ -0,0 +1,52 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="151px" height="301px" viewBox="-0.5 -0.5 151 301" content="&lt;mxfile&gt;&lt;diagram id=&quot;LNEEokx9NuSkeupJaUJv&quot; name=&quot;Page-1&quot;&gt;xVXLboMwEPwa3wGH1xES0l4qVcqhx8oKG7BkMHKcAP36mmBehbSpGqUXWM+OsWcYDMLrrHoSpEhfeAwMWUZcIbxBluV4K3VtgLoFbAe3QCJo3ELmAOzoB2jQ0OiJxnCcECXnTNJiCu55nsNeTjAiBC+ntANn01ULksAM2O0Jm6NvNJZpi3q2MeDPQJO0W9k0dCcjHVkDx5TEvBxBOEJ4LTiXbZVVa2CNd50v7bztlW6/MQG5vGWCfhFnwk5am96XrDuxECvtepjzXN3CVGZMjUxVtvSGc3UHGjryk9hrll5FEpGAZuFevUoN8AykqBVFACOSnqdPJ/r9JT1vkKgKrXJZsTVTXAiay/eYSDLXzpjKVCO5TKmEXUEuCkqV6iUbziAkVN8bMZfYTehCUvepacflEDETaywdxcs1/u6K8z85wPMc2A/KAZ4rjjwURsjHKLKR56IwaIpggwLngmxR6F4QV3N8A3kbFDnI85o6UlNCFPgz59RHXjSlMoMwBowngmTKswIEVfsG8bX3OjR+Ct6BVtCdkHcKoj/NYX9WjXNoL+TQuUMO7Rty+MBv0rcnVmC8YMVqwQrv91ao4XDsX3qjfyeOPgE=&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<path d="M 75 70 L 75 103.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 108.88 L 71.5 101.88 L 75 103.63 L 78.5 101.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<ellipse cx="75" cy="35" rx="65" ry="35" 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: 128px; height: 1px; padding-top: 35px; margin-left: 11px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
print_data
</div>
</div>
</div>
</foreignObject>
<text x="75" y="39" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
print_data
</text>
</switch>
</g>
<path d="M 75 170 L 75 213.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 75 218.88 L 71.5 211.88 L 75 213.63 L 78.5 211.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 0 170 L 20 110 L 150 110 L 130 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: 148px; height: 1px; padding-top: 140px; margin-left: 1px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
输出学号姓名成绩
</div>
</div>
</div>
</foreignObject>
<text x="75" y="144" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
输出学号姓名成绩
</text>
</switch>
</g>
<ellipse cx="75" cy="260" rx="70" ry="40" 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>

After

Width:  |  Height:  |  Size: 4.6 KiB

@ -0,0 +1,164 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="466px" height="691px" viewBox="-0.5 -0.5 466 691" content="&lt;mxfile&gt;&lt;diagram id=&quot;ui3Me32tS_vx9kzB5S0c&quot; name=&quot;第 1 页&quot;&gt;5VhNc5swEP01OrYDCPFxBNtpL+1kJoc2p45iFKOpQIyQY5NfX8kIAxZO3MRxmunFXj2thPbpaRcE4KzYfhG4yr/xjDDgOdkWwDnwPNdHrvrTSNMiYRC2wErQzDj1wA19JAZ0DLqmGalHjpJzJmk1Bpe8LMlSjjAsBN+M3e45Gz+1witiATdLzGz0B81k3qIRcnr8K6GrvHuy65ieAnfOBqhznPHNAIILAGeCc9laxXZGmCav46Udd3Wkd78wQUp5ygDD+wNmaxObWZdsumBJpmI3zZKX6i/NZcFUy1Vm6659jq7AQDVfi6XxMk+RWKyI8Qr20SvZEF4QKRrlIgjDkj6MZ8dm/1Z7vz5EZZgopyP2rIjXVYYl/qV/7OAZU6LSMW9yKslNhXchbJSup3h4IEKS7dNM2DFueg25nTDygX5C5/Vhx++z0YG90dGFNjqwI15EIF2AGIIFAhECCdJGMgdJsEOuQBparKgTWmlTBYoZI4yvBC4UHxURVK2JiMO+677jOdHc0y3p0ttrRWRSqQuNWJ4TFTqDqFz0PqqKbFW5/itltRuaCIGbgUPFaSnrwczXGlAOZnsgMksx7KsacMBfO2PP5n5ppyUr598hOL7QuY0mzq11SlskjrQRz0CiDIXPQHxl8SNyXtyt67dN4WbAJ98Z68FH1mn0nInTGJ3jNE4wdwmxtEfvQC3hhdTSPfxomg9BmhwRUGh8YgdEc7AIQBRpe6GGpCCJP2wpMAO8eCxG6NlidCGaKA3oDPtil99bi1AVmxzTgBldlcpeqhh3tGkGqHrzTkxHQbNMD08FqekjvttN5ehNaFO1mhelAM31XGvJ657RWgr+m8w446IX/z1l7AA6B/Mdg81Be8A8nMgC8AxZwPP/8tCrmETzc9i41ZR+Rl1zvjUUt63GtF6YLEI7WbR56r1rd4DOW7vdiW8rlWxU7kk9nWziFKT+zghA6lib9sGTjR9MvIe+VbLx4Es1P5D57UjlZ9V8/AaaPzkRT3z5TZRDH6TRrgpaL1YfVZidEJ0LfhB1yxuQ/f2/qXrBuOhBeMGiZ9/q2BnhElc5XS3xThTdC652VLO/H2zrUn/LChd/AA==&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<path d="M 100 70 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="35" rx="60" ry="35" 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: 35px; margin-left: 41px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
updata_data
</div>
</div>
</div>
</foreignObject>
<text x="100" y="39" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
updata_data
</text>
</switch>
</g>
<path d="M 100 180 L 100 238.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 100 243.88 L 96.5 236.88 L 100 238.63 L 103.5 236.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 40 180 L 60 130 L 160 130 L 140 180 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: 155px; margin-left: 41px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
输入学号
</div>
</div>
</div>
</foreignObject>
<text x="100" y="159" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
输入学号
</text>
</switch>
</g>
<path d="M 200 285 L 388 285 Q 398 285 397.93 295 L 397.75 318.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 397.71 323.88 L 394.26 316.86 L 397.75 318.63 L 401.26 316.91 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 100 325 L 100 393.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 100 398.88 L 96.5 391.88 L 100 393.63 L 103.5 391.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 100 245 L 200 285 L 100 325 L 0 285 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: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
学号存在?
</div>
</div>
</div>
</foreignObject>
<text x="100" y="289" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
学号存在?
</text>
</switch>
</g>
<path d="M 397.5 380 L 397.5 453.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 397.5 458.88 L 394 451.88 L 397.5 453.63 L 401 451.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 330 380 L 350 325 L 465 325 L 445 380 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: 133px; height: 1px; padding-top: 353px; margin-left: 331px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
输出学号姓名成绩
</div>
</div>
</div>
</foreignObject>
<text x="398" y="356" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
输出学号姓名成绩
</text>
</switch>
</g>
<rect x="295" y="255" 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: 270px; margin-left: 310px;">
<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="310" y="274" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
Y
</text>
</switch>
</g>
<path d="M 397.58 515 L 397.97 645 Q 398 655 388 655 L 166.37 655" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 161.12 655 L 168.12 651.5 L 166.37 655 L 168.12 658.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 330 515 L 350 460 L 465 460 L 445 515 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: 133px; height: 1px; padding-top: 488px; margin-left: 331px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
已更新
</div>
</div>
</div>
</foreignObject>
<text x="398" y="491" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
已更新
</text>
</switch>
</g>
<path d="M 100 450 L 100 613.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 100 618.88 L 96.5 611.88 L 100 613.63 L 103.5 611.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 40 450 L 60 400 L 160 400 L 140 450 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: 425px; margin-left: 41px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
学号不存在
</div>
</div>
</div>
</foreignObject>
<text x="100" y="429" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
学号不存在
</text>
</switch>
</g>
<rect x="105" y="335" 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: 350px; margin-left: 120px;">
<div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">
N
</div>
</div>
</div>
</foreignObject>
<text x="120" y="354" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
N
</text>
</switch>
</g>
<ellipse cx="100" cy="655" rx="60" ry="35" 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>

After

Width:  |  Height:  |  Size: 14 KiB

@ -0,0 +1,6 @@
app: app.o data.o
gcc -o app app.o data.o
app.o: app.c data.h
gcc -c app.c
data.o: data.c data.h
gcc -c data.c

@ -0,0 +1,3 @@
101 小米 80
104 小刘 96
100 小明 70
1 101 小米 80
2 104 小刘 96
3 100 小明 70

@ -0,0 +1,357 @@
#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,291 @@
#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)
{
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,19 @@
#define NAME_LEN 31
#define MAX_PARTS 100
// 函数声明
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);
Loading…
Cancel
Save