学生成绩统计及查询系统.txt

来自「1.输入学生的学号、姓名及各科成绩 2.全班按总分排名 3.全班平均分 各单科平」· 文本 代码 · 共 284 行

TXT
284
字号
#include<stdio.h>
#include<string.h>
#define N 100
#define M 6
struct student 
{char number[10];
char name[10];
float sum;
float avr;




}stu[N];





void main()
{
	char x;

void dos();
                                /*   出现界面                       */ 
void input_stu(void);           /*   输入学生的学号、姓名及各科成绩     */ 
             
void choice1(void);                 /*全班按总分排名 */
void choice2(void);               /*全班各学生按平均分排名*/
void choice3(void);              /*全班平均分    各单科平均分 	 各单科及格人数    */

void  choice4(void);               /*以学号或姓名查成绩    以及查一科以上不及格的学生名单  */
void  choice5(void);               /* 查一科以上不及格的学生名单  */
void  choice6(void);                /* 统计每科成绩大于等于80分 并且平均分大于等于90分的学生名单*/

void  choice7(void);               /*显示所有的学生成绩名单*/

        
  dos();                             /*            出现界面             */
input_stu();                        /*     调用子函数——输入数据       */

printf("请选择功能键: \n“);
scanf("%d",&x);
while(x>=8)
{printf("\n输入有误,请重输");
 scnaf("%d",&x);
}
switch(x)
{case 1:choice1(void);break;
case 2:choice2(void);break;
case 3:choice3(void);break;
case 4;choice4(void);break;
case 5:choice5(void);break;
case 6:choice6(void);break;
case 7:choice7(void);break;

default: dummy(){};
}




void dos(void)
{
	int N,M;
printf("-------------------------------------------------------------------------\n");
printf("|                                                                       |\n");
printf("|                                                                       |\n");
printf("|                ****                        ****                       |\n");
printf("|                 ****       欢迎进入       ****                        |\n");
printf("|                  **** 学生成绩统计及查询 ****                         |\n");
printf("|                   ****       系统       ****                          |\n");
printf("|                    ****                ****                           |\n");
printf("|                                                                       |\n");
printf("|                                                                       |\n");
printf("-------------------------------------------------------------------------\n");
printf("请您确定学生数目(小于等于100):   ");
scanf("%d",&N);
printf("请您确定科目数目(小于等于6):    ");
scanf("%d",&M);
char direction[]={"功能键说明\n 输入学生的学号、姓名及各科成绩\n1——全班按总分排名\n
      2——全班各学生按平均分排名\n3——全班平均分   各单科平均分   各单科及格人数 \n
      4——以学号或姓名查成绩    以及查一科以上不及格的学生名单\n
	  5——查一科以上不及格的学生名单\n  
	  6——统计每科成绩大于等于80分并且平均分大雨等于90分的学生名单\n
	  7——显示所有的学生成绩名单\n0——退出系统\n "};
puts(direction);
}




void input_stu(void)
{int i,j;
for(i=0;i<n;i++)
{printf("请输第%个学生的学号  姓名及各科成绩(注意学号不能为"00"):\n",i+1);
printf("学号:    ");
scanf("%s",stu[i].number);
printf("姓名:     ");
scanf("%s",stu[i].name);
for(j=0;j<M;j++)
{printf("成绩%d:  ",j+1);
scanf("%f",&stu[i].score[j]);
}
}
}


void choice1(void)                     /*全班按总分排名 */
{int i,j ;
char temp1[N],temp2[N],temp3[N];       

float sum,max;
for(i=0;i<N;i++)
{
printf("%5s%10s',stu[i].number,stu[i].name;
}
for(j=0,sum=0;j<M;;j++)
sum+=stu[i].score[j];                  /*计算第i个学生总分及平均分*/
stu[i].sum=sum;
stu[i].are=sum/M.0;
for(j=1;j<=N-1;j++)
for(i=0;i<=N-j;i++)
if(stu[i].sum<stu[i+1].sum0
{max=stu[i].sum;stu[i].sum=stu[i+1].sum;stu[i].sum=max;}
strcpy(temp1,stu[N].number);
strcpy(temp2,stu[N].name);
strcpy(tempy3,stu[N].sum);
for(i=0;i<N;i++)
printf("%d      %10s       %9.2f      \n",temp1[i],temp2[i],temp3[i]);
}




void choice2(void)                   /* 平均分来排名   */
{int i,j ;
char temp1[N],temp2[N],temp3[N];
float sum,max;
for(i=0;i<N;i++)
{
printf("%5s%10s',stu[i].number,stu[i].name;
}
for(j=1;j<=N-1;j++)
for(i=0;i<=N-j;i++)
if(stu[i].avr<stu[i+1].avr)
{max=stu[i].avr;stu[i].avr=stu[i+1].avr;stu[i+1].avr=max;}
strcpy(temp1,stu[N].number);
strcpy(temp2,stu[N].name);
strcpy(tempy3,stu[N].sum);
for(i=0;i<N;i++)
printf("%d      %10s       %9.2f      \n",temp1[i],temp2[i],temp3[i]);
}
float sum,max;
for(i=0;i<N;i++)
{
printf("%5s%10s',stu[i].number,stu[i].name;
}

for(j=1;j<=N-1;j++)
for(i=0;i<=N-j;i++)
if(stu[i].avr<stu[i+1].avr)
{max=stu[i].avr;stu[i].avr=stu[i+1].avr;stu[i+1].avr=max;}
strcpy(temp1,stu[N].number);
strcpy(temp2,stu[N].name);
strcpy(tempy3,stu[N].sum);

for(i=0;i<N;i++)
printf("%d      %10s       %9.2f      \n",temp1[i],temp2[i],temp3[i]);
}









void choice3(void)              /*全班平均分    各单科平均分   各单科及格人数    */ 








void choice4(void)        //查询学生成绩———学号或姓名
{int x;
printf(" 请您选择查询的方式:\n
		1——按学号查询\n
		2——按姓名查询\n")
scnaf("%d",&x);
switch(x)
{case 1:void choice4(1)(void) ;break;
default :printf("\n");
}

void choice4(1)(void)             //只用学号查询学生成绩
{int i;
	printf("请输入您要查询的学号:    \n");
scanf("%d",&i);
if(i=0)
{printf("\n输入无效  请继续输入:   \n");break;
}
if(i>N)
{printf("\n输入无效  请继续输入:   \n");
scanf("%d",&i);
if(i==0) break;
}
printf("学号   姓名   score1    score2  score3     score5    score6\n");
Printf("%2.0f   %10s",stu[i].number,stu[i].name);
for(j=0;j<m;j++)
printf("%3.1f",stu[i].score[j]);
printf("%5.1f%5.1f\n",stu[i].sum,stu[i].avr);
}

void choice4(2)(void)                 //用姓名查询成绩
{char temp[]                          //定义一个临时数组
printf("请输入您要查询的姓名:    \n");
scanf("%s",&temp[]);
printf("学号   姓名   score1    score2  score3     score5    score6\n");
for(i=0;i<=N;i++)
{if(temp[]==stu[i].name)
Printf("%2.0f   %10s",stu[i].number,stu[i].name);
for(j=0;j<m;j++)
printf("%3.1f",stu[i].score[j]);
printf("%5.1f%5.1f\n",stu[i].sum,stu[i].avr);
}
}




void choice5(void)           //显示不及格学生学号  姓名   成绩    不及格科目数
{int i,j,k=0;
printf("学号   姓名   score1    score2  score3     score5    score6\n");
for(i=0;i<=N;i++)
{for(j=0;j<=M;j++)
{if(stu[i].score[j]<60) k++;
}
if(k!=0)   frintf("%2.0f   %10s  %d",stu[i].number,stu[i].name,k);
for(j=0;j<m;j++)
printf("3.1f",stu[i].score[j]);
}
}






void choice6(void)     //统计每科成绩>=80分且平均分>=90分名单
{int i,j,k=0;
Printf("每科成绩>=80分且平均分>=90分名单\n
	   学号   姓名   score1    score2  score3     score5    score6\n");
 for(i=0;i<=N;i++)
{ for(j=0;j<=M;j++)
 {if(stu[i].score[j]>=80||stu[i].avr>=90)
 k++;}
 if(k==M)
 {frintf("%2.0f   %10s",stu[i].number,stu[i].name);
printf("3.1f",stu[i].score[j]);
 }
}





void choice7(void)              //显示所有学生名单
{int i,j;
printf("学号   姓名   score1    score2  score3     score5    score6\n");
for(i=0;i<=N;i++)
{frintf("%2.0f   %10s",stu[i].number,stu[i].name);
for(j=0;j<=M;j++)
printf("3.1f",stu[i].score[j]);
}
}



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?