学生管理系统(利用指针实现)
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;
}
#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;
}
相关文章推荐
- 利用jsshell 实现的学生信息管理系统
- android学生管理系统,利用linerLayout,实现xml的读取和写入,以及按钮的事件处理
- 用C语言关于学生管理系统的几种实现方法(一位数组,二维数组,指针,结构体)
- C语言利用结构体数组实现学生成绩管理系统
- 学生信息管理系统(C++实现)
- 利用log4j+mongodb实现分布式系统中日志统一管理
- ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
- 学生管理系统 链表实现
- 学生成绩管理系统(指针,动态数组…
- vc下实现的简单的学生管理系统
- C语言实现 学生信息管理系统
- jsp servlet mysql实现的学生成绩管理系统源码附带视频指导配置运行教程
- Java实现学生管理系统
- 学生管理系统总结之功能实现
- 学生成绩管理系统顺序表实现
- MVC实现学生管理系统的一些技巧和注意事项
- 数据结构——学生成绩管理系统的链表实现
- 一个学生成绩管理系统的设计与实现:2
- Java60行代码实现swing+mysql学生信息管理系统
- 使用Xml简单实现学生管理系统