C语言 校园歌手比赛系统
源码点这里
运行环境:codeblocks
1.引言...
1.1 问题提出...
1.2 本系统涉及的知识点...
1.3 功能要求...
2.总体设计...
2.1 功能模块设计...
2.2 主控main()函数流程设计
2.3 数据结构设计...
2.4 子模块设计...
2.4.1 添加记录模块...
2.4.2 查询记录模块...
2.4.3 更新记录模块...
2.4.4文件读写模块...
2.4.5 其他模块...
2.4.5.1密码模块...
2.4.5.2输出颜色模块...
2.4.5.3背景颜色模块...
2.4.5.4系统时间模块...
2.5 函数功能描述...
3.程序实现...
3.1 主界面...
3.2 子模块界面...
3.2.1密码验证界面(见图表2)...
3.2.2分数录入(见图表3)...
3.2.3分数显示(见图表4)...
3.2.4评委均分(见图表5)...
3.2.5分数排序(见图表6)...
3.2.6分数查找(见图表7)...
3.2.7信息修改(见图表8)...
3.2.8分数删除(见图表9)...
3.2.8密码修改(见图表10)...
3.2.8密码修改(见图表10)...
4 总结...
4.1程序调试情况...
4.2本人在程序设计中感想...
1.1 问题提出
在本实验中,主要实现以下几个问题:
1.输入选手数据(班级,编号,姓名,十个评委评分并储存数据到文件);
2.输出选手数据(班级,编号,姓名,总分,去掉最高分和最低分后的平均分);
3.显示评委均分(排序出十个评委的打分平均分,根据高低判断谁是严厉裁判谁 是温柔裁判);
4.实现选手的排序(按照平均分来排序);
5.成绩查询(按照姓名查询,编号查询,并且查询过后能进行修改 删除等的操作);
6.信息修改(能够修改选手的信息如班级,姓名,编号,某些评委的分数,并且修改了分数后,平均分和总分能够随之刷新);
7.删除分数(能够根据选手的编号或者姓名来删除选手的成绩);
8.修改登录密码(保护程序的安全性,实现登录密码的修改,五次机会输入密码,五次密码输入错误,显示退出程序,并且提醒密码的查看地址。就像app的找回密码功能);
9.进入修改界面想要返回主菜单却没有功能键,新增一个break语句,能够跳出循环
10删除成绩前面应该显示出选手的成绩,不然不知道删除谁
11能够修改输出颜色,让提示更加醒目
12能改变背景颜色而不是单一的黑色
13选择退出会有缓冲的时间
14顶部时间显示,到点就下班
1.2 本系统涉及的知识点
1.结构体变量:struct Student
{
}stu[1000];
struct Student stu[1000],*p=stu; 定义全局p->struct Student stu[];
2.数组:char cla[20]:输入选手班级
Char name[20]输入选手姓名
Float score[10]输入十个评委的打分
char tempname[20]用来定义名字的临时变量
char tempcla[20]用来定义班级的临时变量
char password[20],key[20];初始密码
3.循环:for(i=0;i<count;i++)
if(stu[count].num==stu[i].num)判断输入的选手编号是否重复
if(strcmp(searchname,stu[i].name)==0)查找名字
if(searchnum==stu[i].num)查找编号
for(j=0;j<10;j++)
if(max<stu[count].score[j]);
max=stu[count].score[j];找出分数最大值
for(k=0;k<10;k++)
if(max<stu[count].score[k]);
min=stu[count].score[k];找出分数最小值
for(i=0;i<count;i++)
printf();显示数据;
for(i=searchindex;i<count-1;i++)
strcpy(stu[i].cla,stu[i+1].cla);
stu[i].num=stu[i+1].num;删除相关信息
4.函数
void input(struct Student stu[])选手分数输入
void print(struct Student stu[])选手分数显示
void average(struct Student stu[])评委打的平均分
void sort(struct Student stu[])选手按平均分排序(分数排序子函数)
void projectsort(struct Student stu[])分数排序
void findnum(struct Student stu[])按编号查找(分数查询子函数)
void findname(struct Student stu[])按姓名查找(分数查询子函数)
void find(struct Student stu[])分数查询
void del(struct Student stu[])分数删除
void delnum(struct Student stu[])按照编号删除(分数删除子函数)
void delname(struct Student stu[])按照姓名删除(分数删除子函数)
void change(struct Student stu[])修改信息
void read(struct Student stu[])文件导入
void save(struct Student stu[])文件储存
int up()修改密码
void save_password(char s[])保存密码的修改
void hidepassword(char *pswd, unsigned maxlen)隐藏密码的输入
void color(const unsigned short textColor)颜色输出
5.分支
If语句:
if(stu[count].num==stu[i].num)判断输入是否为重复编号
if(max<stu[count].score[j]);判断最大值
if(min>stu[count].score[k]);判断最小值
if(searchindex==-1)判断输入的数据是否有效
if(strcmp(searchname,stu[i].name)==0)判断名字是否存在
if(count==0)判断是否输入了选手信息
if(fread(&stu[i],sizeof(struct Student),1,fp)!=1)判断文件字节数
if(key[i]!=password[i])判断密码是否正确
if else语句:
if(count==0)
printf("\n\n您尚未录入选手信息,请返回菜单进行录入!\n");
else//否则输出选手信息
switch 语句:
switch(choose)
case 1: //成绩录入
case 2: //成绩显示和排序
case 3: //均科成绩
case 4: //成绩排序
case 5: //成绩查找
case 6: //成绩修改
case 7: //成绩删除
case 8: //密码修改
case 0: //退出系统
6.指针
struct Student stu[1000],*p=stu;
7.goto语句;
1.3 功能要求
- 输入选手的班级,编号,姓名,十个评委分数
- 输出选手的班级,编号,姓名,十个评委分数,总分以及去掉最高分和最低分的平均分
- 显示每个评委打的平均分
- 对选手的平均分进行排序,分数高的在前面
- 按照编号或者姓名对选手分数进行查找
- 能对选手的所有信息进行修改
- 能够根据编号或者姓名对选手分数进行删除
- 修改登录密码
- 退出系统
2.总体设计
2.1 功能模块设计
2.2 主控main()函数流程设计
2.3 数据结构设计
struct Student stu[1000],*p=stu; //定义全局p->struct Student stu[]
2.int count=0; //定义全局变量count,录入一个选手信息,count就加一;
3.float min,max,Max,Min;//用来找出十个评委中的最高分和最低分
char tempcla[20];//定义姓名和班级的临时变量,用来排序
9. char searchname[20];//用来查找学生姓名
2.4 子模块设计
2.4.1 添加记录模块
2.4.2 查询记录模块
编号查找 |
姓名查找 |
全部显示 |
返回菜单 |
找到 |
2.4.3 更新记录模块
2.4.4文件读写模块
2.4.5 其他模块
2.4.5.1密码模块
2.4.5.2输出颜色模块
2.4.5.3背景颜色模块
2.4.5.4系统时间模块
2.5 函数功能描述
1)函数原形:void input(struct student stu[ ])
Float min,max:浮点型形参变量,用于找出最大值最小值
void save(struct Student stu[]);保存数据到文件
char tempcla[10]={"-1"};定义临时姓名字符串,用于按(-1)返回菜单
sort(struct Student stu[]);调用排序函数,将信息排序后输出
if(count==0):用全局变量count判断是否录入了数据
char tempcla[20];字符型临时变量,用于存放班级姓名
void findname(struct Student stu[]):按照姓名查询
void find(struct Student stu[]):查询
char searchname[20];字符型变量用来查找名字
int searchnum,tempnum:修改编号的临时变量
void delnum(struct Student stu[]):按编号删除
void delname(struct Student stu[]):按姓名删除
void dell(struct Student stu[]):删除数据
char tempname[10]={"-1"};字符型变量,用于输入名字和返回操作
void save_password(char s[]);修改密码的保存
void yincangpassword(char *pswd, unsigned maxlen);隐藏密码输入
FILE *fp= fopen("password.txt","w+");定义文件指针
3.程序实现
3.1 主界面
3.2 子模块界面
3.2.1密码验证界面(见图表2)
3.2.2分数录入(见图表3)
3.2.3分数显示(见图表4)
3.2.4评委均分(见图表5)
3.2.5分数排序(见图表6)
3.2.6分数查找(见图表7)
3.2.7信息修改(见图表8)
3.2.8分数删除(见图表9)
3.2.8密码修改(见图表10)
4 总结
4.1程序调试情况
4.2本人在程序设计中感想
我增加了一个评委均分选项,可对每个评委打分的平均分进行显示,进而判断谁是严厉(无情)裁判谁是仁慈(宽松)裁判。
在进行分数查找的测试中,我发现查找选手信息后就不能进行下一步了,仅仅一个光秃秃的显示查找的选手信息,为了完善功能,我在查找成功后增加了修改和删除的选项。
对于信息修改。我实现了对选手的各项信息皆能修改,并且对评委分数修改后,能够刷新平均分和总分并显示。
对于修改密码,我将密码用*隐藏,并且在修改密码的阶段,去掉了验证旧密码的过程,这为开源文件省去了不必要的麻烦(但是极易被他人随意的篡改),进而直接输入新密码并提醒用户退出去重新登陆。
在UI界面,我用自己喜欢的蓝色作为背景色,在登陆界面显示了音乐符号的图案,与歌手比赛更加贴近。对于输错5次密码后,我用红色的输出字体来提示用户查找密码,红色字体更加醒目。
但是正因为有不足,才让我有前进的动力,我会不断改进丰富该系统,并且用新知识改善它。在我自身方面,我更会严格要求自己,给自己的人生交上一份满意的答卷!
C语言 校园歌手比赛系统相关推荐
- C语言 校园歌手比赛系统源码
详情点此处 /*实验:校园歌手比赛系统 作者:多庸 学号: 实验要求:输入输出 增添删除 导入储存 */ #include<stdio.h> #include<stdlib.h> ...
- C语言作业——歌手比赛系统
歌手比赛系统 题目 结果图 实现代码 感悟 题目 歌手比赛系统 功能: 对一次歌手比赛的成绩进行管理,功能要求: 1.输入每个选手的数据包括编号.姓 名.十个评委的成绩,根据输入计算出总成绩和平均成绩 ...
- 歌手比赛系统c语言程序注释,C语言程序课程设计—歌手比赛系统(20页)-原创力文档...
淮南师范学院 课程设计报告 歌手比赛系统 姓 名:胡欢欢 学号: 1008010109 专 业:计算机科学与技术 班 级: 10 级( 1)班 指导教师:彭飞 职称: XXX 2013 年 3 月 7 ...
- c语言链表做歌手比赛系统,大型实验报告(歌手比赛系统)
<大型实验报告(歌手比赛系统)>由会员分享,可在线阅读,更多相关<大型实验报告(歌手比赛系统)(5页珍藏版)>请在人人文库网上搜索. 1.呀歩垂不主邂目蜃轨运(Z)SIO乙/讥 ...
- 校园歌手大赛10分c语言,校园歌手大赛策划方案5
为了丰富校园文化生活,提高广大学生的艺术涵养,展现师大学子团结创新.蓬勃向上的精神风貌,举办校园歌唱比赛.校园歌手大赛策划方案怎么写?这里给大家分享一些关于校园歌手大赛策划方案,希望能帮到各位. 校园 ...
- 校园歌手大赛10分c语言,校园歌手大赛的活动方案
校园歌手大赛的活动方案 一.活动目的 为丰富校园文化生活,提高学生的艺术修养,充实校园文化氛围,为同学们提供一块展示自己的舞台,发挥学生特长,培养学生积极向上的心态和良好的竞争意识,让广大同学在提高艺 ...
- 校园歌手信息评分系统(C语言),大一新生期末实训
要求: 在校园歌手比赛中,歌手参加比赛,评委评分,并最后按名次高低输出显示. (1)有10个歌手参加比赛,实现班级,姓名及歌手的分数存储: (2)其中每个歌手的分数有5评委打分: (3)歌手最后得分为 ...
- 智慧校园比赛系统-Python+Django
作者主页:编程指南针 简介:Java领域优质创作者.CSDN博客专家 Java项目.简历模板.学习资料.面试题库.技术互助 文末获取源码 项目编号:BS-Python-002 1.项目说明 项目名称 ...
- c语言ktv点歌系统链表,C语言链表实现歌手评分系统
本文实例为大家分享了C语言链表实现歌手评分系统的具体代码,供大家参考,具体内容如下 此程序可以添加文件操作用于保存歌手得分等信息,此程序实现了链表的增删查和链表冒泡排序交换节点功能 #include ...
最新文章
- matlab-高数 find 找到集合中特定元素的位置
- FileCoin (1) 初步介绍
- list里面的数据按3个字段排序_Python数据分析:探索性分析
- HTML转PDF(C#---itextsharp)(转自别人的文章)
- java 打包jar文件以在没有安装JDK或JRE的机子上运行
- 商业初创公司网站单页模板
- 网页上的摄影展:等高响应布局实现
- 雇佣K个工人的最小费用 Minimum Cost to Hire K Workers
- win2008支持mysql asp.net_Win7、win2008中让IIS7支持asp的方法
- java 撤销恢复按钮_再涨个姿势,我们常用的撤销和恢复功能,你知道它们使用了什么设计模式实现吗?...
- mysql后台数据库学习报告
- 54份运算放大器书籍、文档资料合集(54份 0.46G)
- 日语单词记忆方法(正在试用)
- 【技术】H5网页调用手机摄像头扫码
- 关于IE读取缓存页面不刷新解决方法
- ACOUG年会归来(r11笔记第16天)
- php封装成应用系统吗,用Portal来集成外部应用程序_php
- 旅行青蛙(旅かえる)的最全攻略(不懂日语的可以看看)
- 用计算机实现的动画效果,运用PPT编辑动画效果
- 笔记 GWAS 操作流程5-2:利用GEMMA软件进行LMM+PCA+协变量
热门文章
- Java怎样把时间转成毫秒_如何转换时间格式 java如何把时间格式转为毫秒
- android平台opengl es读取纹理数据并保存图片
- gtx780有html接口吗,NVIDIA GTX780Ti评测_评测_太平洋电脑网PConline
- 如何评价 2021 考研政治题,难度如何?
- PROTOTEX: Explaining Model Decisions with Prototype Tensors论文解读
- Kitty-Cloud服务搭建过程剖析
- html制作图像画廊,创建 Web 照片画廊 (Photoshop)
- OSChina 周六乱弹 ——你知道妹子喜欢什么了么?
- SAP 工艺路线分配组件 CA02正常显示分配但是CA03不显示分配解决方法
- MM配额协议(Quota Arrangement)-阿龙学习MM PA 笔记(3)