C语言课设唱歌比赛评分系统

C语言课设唱歌比赛评分系统
C语言课设唱歌比赛评分系统

C语言课设唱歌比赛评

分系统

集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

沈阳航空航天大学

课程设计任务书

学院:专业:班级:

学号:题目:唱歌比赛评委评分系统

一、课程设计时间

二、课程设计内容

参加唱歌比赛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;

}

}

}

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

{

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

}

getchar();

}

/*--------------------------- search函数-------------------------------*/ void search()

{

int c;

printf("\n请选择查询内容:\n");

printf("1.选手详细成绩查询 2.选手排名查询\n请输入您的选择:");

scanf("%d",&c);

switch(c)

{

case 1:system("cls");print();break;

case 2:system("cls");rank();break;

}

}

/*------------------------------- save函数 ------------------------------*/ void save()xt","w");

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\"");

}

/*------------------------ update函数 --------------------------*/

void update()

{

S_MESSAGE *p1;手信息浏览 2.选手信息录入 \n");

printf("\ 3.选手信息保存 4.选手成绩查询 \n");

printf("\ 5.选手信息修改 6.选手信息删除 \n");

printf("\ 7.退出系统 \n");

printf("\n\ *********** 系统菜单选择界面

*************\n");

printf("\t>> 请根据您想执行的命令,输入对应功能的数字键<<\n");

printf("请输入您的选择:");

}

/*---------------- menu_select函数 ------------------------*/

void menu_select()

{

char s[100];

int c;

gets(s); //不管用户输入的是数字键或是字母键使用gets都能将输入作为字符串接收

while(1) //限定用户输入的数值必须在1-7之间才有效,否则要求重新输入

{

c = atoi(s); //利用atoi()函数将所接收的字符串转换成数值,提供给if语句判断

if(c < 1 || c >7)

{

printf("您的输入有误,请重新输入:");

gets(s);

}

else break;

}

switch(c)

{

case 1:

system("cls"); //清屏

browse();

break;

case 2:

system("cls");

creat();

break;

case 3:

system("cls");

save();

break;

case 4:

system("cls");

search();

break;

case 5:

system("cls");

update();

break;

case 6:

system("cls");

del();

break;

case 7:

system("cls");

quit();

return;

break;

default:

break;

}

getchar();

system("cls");

menu();

menu_select();

}

/*--------------------------main函数 -----------------------------*/

int plus()

{

menu();

menu_select();

return 0;

}

int main(void)

{

char c[6];

char m[6];

m[0]='1',m[1]='2',m[2]='3',m[3]='4',m[4]='5',m[5]='6';

int i;

printf("请输入您的密码:");

for(i=0;i<6;i++)

{

c[i]=getch();

if(c[i]>='0'||c[i]<='9'||c[i]>='a'||c[i]<='z'||c[i]>='A'||c[i]<='Z')

putchar('*');

}

if(c[0]==m[0]&&c[1]==m[1]&&c[2]==m[2]&&c[3]==m[3]&&c[4]== m[4]&&c[5]==m[5])

{ printf("\n欢迎进入歌唱比赛评分系统\n");

plus();

}

else

printf("\n密码错误!"); while(1);

return 0;

}

相关主题
相关文档
最新文档