学生成绩的查询

来源:互联网 发布:淘宝刷层级 编辑:程序博客网 时间:2024/05/11 09:23

关于对学生成绩的统计系统,

#include "stdio.h"

#include "string.h"

#include "stdlib.h"

#include "conio.h"

#define A 1

#define U printf("作者信息为:/n****刘庭****/n********/n****1989/11/02****/n****河南商专计算机网络技术一班09****/n");

 

 /* 函数实现对某个学生成绩的输出*/

void search(int (*p)[4])

 {  int n,i;

     int *w;

     E: printf("请输人学生编号:/n");

    scanf("%d",&n);

     if(n<=0||n>=4)

   {

       printf("你的输入超过了范围,重新输入:/n");

       goto E;

   }

   w=*p;

   w=*(p+n-1);

    /* (*)[4]表示一个指向一维数组的指针,那么其实其本身就是一个指针*/

   for(i=0;i<4;i++

   printf("%4d",*(w+i));/* 这里可以用这个*(w+i)*/

 }    

    

 

/* 用函数实现对学生不及格成绩的输出*/

void found(int (*p)[4])

{     int j,i,r;

       for(i=0;i<4;i++)

         for(j=0;j<4;j++)

            if(*(*(p+i)+j)<60)

            { printf("/n学生%d 没有及格其成绩为/n",j+1);

                for(r=0;r<4;r++)

                 printf("%3d",*(*(p+i)+r));

            }

           else 

           continue;/* 继续这个循环,*/

}

/* 输出某个学生的平均成绩的输出*/

 int  ave(int (*p)[4])

{     int n;

     int ave2=0;

    int j,sum=0;

     E: printf("请输人学生编号:/n");

    scanf("%d",&n);

     if(n<=0||n>4)

   {

       printf("你的输入超过了范围,重新输入:/n");

       goto E;

   }

 

         for(j=0;j<4;j++)

         sum=sum+*(*(p+n)+j);

          ave2=sum/4; 

        return ave2;

}

int  ave2(int (*p)[4],int n)

{     

     int ave2=0;

    int j,sum=0;

    

     for(j=0;j<4;j++)

         sum=sum+*(*(p+n)+j);

          ave2=sum/4; 

        return ave2;

}

/* 对某个学生成绩进行判断是不是没及格*/

void pan(int (*p)[4])

 {  

        int n;

     E: printf("请输人学生编号:/n");

    scanf("%d",&n);

     if(n<=0||n>4)

   {

       printf("你的输入超过了范围,重新输入:/n");

       goto E;

   }

         if(ave2(p,n)<80)

      printf("学生%d没有及格,要重新考试;/n",n);

      else

      printf("次学生及格了:/n");

 }

/* 首先输出这几个学生的成绩*/

void oupput(int (*p)[4])

{ int i,j;

    for(i=0;i<4;i++)

   {

      printf("/n学生%d 的成绩是 ",i+1);

         for(j=0;j<4;j++)

          printf("%4d",*(*(p+i)+j));

    }  

 }

main()

{ 

   #if A

    int s[][4]={67,90,89,88,98,55,86,73,88,96,20,72,70,85,94,99};

    #else

    int s[][4]={67,90,89,88,98,77,86,73,88,96,99,72,70,85,94,99}

    #endif 

   int (*p)[4];/* 这个是验证的程序*/

    int n;

    p=s;

 printf("**/n*******开放性学生成绩统计系统******/n");    

printf("/n1****输出全部学生成绩/n2****请输入你要查找的学生的成绩/n3****查询那个学生没有及格/n4****输出某个学生的平均成绩/n5****输出全部不及格成绩/n6****结束/n7****查看作者信息");

    while(1)

    {

   E: printf("/n请输人命令:/n");

    scanf("%d",&n);

     if(n<=0||n>7)

   {

       printf("你的输入超过了范围,重新输入:/n");

       goto E;

   }

    switch(n)

    { case 1: oupput(p);break;

      case 2: search(p);break;

      case 3: pan(p);break;

      case 4: printf("学生的平均成绩是%d",ave(p));break;

      case 5: found(p);break;

      case 6:  printf("/n 结束了,恩,谢了使用了我的便得程序了:/n");exit(0);break;

      case 7:  U break;

      default :break;

    }

   }

   }