- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计通学院课程设计报告
课程名称 ___高级程序设计语言 __
题目名称 ___歌唱比赛评分系统 _ __
学生学院 _ 计通学院
专业班级 _ 软件 181 _
学号
学生姓名
指导教师 __
2019 年 1 月 7 号
目录
1. 设计目的与要求 ???????????????? 3
TOC \o 1-5 \h \z 题目与设计要求?????????????? 3
本程序涉及的知识点???????????? 3
功能设计?????????????????? 3
总体设计????????????????? 3
详细设计????????????????? 4
程序实现????????????????? 27
程序实现时应考虑的问题?????????? 27
XX 模块核心代码????????????? 27
测试分析 ????????????????? 32
测试结果及分析????????????? 32
总结??????????????????? 35 参考文献?????????????????? 35
设计目的与要求
题目与设计要求
题目:歌手比赛评分系统
设计要求: 有十个选手参加歌唱比赛, 十个裁判对每个选手的演唱进行打分, 去 掉一个最高分,去掉一个最低分,剩下分数的平均值作为每位选手最后的成绩。 功能要求:
(1)采用结构体定义每个选手的参赛编号,姓名以及十个裁判打出的分数;
(2)从键盘输入每个选手的相关信息:参赛编号,姓名和十个得分;
(3)计算每位选手的最后得分,并按分数由高到低排序;
( 4)查询功能:输入参赛选手的编号或姓名, 便可输出该选手的得分以及排名; 以上功能采用菜单操作方式, 即从键盘输入 1 到 3 这三个数,分别完成以上(2) 到( 4)的功能。
本程序设计的知识点
结构体、数组、指针、文件操作。
功能设计
总体设计
○1 选手信息浏览,○2 选手信息录入,○3 选手信息保存,○4 选手成绩查询,○5 选手 信息修改,○6 选手信息删除,○7 选手数据:编号、姓名、成绩、平均成绩
详细设计
○1 浏览选手数据 browse()
分析:实际为链表的遍历,将头节点的指针给予临时节点 p1,用 while 语句实 现链表的遍历。
void browse()
{
SONGER_MESSAGE *p1; if(head==NULLtail==NULL) { printf(\n 当前信息记录为空 \n);
} else
{
printf(\n 你要浏览的选手信息如下 \n);
printf( | \n);
printf( 编号 | 姓名 \n);
p1=head;
while(p1!=NULL)
{
printf( | \n);
printf(%-9d%-6s\n,p1-num,p1-name);
p1=p1-next;
}
printf( | \n);
}
}
○2 查询选手成绩 search()
分析:提供详细成绩查询, 排名查询的函数调用。 其中各功能均采用菜单选择的 方式。
void search()
{
int c;
printf(\n 请选择查询内容: \n);
printf(1. 选手详细成绩查询 2.选手排名查询 \n 请输入您的选择: );scanf(%d,c); switch(c)
{ case1: system(cls); print(); break;
case2: system(cls); rank();
break;
}
}
○3 查询选手信息 print() 分析:实际为输出链表中的某个节点,输出某个选手的编号与姓名较为好实现, 输出 10 位评委成绩则用的 for 语句来实现。
void print()
{
SONGER_MESSAGE *p1=(SONGER_MESSAGE *)malloc(LEN);
int check=0,i;
long seeknum;
printf(\n 请输入要查找的选手编号: ); scanf(%d,seeknum);
if(head==NULLtail==NULL )
{
printf(\n 对不起,当前记录为空 !\n);
}
else
{
p1=head;
printf(\n 你要找的选手的成绩如下 \n);// 在这里找到了要查找的
选手成绩
printf( | | | | | | | | | | | | | | \n);
printf( 编号 | 姓名 | 成绩| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10平 | 均成绩 \n); printf( | | | | | | | | | | | | | | \n);
while(p1 != NULL)
{
if(p1-nu
文档评论(0)