实验9 二维字符数组--学生成绩管理系统V2.0
实验目的:
1. 熟悉二维字符数组数组作函数参数,
2. 掌握字符串处理函数及模块化程序设计方法
实验题目:
某班有最多不超过30人(具体人数由键盘输入)参加某门课程
的考试,用一维数组 编程实现如下学生成绩管理:
1. 录入每个学生的学号、姓名和考试成绩;  2. 计算课程的总分和平均分;  3. 按成绩由高到低排出名次表;  4. 按姓名的字典顺序输出成绩表;  5. 按姓名查询学生排名及其考试成绩;   #include
void main() {
int n,i;
long number[40]; char name[30][20]; float score[20];
void input(long number[40],char name[30][20],float score[20],int n); void sa(float score[20],int n);
void sb(long number[40],char name[30][20],float score[20],int n); void sc(long number[40],char name[30][20],float score[20],int n); void sd(long number[40],char name[30][20],float score[20],int n);
printf(\请输入学生人数(小于30人):\scanf(\
input(number,name,score,n);
printf(\for(i=0;i   printf(\第%d位学生的学号为:%ld,姓名为:%s,成绩为:%f\\n\   printf(\printf(\课程的总分和平均分:\\n\     sa(score,n);    printf(\printf(\成绩由高到低排序:\\n\     sb(number,name,score,n);      printf(\    sc(number,name,score,n);      printf(\    sd(number,name,score,n); }  void input(long number[40],char name[30][20],float score[20],int n) {       int i;  for(i=0;i printf(\请输入第%d位学生的学号:\scanf(\         printf(\请输入第%d位学生的姓名:\        scanf(\         printf(\请输入第%d位学生的成绩:\        scanf(\  }  void sa(float score[20],int n) {     int i; float sum=0; for(i=0;i         sum=sum+score[i];   }  printf(\学生的总成绩为:%f\\n\printf(\学生的平均成绩为:%f\\n\   void sb(long number[40],char name[30][20],float score[20],int n) {    int i,j;     char temp[20];    float temp1;    long temp2;   for(i=1;i    {                     for(j=0;j    if(score[j]    temp1=score[j];    score[j]=score[j+1];    score[j+1]=temp1;    strcpy(temp,name[j]);    strcpy(name[j],name[j+1]);    strcpy(name[j+1],temp);    temp2=number[j];    number[j]=number[j+1];    number[j+1]=temp2;     }     }     }    for(i=0;i    printf(\成绩第%d名学号:%ld,姓名:%s,成绩为:%f\\n\}  void sc(long number[40],char name[30][20],float score[20],int n) {   int i,j;      char temp[20];     float temp1;     long temp2;     for(i=0;i                 for(j=i+1;j    if(strcmp(name[j],name[j-1])<0)    {              temp1=score[j];    score[j]=score[j-1];    score[j-1]=temp1;    strcpy(temp,name[j]);    strcpy(name[j],name[j-1]);    strcpy(name[j-1],temp);    temp2=number[j];    number[j]=number[j-1];    number[j-1]=temp2;     }     printf(\按姓名的字典顺序输出的结果为:\\n\   for(i=0;i      printf(\第%d位学生的学号:%ld,姓名:%s,成绩为:%f\\n\ }  void sd(long number[40],char name[30][20],float score[20],int n) {    int i;  char sname[20];      void sb(long number[40],char name[30][20],float score[20],int n);    printf(\请输入要查询的学生姓名:\scanf(\     sb(number,name,score,n);       } for(i=0;i if(strcmp(sname,name[i])==0)      printf(\查询的学生的名次为:%d,成绩为:%f\\n\}