C语言程序课程设计-歌手比赛系统_第1页
C语言程序课程设计-歌手比赛系统_第2页
C语言程序课程设计-歌手比赛系统_第3页
C语言程序课程设计-歌手比赛系统_第4页
C语言程序课程设计-歌手比赛系统_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、淮南师范学院课程设计报告歌手比赛系统学 号:专 业:计算机科学与技术班级: 10 级(1 )班指导教师:职 称:XXX2013年3月7日目录 TOC o 1-5 h z 1.引言 1 HYPERLINK l bookmark8 o Current Document 2.系统设计12.1 设计分析1 HYPERLINK l bookmark10 o Current Document 2.1.1 项目描述12.2 程序结构2 HYPERLINK l bookmark12 o Current Document 2.2.1程序划分22.2.2 程序结构流程图3 HYPERLINK l bookmark

2、14 o Current Document 3.系统实现3 HYPERLINK l bookmark16 o Current Document 3.1 各模块的功能及程序说明3 HYPERLINK l bookmark18 o Current Document 3.2 系统主要功能模块的运行效果图3 HYPERLINK l bookmark20 o Current Document 4.设计体会6 HYPERLINK l bookmark22 o Current Document 5.参考文献7 HYPERLINK l bookmark26 o Current Document 6.源程序代码

3、71.摘要C语言是一门计算机高级语言,它在Microsoft开发的软件Visual C+ 6.0 中执行,C语言具有很多优点:C语言具有丰富的数据类型,众多的运算符,体现结构化程序设计的优良控制 结构,具有抽象功能及体现信息隐蔽思想的函数。C语言的应用几乎遍及了程序的各个领域,如科学家,系统程序设计,字处理 软件和电子表格软件的开发,信息管理,计算机辅助设计,等方面。C语言简洁,为完成某一功能所写的源程序代码往往比其他语言写得短,便利 程序输入工作量减少。4若程序员在书写过程时严格遵循ANSI C标准,则其源代码可不作修改,即可 用于各种型号的计算机和各种操作系统,因此,C语言具有良好的可移植

4、性。本次实践我们选择了使用C语言编写基于链表的程序,不仅使大家对程 序设计、编程方法有了进一步提高,而且掌握了使用C语言动态内存分配及数据 结构等方面的知识。系统设计2.1 设计分析2.1.1 项目描述1项目名称:歌手打分系统功能描述:(1)生成字符界面的功能菜单*1.输入选手数据*2.评委打分*3.成绩排序*4.数据查询*5.追加学生数据*6.写入数据文件*7.退出系统*(2)通过输入菜单项的序号启动相应模块的功能能够根据输入的选手人数创建链表;录入9名评委给选手的打分,并存储到文件singerOriginal.dat 中;按照去掉一个最高分和去掉一个最低分的原则求每名选手的平 均分;按平均

5、分由高到低的顺序对选手进行排序;把排名后的数据存储到文件singerFianl.dat中;把原始数据和最终的结果输出到屏幕;在第步中保存singerOriginal.dat文件之前,可根据情况修 改数据,例如:插入或删除歌手。2.2 程序结构2.2.1 程序划分将歌手打分系统程序进行系统模块划分,共分为九部分,分别是:定义结构体创建链表函数输入数据函数计算函数排序函数输出数据函数输出最终数据删除函数插入函数主函数2.2.2 程序结构流程图系统实现3.1 各模块的功能及程序说明创建链表:使用尾插法插入数据;输入选手信息:包括选手信息的输入,选手成绩的输入,去掉一个最 高分和最低分,并将其余评委的

6、评分求出平均值。输出选手排名:包括选手成绩排名。删除和插入选手信息:将退赛选手和新参加的比赛的选手进行删除和 插入。主函数:将所有函数实现。3.2系统主要功能模块的运行效果图程序的运行效果图:MX KXMMKMMXKMKX XMMX MMXX XKX M MMX MXMX KKMX KXMX KMMXKMKX KMMX MMXX XKX M XXX MXMX KKMK KXMX KMN JOCJOCWJOfNJtXN KJtJClOf X W NEK JtKJOt JtWJOCJOCXNJOC JOCJT)OfNJOCK JtK NIT JONJJOOCJ K )(1( JtWJOfJOCXN

7、 mt JOCJTJOf歸手评分索缢亠5.1 C ZT 2 EJL_q?1 i 手信甜订KF 亠5.1 C ZT 2 EJL_q?1 i 手信甜订KF 月 h妳歌输第姓编磁第第第第笫第第第策开人谙AAAAAAAAAAA入入3b31. LJ1 L、. ITT jTt .ITT rTr /FT ,m nu.,-Tn JTr 垂委委委委委委烝垂 评评评评评评评评评LH4 用 l-rpE4Hi4 刖 4Ri-=Bi4 用g 用.4 刊 刊严-SI.4 用 qHi-Rl -rL +4 - nu4-Jy 丄井丄# 4# 丄# H-=fr +=Tr +=1V 444-fr 丄井-F4r H-#卜主冃下士冃主

8、H主冃主冃主曰主冃主冃主冃土冃士冃冃主冃士冃 Mr PL i 1 -L _| -LT -L- i -L- L -L- i -L-谙输入第2个选手的信息匚请输人姓名霹彎贍评委扛分shijie唾 9 J033 9008 9.00 8 .0 8 .8.09 8.000 8.00chenqi9 .30f? 9 -03 10.15?,000 9.000 9.tl30 丄關-00诃 9 .t)30请输入操作扌&轨 TOC o 1-5 h z 雷入个人信息谙按 W 刪除TA.侣息请按 2- R+算成绩请按.wE十宣划E茗谙捋.“输出最终成综请按:“畀 片艮屮主*击“6歸倩输去闸乍指爲.JCXKJtJC 耳

9、XJCNJtNXXKKNJCMZHXKXKJCXHNXmKMZNXNHXKXNJCXHJtMZXXJCNJtNXXKKNJCMZHXKXKJCXHNXmKMZNXNHXJOtKJCXKZKJC 耳 XJCNJtNXJtKKNJCMZHXKJtKJCXHNXJOtMZNXNHJtKXNJCXHJtMZJtXJCNJtNXJtKKNJCMZHXKJtKJCXHNXJOtMZNXNHJtJOtK12341234卜算命击请痔: 输出最终成绪请拎:Ml j 141$: 请输风操作指令:3计算完成谙继纹操作:JCXKZKJC 耳 XJCNJtNXXKKNJCMZHXKXKJCXHNXmKMZNXNHXKX

10、NJCXHJtMZXXJCNJtNXXKKNJCMZKX JCXJCXJCKX 耳 MXMXKMKMXXMXMKKKXMMXKJCJCMXMMKMXMKXMXJCKXKMXMXKMKMXXJCX盾人个人信息请按: 册除仝人信息请按:諭出最终成绻请按: 迫出诸檢: 请输人操作指令 排序完成请继绩操作:XXKIMMIKXKKJCKXKXXKJCMIJCXXKKKXJCKXKJCMZKXKJCKXXKKXJCIMMIKXKKJCKXKXXKJCXJCX耳 KJtXKXJtMZJCNJCJtICXXKHNHJtXXXJtM:耳 KJOtXXKMZJCNJCJtICXXKMZHHHJtXXJtMZJtK

11、JOtXXKKM: XHKXHHX比XHXXXH買XKHKXXHHX址XHXXXHH比XHXXXHKX比HKHXXHX址XHXXXHHX比插人个从信息请扌”直=、删除佶息请;W计莫成绩请热V计算命念I请按;“4加输出最终成绩请按:退出请嬪:请输人操作指令;5下面输出最终成绩1名枚选手编号姓爭得分1 2clienqi9.2SG2 1sliij ie8.429输出完成!请継统操作kximxxxkmikkkimxxxkjckjcimxxxkmikxkjcxxxmikkkimxxxkmzkjckzkxxkmikxkjcxxxkm: kximxxxkmikkkimxxxkjckjcimxxxkmikxk

12、jcxxxmikkkimxxxkmzkjckzkxxkmikxkjcxxxkm:心人信息谙按;“ M隆个人信息请按;警 计篡5$绩谓垓: 汁蠶排台谙持: 命出最终成绩谙持:气“ 退出谙持:作匮输入摄作楷令:1诸輸入婪攜入厳歆羊的佶息请输入姓名:zhaoxitonff评娄的打分:8、TF *1评娄的打分:8、TF *1 人.U _LI- J V.一请输入第5宋谙继巔幣臥个人信息请按; 颱个人信息请按; 计蔓成综请芳; 计算却占谙均:出最鏤成缔谙持: 退岀诸扬:淸揃人换作指令:5 壬面揃出最终成结:名枝 选丰编号臥个人信息请按; 颱个人信息请按; 计蔓成综请芳; 计算却占谙均:出最鏤成缔谙持: 退

13、岀诸扬:淸揃人换作指令:5 壬面揃出最终成结:名枝 选丰编号1223Ill1234侖岀完成!请继续操作:姓名chenqi ahaoxi tong-得芬9.2S68.7144设计体会在本次的C语言实践中,让我受益匪浅,通过本次的实践,让更深入的了解了C语言这门计算机语言,也明白了软件开发的相关流程和基本步骤,也许我的程序 还存在些许问题,也许还不完美,但是我相信在以后的学习中我们会继改进的。 也希望老师可以给我们提出您的宝贵意见。5.参考文献编程入门网:C 程序设计(第四版)谭浩强著6.源程序代码#include#include#include#include#define N 3#define

14、 M 10int add = N-1;int sumN=0,MaxN,MinN;float averN=0;struct playerint num;char name8;int scoreM ;void Inistplayer(struct player a,int n) int i;for(i=0;in;i+)scanf(%d %s,&ai.num,&);void Inputscore(int score,int n)int i;for(i=0;in;i+) scorei=1+(int)10*rand()/(RAND_MAX+1);void sort(struct playe

15、r a,float b,int n)int i,k,j,t;float temp;char str8;for(i=0;in;i+)k=i; for(j=i+1;jbj) k=j;if(k!=i)temp=bi;bi=bk;bk=temp; strcpy(str,);strcpy(,);strcpy(,str);t=ai.num;ai.num=ak.num;ak.num=t;void main()int flag=1,n,i,m,j;FILE *fp;fp = fopen(data.txt,w+);struct player a20;pri

16、ntf (*1.输入选手数据*n);printf (*2.评委打分*n);printf (*3.成绩排序*n);printf (*4.数据查询*n);printf (*5.追加学生数据*n);printf (*6.写入数据文件*n);printf (*7.退出系统*n); while(flag)prin tf(你想进行的操作:); scanf(%d,&n);switch(n)case 1:Inistplayer(a,N);break;case 2:srand(unsigned)time(NULL);for(i=0;iN;i+)printf (%d位选手的成绩:,i+1);Inputscore(

17、ai.score,M);for(j=0;jM;j+)printf(%d ,ai.scorej); printf(n);break;case 3:for(i=0;iN;i+)Maxi=ai.score0;Mini=ai.score0;for(j=0;jM;j+)sumi+=ai.scorej;if(Maxiai.scorej) Mini=ai.scorej; averi=(float)(sumi-Maxi-Mini)/(M-2);sort(a,aver,N);case分%5casecasecase分%5casecaseprintf(%s %5.2fn,,averi);break;4

18、:prin tf(你想查询选手的数据:);scanf(%d,&m);for(i=0;iN;i+)if(ai.num=m)printf(%d号选手%s总分:d,最高分%d,最低分%d,平均 2f,ai.num,,sumi,Maxi,Mini,averi);printf(n);break;5:printf(请输入要追加的选手数据:n);add += 1;scanf(%d %s,&aadd.num,&);break;6:printf(将数据写入文件中:n);for (i = 0 ; i add+1 ; i+)fprintf(fp,%d ,ai.num);fprintf

19、(fp,%s ,);fprintf(fp,%dn,ai.score);break;case 7:exit(0);break;default:flag=0;程序2: #include #include #include #include /#define N 3 #define M 10 int add = N-1; int x=3;int sumN=0,MaxN,MinN; float averN=0;struct player int num; char name8; int scoreM; ;void Inistplayer(struct player a,int n) in

20、t i;for(i=0;in;i+) scanf(%d %s,&ai.num,&);void Inputscore(int score,int n) int i;for(i=0;in;i+) scorei=1+(int)10*rand()/(RAND_MAX+1); void sort(struct player a,float b,int n) int i,k,j,t;float temp; char str8; for(i=0;in;i+)k=i;for(j=i+1;jbj) k=j;if(k!=i) temp=bi;bi=bk; bk=temp; strcpy(str,ai

21、.name); strcpy(,); strcpy(,str); t=ai.num;ai.num=ak.num;ak.num=t;void main() int flag=1,n,i,m,j;FILE *fp;struct player a20; printf( printf( printf( printf(fp = fopen(data.txt,w+);struct player a20; printf( printf( printf( printf(*1 输入选手数据* n);*2 评委打分* n);*3 成绩排序*n);*4 数据杳询* n);

22、printf(*5 追加学牛数据*n); printf( *6 写入数据文件* n); printf( *7 退出系统* n) while(flag)printf(”你想进行的操作:”);scanf(%d,&n);switch(n)case l:Inistplayer(a,N);break;case 2:srand(unsigned)time(NULL);for(i=0;ix;i+)printf(”d位选手的成绩:,i+1); Inputscore(ai.score,M); for(j=0;jM;j+)printf(%d ,ai.scorej);printf(n); break;case 3:for(i=0;ix;i+)Maxi=ai.score0;Mini=ai.score0; for(j=0;jM;j+)sumi+=ai.scorej;if(Maxiai.scorej) Mini=ai.scorej; averi=(float)(sumi-Maxi-Mini)/(M-2); sort(a,aver,x);for(i=0;ix;i+) printf(%s %5.2fn,ai

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论