文档库 最新最全的文档下载
当前位置:文档库 › C语言实现学生管理系统

C语言实现学生管理系统


#include "stdafx.h"
#include
#include
int n=0;

//输入总人数全局变量
/********************************
1. 添加学生信息
2. 删除学生信息
3. 全部学生信息
4. 查询学生信息
5. 退出
********************************/
typedef struct //学生信息结构体
{
char num[20];//学号
char name[20];//姓名
int mathscore;//数学分数
int physcore;//物理分数
int engscore;//英语分数
int zongf,pingj;//总分,平均分
}Student;

Student stu[200];

/*struct Student//学生信息结构体
{
char num[20];//学号
char name[20];//姓名
int mathscore;//数学分数
int physcore;//物理分数
int engscore;//英语分数
int zongf,pingj;//总分,平均分
}stu[200];*/

void menu();//菜单

void add();//输入学生信息

void del();//删除某个学生的信息

void allinf();//打印所有信息

void search();//查找信息的菜单项

void search1();//查找某个学生各项信息

void search2();//单科选择的switch

void search3();//计算总分最高分和最低分

void search4();//按总分排序

void search5();//按学号排序

void maths();//计算数学最高分和最低分

void physic();//计算物理最高分和最低分

void english();//计算英语最高分和最低分

void main()
{
b: int x;
menu();
printf("\n请选择操作:");
scanf("%d",&x);
switch(x)
{
case 1:add();goto b;
case 2:del();goto b;
case 3:allinf();goto b;
case 4:search();goto b;
case 5:break;
default:break;
}
}


void menu()//打印菜单
{
printf("\n********************************\n");
printf("1. 添加学生信息\n");
printf("2. 删除学生信息\n");
printf("3. 显示全部信息\n");
printf("4. 查询学生信息\n");
printf("5. 退出\n");
printf("********************************\n");
}

void add()//输入学生信息
{
int i;
for(;getchar()!='t';n++)
{
printf("\n输入学生的学号:");
scanf("%s",stu[n].num);

printf("\n输入学生的姓名:");
scanf("%s",stu[n].name);

printf("\n输入学生的数学成绩:");
scanf("%d",&stu[n].mathscore);

printf("\n输入学生的物理成绩:");
scanf("%d",&stu[n].physcore);

printf("\n输入学生的英语成绩:");
scanf("%d",&stu[n].engscore);

printf("\n是否继续?按't'停止输入,按'enter'继续\n");
getchar();
}
for(i=0;i<=n;i++)
{
stu[i].zongf=stu[i].mathscore+stu[i].physcore+stu[i].engscore;
stu[i].pingj=stu[i].zongf/3;
}
}

void del()//删除某个学生的信息
{
int i;
char temp[20];
printf("\n请输入要删除学生的姓名或学号:\n");
scanf("%s",temp);
for(i=0;i<=n;i++)
{
if(strcmp(temp,stu[i].name)==0||strcmp(temp,stu[i].num)==0)
{
for(;i{
stu[i]=stu[i+1];
}
n=n-1;
}
}
}

void allinf()//打出所有的信息
{
int i;
printf("学号\t

姓名\t数学\t物理\t英语\t总分\t平均分\n");
for(i=0;iprintf("%s\t%s\t%d\t%d\t%d\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].mathscore,stu[i].physcore,stu[i].engscore,stu[i].zongf,stu[i].pingj);
}

void search()//搜索各类信息
{
c: int a;
printf("\n1.个人信息查询 2.单科查询 3.总分查询 4.按总分排序 5.按学号排序 5.返回:");
scanf("%d",&a);

switch(a)
{
case 1:search1();goto c;break;//search();
case 2:search2();break;//search();
case 3:search3();goto c;break;//search();
case 4:search4();goto c;break;//search();
case 5:break;
default:break;
}

}

void search1()//搜索单个学生的各项成绩
{
int i;
char temp[20];
printf("\n请输入要查找学生的姓名或学号:");
scanf("%s",temp);
for(i=0;i<=n;i++)
{
if(strcmp(temp,stu[i].name)==0||strcmp(temp,stu[i].num)==0)
{
printf("学号\t姓名\t数学\t物理\t英语\t总分\t平均分\n");
printf(" %s\t%s\t%d\t%d\t%d\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].mathscore,stu[i].physcore,stu[i].engscore,stu[i].zongf,stu[i].pingj);

}
}
}

void search2()//搜索单科的最高分和最低分
{
int x;
printf("\n请选择科目: 1.数学 2.物理 3.英语 4.返回:");
scanf("%d",&x);
switch(x)
{
case 1:maths();search2();break;
case 2:physic();search2();break;
case 3:english();search2();break;
case 4:search();break; //返回到选择搜索信息的界面
default:break;
}
}

void search3()//搜索总分最高分和最低分
{
int i,min=0,max=0;
for(i=1;i{
if(stu[min].zongf>=stu[i].zongf)
min=i;
if(stu[max].zongf<=stu[i].zongf)
max=i;
}
printf("\n \t学号\t姓名\t分数");
printf("\n总分最低分:\t%s\t%s\t%d",stu[min].num,stu[min].name,stu[min].zongf);
printf("\n总分最高分:\t%s\t%s\t%d",stu[max].num,stu[max].name,stu[max].zongf);
}

void search4()//按总分排序
{
Student temp[200];
for(int i=0;ifor(int j=0;j{
if(stu[j].zongf{
temp[j]=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp[j];
}
}
printf("学号\t姓名\t数学\t物理\t英语\t总分\t平均分\n");
for(int k=0;kprintf(" %s\t%s\t%d\t%d\t%d\t%d\t%d\n",stu[k].num,stu[k].name,stu[k].mathscore,stu[k].physcore,stu[k].engscore,stu[k].zongf,stu[k].pingj);
}
}

void search5()//按学号排序
{
Student temp[200];
for(int i=0;ifor(int j=0;j{
if(strcmp(stu[j].num,stu[j+1].num)>0)
{
temp[j]=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp[j];
}
}
printf("学号\t姓名\t数学\t物理\t英语\t总分\t平均分\n");
for(int k=0;kprintf(" %s\t%s\t%d\t%d\t%d\t%d\t%d\n",stu[k].num,stu[k].name,stu[k].mathscore,stu[k].physcore,stu[k].engscore,stu[k].zongf,stu[k].pingj);
}
}

void maths()//数学最高分和最低分
{
int i,min=0,max=

0;
for(i=1;i{
if(stu[min].mathscore>=stu[i].mathscore)
min=i;
if(stu[max].mathscore<=stu[i].mathscore)
max=i;
}
printf("\n \t学号\t姓名\t分数");
printf("\n数学最低分:\t%s\t%s\t%d",stu[min].num,stu[min].name,stu[min].mathscore);
printf("\n数学最高分:\t%s\t%s\t%d",stu[max].num,stu[max].name,stu[max].mathscore);
}

void physic()//物理最高分和最低分
{
int i,min=0,max=0;
for(i=1;i{
if(stu[min].physcore>=stu[i].physcore)
min=i;
if(stu[max].physcore<=stu[i].physcore)
max=i;
}
printf("\n \t学号\t姓名\t分数");
printf("\n物理最低分:\t%s\t%s\t%d",stu[min].num,stu[min].name,stu[min].physcore);
printf("\n物理最高分:\t%s\t%s\t%d",stu[max].num,stu[max].name,stu[max].physcore);
}

void english()//搜索英语最高分和最低分
{
int i,min=0,max=0;
for(i=1;i{
if(stu[min].engscore>=stu[i].engscore)
min=i;
if(stu[max].engscore<=stu[i].engscore)
max=i;
}
printf("\n \t学号\t姓名\t分数");
printf("\n英语最低分:\t%s\t%s\t%d",stu[min].num,stu[min].name,stu[min].engscore);
printf("\n英语最高分:\t%s\t%s\t%d",stu[max].num,stu[max].name,stu[max].engscore);
}

相关文档
相关文档 最新文档