You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
1.9 KiB

//program7
#include <stdio.h>
struct student{
int id;
int Class;
char name[50];
float gs;
float dw;
float yy;
}Stu[7]={
{10001,11,"Zhang",99.5,88.5,89.5},
{10002,12,"Yang",77.9,56.5,87.5},
{10003,11,"Liang",92.5,99.0,60.5},
{10004,11,"Cai",89.6,56.9,90.5},
{10005,14,"Fu",55.6,67.9,98.9},
{10006,12,"Mao",22.1,45.9,99.2},
{10007,13,"Zhan",35.6,67.9,88.0}
};//定义初始数据
void type1()
{
int a,b;
scanf("%d-%d",&a,&b);
for(int i=0;i<7;i++)
{
if(Stu[i].Class>=a&&Stu[i].Class<=b)
{
printf("%d %d %s %.1f %.1f %.1f\n",Stu[i].id,Stu[i].Class,Stu[i].name,Stu[i].gs,Stu[i].dw,Stu[i].yy);
}
}
}//类型一 选择班级
void type2()
{
int a,b;
scanf("%d-%d",&a,&b);
for(int i=0;i<7;i++)
{
if(Stu[i].id>=a&&Stu[i].id<=b)
{
printf("%d %d %s %.1f %.1f %.1f\n",Stu[i].id,Stu[i].Class,Stu[i].name,Stu[i].gs,Stu[i].dw,Stu[i].yy);
}
}
} //类型二 选择学号
void type3()
{
char a[10];
scanf("%s",a);
for(int j=0;j<7;j++)
{
int n=0;
while(a[n]!='*'&&Stu[j].name[n]==a[n])
{
n++;
}
if(a[n]=='*')
{
printf("%d %d %s %.1f %.1f %.1f\n",Stu[j].id,Stu[j].Class,Stu[j].name,Stu[j].gs,Stu[j].dw,Stu[j].yy);
}
}
} //类型三 选择姓名
void type4()
{
float a;
scanf("%f",&a);
for(int i=0;i<7;i++)
{
if(a<=Stu[i].dw+Stu[i].gs+Stu[i].yy)
{
printf("%d %d %s %.1f %.1f %.1f\n",Stu[i].id,Stu[i].Class,Stu[i].name,Stu[i].gs,Stu[i].dw,Stu[i].yy);
}
}
}//类型四 查询总分
void type5()
{
int a,b,c,i=0;
scanf("%d %d-%d",&a,&b,&c);
for(i;i<7;i++)
{
if(Stu[i].Class==a&&Stu[i].id>=b&&Stu[i].id<=c)
{
printf("%d %d %s %.1f %.1f %.1f\n",Stu[i].id,Stu[i].Class,Stu[i].name,Stu[i].gs,Stu[i].dw,Stu[i].yy);
}
}
}//类型五 查询班级中部分学号
int main()
{
int n,a,b;
scanf("%d",&n);
switch(n)
{
case 1:type1() ;break;
case 2:type2() ;break;
case 3:type3() ;break;
case 4:type4() ;break;
case 5:type5() ;break;
}
return 0;
}