歌手比赛评分系统程序设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计通学院

课程设计报告

课程名称___高级程序设计语言 __ 题目名称___歌唱比赛评分系统_ __ 学生学院_ 计通学院_ __ __ 专业班级_ 软件181 _ 学号

学生姓名

指导教师_____ __ ____

2019年1月7号

目录

1. 设计目的与要求 (3)

1.1 题目与设计要求 (3)

1.2 本程序涉及的知识点 (3)

2.功能设计 (3)

2.1总体设计 (3)

2.2详细设计 (4)

3. 程序实现 (27)

3.1程序实现时应考虑的问题 (27)

3.2 XX模块核心代码 (27)

4.测试分析 (32)

4.1 测试结果及分析 (32)

5.总结 (35)

参考文献 (35)

1. 设计目的与要求

1.1题目与设计要求

题目:歌手比赛评分系统

设计要求:有十个选手参加歌唱比赛,十个裁判对每个选手的演唱进行打分,去掉一个最高分,去掉一个最低分,剩下分数的平均值作为每位选手最后的成绩。功能要求:

(1)采用结构体定义每个选手的参赛编号,姓名以及十个裁判打出的分数;(2)从键盘输入每个选手的相关信息:参赛编号,姓名和十个得分;

(3)计算每位选手的最后得分,并按分数由高到低排序;

(4)查询功能:输入参赛选手的编号或姓名,便可输出该选手的得分以及排名;以上功能采用菜单操作方式,即从键盘输入1到3这三个数,分别完成以上(2)到(4)的功能。

1.2本程序设计的知识点

结构体、数组、指针、文件操作。

2.功能设计

2.1总体设计

○1选手信息浏览,○2选手信息录入,○3选手信息保存,○4选手成绩查询,○5选手信息修改,○6选手信息删除,○7选手数据:编号、姓名、成绩、平均成绩。

2.2详细设计

○1浏览选手数据browse()

分析:实际为链表的遍历,将头节点的指针给予临时节点p1,用while语句实现链表的遍历。

void browse()

{

SONGER_MESSAGE *p1;

if(head==NULL&&tail==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语句来实现。

{

SONGER_MESSAGE *p1=(SONGER_MESSAGE *)malloc(LEN);

int check=0,i;

long seeknum;

printf("\n请输入要查找的选手编号:");

scanf("%d",&seeknum);

if(head==NULL&&tail==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->num==seeknum)

{

printf("%-7d%-6s",p1->num,p1->name);

printf(" ");

for(i=0;i

{

printf("%.1f",p1->grades[i]);

}

printf("%-6.2lf\n",p1->ave);

check=1;

getchar();

return;

}

else

{

p1=p1->next;

}

}

}

if(head!=NULL&&check==0)

{

printf("\n对不起,你查看的选手成绩不存在!\n");

}

相关文档
最新文档