# 歌手大赛成绩管理系统 **Repository Path**: oyps/singer-competition-score-management-system ## Basic Information - **Project Name**: 歌手大赛成绩管理系统 - **Description**: 歌手大赛成绩管理系统 - C语言课程设计 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-04-30 - **Last Updated**: 2023-04-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: 2021年12月 ## README # 歌手大赛成绩管理系统 ## 项目信息 * 项目成员:欧阳鹏、周旭、魏文杰、黄文章 * 来源学校:豫章师范学院 * 项目介绍:歌手大赛成绩管理系统,多功能成绩管理工具,支持包含成绩录入、查询、排行、导出等在内的多个功能,轻松高效分析处理成绩数据 * 开发时间:2021年12月8日 * 开发语言:C语言 * 文档版本:1.3 ## Bug修复 * 修复导出成绩单和修改管理员账号密码界面标题错误(12.13) * 当后台学生数据文件为空时,输出排行提示为空,修复未设置回到菜单(12.14) * 新增system("pause")功能,优化了用户的交互体验(12.14) ## 程序运行流程 * **管理员登录** + **选择或新建比赛项目** - 学生成绩录入 - 学生成绩查询 - 学生成绩排行 - 导出成绩单(HTML) - 修改管理员账号密码 - 退出程序 ## 功能实现 * **管理员登录** + 在 `userData/admin.txt` 中**单行**保存**账号**和**密码**,空格分隔,示例:`admin 12345678` + 登录时输入账号和密码,验证通过即可继续操作 * **选择或新建比赛项目** + 先判断项目索引文件是否为空,为空则直接进入新建项目模块 + 不为空时,输出比赛列表,按编号进入对应比赛或新建比赛,弹出菜单 + 每注册一场比赛,向后台 `userData/workList.txt` 追加比赛编号和名称,每行1条数据,**单行**保存**比赛编号**和**名称**,空格分隔,示例:`第一届歌手大赛总决赛12345` + 如用户输入**add**关键字,则进入新建项目模块 * **学生成绩录入** + 进入成绩录入状态,可连续输入,每行输入一名学生的成绩和信息 + 打开文件,每次回车完成一次输入后,计算出最终成绩,将当行数据写入文件 + 当输入off时,退出录入状态,关闭文件,弹出菜单 + 输入格式:`long 学号, int 评委数量(小于10), char [10] 姓名, float 评委成绩1, float 评委成绩2 ... float 评委成绩10` * **学生成绩查询** + 输入待查询的学生姓名,读取后台TXT数据,按行遍历文本数据,每次遍历,解析当行学生数据信息,将当行姓名与查询条件进行比较,若匹配成功,则输出当行数据 + 结束遍历,弹出菜单 * **学生成绩排行** + 读取后台TXT数据,按行遍历文本数据,每次遍历,将当行数据解析后保存到结构体数组中,遍历完成后,以结构体的总分项数值为基准,进行冒泡排序,在数组项交换时,中转项应为单个结构体 + 排序完成后,对结构体数组进行遍历输出,每行一条数据 + 结尾输出最高分学生成绩信息,弹出菜单 * **导出成绩单** + 与成绩排行一样,先进行结构体数组的排序,只不过遍历输出时,输出HTML表格代码,并且将打印信息同时输出至文件中 + 输出导出文件的路径,弹出菜单 * **修改管理员账号密码** + 打开后台文件,获取用户输入,重新写入文件 ## 项目文件结构 * **outFile/** -- 成绩单导出 * **projectData/** -- 项目数据文件 * **userData/** -- 用户配置文件 + **admin.txt** -- 账号密码文件 + **workList.txt** -- 项目索引文件 * **main.c** -- 程序文件 ## 流程图 ![](https://sssoyp.coding.net/p/website-items/d/images/git/raw/master/12.13/%E6%AD%8C%E6%89%8B%E5%A4%A7%E8%B5%9B%E6%88%90%E7%BB%A9%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E6%96%B9%E6%A1%88.png) ## 程序运行详细情况 ### 启动程序,输入管理员账号密码,回车登录 ![](https://sssoyp.coding.net/p/website-items/d/images/git/raw/master/12.13/%E7%AE%A1%E7%90%86%E5%91%98%E7%99%BB%E5%BD%95.png?download=true) ### 若存在历史项目数据,则提示选择项目或新建项目 ![](https://sssoyp.coding.net/p/website-items/d/images/git/raw/master/12.13/%E9%80%89%E6%8B%A9%E6%88%96%E6%96%B0%E5%BB%BA%E9%A1%B9%E7%9B%AE.png?download=true) ### 若程序在后台没有发现历史项目数据,故直接进入新建项目模块,输入项目标题进行创建项目 ![](https://sssoyp.coding.net/p/website-items/d/images/git/raw/master/12.13/%E6%96%B0%E5%BB%BA%E9%A1%B9%E7%9B%AE.png?download=true) ### 回车进入项目,弹出菜单面板,输入对应序号执行相应操作 ![](https://sssoyp.coding.net/p/website-items/d/images/git/raw/master/12.13/%E8%8F%9C%E5%8D%95.png?download=true) ### 学生成绩录入,输入off结束输入 ![](https://sssoyp.coding.net/p/website-items/d/images/git/raw/master/12.13/%E5%AD%A6%E7%94%9F%E6%88%90%E7%BB%A9%E5%BD%95%E5%85%A5.png?download=true) ### 学生成绩查询,输入学生姓名,回车查询 ![](https://sssoyp.coding.net/p/website-items/d/images/git/raw/master/12.13/%E5%AD%A6%E7%94%9F%E6%88%90%E7%BB%A9%E6%9F%A5%E8%AF%A2.png?download=true) ![](https://sssoyp.coding.net/p/website-items/d/images/git/raw/master/12.13/%E6%9F%A5%E8%AF%A2%E7%BB%93%E6%9E%9C.png?download=true) ### 输出排行榜 ![](https://sssoyp.coding.net/p/website-items/d/images/git/raw/master/12.13/%E6%88%90%E7%BB%A9%E6%8E%92%E8%A1%8C.png?download=true) ### 导出成绩单,输出HTML文件路径 ![](https://sssoyp.coding.net/p/website-items/d/images/git/raw/master/12.13/%E5%AF%BC%E5%87%BA%E6%88%90%E7%BB%A9%E5%8D%95.jpg?download=true) ### 输出HTML代码文件 ![](https://sssoyp.coding.net/p/website-items/d/images/git/raw/master/12.13/%E8%BE%93%E5%87%BAHTML%E6%96%87%E4%BB%B6.png?download=true) ### 成绩单显示效果 ![](https://sssoyp.coding.net/p/website-items/d/images/git/raw/master/12.13/%E6%88%90%E7%BB%A9%E5%8D%95%E6%98%BE%E7%A4%BA%E6%95%88%E6%9E%9C.png?download=true) ### 修改管理员账号密码,回车 ![](https://sssoyp.coding.net/p/website-items/d/images/git/raw/master/12.13/%E4%BF%AE%E6%94%B9%E7%AE%A1%E7%90%86%E5%91%98%E8%B4%A6%E5%8F%B7%E5%AF%86%E7%A0%81.jpg?download=true)