#include <stdlib.h>
#include <string.h>
struct student
{
char code[20];//学号
char name[32];//姓名
int age;//年龄
char sex[3];//性别
char time[100];//出生日期
char add[32];//地址
char phone[30];//电话
char mail[30];//电子邮箱
}stu[50];
int k=1,n,m;
void read();//录入
void display();//浏览
void seek();//查询
void del();//删除
void mod();//修改
void menu();//主界面
void save();
int main()
{
system("color 1f");
while(k)
menu();
system("pause");
return 0;
}
void menu()//主界面
{
int num;
printf("------------------\n");
printf("1.学生信息录入\n");
printf("2.学生信息浏览\n");
printf("3.学生信息查询\n");
printf("4.学生信息删除\n");
printf("5.学生信息修改\n");
printf("6.学生信息保存\n");
printf("------------------\n");
printf("请输入指令\n");
scanf("%d ",&num);
switch(num)
{
case 1:read();break;
case 2:display();break;
case 3:seek();break;
case 4:del();break;
case 5:mod();break;
case 6:save();break;
default:printf("请在1~6中选择\n");
}
}
void read()//录入
{
char *p="student.txt";
FILE *fp;
int i=0;
if((fp=fopen("student.txt","r"))==NULL)//打开只读文件
{
printf("打开文件 %s 失败 ",p);
system("pause");
exit(0);
}
while(fscanf(fp,"%s %s %d %s %s %s %s %s",
stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].phone,stu[i].mail)==8)
{
i++;
i=i;
}
fclose(fp);
n=i;
printf("录入完成\n");
}
void save()//保存函数
{
int i;
FILE *fp;
fp=fopen("stduent.txt","w");//写入
for(i=0;i<n;i++)
{
fprintf(fp,"%s %s %d %s %s %s %s %s",
stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].phone,stu[i].mail);
}
fclose(fp);
}
void display()//浏览
{
int i;
printf("所有学生的信息为:\n");
printf(" 学号 姓名 年龄 性别 出生日期 地址 电话 邮箱 \n");
for(i=0;i<n;i++)
{
printf("%6s %7s %5d %5s %9s %8s %10s %14s\n",
stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].phone,stu[i].mail);
}
}
void seek()//查询,按学号查询
{
printf("请输入所要查询的学生学号:\n");
char s1[30];
scanf("%s ",s1);
int i;
for(i=0;i<n;i++)
{
if(strcmp(stu[i].code,s1)==0)
{
printf("%6s %7s %5d %5s %9s %8s %10s %14s\n",
stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].phone,stu[i].mail);
}
else
{
printf("该学号不存在\n");
}
}
}
void del()//删除
{
int x,j,f;
f=0;
char s2[30];
printf("请输入所要删除的学生学号\n");
scanf("%s ",s2);
for(x=0;x<n;x++)
if(strcmp(stu[x].code,s2)==0)
{
f=1;
for(j=x;j<50-1;j++)
stu[j]=stu[j+1];
}
if(f==0)
{
printf("该学号不存在\n");
}
if(f==1)
{
printf("删除成功,谢谢使用\n");
}
}
void mod()//修改
{
int a,b,c;
char sex1[3],s3[30],s4[30];
printf("请输入所要修改的学生学号\n");
scanf("%s",s3);
for(a=0;a<n;a++)
if(strcmp(stu[a].code,s3)==0)
c=a;
printf("------------------------\n");
printf("1.修改姓名\n");
printf("2.修改年龄\n");
printf("3.修改性别\n");
printf("4.修改出生日期\n");
printf("5.修改地址\n");
printf("6.修改电话号码\n");
printf("7.修改E-mail地址\n");
printf("------------------------\n");
scanf("%d ",&b);
if(b==1)
{
printf("请输入新的姓名\n");
scanf("%s ",s4);
strcpy(stu[c].name,s4);
}
else if(b==2)
{
printf("请输入新的年龄\n");
scanf("%d ",&stu[c].age);
}
else if(b==3)
{
printf("请输入新的性别\n");
scanf("%s ",sex1);
strcpy(stu[c].sex,sex1);
}
else if(b==4)
{
printf("请输入新的出生日期\n");
scanf("%s ",s4);
strcpy(stu[c].time,s4);
}
else if(b==5)
{
printf("请输入新的地址\n");
scanf("%s ",s4);
strcpy(stu[c].add,s4);
}
else if(b==6)
{
printf("请输入新的电话号码\n");
scanf("%s ",s4);
strcpy(stu[c].phone,s4);
}
else if(b==7)
{
printf("请输入新的E-mail地址\n");
scanf("%s ",s4);
strcpy(stu[c].mail,s4);
}
else
{
printf("操作有误,谢谢使用\n");
}
}