# include <stdio.h>
# include <stdlib.h>
# include <string.h>
struct Student
{
int num;//学号
char name[20];//姓名
float score[3];//三门课成绩
float aver;//平均成绩
};
/
void meau()
{
printf("******************学生成绩管理系统***************\n");
printf("*** ***\n");
printf("*** 1、录入学生信息 ***\n");
printf("*** 2、显示学生信息 ***\n");
printf("*** 3、插入学生信息 ***\n");
printf("*** 4、删除学生信息 ***\n");
printf("*** 5、退出系统 ***\n");
printf("*** ***\n");
printf("*************************************************\n");
printf("\n\n");
printf("请输入您的选项:\n");
}
void key()/*密码输入*/
{
char key[20];
int num=0;
printf("*****欢迎来到学生信息管理系统,进入前请先输入密码————");
printf(" ");
gets(key);
num++;
while(strcmp(key,"0")!=0)
{
system("cls");
if(num==3)
{
printf("对不起,你的系统已经锁定\n");
exit(0);
}
printf("对不起,您输入的密码有误,请重新输入(还能输入%d次)——",3-num);
gets(key);
num++;
}
system("cls");
}
int input(struct Student stu[30])/*录入学生信息*/
{
int i=0;
char ch= ' ';
printf("请输入各个学生的信息:学号、姓名、三门课成绩:\n");
while(i<30)
{
scanf("%d %s %f %f %f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;
i++;
printf("是否继续输入,是Y,否N!\n");
scanf("%c",&ch);
scanf("%c",&ch);
if(ch=='Y'||ch=='y')
continue;
if(ch=='N'||ch=='n')
{
printf("请输入您的选项:");
break;
}
else
printf("输入有误,请重新输入!\n");
}
return i;
}
void output(struct Student stu[30],int m)/*显示学生信息*/
{
for(int i=0;i<m;i++)
{
printf("%d %s %.2f %.2f %.2f %.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].aver);
}
printf("\n");
}
void sort(struct Student stu[30],int m)/*按照平均分从小到大排序*/
{
struct Student t;
int i,j;
i=0;
for(j=0;j<m-1;j++)
{
for(i=0;i<m-1-j;i++)
{
if(stu[i].aver>stu[i+1].aver)
{
t=stu[i+1];
stu[i+1]=stu[i];
stu[i]=t;
}
}
}
printf("按照从小到大排序后为:\n");
for(i=0;i<m;i++)
{
printf("%d %s %.2f %.2f %.2f %.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].aver);
}
printf("\n");
}
int add(struct Student stu[30],int m)/*增加信息,并按照平均分从小到大排序*/
{
int i=0,j;
int len;
len=i+m;
struct Student t;
char ch=' ';
printf("请输入要增加的学生信息:\n");
while(i<30)
{
scanf("%d %s %f %f %f",&stu[m].num,stu[m].name,&stu[m].score[0],&stu[m].score[1],&stu[m].score[2]);
stu[m].aver=(stu[m].score[m]+stu[m].score[1]+stu[m].score[2])/3;
m++;
i++;
printf("是否继续输入,是Y,否N!\n");
scanf("%c",&ch);
scanf("%c",&ch);
if(ch=='Y'||ch=='y')
continue;
if(ch=='N'||ch=='n')
break;
else
printf("输入有误,请重新输入!\n");
}
for(j=0;j<len-1;j++)
{
for(i=0;i<=len-1-j;i++)
{
if(stu[i].aver>stu[i+1].aver)
{
t=stu[i+1];
stu[i+1]=stu[i];
stu[i]=t;
}
}
}
printf("按照从小到大排序后为:\n");
for(i=0;i<=len;i++)
{
printf("%d %s %.2f %.2f %.2f %.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].aver);
}
printf("\n");
return len;
printf("请输入您的选项:\n");
}
void delet(struct Student stu[30],int m)/*根据学号删除信息*/
{
int i,j,num;
int flag,loc,len;
len=m;
flag=1;
char ch;
while(flag)
{
loc=-1;
printf("请输入需要删除学生相对应的学号:");
scanf("%d",&num);
for(i=0;i<len;i++)
{
if(stu[i].num==num)
{
loc=i;
for(j=loc;j<m-1;j++)
{
stu[i]=stu[i+1];
}
i--;
len--;
}
}
if(len==0)
{
printf("信息为空,已无法删除!\n");
break;
}
if(loc==-1)
printf("查无此人,无法删除!\n");
else
{
printf("删除学生%d后的信息为:\n",num);
for(i=0;i<len;i++)
{
printf("%d %s %.2f %.2f %.2f %.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].aver);
}
printf("\n");
}
printf("是否继续删除。是Y,否N");
scanf("%c",&ch);
scanf("%c",&ch);
if(ch=='Y'||ch=='y')
continue;
else
if(ch=='N'||ch=='n')
{
printf("感谢使用!\n");
flag=0;
}
else
{
printf("输入有误!\n");
}
}
}
//
void key();
void meau();
struct Student stu[30];
int input(struct Student stu[30]);
void output(struct Student stu[30],int m);
void sort(struct Student stu[30],int m);
int add(struct Student stu [30],int m);
void delet(struct Student stu[30],int m);
int main()
{
key();
meau();
int i;
int chose;
while(1)
{
scanf("%d",&chose);
switch(chose)
{
case 1:
i=input(stu);
system("cls");
meau();
break;
case 2:
system("cls");
output(stu,i);
sort(stu,i);
meau();
break;
case 3:
system("cls");
meau();
add(stu,i);
printf("请输入您的选项:");
break;
case 4:
system("cls");
//meau();
delet(stu,i);
break;
case 5:
system("cls");
printf("---------------感谢使用-------------\n");
break;
default:
system("cls");
printf("对不起,输入有误!");
break;
}
}
return 0;
}
学生成绩管理系统
最新推荐文章于 2022-06-19 00:05:18 发布