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

c语言学生管理系统

#include
#include
#include
#define N 200

void Add();//ok
void Revise();//ok
void Print();//ok
void Sort();//ok
void Search();//ok
int Continue();//ok
int comeback();//ok
double Ace();//ok
double Sum();//ok
void Analysis();//ok
void Analysis2();//ok
struct Student
{
char system[15];
char clas[15];
char id[15];
char name[10];
double math;
double Eng;
double Ch;
double sum;
double ave;
}Stu[N];

int n=0;

int main()
{
menu:
system("cls");
int x;
printf("---------------------欢迎来到学生信息管理系统------------------------\n");
printf("1.增加学生\n");
printf("2.查询学生\n");
printf("3.修改学生\n");
printf("4.显示学生\n");
printf("5.分析数据\n");
printf("6.科目分析\n");
printf("7.排序\n");
printf("0.退出\n");
printf("请输入你的操作:");
scanf("%d",&x);
switch(x)
{
case 1:
Add();
if(comeback())
goto menu;
break;
case 2:
Search();
if(comeback())
goto menu;
break;
case 3:
Revise();
if(comeback())
goto menu;
break;
case 4:
Print();
if(comeback())
goto menu;
break;
case 5:
Analysis();
if(comeback())
goto menu;
break;
case 6:
Analysis2();
if(comeback())
goto menu;
break;
case 7:
Sort();
if(comeback())
goto menu;
break;
case 0:
printf("退出--欢迎再次使用\n");
return 0;
}
return 0;
}
int comeback()
{
int key;
int key2;
printf("是否返回菜单?(1:是/0:否)\n");
printf("请输入:");
scanf("%d",&key);
if(key==1)
return key;
else
{
printf("是否确定退出?(1:是/0:否)\n");
printf("请输入:");
scanf("%d",&key2);
if(key2==0)
return 1;
else
{
printf("欢迎再次使用~\n");
return 0;
}
}

}
double Sum(int a)
{
return Stu[a].math+Stu[a].Eng+Stu[a].Ch;
}
double Ave(int a)
{
return (Stu[a].math+Stu[a].Eng+Stu[a].Ch)/3;
}
void Add()
{
system("cls");
printf("----------欢迎来到增加信息模块--------------\n");
printf("已录入学生人数为: %d 人\n",n);
printf("请输入学院:");
scanf("%s",Stu[n].system);
printf("请输入班级:");
scanf("%s",Stu[n].clas);
printf("请输入学号:");
scanf("%s",Stu[n].id);
printf("请输入姓名:");
scanf("%s",Stu[n].name);
printf("请输入数学成绩;");
scanf("%lf",&Stu[n].math);
printf("请输入英语成绩:");
scanf("%lf",&Stu[n].Eng);
printf("请输入语文成绩:");
scanf("%lf",&Stu[n].Ch);
Stu[n].sum=Sum(n);
Stu[n].ave=Ave(n);
//printf("%s %s %s %s %.2lf %.2lf %.2lf %.2lf %.2lf\n",Stu[n].system1,Stu[n].clas,Stu[n].id,Stu[n].name,Stu[n].math,Stu[n].Eng,Stu[n].Ch,Stu[n].sum,Stu[n].ave);
n++;
printf("添加成功\n\n");
if(Continue())
Add();
}
void Search()//查
{
system("cls");
char sea[20];
int num;
int a=0;
int i;
int key;
int xx=0;
printf("----------欢迎来到查找信息模

块--------------\n");
printf("1.按学院查\n");
printf("2.按班级查\n");
printf("3.按姓名查\n");
printf("4.按学号查\n");
printf("请输入你需要的:");
scanf("%d",&num);
switch(num)
{
case 1:
printf("请输入查找的学院:");
scanf("%s",sea);
for(i=0;i{
if(strcmp(sea,Stu[i].system)==0)
{
if(xx==0)
{
printf("---------------------------------------------------------------------------\n");
printf("学院 班级 学号 姓名 数学 英语 语文 总分 平均分\n");
xx++;
}
printf("%s%6s%13s %5s %.2lf %.2lf %.2lf %.2lf %.2lf\n",Stu[i].system,Stu[i].clas,Stu[i].id,Stu[i].name,Stu[i].math,Stu[i].Eng,Stu[i].Ch,Stu[i].sum,Stu[i].ave);
a++;
}
}
if(a==0)
printf("无相关信息~\n");
if(Continue())
Search();
break;
case 2:
printf("请输入查找的班级:");
scanf("%s",sea);
for(i=0;i{
if(strcmp(sea,Stu[i].clas)==0)
{
if(xx==0)
{
printf("---------------------------------------------------------------------------\n");
printf("学院 班级 学号 姓名 数学 英语 语文 总分 平均分\n");
xx++;
}
printf("%s%6s%13s %5s %.2lf %.2lf %.2lf %.2lf %.2lf\n",Stu[i].system,Stu[i].clas,Stu[i].id,Stu[i].name,Stu[i].math,Stu[i].Eng,Stu[i].Ch,Stu[i].sum,Stu[i].ave);

a++;
}
}
if(a==0)
printf("无相关信息~\n");
if(Continue())
Search();
break;
case 3:
printf("请输入查找的姓名:");
scanf("%s",sea);
for(i=0;i{
if(strcmp(sea,Stu[i].name)==0)
{
if(xx==0)
{
printf("---------------------------------------------------------------------------\n");
printf("学院 班级 学号 姓名 数学 英语 语文 总分 平均分\n");
xx++;
}
printf("%s%6s%13s %5s %.2lf %.2lf %.2lf %.2lf %.2lf\n",Stu[i].system,Stu[i].clas,Stu[i].id,Stu[i].name,Stu[i].math,Stu[i].Eng,Stu[i].Ch,Stu[i].sum,Stu[i].ave);

a++;
}
}
if(a==0)
printf("无相关信息~\n");
if(Continue())
Search();
break;
case 4:
printf("请输入查找的学号:");
scanf("%s",sea);
for(i=0;i{
if(strcmp(sea,Stu[i].id)==0)
{
if(xx==0)
{
printf("---------------------------------------------------------------------------\n");
printf("学院 班级 学号 姓名 数学 英语 语文 总分 平均分\n");
xx++;
}
printf("%s%6s%13s %5s %.2lf %.2lf %.2lf %.2lf %.2lf\n",Stu[i].system,Stu[i].clas,Stu[i].id,Stu[i].name,Stu[i].math,Stu[i].Eng,Stu[i].Ch,Stu[i].sum,Stu[i].ave);
a++;
}
}
if(a==0)
printf("无相关信息~\n");
if(Continue())
Search();
break;
}
}
int Continue()
{
int a;
printf("是否继续操作?(1:是/0:否)\n");
printf("请

输入:");
scanf("%d",&a);
return a;
}
void Revise()//修改
{
system("cls");
char rev[20];
int num;
int a=0;
int b;
int c;
int i;
printf("----------欢迎来到修改信息模块--------------\n");
printf("1.按姓名查\n");
printf("2.按学号查\n");
printf("请输入:");
scanf("%d",&num);
switch(num)
{
case 1:
printf("请输入查找的姓名:");
scanf("%s",rev);
for(i=0;i{
if(strcmp(rev,Stu[i].name)==0)
{
printf("查找成功!\n\n");
printf("---------------------------------------------------------------------------\n");
printf("学院 班级 学号 姓名 数学 英语 语文 总分 平均分\n");
printf("%s%6s%13s %5s %.2lf %.2lf %.2lf %.2lf %.2lf\n",Stu[i].system,Stu[i].clas,Stu[i].id,Stu[i].name,Stu[i].math,Stu[i].Eng,Stu[i].Ch,Stu[i].sum,Stu[i].ave);
printf("---------------------------------------------------------------------------\n");
a++;
c=i;
break;
}
}
if(a==0)
printf("无相关信息~\n");
else
{

printf("1.学院 2.班级 3.学号 4.姓名 5.数学成绩 6.英语成绩 7.语文成绩\n");
printf("请输入你要修改的信息:");
scanf("%d",&b);
switch(b)
{
case 1:
printf("请输入修改的学院:");
scanf("%s",Stu[c].system);
printf("修改成功!\n\n");
break;
case 2:
printf("请输入修改的班级:");
scanf("%s",Stu[c].clas);
printf("修改成功!\n\n");
break;
case 3:
printf("请输入修改的学号:");
scanf("%s",Stu[c].id);
printf("修改成功!\n\n");
break;
case 4:
printf("请输入修改的姓名:");
scanf("%s",Stu[c].name);
printf("修改成功!\n\n");
break;
case 5:
printf("请输入修改的数学成绩:");
scanf("%lf",&Stu[c].math);
printf("修改成功!\n\n");
Stu[c].sum=Sum(c);
Stu[c].ave=Ave(c);
break;
case 6:
printf("请输入修改的英语成绩:");
scanf("%lf",&Stu[c].Eng);
printf("修改成功!\n\n");
Stu[c].sum=Sum(c);
Stu[c].ave=Ave(c);
break;
case 7:
printf("请输入修改的语文成绩:");
scanf("%lf",&Stu[c].Ch);
printf("修改成功!\n\n");
Stu[c].sum=Sum(c);
Stu[c].ave=Ave(c);
break;
}
printf("修改后更新信息:\n");
printf("---------------------------------------------------------------------------\n");
printf("学院 班级 学号 姓名 数学 英语 语文 总分 平均分\n");
printf("%s%6s%13s %5s %.2lf %.2lf %.2lf %.2lf %.2lf\n",Stu[c].system,Stu[c].clas,Stu[c].id,Stu[c].name,Stu[c].math,Stu[c].Eng,Stu[c].Ch,Stu[c].sum,Stu[c].ave);
printf("---------------------------------------------------------------------------\n");
}
if(Continue())
Revise();
break;
case 2:
printf("请输入查找的学号:");
scanf("%s",rev);
for

(i=0;i{
if(strcmp(rev,Stu[i].id)==0)
{
printf("查找成功!\n");
printf("---------------------------------------------------------------------------\n");
printf("学院 班级 学号 姓名 数学 英语 语文 总分 平均分\n");
printf("%s%6s%13s %5s %.2lf %.2lf %.2lf %.2lf %.2lf\n",Stu[i].system,Stu[i].clas,Stu[i].id,Stu[i].name,Stu[i].math,Stu[i].Eng,Stu[i].Ch,Stu[i].sum,Stu[i].ave);
printf("---------------------------------------------------------------------------\n");
a++;
c=i;
break;
}
}
if(a==0)
printf("无相关信息~\n");
else
{
printf("1.学院 2.班级 3.学号 4.姓名 5.数学成绩 6.英语成绩 7.语文成绩\n");
printf("请输入你要修改的信息:");
scanf("%d",&b);
switch(b)
{
case 1:
printf("请输入修改的学院:");
scanf("%s",Stu[c].system);
printf("修改成功!\n\n");
break;
case 2:
printf("请输入修改的班级:");
scanf("%s",Stu[c].clas);
printf("修改成功!\n\n");
break;
case 3:
printf("请输入修改的学号:");
scanf("%s",Stu[c].id);
printf("修改成功!\n\n");
break;
case 4:
printf("请输入修改的姓名:");
scanf("%s",Stu[c].name);
printf("修改成功!\n\n");
break;
case 5:
printf("请输入修改的数学成绩:");
scanf("%lf",&Stu[c].math);
printf("修改成功!\n\n");
break;
case 6:
printf("请输入修改的英语成绩:");
scanf("%lf",&Stu[c].Eng);
printf("修改成功!\n\n");
break;
case 7:
printf("请输入修改的语文成绩:");
scanf("%lf",&Stu[c].Ch);
printf("修改成功!\n\n");
break;
}
printf("修改后更新信息:\n\n");
printf("---------------------------------------------------------------------------\n");
printf("学院 班级 学号 姓名 数学 英语 语文 总分 平均分\n");
printf("%s%6s%13s %5s %.2lf %.2lf %.2lf %.2lf %.2lf\n",Stu[c].system,Stu[c].clas,Stu[c].id,Stu[c].name,Stu[c].math,Stu[c].Eng,Stu[c].Ch,Stu[c].sum,Stu[c].ave);
printf("---------------------------------------------------------------------------\n");
}
if(Continue())
Revise();
break;
}
}
void Print()//显示
{
int i;
printf("---------------------------------------------------------------------------\n");
printf("学院 班级 学号 姓名 数学 英语 语文 总分 平均分\n");
for(i=0;i{
printf("%s%6s%13s %5s %.2lf %.2lf %.2lf %.2lf %.2lf\n",Stu[i].system,Stu[i].clas,Stu[i].id,Stu[i].name,Stu[i].math,Stu[i].Eng,Stu[i].Ch,Stu[i].sum,Stu[i].ave);
}
printf("---------------------------------------------------------------------------\n");
}

void Analysis()//分析
{

system("cls");
int key;
int i;
char Ana[16];
double m_ave=0,E_a

ve=0,C_ave=0;
double a=0;
double pass=0;
double excellent=0;
double pass1=0;
double excellent1=0;
double pass2=0;
double excellent2=0;
printf("----------欢迎来到分析模块--------------\n");
printf("1.按学院分析\n");
printf("2.按班级分析\n");
printf("请输入:");
scanf("%d",&key);
switch(key)
{
case 1:
printf("请输入学院:");
scanf("%s",Ana);
for(i=0;i{
if(strcmp(Ana,Stu[i].system)==0)
{
m_ave+=Stu[i].math;
E_ave+=Stu[i].Eng;
C_ave+=Stu[i].Ch;
if(Stu[i].math>60)
pass++;
if(Stu[i].math>90)
excellent++;
if(Stu[i].Eng>60)
pass1++;
if(Stu[i].Eng>90)
excellent1++;
if(Stu[i].Ch>60)
pass2++;
if(Stu[i].Ch>90)
excellent2++;
a++;
}
}
m_ave=m_ave/a;
E_ave=E_ave/a;
C_ave=C_ave/a;
pass=pass/a;
pass1=pass1/a;
pass2=pass2/a;
excellent=excellent/a;
excellent1=excellent1/a;
excellent2=excellent2/a;
printf("---------------------------------------------------------------------------\n");
printf("学院:%s 该院总人数:%d 该院数学平均分:%.2lf 及格率:%.2lf%% 优秀率:%.2lf%% \n",Ana,n,m_ave,pass*100,excellent*100);
printf(" 该院英语平均分:%.2lf 及格率:%.2lf%% 优秀率:%.2lf%% \n",E_ave,pass1*100,excellent1*100);
printf(" 该院语文平均分:%.2lf 及格率:%.2lf%% 优秀率:%.2lf%% \n",C_ave,pass2*100,excellent2*100);
printf("---------------------------------------------------------------------------\n");
if(Continue())
Analysis();
break;
case 2:
printf("请输入班级:");
scanf("%s",Ana);
for(i=0;i{
if(strcmp(Ana,Stu[i].clas)==0)
{
m_ave+=Stu[i].math;
E_ave+=Stu[i].Eng;
C_ave+=Stu[i].Ch;
if(Stu[i].math>60)
pass++;
if(Stu[i].math>90)
excellent++;
if(Stu[i].Eng>60)
pass1++;
if(Stu[i].Eng>90)
excellent1++;
if(Stu[i].Ch>60)
pass2++;
if(Stu[i].Ch>90)
excellent2++;
a++;
}
}
m_ave=m_ave/a;
E_ave=E_ave/a;
C_ave=C_ave/a;
pass=pass/a;
pass1=pass1/a;
pass2=pass2/a;
excellent=excellent/a;
excellent1=excellent1/a;
excellent2=excellent2/a;
printf("---------------------------------------------------------------------------\n");
printf("学院:%s 该院总人数:%d 该院数学平均分:%.2lf 及格率:%.2lf%% 优秀率:%.2lf%% \n",Ana,n,m_ave,pass*100,excellent*100);
printf(" 该院英语平均分:%.2lf 及格率:%.2lf%% 优秀率:%.2lf%% \n",E_ave,pass1*100,excellent1*100);
printf(" 该院语文平均分:%.2lf 及格率:%.2lf%% 优秀率:%.2lf%% \n",C_ave,pass2*100,excellent2*100);
printf("---------------------------------------------------------------------------\n");
if(Continue())
Analysis();
break;
}
}
void Analysis2()//科目分析
{
system("cls"

);
double max=0,min=101;
char Ana[16];
int key;
int i;
double aves=0;
printf("----------欢迎来到科目分析模块--------------\n");
printf("1.数学分析\n");
printf("2.英语分析\n");
printf("3.语文分析\n");
printf("请输入:");
scanf("%d",&key);
switch(key)
{
case 1:
for(i=0;i{
aves+=Stu[i].math;
if(maxmax=Stu[i].math;
if(min>Stu[i].math)
min=Stu[i].math;
}
aves=aves/n;
printf("---------------------------------------------------------------------------\n");
printf(" 数学分析情况如下 \n");
printf("总人数:%d 平均分:%.2lf 最高分:%.2lf 最低分:%.2lf \n",n,aves,max,min);
printf("---------------------------------------------------------------------------\n");
if(Continue())
Analysis2();
break;
case 2:
for(i=0;i{
aves+=Stu[i].Eng;
if(maxmax=Stu[i].Eng;
if(min>Stu[i].Eng)
min=Stu[i].Eng;
}
aves=aves/n;
printf("---------------------------------------------------------------------------\n");
printf(" 英语分析情况如下 \n");
printf("总人数:%d 平均分:%.2lf 最高分:%.2lf 最低分:%.2lf \n",n,aves,max,min);
printf("---------------------------------------------------------------------------\n");
if(Continue())
Analysis2();
break;
case 3:
for(i=0;i{
aves+=Stu[i].Ch;
if(maxmax=Stu[i].Ch;
if(min>Stu[i].Ch)
min=Stu[i].Ch;
}
aves=aves/n;
printf("---------------------------------------------------------------------------\n");
printf(" 英语分析情况如下 \n");
printf("总人数:%d 平均分:%.2lf 最高分:%.2lf 最低分:%.2lf \n",n,aves,max,min);
printf("---------------------------------------------------------------------------\n");
if(Continue())
Analysis2();
break;
}
}
void Sort()//排序
{
system("cls");
struct Student temp;
int key;
int i,j;
printf("----------欢迎来到排序模块--------------\n");
printf("1.按数学成绩排序\n");
printf("2.按总成绩排序\n");
printf("3.按班级排序\n");
printf("请输入:");
scanf("%d",&key);
switch(key)
{
case 1:
for(i=0;ifor(j=i+1;jif(Stu[i].math{
temp=Stu[i];
Stu[i]=Stu[j];
Stu[j]=temp;
}
Print();
break;
case 2:
for(i=0;ifor(j=i+1;jif(Stu[i].sum{
temp=Stu[i];
Stu[i]=Stu[j];
Stu[j]=temp;
}
Print();
break;
case 3:
for(i=0;ifor(j=i+1;jif(Stu[i].clas{
temp=Stu[i];
Stu[i]=Stu[j];
Stu[j]=temp;
}
Print();
break;
}
}

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