//综合实践六:学生成绩管理系统功能模块化设计
#include<stdio.h>
#define N 5
int login(char name[],char psw[]){
if(strcmp(name,"admin")==0 &&strcmp(psw,"123456")==0)
return 1;
else return 0;
}
void input(float score[],int num){
int i;
printf("输入%d个成绩:",num);
for(i=0;i<num;i++){
scanf("%f",&score[i]);
}
}
void output(float score[],int num){
int i;
printf("输出%d个成绩:\n",num);
for(i=0;i<num;i++){
printf("%5.1f",score[i]);
}
printf("\n");
}
int insert(float score[],int num,float x){
int i;
i=num-1;
while(i>=0&&score[i]<x){
score[i+1]=score[i];
i--;
}
score[i+1]=x;
num++;
return num;
}
int find(float score[],int num,float x){
int i,k=-1;
for(i=0;i<num;i++){
if(x==score[i]){
k=i;
break;
}
}
return k;
}
void sort(float score[],int num){
int i,j,k;
float x;
for(i=0;i<num-1;i++){
k=i;
for(j=i+1;j<num;j++){
if(score[k]<score[j])
k=j;
}
x=score[i];
score[i]=score[k];
score[k]=x;
}
printf("降序排序完成!\n");
}
int dele(float score[],int num,float x){
int i=0;
while(i<num&&score[i]!=x){
i++;
}
if(i<num){
while(i<num-1){
score[i]=score[i+1];
i++;
}
num--;
}
return num;
}
main(){
float score[N],max,s,x,ave;
int i,j,k,n,num,m;
char name[10],psw[10];
printf("用户名:");
gets(name);
printf("密码:");
gets(psw);
if(login(name,psw)==1){
while(1){
printf("******学生成绩管理系统********\n");
printf("*** 1 --------- 成绩输入 **\n" );
printf("*** 2 ----------成绩插入 **\n ");
printf("*** 3 ---------成绩查询 **\n ");
printf("*** 4 ---------成绩排序 **\n ");
printf("*** 5 ---------成绩删除 **\n ");
printf("*** 6 ---------成绩输出 **\n ");
printf("*** 0 ---------退出 **\n ");
printf("*****************************\n");
printf("请输入你的选择:");
scanf("%d",&n);
switch(n){
case 1:printf("输入成绩个数(<%d):",N);
scanf("%d",&num);
input(score,num);
break;
case 2:printf("输入要插入的成绩:");
scanf("%f",&x);
num=insert(score,num,x);
break;
case 3:printf("输入要查询的成绩:");
scanf("%f",&x);
m=find(score,num,x);
if(m!=-1)
printf("序号:%d\n",m+1);
else printf("成绩不存在!\n");
break;
case 4:sort(score,num);
break;
case 5:printf("输入要删除的成绩:");
scanf("%f",&x);
m=num;
num=dele(score,num,x);
if(m!=num)
printf("成绩删除成功!\n");
else printf("成绩不存在!\n");
break;
case 6:printf("成绩输出:");
output(score,num);
break;
case 0:return;
default:printf("选择错误!\n");
}}}
else printf("用户名或密码错误!\n");
}