版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计课程设计课程设计报告题目:歌手成绩管理系统 学 院:计算机科学与技术学 号:20101202018姓 名:李芹芹指导老师:刘怀愚2011年9月23日 歌手成绩管理系统一、系统菜单及任务(1)系统菜单的主要功能(1)输入歌手信息(2)输出歌手信息(3)歌手成绩排序(4)记录歌手信息(5)保存歌手信息(6)添加歌手信息(7)删除歌手信息(8)退出系统(2)实现的任务:完成对歌手比赛信息的各种管理。歌手比赛系统 对一次歌手比赛的成绩进行管理,功能要求:1、输入每个选手的数据包括姓名、歌曲名、各评委的打分成绩,大众评委打分成绩,根据输入计算出总成绩。2、显示主菜单如下:1)输入信息 2)
2、显示信息 3)结果排序 4)保存信息 5)显示结果 6)退出系统。二、设计内容: 确定能表述歌手信息的数据结构,至少要有姓名、歌曲名、各评委打分、大众评委打分等信息,它是本程序的核心数据结构,定义为如下的结构体类型:struct Sing float P1; float P2;float AM;struct Singer int num; float sum; char singerName10; char singName120; char singName220; struct Sing singScore1; struct Sing singScore2;三、程序应具有以下基本功能:v
3、信息输入:输入每个选手的数据包括姓名、各首歌曲的歌曲名、各评委的打分成绩,大众评委打分成绩v 计算成绩:根据输入计算出各歌手的每首歌得分以及总得分。v 成绩排序:按歌手的最后得分v 保存结果:将结果保存在文本文件中。v 要求界面良好 四、主要流程图 程序各模块(输入,显示等)结构图:主要功能 输入歌手信息 输出歌手信息 歌手成绩排序 记录歌手信息 保存歌手信息 添加歌手信息 删除歌手信息 退出系统 五、系统测试程序进行实例如下1、显示主菜单界面:2、 选择1:运行界面如下6、 源程序及系统文件使用说明#include#include/*动态存储分配函数*/ #include/*字符函数和字符串
4、函数*/#include/*数学函数*/#define M 5int N;struct Sing/*歌曲信息结构体*/ float P1; float P2; float AM;struct Singer/*歌手信息结构体*/ int num; float sum; char singerName10; char singName120; char singName220; struct Sing singScore1; struct Sing singScore2;struct Singer Sin200;void print()printf(- - - - - - - - - - - -
5、- - - - - - - - - - - - - - - - - - - - - - - - - - - -n);printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n);printf( 欢迎进入歌手成绩管理系统 n);printf(- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -n);printf(* * * * * * * * * * * * * * * * *
6、 * * * * * * * * * * * * * * * * * * * * * * *n);void menu();void input()/*输入歌手信息*/ int i; for(i=0;i3;i+) printf(请输入歌手编号:); scanf(%d,&Sini.num ); printf(请输入歌手姓名:); scanf(%s,Sini.singerName ); printf(请输入歌曲1名称:); scanf(%s,Sini.singName1 ); printf(请输入歌曲1大众评委打分:); scanf(%f,&Sini.singScore1.P1); printf(请
7、输入歌曲1专业评委1打分:); scanf(%f,&Sini.singScore1.A0); printf(请输入歌曲1专业评委2打分:); scanf(%f,&Sini.singScore1.A1); printf(请输入歌曲1专业评委3打分:); scanf(%f,&Sini.singScore1.A2); printf(请输入歌曲1专业评委4打分:); scanf(%f,&Sini.singScore1.A3); printf(请输入歌曲1专业评委5打分:); scanf(%f,&Sini.singScore1.A4); printf(歌曲1专业评委打分为:); Sini.singSco
8、re1.P2=( Sini.singScore1.A0+ Sini.singScore1.A1+ Sini.singScore1.A2+ Sini.singScore1.A3+ Sini.singScore1.A4)/5; printf(%fn,Sini.singScore1.P2); printf(请输入歌曲2名称:); scanf(%s,Sini.singName2 ); printf(请输入歌曲2大众评委打分:); scanf(%f,&Sini.singScore2.P1); printf(请输入歌曲2专业评委1打分:); scanf(%f,&Sini.singScore2.A0); p
9、rintf(请输入歌曲2专业评委2打分:); scanf(%f,&Sini.singScore2.A1); printf(请输入歌曲2专业评委3打分:); scanf(%f,&Sini.singScore2.A2); printf(请输入歌曲2专业评委4打分:); scanf(%f,&Sini.singScore2.A3); printf(请输入歌曲2专业评委5打分:); scanf(%f,&Sini.singScore2.A4); printf(歌曲2专业评委打分为:); Sini.singScore2.P2=( Sini.singScore2.A0+ Sini.singScore2.A1+
10、 Sini.singScore2.A2+ Sini.singScore2.A3+ Sini.singScore2.A4)/5; printf(%fn,Sini.singScore2.P2); printf(该歌手的总成绩为:); Sini.sum = Sini.singScore1.P1+Sini.singScore1.P2+ Sini.singScore2.P1+Sini.singScore2.P2 ; printf(%lfn,Sini.sum); menu();void output()/*输出歌手信息*/ int i; printf(输出歌手信息是:n); for(i=0;i3;i+)p
11、rintf(编号 歌手 歌曲1 大众评委 专业评委 歌曲2 大众评委 专业评委 总分 :n); printf(%dt%4st%4st%4.2ft%6.2ft%6st%8.2ft%4.2ft%6.2ftn, Sini.num ,Sini.singerName, Sini.singName1, Sini.singScore1.P1,Sini.singScore1.P2, Sini.singName2, Sini.singScore2.P1,Sini.singScore2.P2, Sini.sum); menu();void sort()/*对歌手成绩进行排序*/ float t,d,e,g,h;
12、int i,j,m; char b10,c20,f20; for(j=0;j3;j+)for(i=0;iSini+1.sum ) t=Sini.sum ;Sini.sum =Sini+1.sum;Sini+1.sum =t;/*分数排序*/ m=Sini.num ; Sini.num =Sini+1.num ; Sini+1.num =m;/*编号排序*/ strcpy(b,Sini.singerName); strcpy(Sini.singerName,Sini+1.singerName); strcpy(Sini+1.singerName,b);/*名字复制替换进行名字排序*/ strcp
13、y(c,Sini.singName1); strcpy(Sini.singName1,Sini+1.singName1); strcpy(Sini.singName1,c);/*歌曲1名称排序*/ d=Sini.singScore1.P1; Sini.singScore1.P1=Sini+1.singScore1.P1; Sini+1.singScore1.P1=d;/*歌曲1大众评委打分的排序*/ e=Sini.singScore1.P2; Sini.singScore1.P2=Sini+1.singScore1.P2; Sini+1.singScore1.P2=e;/*歌曲1专业评委打分的
14、排序*/ strcpy(f,Sini.singName2); strcpy(Sini.singName2,Sini+1.singName2); strcpy(Sini+1.singName2,f);/*歌曲2名称的排序*/ g=Sini.singScore2.P1; Sini.singScore2.P1=Sini+1.singScore2.P1; Sini+1.singScore2.P1=g;/*歌曲2大众评委打分的排序*/ h=Sini.singScore2.P2; Sini.singScore2.P2=Sini+1.singScore2.P2; Sini+1.singScore2.P2=h
15、;/*歌曲2专业评委打分的排序*/printf(排序后的结果为:n);printf(编号 姓名 总成绩 :n);for(i=0;i3;i+)printf(%dt%st%lftn,Sini.num,Sini.singerName,Sini.sum);menu();void save()/*将歌手信息保存到文本文件中*/FILE *fp;int i;if(fp=fopen(f:lin,wb)=NULL)printf(cannot open filen); return;for(i=0;i200;i+) if(fwrite(&Sini,sizeof(struct Singer),1,fp)=1) p
16、rintf(文件写入错误n); break; fclose(fp);void WritetoText(int n)/*将所有记录写入文件*/ int i=0; FILE *fp;/*定义文件指针*/ char filename200; printf(将所有记录写入文件:n);/*输入文件名*/printf(输入文件名:n); scanf(%s,filename); if(fp=fopen(filename,a)=NULL)/*打开文件*/ printf(不能打开文件:n); system(pause); return;/*终止程序*/ fprintf(fp,%dn,n);/*循环写入数据*/f
17、printf(fp,编号 歌手 歌曲1 大众评委 专业评委 歌曲2 大众评委 专业评委 总分 :n);while(in) fprintf(fp,%dt%2st%2st%lft%lft%6st%lft%lft%lftn,Sini.num, Sini.singerName,Sini.singName1,Sini.singScore1.P1,Sini.singScore1.P2,Sini.singName2,Sini.singScore2.P1,Sini.singScore2.P2,Sini.sum);i+; fclose(fp);/*关闭文件*/printf(Successed!n);/返回成功信
18、息menu(); void Tianjia_a_record()/*添加函数*/int i,j;int a;printf(请输入一个歌手的编号:);scanf(%d,&a);for(i=0;iN;i+)if(a=Sini.num)/*两个整数进行比较*/printf(不能进行添加操作);j+;break;if(j=0)/*新添加的歌手编号与原歌手中没有相同的*/Sini.num=a;printf(歌手名:);scanf(%s,Sini.singerName);printf(歌曲1的名称:);scanf(%s,Sini.singName1); printf(歌曲1的大众评委打分:);scanf(
19、%f,&Sini.singScore1.P1);printf(歌曲1的专业评委1打分:);scanf(%f,&Sini.singScore1.A0);printf(歌曲1的专业评委2打分:);scanf(%f,&Sini.singScore1.A1);printf(歌曲1的专业评委3打分:);scanf(%f,&Sini.singScore1.A2);printf(歌曲1的专业评委4打分:);scanf(%f,&Sini.singScore1.A3);printf(歌曲1的专业评委5打分:);scanf(%f,&Sini.singScore1.A4);printf(歌曲1的专业评委打分:);s
20、canf(%f,&Sini.singScore1.P2);printf(歌曲2的名称:);scanf(%s,Sini.singName2); printf(歌曲2的大众评委打分:);scanf(%f,&Sini.singScore2.P1);printf(歌曲2的专业评委1打分:);scanf(%f,&Sini.singScore2.A0);printf(歌曲2的专业评委2打分:);scanf(%f,&Sini.singScore2.A1);printf(歌曲2的专业评委3打分:);scanf(%f,&Sini.singScore2.A2);printf(歌曲2的专业评委4打分:);scanf
21、(%f,&Sini.singScore2.A3);printf(歌曲2的专业评委5打分:);scanf(%f,&Sini.singScore2.A4);printf(歌曲2的专业评委打分:);scanf(%f,&Sini.singScore2.P2);printf(该歌手的总成绩:);scanf(&f,&Sini.sum);save(); N+;system(pause);void name_Delete() /*按照姓名删除歌手信息*/int i,j=0;char a20; printf(n输入一个歌手的姓名);scanf(%s,a); for(i=0;iN;i+)if(strcmp(Sin
22、i.singerName,a)=0)Sini.num=Sini+1.num;/*编号*/strcpy(Sini.singerName,Sini+1.singerName);/*歌手名*/strcpy(Sini.singName1,Sini+1.singName1);/*歌曲1名称*/ strcpy(Sini.singName2,Sini+1.singName2);/*歌曲2名称*/Sini.singScore1=Sini+1.singScore1;/*歌曲1得分*/Sini.singScore2=Sini+1.singScore2;/*歌曲2得分*/Sini.sum=Sini+1.sum;/*总得分*/printf(该歌手信息删除成功);N-;/j+;if(j=0)printf(系统中无该歌手信息);void dakai()/*定义打开函数*/F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国塑木制品市场销售策略及未来投资方向预测研究报告
- 基于真实情境的项目式学习案例开发与教学实践研究中期汇报
- 2025-2030纺织服装行业竞争格局与投资潜力评估发展分析报告
- 环保项目审批与验收指南
- 2025-2030纺织品印染行业市场供需分析及投资评估规划分析研究报告
- 2025-2030纯净水资源产业供需分析及投资布局方案评估报告
- 2025-2030磁悬浮列车行业市场供需分析及投资评估发展研究报告
- 智研咨询发布-2026年心脑血管药物行业现状、发展环境及深度分析报告
- 商业物业维修保养工作手册(标准版)
- 2026年山东农业工程学院公开招聘人员(80人)考试备考试题及答案解析
- 医院最小应急单元建设与实施方案
- 网络安全技术课件 第6章 Web应用安全
- 食堂操作人员培训
- 2025年春西师大版(2024)小学数学一年级下册教学计划
- 电影编剧教程 课件全套 第1-9章 编剧与造梦 -高潮与结局
- 企业如何管理95后00后的职员
- 危重患者的早期识别及处理原则
- 《材料分析方法概述》课件
- 房产档案室管理制度
- 企业反腐败与商业道德法律规范培训
- 征信修复服务合同
评论
0/150
提交评论