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

合集下载

歌手比赛系统c语言课程设计

歌手比赛系统c语言课程设计

歌手比赛系统 c语言课程设计一、教学目标本课程的目标是让学生掌握C语言的基本语法和编程技巧,通过歌手比赛系统的项目实践,培养学生解决实际问题的能力。

具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本数据类型、运算符、控制结构、函数等语法知识,了解面向对象编程的基本概念。

2.技能目标:学生能够运用C语言编写简单的程序,具备歌手比赛系统项目开发所需的基本技能。

3.情感态度价值观目标:学生在项目实践中培养团队合作意识,提高解决实际问题的能力,感受编程带来的成就感,培养对计算机科学的兴趣。

二、教学内容教学内容以歌手比赛系统项目为主线,涵盖C语言的基本语法和编程技巧。

具体安排如下:1.教材章节:第1-10章。

2.教学内容:–第1-4章:C语言基础知识,包括基本数据类型、运算符、控制结构等。

–第5-7章:函数、数组、指针,以及面向对象编程的基本概念。

–第8-10章:文件操作、动态内存分配、以及歌手比赛系统项目实践。

三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:用于讲解C语言的基本语法和编程技巧,帮助学生建立知识体系。

2.案例分析法:通过分析歌手比赛系统的实际案例,让学生了解项目开发的全过程,提高解决实际问题的能力。

3.实验法:学生动手编写代码,进行项目实践,培养实际编程能力。

四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:选用《C程序设计语言》作为主要教材,辅助以《C语言编程实践》等参考书。

2.多媒体资料:提供在线编程教程、视频讲座等,帮助学生更好地理解课程内容。

3.实验设备:计算机实验室,为学生提供编程实践的场所。

五、教学评估为了全面、客观地评估学生的学习成果,本课程采用多元化的评估方式,包括平时表现、作业、考试等。

具体评估方法如下:1.平时表现:考察学生在课堂上的参与程度、提问回答、团队合作等,占总评的20%。

2.作业:布置课后编程作业,让学生巩固课堂所学,占总评的30%。

c语言课程设计歌手成绩

c语言课程设计歌手成绩

c语言课程设计歌手成绩一、课程目标知识目标:1. 理解C语言中数组、函数和文件操作的基本概念和应用。

2. 学会使用C语言编写程序,实现歌手成绩的输入、存储、计算和输出。

3. 掌握结构体在C语言中的应用,用于表示歌手信息。

技能目标:1. 能够运用所学知识设计并实现一个歌手成绩管理系统。

2. 培养良好的编程习惯,编写出具有可读性和可维护性的代码。

3. 提高问题分析能力,学会用C语言解决实际问题。

情感态度价值观目标:1. 培养学生积极参与课堂讨论,主动思考问题的习惯。

2. 增强团队协作能力,学会与他人共同解决问题。

3. 激发学生对计算机编程的兴趣,提高学习积极性。

分析课程性质、学生特点和教学要求,将课程目标分解为以下具体学习成果:1. 学生能够独立完成C语言歌手成绩管理系统的设计。

2. 学生能够运用数组、函数、结构体等知识编写出功能完善的程序。

3. 学生在编程过程中注重代码规范,养成良好的编程习惯。

4. 学生在课程实践中积极参与讨论,与团队成员共同解决问题。

5. 学生通过本课程的学习,对计算机编程产生浓厚兴趣,为后续学习奠定基础。

二、教学内容根据课程目标,本章节教学内容主要包括以下几部分:1. C语言基础知识回顾:- 数据类型、变量、运算符- 控制语句(如if、for、while等)- 数组的使用2. 函数与模块化编程:- 函数的定义、调用和返回值- 递归函数- 模块化编程思想3. 结构体与文件操作:- 结构体的定义和使用- 文件读写操作- 结构体数组与文件操作结合4. 歌手成绩管理系统设计:- 需求分析- 功能模块划分- 数据存储结构设计5. 编程实践:- 输入、存储、计算和输出歌手成绩- 程序调试与优化- 编写相关文档教学大纲安排如下:1. 复习C语言基础知识(1课时)2. 函数与模块化编程(2课时)3. 结构体与文件操作(2课时)4. 歌手成绩管理系统设计(2课时)5. 编程实践(3课时)教学内容与教材关联性说明:本教学内容主要与教材中数组、函数、结构体、文件操作等章节相关。

C语言课程设计 歌手比赛系统

C语言课程设计 歌手比赛系统

XXXXX大学本科课程设计课程:C语言程序设计题目:歌手比赛系统学院:xxxxxxxxxx专业班级:xxxxxxx学号:xxxxxxxx学生姓名:xxxxxxx指导教师:庞茂群2011年10月15日目录1、引言·····································································2、系统设计·································································2.1、设计分析·····························································2.1.1、项目描述·······················································2.2、程序结构·····························································2.2.1、程序划分·······················································2.2.2、程序结构流程图·················································3、系统实现·································································3.1、各模块的功能及程序说明···············································3.2、系统各模块的运行效果图···············································4、设计体会·································································5、参考文献·········································6、系统完整源程序···························································引言C语言是一门计算机高级语言,它在Microsoft开发的软件Visual C++ 6.0中执行,C语言具有很多优点:1.C语言具有丰富的数据类型,众多的运算符,体现结构化程序设计的优良控制结构,具有抽象功能及体现信息隐蔽思想的函数。

歌手比赛系统c语言课程设计

歌手比赛系统c语言课程设计

歌手比赛系统c语言课程设计一、课程目标知识目标:1. 掌握C语言的基本语法,包括变量声明、数据类型、运算符、控制结构等;2. 学会使用C语言进行数组、函数、指针的操作;3. 了解结构体和文件在C语言中的应用,并能应用于歌手比赛系统的设计;4. 掌握C语言编程规范,养成良好的编程习惯。

技能目标:1. 能够运用所学知识,独立设计并实现一个歌手比赛系统的基本功能;2. 学会使用C语言进行问题分析、程序设计和调试;3. 提高学生的逻辑思维能力和解决问题的能力;4. 培养学生的团队协作能力和沟通能力。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动学习的热情;2. 培养学生面对困难时的坚持和毅力,树立克服困难的信心;3. 引导学生认识到编程对于解决实际问题的意义,提高社会责任感;4. 强调诚信、公正、合作的价值观念,培养学生的职业道德。

本课程针对高年级学生,结合C语言课程特点,注重理论与实践相结合,通过歌手比赛系统课程设计,使学生在巩固C语言知识的基础上,提高实际编程能力和综合运用能力。

课程目标旨在培养学生的编程素养,提升其运用计算机技术解决实际问题的能力,同时注重情感态度价值观的引导,为学生未来的学习和工作奠定坚实基础。

二、教学内容1. C语言基础回顾:变量、数据类型、运算符、控制结构(选择、循环);2. 数组与函数:一维数组、二维数组、函数定义、调用、传参;3. 指针与内存管理:指针的概念、指针操作、动态内存分配;4. 结构体与文件操作:结构体定义、结构体数组、文件读写;5. 歌手比赛系统设计:需求分析、功能模块划分、数据结构设计;6. 系统实现:编写程序代码,实现歌手比赛系统的各项功能;7. 系统测试与调试:测试用例设计、系统测试、错误调试;8. 编程规范与团队协作:代码规范、文档编写、团队分工与协作。

教学内容依据课程目标,结合教材相关章节,制定以下教学大纲:1. 复习C语言基础知识,为期2周;2. 数组与函数教学,为期2周;3. 指针与内存管理教学,为期2周;4. 结构体与文件操作教学,为期2周;5. 歌手比赛系统设计,为期1周;6. 系统实现,为期4周;7. 系统测试与调试,为期1周;8. 编程规范与团队协作,贯穿整个教学过程。

11-歌手比赛计分系统

11-歌手比赛计分系统

合肥学院计算机科学与技术系课程设计任务书20 ~20 学年第学期课程C语言课程设计课程设计名称歌手比赛计分系统专业班级指导教师20 年月一、课程设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。

通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《C语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。

(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。

(3)利用所学知识,开发小型应用系统,掌握运用C语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。

(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。

(5)掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法。

(6)熟练掌握C语言的基本语法,灵活运用各种数据类型。

(7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。

二、课程设计名称及内容课程设计名称:歌手比赛计分系统设计内容:设计一个歌手比赛计分系统,要求对一次歌手比赛的成绩进行计算和管理。

三、任务和要求设计一个歌手比赛系统,要求输入每个选手的数据,包括编号、姓名和十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。

四、设计方案提示(1)界面系统以菜单方式工作(2)输入数据并存入文件使用到结构体变量和动态链表,由程序提醒用户输入选手数据。

对输入的信息进行合法性判断,直到输入正确为止。

都输入完成后,调用写文件函数对指定的文件进行写操作,把输入的信息写入到文件中。

(3)显示所有记录显示主菜单如下:1)输入选手数据2)评委打分3)成绩排序(按平均分)4)数据查询5)追加选手数据6)写入数据文件7)退出系统。

c课程设计歌手打分系统

c课程设计歌手打分系统

c 课程设计歌手打分系统一、教学目标本课程旨在让学生掌握歌手打分系统的基本原理和实现方法,通过学习,学生能够了解音乐评分系统的运作机制,掌握评分算法,并能够运用所学知识设计和实现一个简单的歌手打分系统。

1.理解音乐评分系统的原理和构成。

2.掌握歌手打分的主要算法。

3.熟悉歌手打分系统的实现方法。

4.能够运用所学知识分析和解决音乐评分相关问题。

5.能够设计和实现一个简单的歌手打分系统。

情感态度价值观目标:1.培养学生对音乐的热爱和鉴赏能力。

2.培养学生独立思考和解决问题的能力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.音乐评分系统的原理和构成:介绍音乐评分系统的起源和发展,讲解评分系统的核心组件和运作机制。

2.歌手打分算法:讲解常用的歌手打分算法,包括音高准确性、节奏准确性、音色相似度等方面的评估方法。

3.歌手打分系统实现:介绍如何利用编程语言和数据库技术实现一个简单的歌手打分系统。

4.案例分析:分析现实中典型的歌手打分系统,让学生了解实际应用中的系统设计和优化方法。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:讲解音乐评分系统的原理、歌手打分算法和系统实现方法。

2.案例分析法:分析现实中的歌手打分系统案例,让学生了解实际应用中的系统设计和优化方法。

3.实验法:让学生动手设计和实现一个简单的歌手打分系统,提高学生的实际操作能力。

4.讨论法:学生进行小组讨论,分享学习心得和解决问题的方法。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:提供相关的教材和参考书籍,供学生自学和复习。

2.多媒体资料:提供视频、音频等多媒体资料,帮助学生更好地理解音乐评分系统的原理和应用。

3.实验设备:提供计算机、音响等实验设备,让学生能够动手实践,设计和实现歌手打分系统。

4.网络资源:引导学生利用网络资源,了解最新的音乐评分系统和歌手打分技术。

五、教学评估本课程的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。

C语言实现歌手大奖赛计分程序

C语言实现歌手大奖赛计分程序

C语⾔实现歌⼿⼤奖赛计分程序本⽂实例为⼤家分享了C语⾔实现歌⼿⼤奖赛计分程序的具体代码,供⼤家参考,具体内容如下1. 题⽬描述编写⼀个程序,⽤户输⼊评委⼈数和分数后,程序可以计算去掉⼀个最⾼分和最低分后的平均成绩。

可多次输⼊选⼿成绩,输⼊N时退出程序。

2. 源代码#include <stdio.h>#include <stdlib.h>float score[99];//成绩数据int num=0;//评委数⽬float sum=0;//总分//输⼊打分数据并输出结果void inputSc(){if(num==0){printf("请您输⼊评委数⽬:");scanf("%d",&num);}int i=0;printf("请您输⼊%d位评委评分:\n",num);for(i=0;i<num;i++){scanf("%f",&score[i]);}//去掉最⾼分和最低分avoidMax(score);//输出结果printf("平均分:%.2f\n",sum/num);//恢复数⽬if(num>2){num = num+2;}}//成绩处理模块void avoidMax(float *score){int i=0;float max=*score,min=*score;//寻找最⾼分、最低分for(i=0;i<num;i++){if(*(score+i)>max)max = *(score+i);else if(*(score+i)<min);min = *(score+i);}//将最⾼分、最低分设置为0for(i=0;i<num;i++){if(num>2){if(*(score+i)==max || *(score+i)==min){*(score+i) = 0;}}sum += *(score+i);}if(num>2){num = num-2;}}//主函数int main(){char key;while(key!='N'&&key!='n'){inputSc();printf("按任意键继续下⼀选⼿成绩计算,退出请选择N:");fflush(stdin);key = getchar();}return 0;}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

c语言课程设计歌手比赛系统

c语言课程设计歌手比赛系统

c语言课程设计歌手比赛系统一、教学目标本课程的目标是让学生掌握C语言的基本语法和编程技巧,学会使用C语言设计简单的歌手比赛系统。

通过本课程的学习,学生应达到以下知识目标:1.理解C语言的基本语法和数据类型。

2.掌握C语言的运算符和表达式。

3.学会使用C语言进行流程控制和函数调用。

4.掌握C语言的文件操作和字符串处理。

5.能够使用C语言编写简单的程序。

6.能够独立思考和解决编程问题。

7.能够协作完成项目任务。

情感态度价值观目标:1.培养学生的编程兴趣,提高学生的自主学习能力。

2.培养学生团队合作意识和沟通能力。

3.培养学生面对挑战、解决问题的勇气和决心。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、流程控制、函数、文件操作和字符串处理等。

具体安排如下:1.第1-2周:C语言基本语法和数据类型。

2.第3-4周:运算符和表达式。

3.第5-6周:流程控制。

4.第7-8周:函数。

5.第9-10周:文件操作和字符串处理。

三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。

在教学过程中,教师将讲解C语言的基本概念和语法,通过案例分析让学生掌握编程技巧,并通过实验环节让学生动手实践,巩固所学知识。

同时,鼓励学生参与讨论,提高学生的主动性和积极性。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。

教材选用《C程序设计语言》作为主教材,参考书包括《C语言编程入门》等。

多媒体资料包括教学PPT、视频教程等。

实验设备包括计算机、网络设备等,以支持学生动手实践和协作完成项目任务。

五、教学评估本课程的评估方式包括平时表现、作业、考试等。

平时表现主要评估学生的课堂参与度、提问回答等情况,占总评的20%。

作业分为编程作业和实践项目,占总评的30%。

考试分为期中和期末考试,占总评的50%。

平时表现评估:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和积极性。

C语言课程设计-歌手比赛系统

C语言课程设计-歌手比赛系统

C语言课程设计-歌手比赛系统
C语言歌手比赛系统是一款能够方便评委对歌手参赛作品进行打分的软件系统。

它采
用C语言作为开发语言,利用结构化编程的编码思想,结合界面处理技术,将模块间的复
杂关系归纳到一个明确的思路,利用控制台输入输出的技术让评委对参赛者作品进行评分。

首先,基于C语言,编写各个模块函数,完成参赛方的登记功能,同时具备查看、修改、删除等功能,以及保存所有参赛歌手的相关信息,如性别、歌手名称、介绍、歌曲名称、作品类型等;
其次,通过编写算法程序,对评委对歌手的打分情况进行总结,统计个每位参赛者的
总得分,最终以此来确定参赛歌手的获奖名次;
最后,基于C语言,编写出控制台处理界面,让评委在电脑上使用控制台输入输出操作,进行比赛打分,这样可以节省评委的纸笔式打分时间,提高速度和效率。

总之,C语言歌手比赛系统可以实现参赛歌手信息的记录、评委打分以及获奖者的记录,采用面向对象的编程理念,提高了比赛系统的可靠性与性能,极大地丰富了评委的体验,提升了比赛的效率。

歌手大赛系统c语言课程设计

歌手大赛系统c语言课程设计

歌手大赛系统c语言课程设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构、算法及面向对象编程思想,能够运用C语言设计简单的歌手大赛系统。

具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针、结构体等基本知识,了解面向对象编程的基本概念和方法。

2.技能目标:学生能够熟练使用C语言进行程序设计,具备独立分析问题、解决问题的能力,能够运用C语言设计并实现歌手大赛系统的功能。

3.情感态度价值观目标:通过本课程的学习,使学生培养对计算机编程的兴趣和热情,提高动手实践能力,培养良好的团队合作精神和创新意识。

二、教学内容教学内容主要包括C语言的基本语法、数据结构、算法及面向对象编程思想,具体安排如下:1.C语言基本语法:介绍C语言的数据类型、运算符、控制结构、函数等基本知识。

2.数据结构:讲解数组、指针、结构体等数据结构的基本概念和应用。

3.算法:学习排序、查找等基本算法,培养学生解决问题的能力。

4.面向对象编程:介绍面向对象编程的基本概念和方法,如类、对象、封装、继承等。

5.歌手大赛系统设计:结合所学知识,分组设计并实现一个简单的歌手大赛系统,包括选手报名、比赛评分、成绩统计等功能。

三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:用于讲解C语言的基本语法、数据结构、算法及面向对象编程思想。

2.案例分析法:通过分析实际案例,使学生更好地理解和掌握所学知识。

3.实验法:安排实验课程,让学生动手实践,培养实际编程能力。

四、教学资源教学资源包括教材、参考书、多媒体资料、实验设备等,以支持教学内容和教学方法的实施,丰富学生的学习体验。

1.教材:《C语言程序设计》等。

2.参考书:《C Primer Plus》、《C和指针》等。

3.多媒体资料:教学PPT、视频教程等。

4.实验设备:计算机、编程软件等。

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

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

沈阳航空航天大学课程设计任务书学院:专业:班级:学号:题目:唱歌比赛评委评分系统一、课程设计时间二、课程设计内容参加唱歌比赛3位选手的名称和出场顺序存放在文件file22.txt中;评委共有7个。

每当一个选手表演之后,7个评委都分别评分(0~10分),而选手的最终得分计算规则为:去掉7个评分的最高和最低分,取剩下5个评分的平均值。

程序最后打印出3位选手的成绩。

三、课程设计要求程序质量:✧贯彻结构化的程序设计思想。

✧用户界面友好,功能明确,操作方便。

✧用户界面中的菜单至少应包括“读取并显示选手名单”、“表演与评分”、“打印最后成绩”、“退出”4项。

✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。

课程设计说明书:✧课程结束后,上交课程设计说明书和源程序。

课程设计说明书的内容参见提供的模板。

四、指导教师和学生签字指导教师:________ 学生签名:________五、成绩六、教师评语目录一、需求分析 (1)二、设计分析 (2)三、主要界面截图 (4)四、技术要点 (9)五、个人总结 (14)六、参考文献 (15)七、源程序 (15)一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。

该系统是一个分数录入以及评定系统,其使用者被假定为某歌唱比赛的管理人员,系统应该具有安全、稳定、功能齐全的特点。

1. 安全性分析系统管理的数据涉及到参赛的所有选手,为防止他人恶意修改,所以在进入评分系统前有密码程序,只有掌握了正确的密码才能进入程序进行各项操作。

2. 稳定性分析指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。

3. 主要功能分析(1)密码程序:在程序尾端设置好密码,只有掌握密码的管理员才能进入程序进行成绩录入,修改等操作,避免信息被他人修改,造成比赛不公(2)菜单:有一个功能强大又清晰明了的菜单能极大程度方便管理员的操作(3)数据输入:在每个输入前都有详细分类和提示,简单明了,根据提示输入参赛选手号数,姓名,各个评委打分成绩(4)数据保存:对于输入的数据,或被修改的数据应该保存到某个磁盘文件中,实现永久存储。

C语言程序课程设计—歌手比赛系统

C语言程序课程设计—歌手比赛系统

淮南师范学院课程设计报告歌手比赛系统姓名:胡欢欢学号:1008010109专业:计算机科学与技术班级:10级〔1〕班指导教师:彭飞职称:XXX2021年3月7日目录1.引言 (1)2.系统设计 (1)设计分析 (1)2.1.1 工程描述 (1)2.2 程序构造 (2)程序划分 (2)2.2.2 程序构造流程图 (3)3.系统实现 (3)3.1 各模块的功能及程序说明 (3)系统主要功能模块的运行效果图 (3)4.设计体会 (6)5.参考文献 (7)6.源程序代码 (7)1.摘要C语言是一门计算机高级语言,它在Microsoft开发的软件Visual C++ 6.0中执行,C语言具有很多优点:1.C语言具有丰富的数据类型,众多的运算符,表达构造化程序设计的优良控制构造,具有抽象功能及表达信息隐蔽思想的函数。

2.C语言的应用几乎普及了程序的各个领域,如科学家,系统程序设计,字处理软件和电子表格软件的开发,信息管理,计算机辅助设计,等方面。

3.C语言简洁,为完成某一功能所写的源程序代码往往比其他语言写得短,便利程序输入工作量减少。

4.假设程序员在书写过程时严格遵循ANSI C标准,那么其源代码可不作修改,即可用于各种型号的计算机和各种操作系统,因此,C语言具有良好的可移植性。

本次实践我们选择了使用C语言编写基于链表的程序,不仅使大家对程序设计、编程方法有了进一步提高,而且掌握了使用C语言动态内存分配及数据构造等方面的知识。

2.1.1 工程描述1.工程名称:歌手打分系统2.功能描述:〔1〕生成字符界面的功能菜单**********1.输入选手数据********************2.评委打分************************3.成绩排序************************4.数据查询************************5.追加学生数据********************6.写入数据文件********************7.退出系统**************(2)通过输入菜单项的序号启动相应模块的功能①能够根据输入的选手人数创立链表;②录入9名评委给选手的打分,并存储到文件singerOriginal.dat中;③按照去掉一个最高分和去掉一个最低分的原那么求每名选手的平均分;②按平均分由高到低的顺序对选手进展排序;③把排名后的数据存储到文件singerFianl.dat中;④把原始数据和最终的结果输出到屏幕;④在第②步中保存singerOriginal.dat文件之前,可根据情况修改数据,例如:插入或删除歌手。

C语言程序课程设计—歌手比赛系统

C语言程序课程设计—歌手比赛系统

C语言程序课程设计—歌手比赛系统C语言程序课程设计——歌手比赛系统一、引言随着计算机技术的不断发展,计算机应用越来越广泛,其中,音乐类比赛系统的需求也日益增长。

为了满足这一需求,我们设计了一个基于C语言的歌手比赛系统。

本文将详细介绍该系统的设计思路、实现方法以及特色功能。

二、系统设计1、功能设计本系统主要功能包括:选手信息管理、比赛流程管理、评委评分管理、得分统计与排名、现场大屏幕显示等。

通过这些功能,确保歌手比赛的公平、公正与高效。

2、模块设计根据系统功能,我们将系统分为以下几个模块:(1)选手信息模块:管理参赛选手的基本信息,包括姓名、性别、年龄、所属单位等。

(2)比赛流程模块:管理比赛流程,包括比赛时间、比赛地点、比赛轮次、每轮选手名单等。

(3)评委评分模块:管理评委评分,包括评分标准、评委评分、评分统计等。

(4)得分统计与排名模块:根据评委评分统计选手得分,并根据得分进行排名。

(5)现场大屏幕显示模块:将比赛进程、选手得分与排名等信息实时展示在大屏幕上,方便现场观众查看。

3、数据库设计为了存储和处理选手信息、比赛流程、评委评分等数据,我们设计了一个关系型数据库。

主要表格包括:选手信息表、比赛流程表、评委评分表、得分排名表等。

三、系统实现1、界面设计系统界面采用简洁明了的风格,以方便用户操作。

界面包括:选手信息展示区、比赛流程展示区、评委评分展示区、得分排名展示区、大屏幕显示控制区等。

2、功能实现(1)选手信息管理:实现添加、修改、删除选手信息等功能。

(2)比赛流程管理:实现添加、修改、删除比赛流程等功能。

(3)评委评分管理:实现评委对选手的评分、评分修改、评分提交等功能。

(4)得分统计与排名:根据评委评分统计选手得分,并根据得分进行排名,生成得分排名表。

(5)现场大屏幕显示:通过与大屏幕显示设备的通信,实时展示比赛进程、选手得分与排名等信息。

四、特色功能1、实时更新功能:系统能够根据比赛进程实时更新选手信息、比赛流程、评委评分等内容,确保信息的准确性。

C语言程序设计课程设计--歌手成绩管理系统

C语言程序设计课程设计--歌手成绩管理系统

《C语言程序设计课程设计》课程设计报告题目:歌手成绩管理系统学院:计算机科学与技术歌手成绩管理系统一、系统菜单及任务(1)系统菜单的主要功能(1)输入歌手信息(2)输出歌手信息(3)歌手成绩排序(4)记录歌手信息(5)保存歌手信息(6)添加歌手信息(7)删除歌手信息(8)退出系统(2)实现的任务:完成对歌手比赛信息的各种管理。

歌手比赛系统对一次歌手比赛的成绩进行管理,功能要求:1、输入每个选手的数据包括姓名、歌曲名、各评委的打分成绩,大众评委打分成绩,根据输入计算出总成绩。

2、显示主菜单如下:1)输入信息2)显示信息3)结果排序4)保存信息5)显示结果6)退出系统。

二、设计内容:确定能表述歌手信息的数据结构,至少要有姓名、歌曲名、各评委打分、大众评委打分等信息,它是本程序的核心数据结构,定义为如下的结构体类型:struct Sing{float P1;float P2;float A[M];};struct Singer{int num;float sum;char singerName[10];char singName1[20];char singName2[20];struct Sing singScore1;struct Sing singScore2;};三、程序应具有以下基本功能:❖信息输入:输入每个选手的数据包括姓名、各首歌曲的歌曲名、各评委的打分成绩,大众评委打分成绩❖计算成绩:根据输入计算出各歌手的每首歌得分以及总得分。

❖成绩排序:按歌手的最后得分❖保存结果:将结果保存在文本文件中。

❖要求界面良好四、主要流程图程序各模块(输入,显示等)结构图:五、系统测试程序进行实例如下1、显示主菜单界面:主要功能输入歌手信息输出歌手信息歌手成绩排序记录歌手信息保存歌手信息添加歌手信息删除歌手信息退出系统2、选择1:运行界面如下六、源程序及系统文件使用说明#include<stdio.h>#include<stdlib.h>/*动态存储分配函数*/#include<string.h>/*字符函数和字符串函数*/ #include<math.h>/*数学函数*/#define M 5int N;struct Sing/*歌曲信息结构体*/{float P1;float P2;float A[M];};struct Singer/*歌手信息结构体*/{int num;float sum;char singerName[10];char singName1[20];char singName2[20];struct Sing singScore1;struct Sing singScore2;};struct Singer Sin[200];void print(){printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf(" 欢迎进入歌手成绩管理系统\n");printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");}void menu();void input()/*输入歌手信息*/{int i;for(i=0;i<3;i++){printf("请输入歌手编号:");scanf("%d",&Sin[i].num );printf("请输入歌手姓名:");scanf("%s",Sin[i].singerName );printf("请输入歌曲1名称:");scanf("%s",Sin[i].singName1 );printf("请输入歌曲1大众评委打分:");scanf("%f",&Sin[i].singScore1.P1);printf("请输入歌曲1专业评委1打分:");scanf("%f",&Sin[i].singScore1.A[0]);printf("请输入歌曲1专业评委2打分:");scanf("%f",&Sin[i].singScore1.A[1]);printf("请输入歌曲1专业评委3打分:"); scanf("%f",&Sin[i].singScore1.A[2]);printf("请输入歌曲1专业评委4打分:"); scanf("%f",&Sin[i].singScore1.A[3]);printf("请输入歌曲1专业评委5打分:"); scanf("%f",&Sin[i].singScore1.A[4]);printf("歌曲1专业评委打分为:");Sin[i].singScore1.P2=(Sin[i].singScore1.A[0]+Sin[i].singScore1.A[1]+Sin[i].singScore1.A[2]+Sin[i].singScore1.A[3]+Sin[i].singScore1.A[4])/5;printf("%f\n",Sin[i].singScore1.P2);printf("请输入歌曲2名称:");scanf("%s",Sin[i].singName2 );printf("请输入歌曲2大众评委打分:");scanf("%f",&Sin[i].singScore2.P1);printf("请输入歌曲2专业评委1打分:"); scanf("%f",&Sin[i].singScore2.A[0]);printf("请输入歌曲2专业评委2打分:"); scanf("%f",&Sin[i].singScore2.A[1]);printf("请输入歌曲2专业评委3打分:"); scanf("%f",&Sin[i].singScore2.A[2]);printf("请输入歌曲2专业评委4打分:"); scanf("%f",&Sin[i].singScore2.A[3]);printf("请输入歌曲2专业评委5打分:"); scanf("%f",&Sin[i].singScore2.A[4]);printf("歌曲2专业评委打分为:");Sin[i].singScore2.P2=(Sin[i].singScore2.A[0]+Sin[i].singScore2.A[1]+Sin[i].singScore2.A[2]+Sin[i].singScore2.A[3]+Sin[i].singScore2.A[4])/5;printf("%f\n",Sin[i].singScore2.P2);printf("该歌手的总成绩为:");Sin[i].sum = Sin[i].singScore1.P1+Sin[i].singScore1.P2+Sin[i].singScore2.P1+Sin[i].singScore2.P2 ;printf("%lf\n",Sin[i].sum);}menu();}void output()/*输出歌手信息*/{int i;printf("输出歌手信息是:\n");for(i=0;i<3;i++){printf("编号歌手歌曲1 大众评委专业评委歌曲2 大众评委专业评委总分:\n");printf("%d\t%4s\t%4s\t%4.2f\t%6.2f\t%6s\t%8.2f\t%4.2f\t%6.2f\t\n",Sin[i].num ,Sin[i].singerName,Sin[i].singName1,Sin[i].singScore1.P1,Sin[i].singScore1.P2,Sin[i].singName2,Sin[i].singScore2.P1,Sin[i].singScore2.P2,Sin[i].sum);}menu();}void sort()/*对歌手成绩进行排序*/{float t,d,e,g,h;int i,j,m;char b[10],c[20],f[20];for(j=0;j<3;j++)for(i=0;i<2-j;i++)if(Sin[i].sum>Sin[i+1].sum ){t=Sin[i].sum ;Sin[i].sum =Sin[i+1].sum;Sin[i+1].sum =t;/*分数排序*/m=Sin[i].num ;Sin[i].num =Sin[i+1].num ;Sin[i+1].num =m;/*编号排序*/strcpy(b,Sin[i].singerName);strcpy(Sin[i].singerName,Sin[i+1].singerName);strcpy(Sin[i+1].singerName,b);/*名字复制替换进行名字排序*/strcpy(c,Sin[i].singName1);strcpy(Sin[i].singName1,Sin[i+1].singName1);strcpy(Sin[i].singName1,c);/*歌曲1名称排序*/d=Sin[i].singScore1.P1;Sin[i].singScore1.P1=Sin[i+1].singScore1.P1;Sin[i+1].singScore1.P1=d;/*歌曲1大众评委打分的排序*/e=Sin[i].singScore1.P2;Sin[i].singScore1.P2=Sin[i+1].singScore1.P2;Sin[i+1].singScore1.P2=e;/*歌曲1专业评委打分的排序strcpy(f,Sin[i].singName2);strcpy(Sin[i].singName2,Sin[i+1].singName2);strcpy(Sin[i+1].singName2,f);/*歌曲2名称的排序*/g=Sin[i].singScore2.P1;Sin[i].singScore2.P1=Sin[i+1].singScore2.P1;Sin[i+1].singScore2.P1=g;/*歌曲2大众评委打分的排序*/h=Sin[i].singScore2.P2;Sin[i].singScore2.P2=Sin[i+1].singScore2.P2;Sin[i+1].singScore2.P2=h;/*歌曲2专业评委打分的排序*/}printf("排序后的结果为:\n");printf("编号姓名总成绩:\n");for(i=0;i<3;i++)printf("%d\t%s\t%lf\t\n",Sin[i].num,Sin[i].singerName,Sin[i].sum);menu();}void save()/*将歌手信息保存到文本文件中*/{FILE *fp;int i;if((fp=fopen("f:\\lin","wb"))==NULL){printf("cannot open file\n");return;}for(i=0;i<200;i++)if(fwrite(&Sin[i],sizeof(struct Singer),1,fp)==1){printf("文件写入错误\n");break;}fclose(fp);}void WritetoText(int n)/*将所有记录写入文件*/{int i=0;FILE *fp;/*定义文件指针*/char filename[200];printf("将所有记录写入文件:\n");/*输入文件名*/printf("输入文件名:\n");scanf("%s",filename);if((fp=fopen(filename,"a"))==NULL)/*打开文件*/{printf("不能打开文件:\n");system("pause");return;/*终止程序*/}fprintf(fp,"%d\n",n);/*循环写入数据*/fprintf(fp,"编号歌手歌曲1 大众评委专业评委歌曲2 大众评委专业评委总分:\n");while(i<n){fprintf(fp,"%d\t%2s\t%2s\t%lf\t%lf\t%6s\t%lf\t%lf\t%lf\t\n", Sin[i].num, Sin[i].singerName,Sin[i].singName1,Sin[i].singScore1.P1,Sin[i].singScore1.P2,Sin[i].singName2,Sin[i].singScore2.P1,Sin[i].singScore2.P2,Sin[i].sum);i++;}fclose(fp);/*关闭文件*/printf("Successed!\n");//返回成功信息menu();}void Tianjia_a_record()/*添加函数*/{int i,j;int a;printf("请输入一个歌手的编号:");scanf("%d",&a);for(i=0;i<N;i++)if(a==Sin[i].num)/*两个整数进行比较*/{printf("不能进行添加操作");j++;break;}if(j==0)/*新添加的歌手编号与原歌手中没有相同的*/ {Sin[i].num=a;printf("歌手名:");scanf("%s",Sin[i].singerName);printf("歌曲1的名称:");scanf("%s",Sin[i].singName1);printf("歌曲1的大众评委打分:");scanf("%f",&Sin[i].singScore1.P1);printf("歌曲1的专业评委1打分:");scanf("%f",&Sin[i].singScore1.A[0]);printf("歌曲1的专业评委2打分:");scanf("%f",&Sin[i].singScore1.A[1]);printf("歌曲1的专业评委3打分:");scanf("%f",&Sin[i].singScore1.A[2]);printf("歌曲1的专业评委4打分:");scanf("%f",&Sin[i].singScore1.A[3]);printf("歌曲1的专业评委5打分:");scanf("%f",&Sin[i].singScore1.A[4]);printf("歌曲1的专业评委打分:"); scanf("%f",&Sin[i].singScore1.P2);printf("歌曲2的名称:");scanf("%s",Sin[i].singName2);printf("歌曲2的大众评委打分:"); scanf("%f",&Sin[i].singScore2.P1); printf("歌曲2的专业评委1打分:"); scanf("%f",&Sin[i].singScore2.A[0]); printf("歌曲2的专业评委2打分:"); scanf("%f",&Sin[i].singScore2.A[1]);printf("歌曲2的专业评委3打分:"); scanf("%f",&Sin[i].singScore2.A[2]); printf("歌曲2的专业评委4打分:"); scanf("%f",&Sin[i].singScore2.A[3]);printf("歌曲2的专业评委5打分:"); scanf("%f",&Sin[i].singScore2.A[4]); printf("歌曲2的专业评委打分:"); scanf("%f",&Sin[i].singScore2.P2);printf("该歌手的总成绩:");scanf("&f",&Sin[i].sum);save();N++;system("pause");}}void name_Delete() /*按照姓名删除歌手信息*/{int i,j=0;char a[20];printf("\n输入一个歌手的姓名");scanf("%s",a);for(i=0;i<N;i++)if(strcmp(Sin[i].singerName,a)==0){Sin[i].num=Sin[i+1].num;/*编号*/strcpy(Sin[i].singerName,Sin[i+1].singerName);/*歌手名*/strcpy(Sin[i].singName1,Sin[i+1].singName1);/*歌曲1名称*/strcpy(Sin[i].singName2,Sin[i+1].singName2);/*歌曲2名称*/Sin[i].singScore1=Sin[i+1].singScore1;/*歌曲1得分*/Sin[i].singScore2=Sin[i+1].singScore2;/*歌曲2得分*/Sin[i].sum=Sin[i+1].sum;/*总得分*/printf("该歌手信息删除成功");N--;//j++;}if(j==0)printf("系统中无该歌手信息");}void dakai()/*定义打开函数*/{FILE *fp;system("cls");if((fp=fopen("filename","rb"))==NULL){printf("文件不存在\n");return;}}void menu()/*定义菜单函数*/{printf(" 歌手成绩管理系统\n");printf("**********************Menu**********************\n");printf(" * 1.输入信息 2.显示信息*\n");printf(" * 3.结果排序 4.信息保存到文件中*\n");printf(" * 5.信息记录到文件中 6.添加信息*\n");printf(" * 7.删除信息8.退出程序*\n");printf("************************************************\n");printf("请选择所要进行的选项:");}void Quit()/*退出函数*/{printf("结束程序"); exit(0);}void menu_select() /*菜单选择*/{int a;int n=3;printf("输入:");scanf("%d",&a);switch(a){case 1:printf("\n");input();break;case 2:printf("\n");output();break;case 3:printf("\n");sort();break;case 4:printf("\n");save();break;case 5:printf("\n");WritetoText(n);break;case 6:printf("\n");Tianjia_a_record();break;case 7:printf("\n");name_Delete();break;case 8:printf("\n"); Quit(); break;}}void main(){struct Singer Sin[200];print();menu();menu_select();}。

歌手比赛系统c课程设计

歌手比赛系统c课程设计

歌手比赛系统 c 课程设计一、课程目标知识目标:1. 让学生掌握歌手比赛系统的基本组成部分,如评分系统、选手管理、赛事流程控制等。

2. 使学生了解并运用程序设计的基本原理,结合所学的编程语言,实现歌手比赛系统的功能模块。

3. 帮助学生理解数据库管理的基本概念,学会使用数据库存储和管理歌手比赛的相关数据。

技能目标:1. 培养学生运用所学编程语言(如C语言)进行系统设计的能力,具备一定的编程实践操作技能。

2. 提高学生分析问题、解决问题的能力,使其能够针对歌手比赛系统的功能需求进行合理的模块划分和程序设计。

3. 培养学生团队协作和沟通表达的能力,能在项目开发过程中有效分工与合作。

情感态度价值观目标:1. 培养学生对计算机科学和编程技术的兴趣,激发其探究精神和创新意识。

2. 培养学生严谨、认真的工作态度,使其在项目开发过程中养成良好的编程习惯。

3. 培养学生面对困难和挑战时保持积极的心态,具备克服困难、解决问题的信心和勇气。

本课程结合学生年级特点,注重理论与实践相结合,旨在提高学生的编程实践能力和团队协作能力,使学生在完成课程学习后,能够独立或协作完成具有一定实用价值的歌手比赛系统项目。

同时,课程强调培养学生正确的价值观和积极的态度,为其未来的学习和职业发展奠定基础。

二、教学内容1. 程序设计基础:回顾C语言的基本语法,包括数据类型、运算符、控制结构等,为后续的系统设计打下基础。

教材章节:C语言程序设计基础2. 系统需求分析:讲解如何对歌手比赛系统进行需求分析,明确系统功能模块和性能要求。

教材章节:软件工程概述、需求分析3. 数据库设计:介绍数据库基本概念,指导学生学会使用SQL语句进行数据库设计和数据操作。

教材章节:数据库原理与应用、SQL语言4. 系统设计与模块划分:根据需求分析,进行系统设计,将系统划分为若干功能模块,如选手管理、评分系统、赛事流程控制等。

教材章节:软件设计、模块化设计5. 编程实践:指导学生运用C语言进行系统功能模块的编码实现,包括界面设计、功能实现等。

C语言课程设计报告—歌星大奖赛评分系统

C语言课程设计报告—歌星大奖赛评分系统

C语言课程实习报告课程名称:歌星大奖赛学院:信息工程学院专业:通信工程班级:学号:姓名:指导老师:第一部分:课程设计编号、名称、容名称:歌星大奖赛容:【要求】(1)在歌星大奖赛中,有十个评委为参赛的选手打分,分数为1~100分。

选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均植。

请编写一个程序实现。

(2)同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接近平均分)和最不公平(即与平均分的差距最大)的评委。

【提示】一、需求分析这个问题的第一个要求算法比较简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。

第二个要求为了考虑效率,要用到排序技术。

第二部分:程序总体设计思路由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。

在编写本程序的过程中,首先我借助购买的指导材料,了解了一些目标程序运行的次序与界面的操作方法,然后按照题目的具体要求进行思考和设计。

具体的设计思路如下:程序的要根据十个评委对歌手的打分情况,求出这个歌手的平均成绩和最公平及最不公平的裁判。

首先,我先考虑到程序的数据输入,可以用scanf函数来解决,并将输入的数据存放于数组中。

随后对存放在数组中的数据进行排序,这步为执行找出最不公平的裁判提高了效率,只需将排好序的数组的首尾分值与平均值进行比较即可。

将排好序的数组中间的八个数求平均值即为此歌手的成绩,可见排序法可大大的简化程序。

接下来是最后一个任务就是找最公平的裁判,此过程我使用拆半法,先将靠近中间的一个裁判假设为最公平的,再将他前面的裁判与之比较,找出前半部分的最公平的裁判,再将之与后半部分的进行比较,得出最终的最公平的裁判。

为了方便管理员更好的使用界面操作,我还设置了每输入完一组数据并得到结果后,或接着输入下组数据或按0跳出界面。

整个程序的设计思路到此结束。

第三部分:程序功能划分、图示及流程图【功能模块划分及其流程图】本程序功能模块根据程序设计的需求,综合程序的实用性、人性化、智能化的考虑,将程序划分为6个部分分别编写,程序主体功能将由这6个部分来完成。

歌手比赛系统课程设计c

歌手比赛系统课程设计c

歌手比赛系统课程设计c一、教学目标本课程旨在让学生了解歌手比赛系统的基本概念、设计和实现,通过学习,学生应掌握以下知识目标:1.了解歌手比赛系统的起源和发展历程。

2.掌握歌手比赛系统的基本组成部分及其功能。

3.理解歌手比赛系统的运作机制和评分标准。

学生应具备以下技能目标:1.能够分析和评价不同类型的歌手比赛系统。

2.能够设计一个简单的歌手比赛系统。

3.能够对歌手比赛系统进行优化和改进。

在情感态度价值观方面,学生应:1.尊重和理解各种音乐风格和表演形式。

2.培养对音乐和艺术的热爱,提高审美能力。

3.学会团队合作,培养良好的团队精神。

二、教学内容本课程的教学内容分为四个部分:1.歌手比赛系统的起源和发展历程。

2.歌手比赛系统的的基本组成部分及其功能。

3.歌手比赛系统的运作机制和评分标准。

4.歌手比赛系统的设计和实现。

具体安排如下:第一周:歌手比赛系统的起源和发展历程。

第二周:歌手比赛系统的的基本组成部分及其功能。

第三周:歌手比赛系统的运作机制和评分标准。

第四周:歌手比赛系统的设计和实现。

三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:讲解歌手比赛系统的相关理论知识。

2.案例分析法:分析具体的歌手比赛案例,让学生更好地理解理论知识。

3.讨论法:学生就歌手比赛系统相关话题进行讨论,提高学生的参与度。

4.实验法:让学生动手设计一个简单的歌手比赛系统,培养实际操作能力。

四、教学资源为了支持教学,我们将提供以下教学资源:1.教材:《歌手比赛系统导论》。

2.参考书:提供相关领域的学术论文和书籍,供学生深入研究。

3.多媒体资料:播放各类歌手比赛的视频,让学生更直观地了解比赛形式。

4.实验设备:提供必要的硬件设备,让学生进行实验操作。

五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:包括课堂参与度、小组讨论表现等,占总评的30%。

2.作业:包括课后练习和项目报告,占总评的30%。

3.考试:包括期中考试和期末考试,占总评的40%。

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

c语言课设唱歌比赛评分系统This model paper was revised by the Standardization Office on December 10, 2020沈阳航空航天大学课程设计任务书学院:专业:班级:学号:题目:唱歌比赛评委评分系统一、课程设计时间二、课程设计内容参加唱歌比赛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<N-1;i++) 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\"");}3、关于删除算法实现从系统中删除某位同学的相关信息的算法稍微复杂一些,其实质是对数组某个或某些元素的删除操作。

对数组元素的删除操作完成后,再将数组写入到文件中,就完整地实现了“删除”。

void del(){S_MESSAGE *node;/#include <>#include <>#include <>#include <>#include <>#define LEN sizeof(S_MESSAGE)#define N 7typedef 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();}elseprintf("\n密码错误!"); while(1);return 0;}。

相关文档
最新文档