您的位置:首页 > 其它

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

2011-10-10 17:11 218 查看
#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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: