C语言程序课程设计—歌手比赛系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fprintf(fp,"%d ",a[i].num); fprintf(fp,"%s ",a[i].name); fprintf(fp,"%d\n",a[i].score); }
break;
{ case 1:Inistplayer(a,N);break; case 2:srand((unsigned)time(NULL));
for(i=0;i<N;i++) { printf("%d 位选手的成绩:",i+1); Inputscore(a[i].score,M); for(j=0;j<M;j++) printf("%d ",a[i].score[j]); printf("\n"); } break; case 3:for(i=0;i<N;i++) {Max[i]=a[i].score[0];
}; void Inistplayer(struct player a[],int n) {int i; for(i=0;i<n;i++) scanf("%d %s",&a[i].num,&a[i].name); } void Inputscore(int score[],int n) {int i; for(i=0;i<n;i++) score[i]=1+(int)10*rand()/(RAND_MAX+1); } void sort(struct player a[],float b[],int n) {int i,k,j,t; float temp; char str[8]; for(i=0;i<n;i++) {k=i; for(j=i+1;j<n;j++) if(b[k]>b[j]) k=j; if(k!=i) {temp=b[i]; b[i]=b[k]; b[k]=temp; strcpy(str,a[i].name);
系统主要功能模块的运行效果图........................................................... 错误!未定义书签。 4.设计体会........................................................................................................ 错误!未定义书签。 5.参考文献........................................................................................................ 错误!未定义书签。 6.源程序代码.................................................................................................... 错误!未定义书签。
strcpy(a[i].name,a[k].name); strcpy(a[k].name,str); t=a[i].num; a[i].num=a[k].num; a[k].num=t; } } } void main() {int flag=1,n,i,m,j; FILE *fp; fp = fopen("","w+"); struct player a[20]; printf("**********1.输入选手数据***********\n"); printf("**********2.评委打分***************\n"); printf("**********3.成绩排序***************\n"); printf("**********4.数据查询***************\n"); printf("**********5.追加学生数据***********\n"); printf("**********6.写入数据文件***********\n"); printf("**********7.退出系统***************\n"); while(flag) {printf("你想进行的操作:"); scanf("%d",&n); switch(n)
设计分析................................................................................................... 错误!未定义书签。 项目描述....................................................................................... 错误!未定义书签。
删除歌手。
程序结构
程序划分
将歌手打分系统程序进行系统模块划分,共分为九部分,分别是: 1.定义结构体 2.创建链表函数 3.输入数据函数 4.计算函数 5.排序函数 6.输出数据函数 7.输出最终数据 8.删除函数 9.插入函数 10.主函数
程序结构流程图
main
得分录入
得分维护
求平均分
排序
创建链表
2.系统设计
设计分析
项目描述
1.项目名称:歌手打分系统
2.功能描述:
(1)生成字符界面的功能菜单 **********1.输入选手数据********** **********2.评委打分************** **********3.成绩排序************** **********4.数据查询************** **********5.追加学生数据********** **********6.写入数据文件********** **********7.退出系统**************
语言简洁,为完成某一功能所写的源程序代码往往比其他语言写得短,便 利程序输入工作量减少。
4.若程序员在书写过程时严格遵循 ANSI C 标准,则其源代码可不作修改, 即可用于各种型号的计算机和各种操作系统,因此,C 语言具有良好的可移植性。
本次实践我们选择了使用 C 语言编写基于链表的程序,不仅使大家 对程序设计、编程方法有了进一步提高,而且掌握了使用 C 语言动态内存分配及 数据结构等方面的知识。
淮南师范学院
课程设计报告
歌手比赛系统
姓 名:胡欢欢 学 号:09 专 业:计算机科学与技术 班 级: 10 级(1)班 指导教师:彭飞 职 称:XXX
2013 年 3 月 7 日
目录 1.引言 ............................................................................................................... 错误!未定义书签。 2.系统设计........................................................................................................ 错误!未定义书签。
printf("\n"); } break; case 5:printf("请输入要追加的选手数据:\n"); add += 1; scanf("%d %s",&a[add].num,&a[add].name); break; case 6:printf("将数据写入文件中:\n"); for (i = 0 ; i < add+1 ; i++) {
系统主要功能模块的运行效果图
程序的运行效果图:
4.设计体会
在本次的 C 语言实践中,让我受益匪浅,通过本次的实践,让更深入的了解了 C 语言这门计算机语言,也明白了软件开发的相关流程和基本步骤,也许我的程序
还存在些许问题,也许还不完美,但是我相信在以后的学习中我们会继改进的。 也希望老师可以给我们提出您的宝贵意见。
5.参考文献
编程入门网:程序设计(第四版)谭浩强著
6.源程序代码
#include<> #include<> #include<> #include<> #define N 3 #define M 10 int add = N-1; int sum[N]={0},Max[N],Min[N]; float aver[N]={0}; struct player {int num; char name[8]; int score[M];
1.摘要Hale Waihona Puke Baidu
C 语言是一门计算机高级语言,它在 Microsoft 开发的软件 Visual C++ 中 执行,C 语言具有很多优点:
语言具有丰富的数据类型,众多的运算符,体现结构化程序设计的优良控 制结构,具有抽象功能及体现信息隐蔽思想的函数。
语言的应用几乎遍及了程序的各个领域,如科学家,系统程序设计,字处 理软件和电子表格软件的开发,信息管理,计算机辅助设计,等方面。
(2)通过输入菜单项的序号启动相应模块的功能 ① 能够根据输入的选手人数创建链表; ② 录入 9 名评委给选手的打分,并存储到文件中; ③ 按照去掉一个最高分和去掉一个最低分的原则求每名选手的平
均分; ② 按平均分由高到低的顺序对选手进行排序; ③ 把排名后的数据存储到文件中; ④ 把原始数据和最终的结果输出到屏幕; ④ 在第②步中保存文件之前,可根据情况修改数据,例如:插入或
for(i=0;i<N;i++) printf("%s %\n",a[i].name,aver[i]); break; case 4:printf("你想查询选手的数据:"); scanf("%d",&m); for(i=0;i<N;i++) if(a[i].num==m) {
printf("%d 号选手%s 总分:%d,最高分%d,最低分%d,平均 分%",a[i].num,a[i].name,sum[i],Max[i],Min[i],aver[i]);
3.系统实现........................................................................................................ 错误!未定义书签。 各模块的功能及程序说明..................................................................... 错误!未定义书签。
程序结构................................................................................................. 错误!未定义书签。 程序划分........................................................................................... 错误!未定义书签。 程序结构流程图............................................................................. 错误!未定义书签。
Min[i]=a[i].score[0]; for(j=0;j<M;j++) { sum[i]+=a[i].score[j]; if(Max[i]<a[i].score[j]) Max[i]=a[i].score[j]; if(Min[i]>a[i].score[j]) Min[i]=a[i].score[j]; } aver[i]=(float)(sum[i]-Max[i]-Min[i])/(M-2); } sort(a,aver,N);
输入成绩
存储数据
输出数据
3.系统实现
各模块的功能及程序说明
创建链表:使用尾插法插入数据; 输入选手信息:包括选手信息的输入,选手成绩的输入,去掉一个最 高分和最低分,并将其余评委的评分求出平均值。 输出选手排名:包括选手成绩排名。 删除和插入选手信息:将退赛选手和新参加的比赛的选手进行删除和 插入。 主函数:将所有函数实现。
break;
{ case 1:Inistplayer(a,N);break; case 2:srand((unsigned)time(NULL));
for(i=0;i<N;i++) { printf("%d 位选手的成绩:",i+1); Inputscore(a[i].score,M); for(j=0;j<M;j++) printf("%d ",a[i].score[j]); printf("\n"); } break; case 3:for(i=0;i<N;i++) {Max[i]=a[i].score[0];
}; void Inistplayer(struct player a[],int n) {int i; for(i=0;i<n;i++) scanf("%d %s",&a[i].num,&a[i].name); } void Inputscore(int score[],int n) {int i; for(i=0;i<n;i++) score[i]=1+(int)10*rand()/(RAND_MAX+1); } void sort(struct player a[],float b[],int n) {int i,k,j,t; float temp; char str[8]; for(i=0;i<n;i++) {k=i; for(j=i+1;j<n;j++) if(b[k]>b[j]) k=j; if(k!=i) {temp=b[i]; b[i]=b[k]; b[k]=temp; strcpy(str,a[i].name);
系统主要功能模块的运行效果图........................................................... 错误!未定义书签。 4.设计体会........................................................................................................ 错误!未定义书签。 5.参考文献........................................................................................................ 错误!未定义书签。 6.源程序代码.................................................................................................... 错误!未定义书签。
strcpy(a[i].name,a[k].name); strcpy(a[k].name,str); t=a[i].num; a[i].num=a[k].num; a[k].num=t; } } } void main() {int flag=1,n,i,m,j; FILE *fp; fp = fopen("","w+"); struct player a[20]; printf("**********1.输入选手数据***********\n"); printf("**********2.评委打分***************\n"); printf("**********3.成绩排序***************\n"); printf("**********4.数据查询***************\n"); printf("**********5.追加学生数据***********\n"); printf("**********6.写入数据文件***********\n"); printf("**********7.退出系统***************\n"); while(flag) {printf("你想进行的操作:"); scanf("%d",&n); switch(n)
设计分析................................................................................................... 错误!未定义书签。 项目描述....................................................................................... 错误!未定义书签。
删除歌手。
程序结构
程序划分
将歌手打分系统程序进行系统模块划分,共分为九部分,分别是: 1.定义结构体 2.创建链表函数 3.输入数据函数 4.计算函数 5.排序函数 6.输出数据函数 7.输出最终数据 8.删除函数 9.插入函数 10.主函数
程序结构流程图
main
得分录入
得分维护
求平均分
排序
创建链表
2.系统设计
设计分析
项目描述
1.项目名称:歌手打分系统
2.功能描述:
(1)生成字符界面的功能菜单 **********1.输入选手数据********** **********2.评委打分************** **********3.成绩排序************** **********4.数据查询************** **********5.追加学生数据********** **********6.写入数据文件********** **********7.退出系统**************
语言简洁,为完成某一功能所写的源程序代码往往比其他语言写得短,便 利程序输入工作量减少。
4.若程序员在书写过程时严格遵循 ANSI C 标准,则其源代码可不作修改, 即可用于各种型号的计算机和各种操作系统,因此,C 语言具有良好的可移植性。
本次实践我们选择了使用 C 语言编写基于链表的程序,不仅使大家 对程序设计、编程方法有了进一步提高,而且掌握了使用 C 语言动态内存分配及 数据结构等方面的知识。
淮南师范学院
课程设计报告
歌手比赛系统
姓 名:胡欢欢 学 号:09 专 业:计算机科学与技术 班 级: 10 级(1)班 指导教师:彭飞 职 称:XXX
2013 年 3 月 7 日
目录 1.引言 ............................................................................................................... 错误!未定义书签。 2.系统设计........................................................................................................ 错误!未定义书签。
printf("\n"); } break; case 5:printf("请输入要追加的选手数据:\n"); add += 1; scanf("%d %s",&a[add].num,&a[add].name); break; case 6:printf("将数据写入文件中:\n"); for (i = 0 ; i < add+1 ; i++) {
系统主要功能模块的运行效果图
程序的运行效果图:
4.设计体会
在本次的 C 语言实践中,让我受益匪浅,通过本次的实践,让更深入的了解了 C 语言这门计算机语言,也明白了软件开发的相关流程和基本步骤,也许我的程序
还存在些许问题,也许还不完美,但是我相信在以后的学习中我们会继改进的。 也希望老师可以给我们提出您的宝贵意见。
5.参考文献
编程入门网:程序设计(第四版)谭浩强著
6.源程序代码
#include<> #include<> #include<> #include<> #define N 3 #define M 10 int add = N-1; int sum[N]={0},Max[N],Min[N]; float aver[N]={0}; struct player {int num; char name[8]; int score[M];
1.摘要Hale Waihona Puke Baidu
C 语言是一门计算机高级语言,它在 Microsoft 开发的软件 Visual C++ 中 执行,C 语言具有很多优点:
语言具有丰富的数据类型,众多的运算符,体现结构化程序设计的优良控 制结构,具有抽象功能及体现信息隐蔽思想的函数。
语言的应用几乎遍及了程序的各个领域,如科学家,系统程序设计,字处 理软件和电子表格软件的开发,信息管理,计算机辅助设计,等方面。
(2)通过输入菜单项的序号启动相应模块的功能 ① 能够根据输入的选手人数创建链表; ② 录入 9 名评委给选手的打分,并存储到文件中; ③ 按照去掉一个最高分和去掉一个最低分的原则求每名选手的平
均分; ② 按平均分由高到低的顺序对选手进行排序; ③ 把排名后的数据存储到文件中; ④ 把原始数据和最终的结果输出到屏幕; ④ 在第②步中保存文件之前,可根据情况修改数据,例如:插入或
for(i=0;i<N;i++) printf("%s %\n",a[i].name,aver[i]); break; case 4:printf("你想查询选手的数据:"); scanf("%d",&m); for(i=0;i<N;i++) if(a[i].num==m) {
printf("%d 号选手%s 总分:%d,最高分%d,最低分%d,平均 分%",a[i].num,a[i].name,sum[i],Max[i],Min[i],aver[i]);
3.系统实现........................................................................................................ 错误!未定义书签。 各模块的功能及程序说明..................................................................... 错误!未定义书签。
程序结构................................................................................................. 错误!未定义书签。 程序划分........................................................................................... 错误!未定义书签。 程序结构流程图............................................................................. 错误!未定义书签。
Min[i]=a[i].score[0]; for(j=0;j<M;j++) { sum[i]+=a[i].score[j]; if(Max[i]<a[i].score[j]) Max[i]=a[i].score[j]; if(Min[i]>a[i].score[j]) Min[i]=a[i].score[j]; } aver[i]=(float)(sum[i]-Max[i]-Min[i])/(M-2); } sort(a,aver,N);
输入成绩
存储数据
输出数据
3.系统实现
各模块的功能及程序说明
创建链表:使用尾插法插入数据; 输入选手信息:包括选手信息的输入,选手成绩的输入,去掉一个最 高分和最低分,并将其余评委的评分求出平均值。 输出选手排名:包括选手成绩排名。 删除和插入选手信息:将退赛选手和新参加的比赛的选手进行删除和 插入。 主函数:将所有函数实现。