总算搞完了,,哈哈,,
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 50 /***定义有50个学生***/
struct student
{
char num[10];
char name[20];
float score[4];
float aver;
}stu[N];
void scan(void)
{
int j,i,q=0;
char c;
struct student *p;
p=stu;
for(i=0;i<N;i++,p++)
{
printf("请输入%d学生的成绩:\n",i+1);
printf("请输入学号:\n");
scanf("%s",p->num);
printf("请输入姓名:\n");
scanf("%s",p->name);
for(j=0;j<4;j++)
{
printf("请输入第%d科成绩:\n",j+1);
scanf("%f",&p->score[j]);
}
p->aver=avero(p);
printf("是否继续输入(Y/N)?");
getchar();
c=getchar();
if(c=='N'||c=='n')break;
}
}
void name_s(struct student *p,char *name)
{
int i;
char q=1;
p=stu;
for(i=0;i<N;i++,p++)
{
if(strcmp(name,p->name)==0)
{
printf("该生的学号,姓名,第一科成绩,第二科成绩,第三科成绩,第四科成绩,平均分为:\n");
printf(" %s %s %3.2f %3.2f %3.2f %3.2f %3.2f\n",
p->num,p->name,p->score[0],p->score[1],p->score[2],p->score[3],p->aver);
q=0;
}
}
if(q==1)puts("查找不到这个姓名!\n");
}
void num_s(struct student *p,char *num)
{
int i;
char q=1;
p=stu;
for(i=0;i<N;i++,p++)
{
if(strcmp(num,p->num)==0)
{
printf("该生的学号,姓名,第一科成绩,第二科成绩,第三科成绩,第四科成绩,平均分为:\n");
printf(" %s %s %3.2f %3.2f %3.2f %3.2f %3.2f\n",
p->num,p->name,p->score[0],p->score[1],p->score[2],p->score[3],p->aver);
q=0;
}
}
if(q==1)puts("查找不到这个学号!\n");
}
float avero(struct student *p)
{
float s=0.0;
int i;
for(i=0;i<4;i++)
s+=p->score[i];
return(s/4.0);
}
void input(void)
{
int i=0;
struct student *p;
p=stu;
printf("No.:学号,姓名,第一科成绩,第二科成绩,第三科成绩,第四科成绩,平均分为:\n");
for(i=0;i<N;i++,p++)
{
if(p->aver==0)break;
printf("%d %s %s %3.2f %3.2f %3.2f %3.2f %3.2f\n",i+1,
p->num,p->name,p->score[0],p->score[1],p->score[2],p->score[3],p->aver);
}
}
void main()
{
int n;
char name[20],num[10];
do
{
printf(" 主菜单\n");
printf("======================\n");
printf(" 1.输入学生成绩\n");
printf(" 2.按姓名查询学生成绩\n");
printf(" 3.按学号查询学生成绩\n");
printf(" 4.打印输出成绩\n");
printf(" 0.退出系统\n");
printf("======================\n");
printf(" 请选择(0~4):\n");
scanf("%d",&n);
switch(n)
{
case 0:break;
case 1:system("cls");
scan();
break;
case 2:system("cls");
printf("请输入要查询姓名:\n");
scanf("%s",name);
name_s(stu,name);
break;
case 3:system("cls");
printf("请输入要查询学号:\n");
scanf("%s",num);
num_s(stu,num);
break;
case 4:system("cls");
input();
break;
default:printf("输入错误,请重新输入\n");break;
}
}
while(n!=0);
printf("谢谢使用\n");
}