|
#include<stdio.h> #include<stdlib.h> #include<string.h> struct student { char num; char name[10]; int s1,s2,s3; double avg; } stu[50],t; int count=0; void new_student(); void search_student(int num); void update_student(int num,int course,int score); void delete_student(int num); void output_student(); void sort_student (); int main(void) { int i,num,course,score; while(1) { printf(" 學(xué)生成績查詢系統(tǒng) \n"); printf(" ************************************************************************\n"); printf(" 1. : 新建學(xué)生信息\n 2 : 查詢學(xué)生信息\n 3 : 修改學(xué)生信息\n 4 : 刪除學(xué)生信息\n 5 : 輸出學(xué)生信息,并按平均成績排序\n 0 : 退出\n"); printf(" ************************************************************************\n"); scanf("%d",&i); if(i==1) { printf("新建學(xué)生信息:\n"); new_student(); } else if(i==2) { printf("輸入要查詢的學(xué)生的學(xué)號:\n"); scanf("%d",&num); search_student(num); } else if(i==3) { printf("輸入要修改的學(xué)生的學(xué)號:\n"); scanf("%d",&num); printf("選擇修改的科目:1.數(shù)學(xué) 2.英語 3.電腦\n"); scanf("%d",&course); printf("輸入新的成績:\n"); scanf("%d",&score); update_student(num,course,score); } else if(i==4) { printf("輸入要刪除的學(xué)生的學(xué)號:\n"); scanf("%d",&num); delete_student(num); } else if(i==5) { printf("根據(jù)學(xué)生平均分進(jìn)行排序:\n"); sort_student (); } if(i!=1&&i!=2&&i!=3&&i!=4&&i!=5&&i!=0) { printf("輸入錯誤,請重新輸入!\n"); } if(i==0) break; } return 0; } void new_student() { int i,n; printf("輸入要統(tǒng)計的人數(shù):\n"); scanf("%d",&n); printf("輸入學(xué)號、姓名、數(shù)學(xué)成績、英語成績、電腦成績:\n"); if(count==50) { printf("error!\n"); return; } for(i=0; i<n; i++) { scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].s1,&stu[i].s2,&stu[i].s3); stu[i].avg=(stu[i].s1+stu[i].s2+stu[i].s3)/3.0; count++; } printf("\n學(xué)生成績錄入成功!\n\n"); } void search_student(int num) { int i; if(count==0) { printf("error\n"); return; } for(i=0; i<count; i++) { if(stu[i].num==num) { printf("學(xué) 號:%d \n姓 名:%s \n數(shù) 學(xué):%d \n英 語:%d \n電 腦:%d \n平均分:%.2lf \n",stu[i].num,stu[i].name,stu[i].s1,stu[i].s2,stu[i].s3,stu[i].avg); break; } else { } } } void update_student(int num,int course,int score) { int i; for(i=0; i<count; i++) { if(stu[i].num==num) { break; } } if(i<count) { switch(course) { case 1: stu[i].s1=score; break; case 2: stu[i].s2=score; break; case 3: stu[i].s3=score; break; } stu[i].avg=(stu[i].s1+stu[i].s2+stu[i].s3)/3.0; } } void delete_student(int num) { int i,j; for(i=0; i<count; i++) { if(stu[i].num==num) { for(j=i; j<count; j++) { stu[j]=stu[j+1]; } count=count-1; } } } void output_student() { int i,n; if(count==0) { printf("無信息\n"); return; } for(i=0; i<n; i++) { printf("輸入第%d個學(xué)生成績 學(xué)號 姓名 電腦成績 英語成績 數(shù)學(xué)成績\n"); scanf("%s %s %s %s %s %s %s ",&stu[i].num,&stu[i].name,&stu[i].s1,&stu[i].s2,&stu[i].s3); } } void sort_student () { int i,index,j; if(count==0) { printf("無信息\n"); return; } for(i=0; i<count-1; i++) { index=i; for(j=i+1; j<count; j++) { if(stu[j].avg<stu[index].avg) { index=j; } } t=stu[index]; stu[index]=stu[i]; stu[i]=t; } for(i=0; i<count; i++) { printf("%d %s %d %d %d %.2lf\n",stu[i].num,stu[i].name,stu[i].s1 ,stu[i].s2,stu[i].s3,stu[i].avg); } }
|
|
|