学生管理系统(利用指针实现)

 

#include<stdio.h>
#define A 2
#define B 6
/*****************************************************************************/
void MaoPao(int (*p1)[B])
{
 int i=0,j=0,temp,x;
   for(x=0;x<A;x++)
    for(i=0;i<5;i++)
 {
  for(j=0;j<5-i;j++)
  {
   if(*(*(p1+x)+j)>(*(*(p1+x)+j+1)))
   {
    temp=*(*(p1+x)+j);
    *(*(p1+x)+j)=*(*(p1+x)+j+1);
       *(*(p1+x)+j+1)=temp;
   
   }
  }
 }
}
/*****************************************************************************/
void  average(int (*p1)[B])
{
 int ave=0,k,j,i;

 
    float N1,N2;
loop1: printf("\n请输入学生学号以查询总分和平均分!(只能查看本人信息!)\n");
     scanf("%d",&i);
     switch(i)
     {
     case 200901:
       for(k=0;k<1;k++)
       {
        for(j=0;j<B;j++)
        {
        ave+=*(*(p1+k)+j);
       }
      }
      if(k==1)
      {
      printf("学生001的总分为:%d\n",ave);
      N1=ave/6;
      printf("学生001的平均分为:%f\n",N1);
      ave=0;
                    
     }
      break;
     case 200902:
       for(k=1;k<A;k++)
       {
     for(j=0;j<B;j++)
     {
      ave+=*(*(p1+k)+j);
      }
     }
      if(k==2)
      {
      printf("学生002的总分为:%d\n",ave);
      N2=ave/6;
      printf("学生002的平均分为:%f\n",N2);
    
     
     }
    
      break;
         default :printf("\n学号有误!请重新输入!\n");
      goto loop1;
      break;
       }
     /*printf("\n学生名次:\n");
     if(N1>N2)
     {
      printf("\n第一名:001\n第二名:002\n");
     }
     else
      printf("\n第一名:002\n第二名:001\n");*/

/*****************************************************************************/
void Delete(int (*p1)[B])
{
 int i,j,k;
 printf("\n请输入所要删除的学生学号:\n");
 scanf("%d",&k);
 switch(k)
 {
 case 200901:
  for(i=0;i<1;i++)
  for(j=0;j<B;j++)
  {
   *(*(p1+i)+j)=0;
  }
  printf("\n所有数据为空!!!!\n");
 case 200902:
  for(i=1;i<2;i++)
  for(j=0;j<B;j++)
  {
   *(*(p1+i)+j)=0;
  }
  printf("\n所有数据为空!!!!\n");
 }
}
/*****************************************************************************/

int main()
{
 int i,k,a[A][B],j,(*b)[B];
 b=a;
    printf("\t\t\t\t学生成绩管理系统\n ");
 
loop: printf("\n请输入学号!\n");
 scanf("%d",&i);
 switch(i)
 {
  case 200901:
     printf("数学\t英语\t语文\t化学\t生物\t物理\n");
      for(k=0;k<1;k++)
   {
    for(j=0;j<B;j++)
    {
    scanf("%d",&a[k][j]);
    
    }
   }
   printf("学生001的各科成绩:\n");
   for(k=0;k<1;k++)
   {
    for(j=0;j<B;j++)
    {
      printf("%d\t",a[k][j]);
      
    }
   } 
         printf("\n学生成绩按照由小到大顺序排列:\n");
 MaoPao(b);
 printf("学生001的成绩顺序\n");
 for(i=0;i<1;i++)
 for(j=0;j<B;j++)
 printf("%d\t",a[i][j]);
 printf("\n学生的平均分和总分:\n");
 average(b);
 Delete(b);
   break;
     case 200902:
   printf("数学\t英语\t语文\t化学\t生物\t物理\n");
      for(k=1;k<2;k++)
   {
    for(j=0;j<B;j++)
    {
    scanf("%d",&a[k][j]);
    
    }
   }
   printf("\n学生002的各科成绩:\n");
   for(k=1;k<2;k++)
   {
    for(j=0;j<B;j++)
    {
      printf("%d\t",a[k][j]);
      
    }
   } 
         printf("\n学生成绩按照由小到大顺序排列:\n");
 MaoPao(b);
 printf("\n学生002的成绩顺序\n");
 for(i=1;i<A;i++)
 for(j=0;j<B;j++)
 printf("%d\t",a[i][j]);
 printf("\n学生的平均分和总分:\n");
    average(b);
 Delete(b);
   break;
    default :printf("\n学号有误!请重新输入!\n");
    goto loop;
    break;
 }
 
 return 0;


}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值