#include//学生管理系统
#include
#include
int scan();
int e();
void tishi();
void a();
void b();
void c();
void d();
void open();
void panduan();
int x=0; //全局变量
struct student //------结构体
{
char no[10];
char name[20];
char sex[3];
int year;
char ban[10];
char TEL[12];
}s[35]={0};
main()//-------------------------------------------------------------------------------------------------------------主函数
{
void save();
open();
panduan();//原文件学生数
int t=1;
tishi();
while(t)
{t=scan();}
save();
getch();
}
void open ()
{
int i;
FILE *fp;
if((fp=fopen("c:\\学生管理系统v2.0.dat","r"))==NULL)//打开文件
{
printf("原文件不存在!\n正在建立新文件!\n文件建立成功!\n");
fp=fopen("c:\\学生管理系统v2.0.dat","w");//新建文件
}
for(i=0;i<35;i++)//读入文件
fread(&s[i],sizeof(struct student ),1,fp);
fclose(fp);//关闭文件
}
void panduan()
{
int i;
for(i=0;i<35;i++)
{
if(s[i].year==0)
{x=i;break;}
}
}
void tishi()//------------------输出提示
{
printf("=================================系统功能菜单v3.0===============================\n");
printf("--------------------------------------------------------------------------------\n");
printf("\t\t1,查询学生信息\t");
printf("\t\t2,添加学生信息\n");
printf("\t\t3,修改学生查询\t");
printf("\t\t4,删除学生信息\n");
printf("\t\t\t\t 0,保存并退出\n");
printf("--------------------------------------------------------------------------------\n");
if(x==0)
printf("\t\t\t 当前无学生信息请添加!\n\t\t\t\t 9位学号\n");
}
int scan()//---------输入
{
int No=-1,i,j;
i=x;
char xx='c',NO,yy[10],zz[10],zc[10];
printf("===========================请输入要操作的数字,0结束============================\n");
while(No<0||No>4)
{
NO=getchar();
No=NO-'0';
if(No<0||No>4)
printf("输入错误!请重新输入:\n");
}
if(No==0)
return 0;
if(No==1)
{
printf("********************************************************************************\n");
printf("a 查询指定学生信息\tb 查询所有学生信息\n");
printf("********************************************************************************\n");
while(xx!='a'&&xx!='b')
{
getchar();
scanf("%c",&xx);
if(xx=='a'||xx=='b');
else
printf("输入错误!请重新输入:\n");
}
if(xx=='a')//单个查询
{
printf("请输入学生的学号:");
scanf(" %s",yy);
for(;i>=0;i--)
{
if(strcmp(yy,s[i].no)==0)
{a(i);break;}
}
if(i==-1)
printf("信息不存在!\n"),getchar();
}
else if(xx=='b')//全部查询
b(x);
}
else if(No==2)
{
j=0;
i =e(x++,j);
if(i==1)
return 1;
}
else if(No==3)
{
printf("请输入需要修改的学号:\n");
scanf(" %s",zz);
j=1;
d(zz,j),getchar();
}
else if(No==4)
{
printf("请输入需要删除的学号:");
scanf(" %s",zc);
c(zc),getchar();
}
else{printf("输入错误!请重新输入:\n");
}
return 1;
}
void cha()
{
}
void a(int n)//单个输出
{
printf("查询结果:\n");
printf("********************************************************************************\n");
printf("学号\t\t姓名\t性别\t年龄\t班级\t联系电话\n");
printf("--------------------------------------------------------------------------------\n");
printf("%s\t%s\t%s\t%d\t%s\t%s\n",s[n].no,s[n].name,s[n].sex,s[n].year,s[n].ban,s[n].TEL);
printf("********************************************************************************\n"),getchar();
}
void b(int n)//全部输出
{
int i;
printf("查询结果:\n");
printf("********************************************************************************\n");
printf("学号\t\t姓名\t性别\t年龄\t班级\t联系电话\n");
for(i=0;i {
printf("--------------------------------------------------------------------------------\n");
printf("%s\t%s\t%s\t%d\t%s\t%s\n",s[i].no,s[i].name,s[i].sex,s[i].year,s[i].ban,s[i].TEL);
}
printf("********************************************************************************\n"),getchar();
}
void c(char n[])//删除学生信息
{
int i,j;
for(i=0;i { if(strcmp(n,s[i].no)==0)
{
for(j=i;j<=x;j++)
{
s[j]=s[j+1];
x--;
printf("删除成功!\n");break;}}
else
printf("信息未找到!\n"); }
}
void d(char n[],int j)
{
int i;
for(i=0;i {if(strcmp(n,s[i].no)==0)
{a(i);e(i,j);break;}
else printf("信息未找到!\n"); }
}
int e(int n,int j)
{
int i;
printf("请%s输入完整学生信息:\n",j?"重新":"");
printf("学号:");
scanf(" %s",&s[n].no);
for(i=0;i if(strcmp(s[n].no,s[i].no)==0)
{
printf("该学号已存在是否继续,0,继续(不会覆盖)1,返回菜单\n");
getchar();
scanf("%d",&i);
if(i==1)
return i;}
printf("姓名:");
scanf(" %s",&s[n].name);
printf("性别:");
scanf(" %s",&s[n].sex);
printf("年龄:");
scanf("%d",&s[n].year);
printf("班级:");
scanf(" %s",&s[n].ban);
printf("联系电话:");
scanf(" %s",&s[n].TEL);
printf("%s成功!\n",j?"修改":"添加"),getchar();
}
void save()
{
int i;
FILE *fp1;
fp1=fopen("c:\\学生管理系统v2.0.dat","w");//打开文件
for(i=0;i fwrite(&s[i],sizeof(struct student ),1,fp1);//写入文件
fclose(fp1);//关闭文件
}