From 75dd9d736a7ed30d2091333ac12ed5b3345530da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=9F=B9=E6=AF=85?= <3020727885@qq.com> Date: Sun, 21 May 2023 11:24:05 +0800 Subject: [PATCH] 1 --- .vscode/c_cpp_properties.json | 18 +++ .vscode/launch.json | 24 ++++ .vscode/settings.json | 38 ++++++ README.md | 220 +++++++++++++++++++++++++++++++++- 4 files changed, 299 insertions(+), 1 deletion(-) create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..cea4d3f --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,18 @@ +{ + "configurations": [ + { + "name": "windows-gcc-x64", + "includePath": [ + "${workspaceFolder}/**" + ], + "compilerPath": "gcc", + "cStandard": "${default}", + "cppStandard": "${default}", + "intelliSenseMode": "windows-gcc-x64", + "compilerArgs": [ + "" + ] + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..bd0711e --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,24 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "C/C++ Runner: Debug Session", + "type": "cppdbg", + "request": "launch", + "args": [], + "stopAtEntry": false, + "externalConsole": true, + "cwd": "c:/Users/lipei/Desktop/VSCode 2/kunkun", + "program": "c:/Users/lipei/Desktop/VSCode 2/kunkun/build/Debug/outDebug", + "MIMode": "gdb", + "miDebuggerPath": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..65c81b6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,38 @@ +{ + "C_Cpp_Runner.cCompilerPath": "gcc", + "C_Cpp_Runner.cppCompilerPath": "g++", + "C_Cpp_Runner.debuggerPath": "gdb", + "C_Cpp_Runner.cStandard": "", + "C_Cpp_Runner.cppStandard": "", + "C_Cpp_Runner.msvcBatchPath": "", + "C_Cpp_Runner.useMsvc": false, + "C_Cpp_Runner.warnings": [ + "-Wall", + "-Wextra", + "-Wpedantic", + "-Wshadow", + "-Wformat=2", + "-Wconversion", + "-Wnull-dereference", + "-Wsign-conversion" + ], + "C_Cpp_Runner.enableWarnings": true, + "C_Cpp_Runner.warningsAsError": false, + "C_Cpp_Runner.compilerArgs": [], + "C_Cpp_Runner.linkerArgs": [], + "C_Cpp_Runner.includePaths": [], + "C_Cpp_Runner.includeSearch": [ + "*", + "**/*" + ], + "C_Cpp_Runner.excludeSearch": [ + "**/build", + "**/build/**", + "**/.*", + "**/.*/**", + "**/.vscode", + "**/.vscode/**" + ], + "C_Cpp_Runner.useAddressSanitizer": false, + "C_Cpp_Runner.showCompilationTime": false +} \ No newline at end of file diff --git a/README.md b/README.md index e445c07..b2898fa 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,220 @@ -# kunkun +# 学生成绩管理系统 + +2023年4月23日 + 王振宇 李文菲 武杭凯 李培毅 + +## 项目简介 + +本学生成绩管理系统是为教师提供管理班级成绩的工具,该系统可以实现的对学生的成绩进行增,信息导入等基本功能,以及对学生成绩排序和分段的扩展功能,有利于对学生成绩管理。 +下载地址:https://bdgit.educoder.net/p2i3t8vuh/text4.git +项目开发过程中采用 Kanban (看板)进行任务管理和分工协作,并使用 Git 对程序代码和文档进行版本管理。任务分工情况如下: + +|任务 |设计 |开发 |测试 |文档 | +|-----|-----|-----|-----|-----| +|C1-C3 ||||王振宇| +|C4-C6||||李文菲| +|C6-c7 ||||武杭凯| +|C8-C10 ||||李培毅| + +每个成员的工作量(百分比): + +|王振宇|李文菲|武杭凯|李培毅| +|------|------|------|------| +| 30 | 25 | 20 | 25 | + +## 关于学生成绩管理系统 + +设计一个学生成绩管理系统,要求采用命令行菜单界面进行交互,具备读取、查询、修改、插入、删除和排序等基本功能,能够以表格和图表形式展示数据,采用 CSV 格式保存数据。 +系统的功能性需求: +数据的读取、保存、打印、查询、修改、插入、删除、排序和图表展示。 +系统的非功能性需求: +菜单驱动的命令行交互界面。 + +## 需求分析 + +分析系统的功能需求和界面需求,编制用户手册如下 + + #### C1启动程序 + +命令行中执行命令 ./app ,系统启动,显示提示信息,然后显示功能菜单,等待用户输入命令 +~~~ +库存管理系统启动 +| 1 读取 | 2 保存 | 0 退出 | 3 打印 | 4 查询 | 5 添加 +| 6 修改 | 7 删除 | 8 排序 | 9 图表 +请选择: +~~~ + + ### C2: 显示命令菜单 + +~~~ +| 1 读取 | 2 保存 | 0 退出 | 3 打印 | 4 查询 | 5 添加 +| 6 修改 | 7 删除 | 8 排序 | 9 图表 +请选择: +~~~ +### C3: 退出程序 + +选择菜单命令 0 ,退出程序 +~~~ +请选择:0 +程序退出 +~~~ +### C4:添加学生成绩 +选择菜单命令5,添加学生成绩 +~~~ +请选择:5 +输入学生姓名:小明 +输入学科序号:4 +输入成绩:100 +学生1成绩 已添加 +| 1 读取 | 2 保存 | 0 退出 | 3 打印 | 4 查询 | 5 添加 +| 6 修改 | 7 删除 | 8 排序 | 9 图表 | 0退出 + +请选择: 5 +输入学生姓名:小明 +输入学科序号:4 +学生成绩已存在 +~~~ +### C5:查询学生成绩 +输入菜单功能4,输入学号对学生成绩进行查询,如果没有则输出学生不存在 +~~~ +请选择:4 +输入学号:01 +学生姓名:小明 +输出成绩:100 +| 1 读取 | 2 保存 | 0 退出 | 3 打印 | 4 查询 | 5 添加 +| 6 修改 | 7 删除 | 8 排序 | 9 图表 | 0退出 + +请选择:4 +输入学号:001 +学生不存在 +~~~ +### C6: 打印学生成绩列表 +~~~ +请选择:3 +---------------------------------------------------------------------------- +-------------------------------------------------------- +| UNMBER | NAME| PANK | +---------------------------------------------------------------------------- +-------------------------------------------------------- +| 01 | 小明 | 100 | +---------------------------------------------------------------------------- +-------------------------------------------------------- +~~~ + +### C7:删除学生成绩 +选择菜单功能8,删除学生成绩 +~~~ +请选择:7 +输入学号:01 +成绩已删除 +| 1 读取 | 2 保存 | 0 退出 | 3 打印 | 4 查询 | 5 添加 +| 6 修改 | 7 删除 | 8 排序 | 9 图表 +输入学号:7 +学生成绩不存在 +~~~ +### C8:修改学生成绩 +选择菜单功能8,对学生成绩进行修改 +~~~ +请选择:6 +输入序号:01 +输入成绩:99 +| 1 读取 | 2 保存 | 0 退出 | 3 打印 | 4 查询 | 5 添加 +| 6 修改 | 7 删除 | 8 排序 | 9 图表 +请输入:4 +请输入序号:01 +学生姓名:小明 +成绩:99 +~~~ + +### C9: 对学生成绩排序 +选择菜单功能8,对成绩进行排序 +~~~ +请选择:8 +排序已完成 +| 1 读取 | 2 保存 | 0 退出 | 3 打印 | 4 查询 | 5 添加 +| 6 修改 | 7 删除 | 8 排序 | 9 图表 +~~~ +### C10:将学生成绩保存到文件 +选择功能2.输入文件名称,以csv格式保存到文件中 +~~~ +请选择:2 +输入文件名:b.csv +成绩已保存 +~~~ +### C11:以图表方式显示成绩 +~~~ +请选择:9 +图表 +01 :小明 |**********(8) +02 :小红 |**********(12) +03 :小蓝 |**********(20) +04 :小青 |**********(10) +| 1 读取 | 2 保存 | 0 退出 | 3 打印 | 4 查询 | 5 添加 +| 6 修改 | 7 删除 | 8 排序 | 9 图表 +~~~ +### C12: 从文件中读取成绩记录 +选择菜单命令 1 ,提示输入文件名,若文件存在,则打开文件读取 CSV 格式保存的所有成绩记录;否 +则,若文件不存在,则给出错误信息并结束。 +假设文件 a.csv 中,以 CSV (Comma-Separated Values)格式保存了如下记录 +~~~ +01,小明,8 +02,小红,12 +03,小蓝,20 +04,小青,10 +~~~ +则读取记录的过程如下: +~~~ +请选择:1 +读取数据 +请输入文件名:a.csv +读取 4 记录 +1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加 +6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出 +请选择:3 +------------------------------------------------------- +| NUMBER | NAME | ON HAND | +------------------------------------------------------- +| 01 | 小明 | 8 | +| 02 | 小红 | 12 | +| 03 | 小蓝 | 20 | +| 04 | 小青 | 10 | +------------------------------------------------------- +1 读取 | 2 保存 | 3 打印 | 4 查询 | 5 添加 +6 修改 | 7 删除 | 8 排序 | 9 图表 | 0 退出 +请选择:1 +读取数据 +请输入文件名:a +a: No such file or directory +~~~ + +## 概要设计 + +系统主要分为用户界面和数据处理两大模块。 +用户界面模块包括系统初始化(init),显示菜单(display_menu),选择菜单命令(make_choice)、确认(confirm)、退出(quit)等子模块。 +数据处理模块包括数据输入(ReadScore),数据计算(AverSumofEveryStudent)等模块组成。 +上述各模块通过主程序(main)进行调用,系统模块图如下。 +![](流程图.png) +各模块的主要功能如下: + +#####main +系统主函数模块,显示菜单,根据用户选择的菜单命令,执行相关操作。 + +#####init +系统初始化。 + +#####display_menu +显示菜单命令。 + +####详细设计 +![](text.drawio.svg) + + +#####add_data +Step 1: if 数据库满 then 提示数据库满并结束 +Step 2: 输入零件编号 +Step 3: if 学生成绩已存在 then 提示学生成绩已存在并结束 +Step 4: 输入学生名和学科 +Step 5: 添加新成绩到数据 +Step 6: 提示添加成功 +![](流程图(2).png)