学生信息管理系统 c语言
#include <stdio.h>
#include "conio.h"
#include "string.h"
#include<stdlib.h>
#define MAXSTR 20
#define MAXDATA 50
typedef struct
{
int id;
char name[MAXSTR];
float DS,Java,Vc;
}Student;
typedef struct
{
Student data[MAXDATA];
int length;
}StuList;
void shuchu(StuList s1);
/*初始化学生信息*/
StuList chushihua()
{ StuList s;
int i,j;
printf("输入创建学生的人数:"); /*输入创建学生的人数*/
scanf("%d",&j);
printf("请输入学生信息:\n");
s.length=j;
printf("学号 姓名 数据结构成绩 Java成绩 VC成绩");
printf("\n");
for(i=0;i<j;i++)
{ scanf("%d",&s.data[i].id);
scanf("%s",s.data[i].name);
scanf("%f",&s.data[i].DS);
scanf("%f",&s.data[i].Java);
scanf("%f",&s.data[i].Vc);
printf("\n");
}
return s;
}
/*按照学号查找学生信息*/
void xuehaozhao(StuList s1)
{
StuList s;
int x,i=0,k=0;
s.length=0;
printf("请输入您要查找的学生的学号:");
scanf("%d",&x);
for(int j=0;j<s1.length;j++)
{
if(s1.data[j].id==x)
{
s.data[i]=s1.data[j];
s.length++;
i++;
k++;
}
}
if(k==0)
printf("查无此人!\n");
else
shuchu(s);
}
/*按照姓名查找学生信息*/
void xingmingzhao(StuList s1)
{
StuList s;
char x[MAXSTR];
int i=0,k=0;
s.length=0;
printf("请输入您要查找的学生的姓名:");
scanf("%s",&x);
for(int j=0;j<s1.length;j++)
{
if(strcmp(s1.data[j].name,x)==0) /*判断两字符串是否相等*/
{
s.data[i]=s1.data[j];
s.length++;
i++;k++;
}
}
if(k==0)
{
printf("查无此人!\n");
}
else
{
shuchu(s);
}
}
/*按照学号删除*/
StuList xuehaoshanchu(StuList s1)
{
StuList s;
int x,i=0,k=0;
s.length=0;
printf("请输入你要删除的学生的学号:");
scanf("%d",&x);
for(int j=0;j<s1.length;j++)
{
if(s1.data[j].id!=x)
{
s.data[i]=s1.data[j];
s.length++;
i++;
}
else
k++;
}
if(k==0)
printf("查无此人!\n");
else
{
printf("学生已删除结果为:\n");
shuchu(s);
}
return s;
}
/*按照姓名删除*/
StuList xingmingshanchu(StuList s1)
{
StuList s;
char x[MAXSTR];
int i=0,k=0;
s.length=0;
printf("请输入您要删除的学生的姓名:");
scanf("%s",&x);
for(int j=0;j<s1.length;j++)
{
if(strcmp(s1.data[j].name,x)!=0)
{
s.data[i]=s1.data[j];
s.length++;
i++;
}
else
k++;
}
if(k==0)
printf("查无此人!\n");
else
{
printf("学生已删除结果为:\n");
shuchu(s);
}
return s;
}
/*插入学生信息*/
StuList charu(StuList s1)
{
int i,j,k;
prin
tf("你要添加几名学生:");
printf("请输入学生信息:\n");
scanf("%d",&j);
printf("学号 姓名 数据结构 Java VC成绩\n");
学生信息管理系统 c语言
i=s1.length;
s1.length=s1.length+j;
for(;i<s1.length;i++)
{
scanf("%d",&s1.data[i].id);
scanf("%s",s1.data[i].name);
scanf("%f",&s1.data[i].DS);
scanf("%f",&s1.data[i].Java);
scanf("%f",&s1.data[i].Vc);
printf("\n");
for(k=0;k<i;k++)
{
if(s1.data[k].id==s1.data[i].id)
{
printf("学号重复了,请重新输入");
scanf("%d",&s1.data[i].id);
scanf("%s",s1.data[i].name);
scanf("%f",&s1.data[i].DS);
scanf("%f",&s1.data[i].Java);
scanf("%f",&s1.data[i].Vc);
printf("\n");
}
}
}
return s1;
}
/*按姓名修改*/
StuList xiugai(StuList s1)
{
int k=0,i;
char x[MAXSTR];
printf("请输入您要修改的学生的姓名: ");
scanf("%s",&x);
printf("学号 姓名 数据结构 Java VC成绩\n");
for(i=0;i<s1.length;i++)
{
if(strcmp(s1.data[i].name,x)==0)
{
scanf("%d",&s1.data[i].id);
scanf("%s",s1.data[i].name);
scanf("%f",&s1.data[i].DS);
scanf("%f",&s1.data[i].Java);
scanf("%f",&s1.data[i].Vc);
printf("\n");
k++;
}
}
if(k==0)printf("查无此人!\n");
return s1;
}
/*按学号更新学生信息*/
StuList gengxin(StuList s1)
{
int a,k=0,i;
printf("请输入您要修改的学生的学号: ");
scanf("%d",&a);
printf("学号 姓名 数据结构 Java VC成绩\n");
for(i=0;i<s1.length;i++)
{
if(s1.data[i].id==a)
{
scanf("%d",&s1.data[i].id);
scanf("%s",s1.data[i].name);
scanf("%f",&s1.data[i].DS);
scanf("%f",&s1.data[i].Java);
scanf("%f",&s1.data[i].Vc);
printf("\n");
k++;
}
}
if(k==0)printf("查无此人!\n");
return s1;
}
/*按照数据结构成绩排序*/
void DSpaixu(StuList s1)
{
int i,j;
StuList s;
s.length=1;
for(i=0;i<s1.length-1;i++)
{
for(j=s1.length-1;j>i;j--)
if(s1.data[j].DS<s1.data[j-1].DS)
{
s.data[0]=s1.data[j];
s1.data[j]=s1.data[j-1];
s1.data[j-1]=s.data[0];
}
}
shuchu(s1);
}
/*统计各科目各分数段学生*/
void statistics(StuList s1)
{
StuList L;
L=s1;
int DScount90_100=0;
int Javacount90_100=0;
int Vccount90_100=0;
int DScount80_90=0;
int Javacount80_90=0;
int Vccount80_90=0;
int DScount70_80=0;
int Javacount70_80=0;
int Vccount70_80=0;
int DScount60_70=0;
int Javacount60_70=0;
int Vccount60_70=0;
int DScount60=0;
int Javacount60=0;
int Vccount60=0;
for(int i=0;i<L.length;i++)
{
if(L.data[i].DS>90&&L.data[i].DS<=100)
DScount90_100++;
if(L.data[i].DS>80&&L.data[i].DS<=90)
DScount80_90++;
if(L.data[i].DS>70&&L.data[i].DS<=80)
DScount70_80++;
if(L.data[i].DS>=60&&L.data[i].DS<=70)
DScount60_70++;
if(L.data[i].DS<60)
DScount60++;
if(L.data[
i].Java>90&&L.data[i].Java<=100)
Javacount90_100++;
if(L.data[i].Java>80&&L.data[i].Java<=90)
Javacount80_90++;
学生信息管理系统 c语言
if(L.data[i].Java>70&&L.data[i].Java<=80)
Javacount70_80++;
if(L.data[i].Java>=60&&L.data[i].Java<=70)
Javacount60_70++;
if(L.data[i].Java<60)
Javacount60++;
if(L.data[i].Vc>90&&L.data[i].Vc<=100)
Vccount90_100++;
if(L.data[i].Vc>80&&L.data[i].Vc<=90)
Vccount80_90++;
if(L.data[i].Vc>70&&L.data[i].Vc<=80)
Vccount70_80++;
if(L.data[i].Vc>=60&&L.data[i].Vc<=70)
Vccount60_70++;
if(L.data[i].Vc<60)
Vccount60++;
}
printf("数据结构\t 100--90 90--80 80--70 70--60 60一下\n");
printf("人数统计\t %d %d %d %d %d\n\n",DScount90_100,DScount80_90,DScount70_80,DScount60_70,DScount60);
printf(" Java \t \t 100--90 90--80 80--70 70--60 60一下\n");
printf("人数统计\t %d %d %d %d %d\n\n",Javacount90_100,Javacount80_90,Javacount70_80,Javacount60_70,Javacount60);
printf(" Vc \t 100--90 90--80 80--70 70--60 60一下\n\n");
printf("人数统计\t %d %d %d %d %d\n",Vccount90_100,Vccount80_90,Vccount70_80,Vccount60_70,Vccount60);
}
/*学生总成绩排序*/
void totalPaiXu(StuList s1)
{
float total[10];
for(int m=0;m<s1.length;m++)
{
total[m]=s1.data[m].DS+s1.data[m].Java+s1.data[m].Vc;
}
int i,j;
StuList s;
s.length=1;
for(i=0;i<s1.length-1;i++)
{
for(j=s1.length-1;j>i;j--)
if(total[j]>total[j-1])
{
s.data[0]=s1.data[j];
s1.data[j]=s1.data[j-1];
s1.data[j-1]=s.data[0];
}
}
shuchu(s1);
}
/*输出学生信息 */
void shuchu(StuList s1)
{
int i=0;
printf("学号 姓名 数据结构 Java VC++\n");
while(i<s1.length)
{
printf("%d\t",s1.data[i].id);
printf("%s\t",s1.data[i].name);
printf("%f\t",s1.data[i].DS);
printf("%f\t",s1.data[i].Java);
printf("%f\t",s1.data[i].Vc);
printf("\n");
i++;
}
}
void selectMode()
{
StuList s;
char c='y';
int a;
while(c!='n')
{
printf(" \n\n \t*****学生信息管理系统_宋冬红***** \n\n\n\n\n\n");
printf("\t1.创建学生表\t\t\t\t");
printf("2.按照学生学号查找\n\n");
printf("\t3.按照姓名查找\t\t\t\t");
printf("4.修改学生信息\n\n");
printf("\t5.根据学生学号删除学生信息\t\t");
printf("6.根据学生姓名删除学生信息\n\n");
printf("\t7.插入一位学生的信息(不能重复)\t\t");
printf("8.按照数据结构成绩排序 \n\n");
printf("\t9.统计各科目各分数段学生\t\t");
printf("10.学生总成绩排序\n\n");
printf("\t11.根据学号更新学生信息库\t\t");
printf("12.输出学生信息\n\n");
printf("请输入选项\n\n");
scanf("%d",&a);
switch(a)
{
c
ase 1: s=chushihua(); break;
case 2: xuehaozhao(s); break;
case 3: xingmingzhao(s); break;
case 4: s=xiugai(s); break;
case 5
学生信息管理系统 c语言
: s=xuehaoshanchu(s); break;
case 6: s=xingmingshanchu(s); break;
case 7: s=charu(s); break;
case 8: DSpaixu(s); break;
case 9: statistics(s); break;
case 10: totalPaiXu(s); break;
case 11: s=gengxin(s); break;
case 12: shuchu(s); break;
}
getchar();
printf("继续按任何键,退出按:n)\n");
scanf("%c",&c);
}
}
/*主程序*/
void main()
{
selectMode();
}