您的当前位置:首页正文

学生信息管理系统c语言版源代码

2023-03-07 来源:好走旅游网


#include <>

#include <>

#include <>

#include <>

#define N 1000

typedef struct student

{

int number;

char name[20];

int grade;

int gaoshu;

int yingyu;

int jisuanji;

int sum;

}STUDENT;

STUDENT student[N];

int shuliang=0;

void menu();

void fhzjm()

{

char biaozhi[20];

printf(\"\\n\");

printf(\"还需要操作么如果需要操作请输入:yes,否则请输入:no\\n\");

scanf(\"%s\

if(strcmp(biaozhi,\"yes\")==0)

{

menu();

}

else if(strcmp(biaozhi,\"no\")==0)

exit(0);

else

{

printf(\"请输入正确的字符,谢谢!\\n\");

fhzjm();

}

}

void DengJi()

{

int rs;

int i,k=1;

system(\"CLS\");

printf(\"请输入需要输入几个学生信息:\");

scanf(\"%d\

for(i=shuliang;i{

printf(\"请输入第%d个学生的学号:\

scanf(\"%d\

printf(\"请输入学生的姓名:\");

scanf(\"%s\

printf(\"请输入学生3门课的成绩:\");

printf(\"请输入第1门课的成绩:\");

scanf(\"%d\

printf(\"请输入第2门课的成绩:\");

scanf(\"%d\

printf(\"请输入第3门课的成绩:\");

scanf(\"%d\

}

shuliang=shuliang+rs;

fhzjm();

}

void ShanChu()

{

char shanchuinfo[10];

system(\"CLS\");

printf(\"删除全部学生信息请输入\\\"all\\\",删除指定学号的学生信息请输入\\\"one\\\"\\n\");

scanf(\"%s\

if(strcmp(shanchuinfo,\"all\")==0)

{

int j;

printf(\"你删除的学生信息如下:\\n\");

printf(\"-----------学号-------------姓名-------------高数--------------英语--------------计算机\\\n\");

for(j=0;jprintf(\"----%d-------%s-------%d-------%d-------%d\\\n\j].number,student[j].name,student[j].gaoshu,student[j].jisuanji);

shuliang=0;

printf(\"删除成功\\n\\n\");

}

else if(strcmp(shanchuinfo,\"one\")==0)

{

struct student *p=NULL;

int choice;

int i,j,k=0;

printf(\"请输入你要删除的人的学号:\");

scanf(\"%d\

for(i=0;i{

if(choice==student[i].number)

{

k=1;j=i;break;

}

}

if(k)

{

if(shuliang==1)

{

p=&student[0];

free(p);

shuliang=0;

}

else

{

for(i=j;i{

student[i]=student[i+1];

}

shuliang=shuliang-1;

}

printf(\"删除成功\\n\\n\");

}

else

{

printf(\"输入数据错误!\\n\");

}

}

fhzjm();

}

void LiuLan()

{

int i;

system(\"CLS\");

if(shuliang==0)

{

printf(\"系统里面没有任何学生的信息!\\n\");

}

else

{

for(i=0;i{

printf(\"第%d个学生的学号为:%d\\n\

printf(\"第%d个学生的姓名为:%s\\n\

printf(\"第%d个学生的第一门课的成绩为:%d\\n\

printf(\"第%d个学生的第二门课的成绩为:%d\\n\

printf(\"第%d个学生的第三门课的成绩为:%d\\n\

student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuanji;

printf(\"第%d个学生的总成绩为:%d\\n\

}

}

fhzjm();

}

void ChaZhao()

{

int xx;

char choice,yy[20];

int i,j,k=0;

system(\"CLS\");

if(shuliang==0)

{

printf(\"系统里面没有任何学生的信息!\\n\");

fhzjm();

}

printf(\"三种查找方式:学号,姓名,成绩\\n\");

printf(\"如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\\n\");

printf(\"请输入您查找的方式:\");

scanf(\"%s\

if(choice=='1')

{

printf(\"请输入需要查找学生的学号:\");

scanf(\"%d\

printf(\"您所查找的学生的信息为:\\n\");

printf(\"----学号----姓名----高数成绩----英语成绩----计算机成绩----\\\n\");

for(i=0;i{

if(xx==student[i].number)

{

j=i;k=1;

printf(\"----%d-------%s-------%d-------%d-------%d----\\\n\j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jisuanji);

}

}

if(k==0)

printf(\"输入信息有误:\\n\");

}

else if(choice=='2')

{

printf(\"请输入需要查找学生的姓名:\\n\");

scanf(\"%s\

printf(\"您所查找的学生的信息为:\\n\");

printf(\"----学号----姓名----高数成绩----英语成绩----计算机成绩----\\\n\");

for(i=0;i{

if(strcmp(yy,student[i].name)==0)

{

j=i;k=1;

printf(\"----%d-------%s-------%d-------%d-------%d----\\\n\j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jisuanji);

}

}

if(k==0)

printf(\"输入信息有误:\\n\");

}

else if(choice=='3')

{

printf(\"请输入需要查找学生的成绩:\\n\");

scanf(\"%d\

printf(\"您所查找的学生的信息为:\\n\");

printf(\"----学号----姓名----高数----英语----计算机----\\\n\");

for(i=0;i{

if(xx==student[i].grade)

{

j=i;k=1;

printf(\"----%d-------%s-------%d-------%d-------%d----\\\n\j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jisuanji);

}

}

if(k==0)

printf(\"输入信息有误:\\n\");

}

fhzjm();

}

void PaiXu()

{

struct student *p1[N],**p2,*temp;

int i,j;

system(\"CLS\");

p2=p1;

for( i=0;i{

p1[i]=student+i;

}

for( i=0;i{

for( j=i+1;j{

if((*(p2+i))->sum<(*(p2+j))->sum)

{temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;}

}

}

printf(\"按照总成绩排序之后的信息为:\\n\");

printf(\"----学号----姓名----总成绩----\\\n\");

for( i=0;i{

student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuanji;

printf(\"----%d-----%s----%d-----\\n\+i))->sum);

}

fhzjm();

}

void CunChu()

{

int i;

FILE *rs;

if((rs=fopen(\"\

{

printf(\"not open\");

exit(0);

}

for(i=0;i{

fwrite(&student[i], sizeof(student[i]), 1, rs);

}

if(ferror(rs))

{

fclose(rs);

perror(\"写文件失败!\\n\");

return;

}

printf(\"存储文件成功!\\n\");

fclose(rs);

fhzjm();

}

void DaoChu()

{

struct student t;

int i=0;

FILE* fp = fopen(\"\

shuliang=0;

if(NULL==fp)

{

perror(\"读取文件打开失败!\\n\");

return;

}

memset(student,0x0,sizeof(student));

while(1)

{

fread(&t,sizeof(t),1,fp);

if(ferror(fp))

{

fclose(fp);

perror(\"读文件过程失败!\\n\");

return;

}

if(feof(fp))

{

break;

}

student[i]=t;

i++;

}

fclose(fp);

shuliang=i;

printf(\"导出文件成功!\\n\");

fhzjm();

}

void menu()

{

int n=0;

system(\"CLS\");

printf(\" 学生信息管理系统\\n\");

printf(\" 作者:陈椿\\n\");

printf(\"-------------------MENU-----------------\\n\");

printf(\" 1.登记学生信息\\n\");

printf(\" 2.删除学生信息\\n\");

printf(\" 3.浏览所有已经登记的学生\\n\");

printf(\" 4.查找\\n\");

printf(\" 按学号查找\\n\");

printf(\" 按姓名查找\\n\");

printf(\" 按成绩查找\\n\");

printf(\" 5.根据总成绩排序\\n\");

printf(\" 6.存储到文件\\n\");

printf(\" 7.从文件导出\\n\");

printf(\" 8.退出系统\\n\");

a: printf(\" 请选择:\");

scanf(\"%d\

switch (n)

{

case 1:

DengJi();break;

case 2:

ShanChu();break;

case 3:

LiuLan();break;

case 4:

ChaZhao();break;

case 5:

PaiXu();break;

case 6:

CunChu();break;

case 7:

DaoChu();break;

case 8:

exit(0);break;

default:

{

printf(\"请输入1-8之间的数字,谢谢!\\n\");

goto a;

}

}

}

main()

{

menu();

}

因篇幅问题不能全部显示,请点此查看更多更全内容