1.使用结构体变量来表示学生数据:姓名、学号和3门课程的成绩。从键盘输入个学生的数据,要求打印出每个学生的姓名和3门课程的平均成绩,此外要求按学生的平均成绩降序输出,按学生姓名搜索。
View Code
1 #include <fstream> 2 #include <iostream> 3 using namespace std; 4 struct student 5 { 6 int num; 7 char name[20]; 8 float score[3]; 9 }; 10 11 //从键盘输入数据 12 void input(student* std,int n) 13 { 14 for(int i=0;i<n;i++) 15 { 16 cin>>std[i].name; 17 cin>>std[i].num; 18 cin>>std[i].score[0]>>std[i].score[1]>>std[i].score[2]; 19 } 20 } 21 //输出学生信息 22 void print(student* std,int n) 23 { 24 int i; 25 for(i=0;i<n;i++) 26 { 27 cout<<std[i].name<<"\t"<< 28 std[i].num<<'\t'<< 29 std[i].score[0]<<'\t'<< 30 std[i].score[1]<<'\t'<< 31 std[i].score[2]<<'\t'<< 32 (std[i].score[0]+std[i].score[1]+std[i].score[2])/3<<'\t'<<endl; 33 } 34 } 35 //按成绩排序 36 void sort(student* std,int n) 37 { 38 int i,j,L; 39 student tmp; 40 for(i=0;i<n-1;i++) 41 { 42 L=i; 43 for(j=i+1;j<n;j++) 44 { 45 if(std[j].score[0]+std[j].score[1]+std[j].score[2]> 46 std[L].score[0]+std[L].score[1]+std[L].score[2]) 47 L=j; 48 } 49 tmp=std[i]; 50 std[i]=std[L]; 51 std[L]=tmp; 52 } 53 } 54 //按姓名搜索 55 int search(student* std,int n,char* name) 56 { 57 int i; 58 for(i=0;i<n;i++) 59 { 60 if(strcmp(std[i].name,name)==0) 61 return i; 62 } 63 return -1; 64 } 65 66 void main() 67 { 68 student std[10]; 69 input(std,10); 70 print(std,10); 71 sort(std,10); 72 int i=search(std,10,"wangwu1"); 73 if(i!=-1) 74 cout<<"Found"<<endl; 75 else 76 cout<<"No Found"<<endl; 77 78 }