资源描述
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define N 100
struct student
{ char XUEHAO[10];
char BANJI[6];
char XINGMING[6];
char XINGBIE[2];
char SHENGRI[8];
char JIGUAN[10];
char XUEYUAN[10];
char TIANHUA[10];
};
void CAIDAN();
void LURU();
void SHAXUN();
void sch_XUEHAO(FILE *fp);
void sch_XINGMING(FILE *fp);
void SHANCHU();
void del_XUEHAO(FILE *fp);
void del_XINGMING(FILE *fp);
void TIANJIA();
void XIUGAI();
void XIANZHI();
void TONGJI();
main()
{ char choose,yes_no;
do
{ CAIDAN();
printf("\n 请输入序号: (1~8) ");
choose=getch();
switch(choose)
{ case'1': printf(" %c",choose);LURU();break;
case'2': printf(" %c",choose);SHAXUN();break;
case'3': printf(" %c",choose);SHANCHU();break;
case'4': printf(" %c",choose);TIANJIA();break;
case'5': printf(" %c",choose);XIUGAI();break;
case'6': printf(" %c",choose);XIANZHI();break;
case'7': printf(" %c",choose);TONGJI();break;
case'8': break;
default:printf("\n %c 序号不对!\n",choose);
}
if(choose=='8')break;
printf("\n 要继续选择吗 ? (Y/N) \n");
do
{ yes_no=getch(); printf(" %c",yes_no);}
while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
}while(yes_no=='Y'||yes_no=='y');
}
void CAIDAN()
{
printf("\n\n\n");
printf(" **************************************** \n ");
printf(" * 请输入序号: (1~ 8) * \n ");
printf(" * 1------录入学生信息 * \n ");
printf(" * 2------查询学生信息 * \n ");
printf(" * 3------删除学生信息 * \n ");
printf(" * 4------添加学生信息 * \n ");
printf(" * 5------修改学生信息 * \n ");
printf(" * 6------显示学生信息 * \n ");
printf(" * 7------查找同一个学院的人数 * \n ");
printf(" * 8------退出系统 * \n ");
printf(" **************************************** \n ");
}
/*定义录入学生信息的函数*/
void LURU()
{ int i=1;
struct student temp;
FILE *fp;
fp=fopen("123.dat","w");
if(fp==NULL){ printf("\n 打开文件失败! \n");return; }
printf("\n 请输入第1个学生信息:\n");
printf(" 学号(用#结束输入): ");
do
{ gets(temp.XUEHAO);}
while(strcmp(temp.XUEHAO," ")==0);
printf(" 班级(用#结束输入): ");gets(temp.BANJI);
printf(" 姓名(用#结束输入): ");gets(temp.XINGMING);
printf(" 性别(用#结束输入): ");gets(temp.XINGBIE);
printf(" 生日(用#结束输入): ");gets(temp.SHENGRI);
printf(" 籍贯(用#结束输入): ");gets(temp.JIGUAN);
printf(" 学院(用#结束输入): ");gets(temp.XUEYUAN);
printf(" 电话(用#结束输入): ");gets(temp.TIANHUA);
while(temp.XUEHAO[0]!='#'&&temp.BANJI[0]!='#'&&temp.XINGMING[0]!='#'&&temp.XINGBIE[0]!='#'&&temp.SHENGRI[0]!='#'&&temp.JIGUAN[0]!='#'&&temp.XUEYUAN[0]!='#'&&temp.TIANHUA[0]!='#')
{ fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",temp.XUEHAO,temp.BANJI,temp.XINGMING,temp.XINGBIE,temp.SHENGRI,temp.JIGUAN,temp.XUEYUAN,temp.TIANHUA);
i++;
printf("\n 请输入第 %d 个学生信息:\n ",i);
printf(" 学号(用#结束输入): ");
do
{ gets(temp.XUEHAO);}
while(strcmp(temp.XUEHAO," ")==0);
printf(" 班级(用#结束输入): ");gets(temp.BANJI);
printf(" 姓名(用#结束输入): ");gets(temp.XINGMING);
printf(" 性别(用#结束输入): ");gets(temp.XINGBIE);
printf(" 生日(用#结束输入): ");gets(temp.SHENGRI);
printf(" 籍贯(用#结束输入): ");gets(temp.JIGUAN);
printf(" 学院(用#结束输入): ");gets(temp.XUEYUAN);
printf(" 电话(用#结束输入): ");gets(temp.TIANHUA);
}
fclose(fp);
}
/*定义查询学生信息的函数*/
void SHAXUN()
{ char c;
FILE *fp;
fp=fopen("123.dat","r");
if(fp==NULL)
{ printf("\n 打开文件失败! \n");return; }
printf("\n 按学号查询( 1 ),还是按姓名查询( 2 )? ");
c=getch();
putch(c);
if(c=='1') sch_XUEHAO(fp);
else if(c=='2') sch_XINGMING(fp);
else printf("\n 非法字符!\n");
fclose(fp);
}
/*定义按学号查询学生信息的函数*/
void sch_XUEHAO(FILE *fp)
{ int flag=0,n=0;
char tempXUEHAO[10];
struct student temp;
printf("\n 请输入要查询学生信息的学号: ");
gets(tempXUEHAO);
while(feof(fp)==0)
{ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",&temp.XUEHAO,&temp.BANJI,&temp.XINGMING,&temp.XINGBIE,&temp.SHENGRI,&temp.JIGUAN,&temp.XUEYUAN,&temp.TIANHUA);
if(strcmp(tempXUEHAO,temp.XUEHAO)==0)
{ if(flag==0)
printf(" 学号 班级 姓名 性别 生日 籍贯 学院 电话\n");
printf("%5s%10s%10s%10s%10s%10s%10s%10s\n",temp.XUEHAO,temp.BANJI,temp.XINGMING,temp.XINGBIE,temp.SHENGRI,temp.JIGUAN,temp.XUEYUAN,temp.TIANHUA);
flag=1;
}
n++;
}
if(n==0) printf("\n 文件中无此信息!\n");
else if(flag==0) printf("\n 文件中无此人!\n");
}
/*定义按姓名查询学生信息的函数*/
void sch_XINGMING(FILE *fp)
{ int flag=0,n=0;
char tempXINGMING[6];
struct student temp;
printf("\n 请输入要查询学生信息的姓名: ");
gets(tempXINGMING);
while(feof(fp)==0)
{ fscanf(fp, "%5s%10s%10s%10s%10s%10s%10s%10s\n",&temp.XUEHAO,&temp.BANJI,&temp.XINGMING,&temp.XINGBIE,&temp.SHENGRI,&temp.JIGUAN,&temp.XUEYUAN,&temp.TIANHUA);
if(strcmp(tempXINGMING,temp.XINGMING)==0)
{ if(flag==0) printf(" 学号 班级 姓名 性别 生日 籍贯 学院 电话\n");
printf("%5s%10s%10s%10s%10s%10s%10s%10s\n",temp.XUEHAO,temp.BANJI,temp.XINGMING,temp.XINGBIE,temp.SHENGRI,temp.JIGUAN,temp.XUEYUAN,temp.TIANHUA);
flag=1;
}
n++;
}
if(n==0) printf("\n 文件中无此信息!\n");
else if(flag==0) printf("\n 文件中无此人!\n");
}
/*定义删除学生信息的函数*/
void SHANCHU()
{ char c;
FILE *fp;
fp=fopen("123.dat","r");
if(fp==NULL)
{ printf("\n 文件打开失败!\n ");return; }
printf("\n 按学号删除( 1 ),还是按姓名删除( 2 )? ");
c=getch();
putch(c);
if(c=='1') del_XUEHAO(fp);
else if(c=='2') del_XINGMING(fp);
else printf("\n 非法字符!\n");
fclose(fp);
}
/*定义按学号删除学生信息的函数*/
void del_XUEHAO(FILE *fp)
{ char tempXUEHAO[10];
int n=0,i=0,k;
struct student stu[N];
while(feof(fp)==0)
{ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i].BANJI,stu[i].XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].XUEYUAN,stu[i].TIANHUA);i++;n++;}
fclose(fp);
printf("\n 请输入要删除的学生信息的学号:");
scanf("%s",tempXUEHAO);
for(i=0;i<n;i++)
if(strcmp(tempXUEHAO,stu[i].XUEHAO)==0)break;
if(i<n)
for(k=i;k<n;k++)
stu[k]=stu[k+1];
else printf("\n 无此人!\n");
fp=fopen("123.dat","w");
if(fp==NULL)
{ printf("\n 文件打开失败!\n");return; }
for(i=0;i<n-1;i++)
fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i].BANJI,stu[i].XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].XUEYUAN,stu[i].TIANHUA);
}
/*定义按姓名删除学生信息的函数*/
void del_XINGMING(FILE *fp)
{ char tempXINGMING[6];
int n=0,i=0,k;
struct student stu[N];
while(feof(fp)==0)
{ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i].BANJI,stu[i].XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].XUEYUAN,stu[i].TIANHUA);i++;n++;}
fclose(fp);
printf("\n 请输入要删除的学生信息的姓名:");
scanf("%s",tempXINGMING);
for(i=0;i<n;i++)
if(strcmp(tempXINGMING,stu[i].XINGMING)==0)break;
if(i<n)
for(k=i;k<n;k++)
stu[k]=stu[k+1];
else printf("\n 无此人!\n");
fp=fopen("123.dat","w");
if(fp==NULL)
{ printf("\n 文件打开失败!\n");return;}
for(i=0;i<n-1;i++)
fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i].BANJI,stu[i].XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].XUEYUAN,stu[i].TIANHUA);
}
/*定义添加学生信息的函数*/
void TIANJIA()
{ char c;
int n=0,i=0;
struct student temp,stu[N];
FILE *fp;
fp=fopen("123.dat","r");
if(fp==NULL)
{ printf("\n 打开文件失败!\n"); return; }
while(feof(fp)==0)
{ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i].BANJI,stu[i].XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].XUEYUAN,stu[i].TIANHUA);i++;n++;}
fclose(fp);
for(i=0;i<n;i++)
printf("\n %s %s %s %s %s %s %s %s\n",stu[i].XUEHAO,stu[i].BANJI,stu[i].XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].XUEYUAN,stu[i].TIANHUA);
do
{ printf("\n 请输入新学生信息的学号:");
do
{ scanf("%s",temp.XUEHAO); }
while(strcmp(temp.XUEHAO," ")==0);
printf(" 请输入新学生信息的班级:");scanf("%s",temp.BANJI);
printf(" 请输入新学生信息的姓名:");scanf("%s",temp.XINGMING);
printf(" 请输入新学生信息的性别:");scanf("%s",temp.XINGBIE);
printf(" 请输入新学生信息的生日:");scanf("%s",temp.SHENGRI);
printf(" 请输入新学生信息的籍贯:");scanf("%s",temp.JIGUAN);
printf(" 请输入新学生信息的学院:");scanf("%s",temp.XUEYUAN);
printf(" 请输入新学生信息的电话:");scanf("%s",temp.TIANHUA);
for(i=0;i<n;i++)
if(strcmp(temp.XUEHAO,stu[i].XUEHAO)==0)
{ printf("\n 学号重复,要重新输入吗(Y/N)?");
do
{ c=getch(); putch(c);}
while(c!='Y'&&c!='y'&&c!='N'&&c!='n');
putchar('\n');
break;
}
if(i==n) { stu[i]=temp; break; }
}while(c=='Y'||c=='y');
fp=fopen("123.dat","w");
if(fp==NULL)
{ printf("\n 文件打开失败!\n"); return; }
for(i=0;i<=n;i++)
fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i].BANJI,stu[i].XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].XUEYUAN,stu[i].TIANHUA);
fclose(fp);
}
/*定义修改学生信息的函数*/
void XIUGAI()
{ char c;
int n=0,i=0;
struct student *find,temp,stu[N],*p;
FILE *fp;
fp=fopen("123.dat","rb");
if(fp==NULL)
{ printf("\n 打开文件失败!\n"); return; }
while(feof(fp)==0)
{ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i].BANJI,stu[i].XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].XUEYUAN,stu[i].TIANHUA);i++;n++;}
fclose(fp);
if(n==0)
{ printf("\n 文件中无此信息!\n");return;}
printf("\n 请输入要修改的学生信息的学号: ");scanf("%s",temp.XUEHAO);
for(p=stu;p<stu+n;p++)
if(strcmp(temp.XUEHAO,p->XUEHAO)==0)
{ find=p; break; }
if(p==stu+n)
{ printf("\n 无此信息!\n");return; }
do
{ printf("\n 请输入新学生信息的学号:");
do
{ scanf("%s",temp.XUEHAO); }
while(strcmp(temp.XUEHAO," ")==0);
printf(" 请输入新学生信息的班级:");scanf("%s",temp.BANJI);
printf(" 请输入新学生信息的姓名:");scanf("%s",temp.XINGMING);
printf(" 请输入新学生信息的性别:");scanf("%s",temp.XINGBIE);
printf(" 请输入新学生信息的生日:");scanf("%s",temp.SHENGRI);
printf(" 请输入新学生信息的籍贯:");scanf("%s",temp.JIGUAN);
printf(" 请输入新学生信息的学院:");scanf("%s",temp.XUEYUAN);
printf(" 请输入新学生信息的电话:");scanf("%s",temp.TIANHUA);
for(p=stu;p<stu+n;p++)
if(strcmp(temp.XUEHAO,p->XUEHAO)==0&&p!=find)
{ printf("\n 学号重复,要重新输入吗(Y/n)?");
do
{ c=getch();putch(c);}
while(c!='Y'&&c!='y'&&c!='N'&&c!='n');putchar('\n');
break;
}
if(p==stu+n)
{ *find=temp; break; }
}while(c=='Y'||c=='y');
fp=fopen("123.dat","wb");
if(fp==NULL) { printf("\n 打开文件失败!\n "); return; }
for(p=stu;p<stu+n;p++)
fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",p->XUEHAO,p->BANJI,p->XINGMING,p->XINGBIE,p->SHENGRI,p->JIGUAN,p->XUEYUAN,p->TIANHUA);
fclose(fp);
}
/*定义显示学生信息的函数*/
void XIANZHI()
{ int n=0,i=0;
struct student stu[N];
FILE *fp;
fp=fopen("123.dat","r");
if(fp==NULL)
{ printf("\n 打开文件失败!\n"); return; }
printf("\n\n 学号 班级 姓名 性别 生日 籍贯 学院 电话\n");
while(feof(fp)==0)
{ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i].BANJI,stu[i].XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].XUEYUAN,stu[i].TIANHUA); ++i; ++n; }
if(n==0)
printf("\n 文件中无此信息!\n");
else { for(i=0;i<n;i++)
printf("%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i].BANJI,stu[i].XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].XUEYUAN,stu[i].TIANHUA);
printf("\n\n 文件中共有 %d 个信息!\n",n);
}
fclose(fp);
}
/*定义在同一个学院的学生人数的函数*/
void TONGJI()
{ int i=0,n=0,k=0;
char tempXUEYUAN[10];
struct student stu[N];
FILE *fp;
fp=fopen("123.dat","r");
if(fp==NULL)
{ printf("\n 打开文件失败!\n"); return; }
while(feof(fp)==0)
{fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",&stu[i].XUEHAO,&stu[i].BANJI,&stu[i].XINGMING,&stu[i].XINGBIE,&stu[i].SHENGRI,&stu[i].JIGUAN,&stu[i].XUEYUAN,&stu[i].TIANHUA);i++;n++; }
fclose(fp);
printf("\n\n 请输入学院名称: ");
scanf("%s",tempXUEYUAN);
printf("\n\n 学号 班级 姓名 性别 生日 籍贯 学院 电话\n");
for(i=0;i<n;i++)
if(strcmp(tempXUEYUAN,stu[i].XUEYUAN)==0)
{printf("\n%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i].BANJI,stu[i].XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].XUEYUAN,stu[i].TIANHUA);
k++;
}
printf("\n\n 共有%d个学生在这个学院!\n",k);
}
9
展开阅读全文