内容发布更新时间 : 2025/3/27 2:26:18星期一 下面是文章的全部内容请认真阅读。
实验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\}