# include & ltstdlib.h & gt
# include & ltstring.h & gt結構記錄
{
char雪豪[10];//學生編號
char name[20];//名稱
char sex[3];//性別
int ke 1;//數學
int ke2//語言
int ke3//英語
int引腳;
} stu[50];
int k=1,n,m;void readfile();
void seek();
void insert();
void del();
void save();
void menu();
void seek()
{int i,j,item,flag& ltbr & gtchar s 1[20];& ltbr & gtprintf("-\ n ");& ltbr & gtPrintf("1。按學號查詢\ n ");& ltbr & gtPrintf("2。退出本菜單\ n ");& ltbr & gtprintf("-\ n ");& ltbr & gtwhile(1)& lt;br & gt{printf("請選擇子菜單號:");& ltbr & gtscanf("%d ",& amp項);& ltbr & gtflag = 0;& ltbr & gt開關(項目)& ltbr & gt{ & ltbr & gt案例1:& lt;br & gtPrintf("請輸入要查詢的學生的學號:\ n ");& ltbr & gtscanf("%s ",s 1);& ltbr & gtfor(I = 0;我& ltn;i++)& lt;br & gtif(strcmp(stu[i].雪豪,s 1)= = 0)& lt;br & gt{ flag = 1;& ltbr & gtPrintf("學號,姓名,性別,數學,中英文:\ n ");& ltbr & gtprintf(" %s %s %s %d %d %d ",stu[i]。雪豪,斯圖[我]。名稱,& ltbr & gt斯圖[我]。sex,stu[i].ke1,stu[i].ke2,stu[I]. ke3);& ltbr & gt}
如果(標誌==0)
Printf("此學號不存在!\ n ");打破;
案例二:退貨;
默認:printf("請在1-2 \n之間選擇");
}
}
}
空心嵌件()
{ int i=n,j,flag
Printf("請輸入要添加的學生人數:\ n ");
scanf("%d ",& ampm);
做
{ flag = 1;
while(標誌)
{ flag = 0;
Printf("請輸入%d學生的學號:\n ",I+1);
scanf("%s ",stu[i].雪豪);
for(j = 0;j & lt我;j++)
if(strcmp(stu[i].雪浩,斯圖[j]。雪浩)==0)
{printf("該學號已經存在,請檢查並重新輸入!\ n ");
flag = 1;
打破;
}
}
Printf("請輸入%d學生的姓名:",I+1);
scanf("%s ",stu[i].姓名);
printf(" \ n請輸入%d學生的性別:",I+1);
scanf("%s ",stu[i].性);
printf(" \ n請輸入%d學生的數學成績:",I+1);
scanf("%d ",& ampstu[I]. ke 1);
printf(" \ n請輸入%d學生的語文成績:",I+1);
scanf("%d ",& ampstu[I]. ke2);
printf(" \ n請輸入%d學生的英語成績:",I+1);
scanf("%d ",& ampstu[I]. ke3);如果(標誌==0)
{ i = i
i++;
}
} while(I & lt;n+m);
n+= m;
Printf("輸入完成!\ n \ n ");
}void del()
{ int i,j,flag = 0;
char s 1[20];
Printf("請輸入要刪除的學生的學號:\ n ");
scanf("%s ",s 1);
for(I = 0;我& ltn;i++)
if(strcmp(stu[i].雪豪,s1)==0)
{ flag = 1;
for(j = I;j & ltn-1;j++)
stu[j]= stu[j+1];
}
如果(標誌==0)
Printf("此學號不存在!\ n ");
if(flag==1)
{printf("刪除成功,請選擇菜單6\n "顯示結果);
n-;
}
}
void readfile()
{
char buf[80],* p = " student.dat
FILE * fp
int I = 0;
if ((fp=fopen("student.dat "," r ")= = NULL)
{ printf("打開文件%s錯誤!擊任意鍵退出!”,p);
系統(“暫停”);
退出(0);
}
while(fscanf(fp," %s%s%s%d%d ",stu[i]。雪豪,斯圖[我]。姓名,
斯圖[我]。性& ampstu[i].ke1,& ampstu[i].ke2,& ampstu[i].ke3)==6)
{ i++;
i = i
}
fclose(FP);
n = I;
Printf("輸入完成!\ n ");
}作廢保存()
{ int i,j,k,flag = 0;
FILE * fp
fp=fopen("student.dat "," w ");
for(I = 0;我& ltm;i++)
{
fprintf(fp," %s%s%d%d%d ",stu[i]。雪豪,斯圖[我]。姓名,斯圖[我]。性& ampstu[i].ke1,
& ampstu[i].ke2,& ampstu[I]. ke3);
fclose(FP);
printf(" saved ");
}
}
void paixu()
{
int i,j,k,t;
for(I = 0;我& ltm;i++)
{
斯圖[我]。pin =(stu[I]. ke 1+stu[I]. ke2+stu[I]. ke3)/3;
}
for(I = 0;我& lt= m-2;i++)
{
k = I;
for(j = I+1;j & lt= m-1;j++)
if(stu[j].pin & lt斯圖[k]。pin)
k = j;
如果(k!=i)
{
t=stu[k]。pin
斯圖[k]。pin=stu[i]。pin
斯圖[我]。pin = t;
}
}
for(I = 0;我& ltm;i++)
{printf("學生%d的姓名%s:",i+1,stu[i]。姓名);& ltbr & gtprintf(" % d學生的x:% s ",i+1,stu[i]。性);& ltbr & gtprintf(" \ n %d學生的數學成績:% d ",i+1,stu[I]. ke 1);& ltbr & gtprintf(" \ n %d學生的語文成績:% d ",i+1,stu[I]. ke2);& ltbr & gtprintf(" \ n %d學生的英語成績:% d ",i+1,stu[I]. ke3);& ltbr & gtprintf(" \ n %d學生的平均成績:% d ",i+1,stu[i]。pin);& ltbr & gt}
}
無效菜單()
{ int nub
printf(" \ n \ n \ n學生成績管理系統\ n \ n ");
Printf ("* * * *系統功能菜單* * * * \ n ");
printf("-\ n ");
Printf("1。輸入學生信息\ n ");
Printf("2。查詢學生信息\ n ");
Printf("3。按學號刪除信息\ n”);
Printf("4。讀入學生信息\ n ");
Printf("5。保存信息(必須在退出程序之前執行此項,以便將更改保存到文件中)\ n ");
Printf("6。查詢學生平均成績信息\ n ");
Printf("0。退出系統\ n ");
printf("-\ n ");
Printf("請選擇菜單號:");
scanf("%d ",& ampnub);
開關(小塊)
{
案例1:insert();打破;
案例二:seek();打破;
案例三:del();打破;
案例四:readfile();打破;
案例五:save();打破;
案例六:派旭();打破;
情況0:k = 0;打破;
默認值:printf("請在0和6之間選擇\ n ");
}}
void main()
{
當(k)
menu();
}
//排序後輸出平均值。如果不想直接輸入,那麽就不要選擇對每個學生進行排序。