更新 '1.c'

This commit is contained in:
xtaodada 2022-03-06 04:16:39 -05:00
parent bf2da24a6d
commit 2aaabff295

176
1.c
View File

@ -141,6 +141,162 @@ void mark(SING sing[MAX], int num, int *num_){
aver(sing,num,*num_);
printf("评分完成。\n");
}
int find_xuhao(SING sing[MAX], int num){
// 按序号查找
int x;
printf("请输入需要查找的序号: ");
scanf("%d",&x);
for(int i=0;i<num;i++){
if(x==sing[i].num){
return i;
}
}
return -1;
}
int find_xingming(SING sing[MAX],int num){
// 按姓名查找
char x[10];
printf("请输入需要查找的姓名: ");
scanf("%s",x);
for(int i=0;i<num;i++){
if(strcmp(x,sing[i].name)==0){
return i;
}
}
return -1;
}
void find(SING sing[MAX],int num, int num_){
// 查找
printf("请选择查找方式\n");
int x,n;
printf("\t1.序号查找\n");
printf("\t2.姓名查找\n");
printf("\t0.退出\n");
scanf("%d",&x);
switch(x){
case 1:
n=find_xuhao(sing,num);
break;
case 2:
n=find_xingming(sing,num);
break;
default:
return;
}
if(n==-1){
printf("未找到该人\n");
return;
}
printf("序号\t姓名\t性别\t平均分\t原始成绩\n");
printf("%d\t%s\t%s\t%.2f",sing[n].num,sing[n].name,sing[n].xb,sing[n].aver);
for(int j=0;j<num_;j++){
printf("\t%d",sing[n].score[j]);
}
printf("\n");
}
void edit(SING sing[MAX],int num){
// 修改信息
int x,n;
printf("请选择修改方式\n");
printf("\t1.按序号修改\n");
printf("\t2.按姓名修改\n");
printf("\t0.退出\n");
scanf("%d",&x);
switch(x){
case 1:
n=find_xuhao(sing,num);
break;
case 2:
n=find_xingming(sing,num);
break;
default:
return;
}
if(n==-1){
printf("未找到该歌手\n");
return;
}
system("cls");
printf("该歌手原信息如下:\n");
printf("序号\t姓名\t性别\n");
printf("%d\t%s\t%s\n\n",sing[n].num,sing[n].name,sing[n].xb);
printf("输入修改后的信息:\n");
printf("序号\t姓名\t性别\n");
scanf("%d%s%s",&sing[n].num,sing[n].name,sing[n].xb);
}
void Delete(SING sing[MAX], int *num){
// 删除信息
int x,n;
printf("请选择删除方式\n");
printf("\t1.按序号删除\n");
printf("\t2.按姓名删除\n");
printf("\t0.退出\n");
scanf("%d",&x);
switch(x){
case 1:
n=find_xuhao(sing,*num);
break;
case 2:
n=find_xingming(sing,*num);
break;
default:
return;
}
if(n==-1){
printf("未找到该歌手\n");
return;
}
// 删除
for(int i=n;i<*num;i++){
sing[i]=sing[i+1];
}
*num=*num-1;
}
void sort_xuhao(SING sing[MAX], int num){
SING temp;
for(int i=0;i<num-1;i++){
for(int j=0;j<num-1-i;j++){
if(sing[j].num>sing[j+1].num){
// 交换
temp=sing[j];
sing[j]=sing[j+1];
sing[j+1]=temp;
}
}
}
}
void sort_aver(SING sing[MAX], int num){
SING temp;
for(int i=0;i<num-1;i++){
for(int j=0;j<num-1-i;j++){
if(sing[j].aver>sing[j+1].aver){
// 交换
temp=sing[j];
sing[j]=sing[j+1];
sing[j+1]=temp;
}
}
}
}
void sort(SING sing[MAX], int num){
int x;
printf("请选择排序方式\n");
printf("\t1.按序号排序\n");
printf("\t2.按成绩排序\n");
printf("\t0.退出\n");
scanf("%d",&x);
switch(x){
case 1:
sort_xuhao(sing, num);
break;
case 2:
sort_aver(sing, num);
break;
default:
return;
}
}
int main(){
SING sing[MAX];
// num 为歌手数num_ 为评委数
@ -152,10 +308,10 @@ int main(){
printf("\t1.输入歌手信息\n"); // 已完成
printf("\t2.输出歌手信息\n"); // 已完成
printf("\t3.新增一个歌手\n"); // 已完成
printf("\t4.查找歌手信息\n");
printf("\t5.修改歌手信息\n");
printf("\t6.删除歌手信息\n");
printf("\t7.排序歌手\n");
printf("\t4.查找歌手信息\n"); // 已完成
printf("\t5.修改歌手信息\n"); // 已完成
printf("\t6.删除歌手信息\n"); // 已完成
printf("\t7.排序歌手\n"); // 已完成
printf("\t8.评委评分\n"); // 已完成
printf("\t9.保存歌手信息\n"); // 已完成
printf("\t10.加载歌手信息\n"); // 已完成
@ -178,6 +334,18 @@ int main(){
case 3:
insert(sing,&num);
break;
case 4:
find(sing,num,num_);
break;
case 5:
edit(sing,num);
break;
case 6:
Delete(sing,&num);
break;
case 7:
sort(sing,num);
break;
case 8:
mark(sing,num,&num_);
break;