学生管理系统程序源代码.docx
《学生管理系统程序源代码.docx》由会员分享,可在线阅读,更多相关《学生管理系统程序源代码.docx(15页珍藏版)》请在冰豆网上搜索。
学生管理系统程序源代码
学生管理系统程序源代码(总9页)
#include<>
#include<>
structstudent
{
longintnum;
charname[20];
intage;
charsex[4];
inte;
charm[20];
charb[30];
charp[15];
};
intn=0;
structstudentstu[100];
structstudent*p;
voidlr();
voidll();
voidcx();
voidxg();
voidsc();
voidbc();
voiddq();
voidpx();
voidmain()
{
intz;
printf("+---------------------------+\n");
printf("|欢迎使用学生档案管理系统|\n");
printf("+---------------------------+\n");
printf("提示:
为保证您的操作得到保存,请按正常顺序退出系统^_^\n");
do
{
printf("\n\t\t\t--------------------------------\n");
printf("\t\t\t+主菜单|\n");
printf("\t\t\t--------------------------------\n");
printf("\t\t\t+[1]----录入学生信息|\n");
printf("\t\t\t+[2]----浏览学生信息|\n");
printf("\t\t\t+[3]----查询学生信息|\n");
printf("\t\t\t+[4]----删除学生信息|\n");
printf("\t\t\t+[5]----修改学生信息|\n");
printf("\t\t\t+[6]----保存学生信息|\n");
printf("\t\t\t+[7]----读取学生信息|\n");
printf("\t\t\t+[8]----按学号排序|\n");
printf("\t\t\t+[0]----退出系统|\n");
printf("\t\t\t--------------------------------\n");
printf("请输入您的选择:
");
scanf("%d",&z);
switch(z)
{
case0:
break;
case1:
lr();break;
case2:
ll();break;
case3:
cx();break;
case4:
sc();break;
case5:
xg();break;
case6:
bc();break;
case7:
dq();break;
case8:
px();break;
default:
printf("\n无效选项!
");
}
}
while(z!
=0);
}
voidlr()/*录入函数*/
{
inty;
if(n==0)
{p=stu;
}else
{
p=&stu[n];
}
do
{
printf("--------------------\n");
printf("请输入学生的学号:
");
scanf("%ld",&p->num);
printf("请输入学生的姓名:
");
scanf("%s",p->name);
printf("请输入学生的年龄:
");
scanf("%d",&p->age);
printf("请输入学生的性别:
");
scanf("%s",p->sex);
printf("请输入学生的出生日期:
");
scanf("%d",&p->e);
printf("请输入学生的E-mail:
");
scanf("%s",p->m);
printf("请输入学生的籍贯:
");
scanf("%s",p->b);
printf("请输入学生的电话:
");
scanf("%s",p->p);
n++;
p++;
printf("\n1.继续输入.\n0.输入完毕.\n");
printf("请选择:
");
scanf("%d",&y);
}
while(y==1);
printf("提示:
输入完毕!
你一共输入%d个\n",n);
}
voidll()/*浏览函数*/
{
inti;
if(n!
=0)
{printf("学生总数:
%d\n",n);
printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t电话\n");
printf("-----------------------------------------------------\n");
for(i=0;iprintf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].e,stu[i].m,stu[i].b,stu[i].p);
}
elseprintf("提示:
无学生数据,请输入数据!
");
}
voidcx()/*查询函数*/
{
intc;
intw,i,j=0;
charname[20];
if(n!
=0)
{
do{printf("\n");
printf("+--------------------+\n");
printf("|按学号查询请按1|\n");
printf("|按姓名查询请按2|\n");
printf("|取消请按0|\n");
printf("+--------------------+\n");
printf("请输入您的选择:
");
scanf("%d",&c);
switch(c)
{
case0:
break;
case1:
printf("请输入学生的学号;");
scanf("%ld",&w);
printf("\n");
for(i=0;iif(stu[i].num==w)
{
printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t电话\n");
printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].e,stu[i].m,stu[i].b,stu[i].p);
j=1;
}
if(j==0)
printf("提示:
没有该学生记录,请核对!
");
break;
case2:
printf("请输入学生的姓名:
");
scanf("%s",name);
printf("\n");
for(i=0;iif(strcmp(name,stu[i].name)==0)
{
printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t电话\n");
j=1;
printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].e,stu[i].m,stu[i].b,stu[i].p);
}
if(j==0)
printf("提示:
没有该学生记录,请核对!
");
break;
default:
printf("\n提示:
无效选项!
");
break;
}
}while(c!
=0);
}elseprintf("提示:
无学生数据,请输入数据!
");
return;
}
voidxg()/*修改函数*/
{
longintnum;
inti,j,c;
if(n!
=0)
{
printf("请输入您要修改的学生的学号:
");
scanf("%ld",&num);
printf("\n");
for(i=0;iif(stu[i].num==num)
j=i;
do{
printf("请选择您要修改的学生的内容:
\n");
printf("+----------------------+\n");
printf("|姓名请按1|\n");
printf("|年龄请按2|\n");
printf("|性别请按3|\n");
printf("|出生年月请按4|\n");
printf("|E-mail请按5|\n");
printf("|学号请按6|\n");
printf("|籍贯请按7|\n");
printf("|电话请按8|\n");
printf("|取消请按0|\n");
printf("+----------------------+\n");
printf("请输入您的选择:
");
scanf("%d",&c);
printf("\n");
switch(c)
{
case0:
break;
case1:
printf("请输入新姓名:
");
scanf("%s",stu[j].name);
break;
case2:
printf("请输入新年龄:
");
scanf("%d",&stu[j].age);
break;
case3:
printf("请输入新性别:
");
scanf("%s",stu[j].sex);
break;
case4:
printf("请输入新出生年月:
");
scanf("%d",&stu[j].e);
break;
case5:
printf("请输入新E-mail:
");
scanf("%s",stu[j].m);
break;
case6:
printf("请输入新学号:
");
scanf("%ld",&stu[j].num);
break;
case7:
printf("请输入新籍贯:
");
scanf("%s",stu[j].b);
break;
case8:
printf("请输入新电话:
");
scanf("%s",stu[j].p);
break;
default:
printf("\n无效选项!
");
break;
}
}while(c!
=0);
}elseprintf("提示:
无学生数据,请输入数据!
");
}
voidsc()/*删除函数*/
{
longintnum;
inti,j,e;
if(n!
=0)
{
printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t电话\n");
printf("-----------------------------------------------------\n");
for(i=0;iprintf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].e,stu[i].m,stu[i].b,stu[i].p);
printf("请输入您要删除的学生的学号:
");
scanf("%ld",&num);
printf("\n");
for(i=0;iif(num==stu[i].num)
j=i;
if(j!
=(n-1))
{
for(e=i-1;e{
stu[j].num=stu[j+1].num;
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j].sex,stu[j+1].sex);
stu[j].e=stu[j+1].age;
strcpy(stu[j].m,stu[j+1].m);
stu[j].age=stu[j+1].age;
strcpy(stu[j].b,stu[j+1].b);
strcpy(stu[j].p,stu[j+1].p);
n--;p--;
}
}else{n--;p--;}
printf("提示:
删除完毕!
");
}elseprintf("提示:
无学生数据,请输入数据!
");
}
voidbc()/*保存学生信息到文件的函数*/
{
inti;
charx='0';
FILE*fp;
if((fp=fopen("","wb"))==NULL)/*创建文件并判断是否能够打开成功*/
{
printf("文件不能打开!
\n");
return;/*如果不能打开文件,则关闭当前所有的文件*/
}
for(i=0;iif(fwrite(&stu[i],sizeof(structstudent),1,fp)!
=1)
printf("文件输入错误!
\n");
fclose(fp);/*关闭文件*/
x=(char)i;
if((fp=fopen("","wb"))==NULL)
{
printf("文件创建失败!
");
return;
}
fputc(x,fp);
fclose(fp);
}
voiddq()
{
inti;
charx;
FILE*fp;
if((fp=fopen("","rb"))==NULL)
{
printf("打开错误!
\n");
return;
}
x=fgetc(fp);
fclose(fp);
n=(int)x;
if((fp=fopen("","rb"))==NULL)
{
printf("打开文件时错误!
请按任意键退出!
");
return;
}
printf("所有学生的信息为:
\n\n");
printf("学号\t姓名\t年龄\t性别\t出生日期\tE-mail\t\t\t籍贯\t\t电话\n");
for(i=0;i{
fread(&stu[i],sizeof(structstudent),1,fp);
printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].e,stu[i].m,stu[i].b,stu[i].p);
}
fclose(fp);
}
voidpx()
{
inti,j;/*计数变量*/
structstudenttemp;
for(i=0;ifor(j=i+1;j{
if(stu[i].num>stu[j].num)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
printf("\n排序后的学生信息:
\n\n");
for(i=0;i{
printf("%ld\t%s\t%d\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].e,stu[i].m,stu[i].b,stu[i].p);
}/*输出排序后的学生信息*/
return;
}