该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
struct student{
int num;
char sex[5],name[10];
int room,chinese,math,english;
double total,aver;}s[50];
void main()
{
int i,n;
struct student s[50];
struct student input_student();
void output_student(struct student s[],int n);
int Student_SearchByIndex(int xuehao);
int Student_SearchByName(char name[]);
printf("请输入学生总人数:");
scanf("%d",&n);
for(i=0;i
printf("\n 请输入第%d学生基本信息: \n",i+1);
s[i]=input_student();
}
printf("\n 输出学生信息表 \n");
printf(" ______________________________________________________________________\n");
output_student(s,n);
printf(" |______________________________________________________________________|\n\n");
while(1){
int choose;
printf("\n请输入您要查询学生的方式:\n\n");
printf("1、按学号查询\n2、按姓名查询\n\n");
printf("3、按名次查询\n4、按班级查询\n\n");
printf("请选择:");
scanf("%d",&choose);
while(getchar()!='\n');
if (choose==1){
int xuehao;int index;
printf("请输入要查询的学生的学号:");
scanf("%d",&xuehao);index=Student_SearchByIndex(xuehao);
if (index==-1)
{printf("学生不存在!\n");
}
else
{
printf("你要查询的学生信息为:学号 性别 姓名 班别 语文 数学 英语 总成绩 平均分\n");
printf(" |%-9d%-7s%-7s%-7d%-6d%-6d%-6d%-9.2lf%-6.2lf |\n",s[index].num,s[index].sex,s[index].name,s[index].room,s[index].chinese,s[index].math,s[index].english,s[index].total,s[index].aver);
}
printf("是否继续?(y/n)");
if (getchar()=='n')
{break;}
}
else if (choose==2)
{
char xingming[20];
int index;
printf("请输入要查询的学生的姓名:");
scanf("%s",&xingming);
getchar();
index=Student_SearchByName(xingming);
if (index==-1)
{
printf("学生不存在!\n");
}
else
{
printf("你要查询的学生信息为:学号 性别 姓名 班别 语文 数学 英语 总成绩 平均分\n");
printf(" |%-9d%-7s%-7s%-7d%-6d%-6d%-6d%-9.2lf%-6.2lf |\n",s[index].num,s[index].sex,s[index].name,s[index].room,s[index].chinese,s[index].math,s[index].english,s[index].total,s[index].aver);
}
printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}
else if (choose==0)
{printf("\n您选择了不查询!\n");
break;
}
}
}
struct student input_student()
{struct student s;
printf("学号 性别 姓名 班别 语文 数学 英语:\n");
scanf("%d%s%s%d%d%d%d",&s.num,s.sex,s.name,&s.room,&s.chinese,&s.math,&s.english);
s.total=s.chinese+s.math+s.english; s.aver=s.total/3;
return s;
}
void output_student(struct student s[],int n)
{int i;
printf(" |学号 性别 姓名 班别 语文 数学 英语 总成绩 平均分 |\n");
for(i=0;i
printf(" |%-9d%-7s%-7s%-7d%-6d%-6d%-6d%-9.2lf%-6.2lf |\n",s[i].num,s[i].sex,s[i].name,s[i].room,s[i].chinese,s[i].math,s[i].english,s[i].total,s[i].aver);
}
}
int Student_SearchByIndex(int xuehao)
{
int i;
for (i=0;i<50;i++)
{
if (s[i].num==xuehao)
{return i;}
}return -1;
}
int Student_SearchByName(char xingming[])
{int i;for (i=0;i<50;i++)
{if (strcmp(s[i].name,xingming)==0)
{return i;}
}return -1;
}