c语言课设唱歌比赛评分系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言课设唱歌比赛评分
系统
This model paper was revised by the Standardization Office on December 10, 2020
沈阳航空航天大学
课程设计任务书
学院:专业:班级:
学号:题目:唱歌比赛评委评分系统
一、课程设计时间
二、课程设计内容
参加唱歌比赛3位选手的名称和出场顺序存放在文件中;评委共有7个。每当一个选手表演之后,7个评委都分别评分(0~10分),而选手的最终得分计算规则为:去掉7个评分的最高和最低分,取剩下5个评分的平均值。程序最后打印出3位选手的成绩。
三、课程设计要求
程序质量:
贯彻结构化的程序设计思想。
用户界面友好,功能明确,操作方便。
用户界面中的菜单至少应包括“读取并显示选手名单”、
“表演与评分”、“打印最后成绩”、“退出”4项。
代码应适当缩进,并给出必要的注释,以增强程序的可读
性。
课程设计说明书:
课程结束后,上交课程设计说明书和源程序。课程设计说
明书的内容参见提供的模板。
四、指导教师和学生签字
指导教师:________ 学生签名:________
五、成绩
六、教师评语
目录
一、需求分析
根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。
该系统是一个分数录入以及评定系统,其使用者被假定为某歌唱比赛的管理人员,系统应该具有安全、稳定、功能齐全的特点。
1. 安全性分析
系统管理的数据涉及到参赛的所有选手,为防止他人恶意修改,所以在进入评分系统前有密码程序,只有掌握了正确的密码才能进入程序进行各项操作。
2. 稳定性分析
指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。
3. 主要功能分析
(1)密码程序:在程序尾端设置好密码,只有掌握密码的管理员才能进入程序进行成绩录入,修改等操作,避免信息被他人修改,造成比赛不公
(2)菜单:有一个功能强大又清晰明了的菜单能极大程度方便管理员的操作
(3)数据输入:在每个输入前都有详细分类和提示,简单明了,根据提示输入参赛选手号数,姓名,各个评委打分成绩(4)数据保存:对于输入的数据,或被修改的数据应该保存到某个磁盘文件中,实现永久存储。运用了指针函数后便可实现该功能。将输入的选手信息存储到自动生成的文件中,以便于程序自动读取或人工阅读
(5)成绩排名:利用冒泡程序对数组进行排序,删除一个最高与最低然后进行讲剩下的值平均,得出选手最终得分,再根据分数高低排名
(6)数据查询:用户输入查询条件,系统规则地在界面显示查询结果,不光可以输入号数,查询到该选手信息,每位评委打分;还可以选择排名查询,显示的数据全面。
二、设计分析
主要有9个功能模块,每个模块对应一个C语言自定义函
数。这些函数原型及其功能简述如下:
1、程序总体结构图(传统流程图或N-S框图)
结
2、主要功能模块框图(传统流程图或N-S框图)(1)密码程序plus()
(3)浏览选手数据browse()
(4)查询选手成绩search()
(5)删除函数del()
(6)查询选手信息print()
(7)菜单函数menu()
(8)修改函数update()
(9)指针函数rank()
(10)保存函数save()
三、主要界面截图
图1 进入程序输入密码界面
图2 程序主界面
图3 选手信息录入
图4 选手信息浏览
图5 单个选手成绩查询
图6 选手排名查询
图7 选手信息修改
图8 选手信息删除
图9 程序退出
四、技术要点
1、冒泡程序应用
运用冒泡程序对各个参赛选手排序,并去除头与尾即最高分和最低分,将剩下的评委得分运算得出选手最终平均分,然后再排序,便能得出选手名次。
for(i=0;i fprintf(fp,"--------|--------\n"); fprintf(fp," 编号 | 姓名 \n"); while(p1 != NULL) { fprintf(fp,"--------|--------\n"); fprintf(fp," %-9d%-6s\n",p1->num,p1->name); p1=p1->next; } fprintf(fp,"--------|--------\n"); fclose(fp); printf("\n\t文件已将保存到\"参赛选手名单.txt\""); } 3、关于删除算法 实现从系统中删除某位同学的相关信息的算法稍微复杂一些,其实质是对数组某个或某些元素的删除操作。对数组元素的删除操作完成后,再将数组写入到文件中,就完整地实现了“删除”。 void del() { S_MESSAGE *node;/ #include <> #include <> #include <> #include <> #include <> #define LEN sizeof(S_MESSAGE) #define N 7 typedef struct songer f ",p1->grades[i]); } printf(" %\n",p1->ave); check=1; getchar(); return; } else { p1=p1->next;