h〉//来源于网络资源
#defineN30
intM=0;
structstudent
{
charnum[10];//对用户的信息进行保存,他们都以二进制的形式读写。
其中:
charname[20];
charsex[10];
intage;
floatscore1;
floatscore2;
floatscore3;
floatscore4;
floatsum;//分别对姓名、学号、性别、、年龄、成绩进行储存
在子函数中还使用了结构体数组:
}stu[N];
voidmenu();
voidInput();
voidSearch();
voidDel();
voidSort();
voidModi();
voidmain()
{
intn,k;
charstr[10];
printf(”\n");//主菜单系统
printf(”*********************************************\n");
printf("*欢迎进入*\n”);
printf("*学生成绩管理系统*\n”);
printf(”*********************************************\n”);
printf(”\n");
printf("请输入密码继续!
”);//密码系统,密码为123456
printf(”\n”);
for(k=0;k〈3;k++)
{
printf("请输入密码:
”);
for(n=0;(str[n]=getch())!
=’\r';n++)
putchar('*’);
printf(”\n”);
str[n]=’\0’;
if(strcmp(str,”123456")==0)
{
printf("密码正确!
”);
menu();
}
else
printf(”密码错误!
\n请重新输入!
\n你已输入%d次",k+1);
}
printf(”\n\n\n");
system("cls");menu();
}
voidmenu()
{
intas;
printf("************************************************\n”);
printf(”欢迎进入主菜单!
*\n”);
printf(”************************************************\n");
printf(”1。
学生信息的录入”);
printf("2.学生信息的查询");
printf(”3。
学生信息的删除”);
printf("4.学生信息的排序");
printf("5.学生信息的修改”);
printf("6。
退出系统");
printf("请选择操作:
”);
scanf("%d",&as);
if(as<1||as>6)as=0;
switch(as)
{
case0:
printf("输入错误!
\n”);break;
case1:
Input();break;
case2:
Search();break;
case3:
Del();break;
case4:
Sort();break;
case5:
Modi();break;
case6:
break;
default:
menu();
}
}
voidInput()
{
intnum[20];
staticinti=0;
intflag=1;
charl;
system(”cls");
printf("***********欢迎进入学员信息的录入!
***********\n");
while(flag)
{
i++;printf("AA%dAA",i);
printf(”\n输入第%d个学员学号:
",i);
scanf(”%s”,stu[i].num);
printf("\n输入第%d个学员姓名:
",i);
scanf(”%s",stu[i].name);
printf("\n输入第%d个学员性别:
",i);
scanf(”%s”,stu[i].sex);
printf("\n输入第%d个学员年龄:
”,i);
scanf("%d",&stu[i].age);
printf(”\n输入第%d个学员成绩1:
",i);
scanf("%f",&stu[i]。
score1);
printf(”\n输入第%d个学员成绩2:
”,i);
scanf("%f",&stu[i].score2);
printf(”\n输入第%d个学员成绩3:
”,i);
scanf(”%f”,&stu[i]。
score3);
printf(”\n输入第%d个学员成绩4:
”,i);
scanf(”%f",&stu[i].score4);
stu[i]。
sum+=stu[i]。
score1+stu[i].score2+stu[i]。
score3+stu[i].score4;
printf("学号:
%s\n”,stu[i].num);
printf("姓名:
%s\n",stu[i].name);
printf(”性别:
%s\n”,stu[i].sex);
printf("年龄:
%d\n”,stu[i].age);
printf(”成绩1:
%f\n",stu[i].score1);
printf(”成绩2:
%f\n",stu[i]。
score2);
printf(”成绩3:
%f\n",stu[i]。
score3);
printf(”成绩4:
%f\n”,stu[i].score4);
printf("总分:
%f\n",stu[i].sum);
printf("是否继续输入?
(Y/N)”);
getchar();
scanf(”%c",&l);
if(l=='n'||l=='N')
flag=0;
elseif(l==’Y’)
Input();
elsebreak;
}
system(”cls");
menu();
}
voidSearch()//子函数SEARCH
{
inti=0,flag=1;
charcn;
charstr[20];
system(”cls");
printf("***********欢迎进入学员信息查询系统!
***********\n");
printf(”请输入要查找的学号:
");scanf("%s",str);
while(flag)
{
if((strcmp(str,stu[i].num))==0)
{
printf(”学号姓名性别年龄成绩1成绩2成绩3成绩4\n”);
printf(”%s%s%s%d%f%f%f%f\n”,stu[i].num,stu[i].name,stu[i]。
sex,stu[i]。
age,stu[i]。
score1,stu[i].score2,stu[i].score3,stu[i]。
score4);
break;
}i++;
if(i==N)
printf(”无此学号!
\n");
if(i==N)flag=0;
}
printf(”是否继续输入(Y/N)?
");
getchar();
if(getchar()==’Y')Search();
menu();
}
voidDel()
{
inti,j,flag=1;
charcn;
charstr[20];
system(”cls");
printf(”***********欢迎进入学员信息删除系统!
***********\n”);
while(flag)
{printf(”请输入要删除的学员学号:
”);
scanf("%s",&str);
for(i=0;i〈N;i++)
if(strcmp(str,stu[i].num)==0)
{
for(j=i;j〈N;j++)
stu[j]=stu[j+1];
printf(”删除成功!
\n”);
printf("是否继续输入(Y/N):
”);
getchar();
scanf("%c",&cn);
if(cn=='n’||cn==’N’)flag=0;
}
system(”cls");
}
menu();
}
voidSort()
{
structstudentt;
inti,j,k,p,x,flag=1;
floatsum[N];
floatf,g;
charcn;
printf("***********欢迎进入学员信息排序系统!
***********\n");
while(flag)
{
for(i=0;i〈N;i++)
sum[i]=stu[i].score1+stu[i]。
score2+stu[i].score3+stu[i].score4;
for(k=0;k〈N-1;k++)
{
x=k;
for(p=k+1;p〈N;p++)
if(sum[x]>sum[p])
{
x=p;
g=sum[k];
sum[k]=sum[x];sum[x]=g;
t=stu[k];
stu[k]=stu[x];
stu[x]=t;
}}
printf(”学号\t姓名\t性别\t年龄\t成绩1\t成绩2\t成绩3\t成绩4\t总分\n”);
for(i=N;i〉0;i--)
if(stu[i]。
age!
=0)
printf(”%s\t%s\t%s\t%d\t%.2f\t%.2f\t%。
2f\t%.2f\t%。
2f\n”,stu[i]。
num,stu[i]。
name,stu[i]。
sex,stu[i]。
age,stu[i]。
score1,stu[i]。
score2,stu[i]。
score3,stu[i].score4,stu[i]。
sum);
printf(”是否返回主菜单(y/n):
");
getchar();
scanf(”%c",&cn);
if(cn=='y’||cn==’Y')flag=0;
}
system("cls”);
menu();
}
voidModi()
{
inti=0,flag=1;
chark;
charstr[20];
printf("***********欢迎进入学员信息修改系统!
***********\n”);
while(flag)
{
i++;
printf("请输入要修改的学生的学号:
\n");
scanf("%s",str);
if(strcmp(str,stu[i].num)==0)
{
printf(”学号\t姓名\t性别\t年龄\t成绩1\t成绩2\t成绩3\t成绩4\t总分\n”);
printf(”%s\t%s\t%s\t%d\t%.2f\t%。
2f\t%。
2f\t%。
2f\t%.2f\n",stu[i]。
num,stu[i]。
name,stu[i]。
sex,stu[i].age,stu[i]。
score1,stu[i].score2,stu[i]。
score3,stu[i]。
score4,stu[i].sum);
printf("\n请输入修改内容\n");
printf(”请修改学生学号:
");
scanf(”%s",stu[i]。
num);
printf(”请修改学生姓名:
");
scanf("%s",stu[i].name);
printf("请修改学生性别:
");
scanf(”%s”,stu[i]。
sex);
printf(”请修改学生年龄:
”);
scanf(”%d",&stu[i].age);
printf(”请修改成绩1:
”);
scanf("%f”,&stu[i].score1);
printf(”请修改成绩2:
");
scanf("%f”,&stu[i]。
score2);
printf(”请修改成绩3:
”);
scanf(”%f",&stu[i].score3);
printf("请修改成绩4:
”);
scanf(”%f”,&stu[i].score4);
stu[i]。
sum=stu[i].score1+stu[i].score2+stu[i].score3+stu[i]。
score4;printf("AA%fAA”,stu[i]。
sum);
printf(”请输出修改后的学员信息:
\n”);
printf(”学号\t姓名\t性别\t年龄\t成绩1\t成绩2\t成绩3\t成绩4\t总分\n");
printf(”%s\t%s\t%s\t%d\t%。
2f\t%。
2f\t%.2f\t%。
2f\t%.2f\n",stu[i].num,stu[i].name,stu[i]。
sex,stu[i].age,stu[i]。
score1,stu[i]。
score2,stu[i].score3,stu[i].score4,stu[i].sum);
break;
}
if(i==N)
printf("无此学号!
\n");
printf("是否继续输入(Y/N)?
”);
getchar();
scanf(”%c",&k);
if(k==’n’||k==’N')flag=0;
system(”cls”);
}
menu();
getchar();
}