欢迎来到天天文库
浏览记录
ID:14400884
大小:386.00 KB
页数:40页
时间:2018-07-28
《c语言课设-唱歌比赛评分系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、沈阳航空航天大学课程设计学号____________班级____________姓名____________指导教师____________年月日沈阳航空航天大学课程设计任务书学院:专业:班级:学号:题目:唱歌比赛评委评分系统一、课程设计时间二、课程设计内容参加唱歌比赛3位选手的名称和出场顺序存放在文件file22.txt中;评委共有7个。每当一个选手表演之后,7个评委都分别评分(0~10分),而选手的最终得分计算规则为:去掉7个评分的最高和最低分,取剩下5个评分的平均值。程序最后打印出3位选手的成绩。三
2、、课程设计要求程序质量:²贯彻结构化的程序设计思想。²用户界面友好,功能明确,操作方便。²用户界面中的菜单至少应包括“读取并显示选手名单”、“表演与评分”、“打印最后成绩”、“退出”4项。²代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:²课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。四、指导教师和学生签字指导教师:________学生签名:________五、成绩六、教师评语沈阳航空航天大学设计用纸目录一、需求分析1二、设计分析3三、主要界面截图5四、
3、技术要点6五、个人总结7六、参考文献7七、源程序737沈阳航空航天大学设计用纸一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。该系统是一个分数录入以及评定系统,其使用者被假定为某歌唱比赛的管理人员,系统应该具有安全、稳定、功能齐全的特点。1.安全性分析系统管理的数据涉及到参赛的所有选手,为防止他人恶意修改,所以在进入评分系统前有密码程序,只有掌握了正确的密码才能进入程序进行各项操作。2.稳定性分析指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令
4、用户感到意外的系统错误或系统崩溃。3.主要功能分析(1)密码程序:在程序尾端设置好密码,只有掌握密码的管理员才能进入程序进行成绩录入,修改等操作,避免信息被他人修改,造成比赛不公(2)菜单:有一个功能强大又清晰明了的菜单能极大程度方便管理员的操作(3)数据输入:在每个输入前都有详细分类和提示,简单明了,根据提示输入参赛选手号数,姓名,各个评委打分成绩(4)数据保存:对于输入的数据,或被修改的数据应该保存到某个磁盘文件中,实现永久存储。运用了指针函数后便可实现该功能。将输入的选手信息存储到自动生成的文件中,
5、37沈阳航空航天大学设计用纸以便于程序自动读取或人工阅读(5)成绩排名:利用冒泡程序对数组进行排序,删除一个最高与最低然后进行讲剩下的值平均,得出选手最终得分,再根据分数高低排名(6)数据查询:用户输入查询条件,系统规则地在界面显示查询结果,不光可以输入号数,查询到该选手信息,每位评委打分;还可以选择排名查询,显示的数据全面。二、设计分析主要有9个功能模块,每个模块对应一个C语言自定义函数。这些函数原型及其功能简述如下:1、程序总体结构图(传统流程图或N-S框图)结束37沈阳航空航天大学设计用纸2、主要功
6、能模块框图(传统流程图或N-S框图)(1)密码程序plus()输入密码终止程序密码正确与否开始进入程序界面不正确正确(2)参赛选手信息录入creat()Printf参赛选手号数Printf姓名Printf7位评委打分是否继续输入是否重新执行开头返回主菜单(3)浏览选手数据browse()37沈阳航空航天大学设计用纸(4)查询选手成绩search()(5)删除函数del()(6)查询选手信息print()(7)菜单函数menu()(8)修改函数update()(9)指针函数rank()(10)保存函数sav
7、e()三、主要界面截图图1进入程序输入密码界面37沈阳航空航天大学设计用纸图2程序主界面图3选手信息录入37沈阳航空航天大学设计用纸图4选手信息浏览图5单个选手成绩查询37沈阳航空航天大学设计用纸图6选手排名查询图7选手信息修改37沈阳航空航天大学设计用纸图8选手信息删除图9程序退出四、技术要点37沈阳航空航天大学设计用纸1、冒泡程序应用运用冒泡程序对各个参赛选手排序,并去除头与尾即最高分和最低分,将剩下的评委得分运算得出选手最终平均分,然后再排序,便能得出选手名次。for(i=0;i8、/冒泡排序法让那个成绩从小到大排列,然后选出最大值是最后一个,最小值是第一个for(j=0;jgrades[j]>p1->grades[j+1]){t=p1->grades[j];p1->grades[j]=p1->grades[j+1];p1->grades[j+1]=t;}p1->ave=(p1->ave-(p1->grades[0]+p1->grades[9]))/8;//去掉一个最高
8、/冒泡排序法让那个成绩从小到大排列,然后选出最大值是最后一个,最小值是第一个for(j=0;jgrades[j]>p1->grades[j+1]){t=p1->grades[j];p1->grades[j]=p1->grades[j+1];p1->grades[j+1]=t;}p1->ave=(p1->ave-(p1->grades[0]+p1->grades[9]))/8;//去掉一个最高
此文档下载收益归作者所有