#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student
{
char id[20];
char name[20];
char sex[20];
char object[20];
};
void Display(struct student stu[],int n)
{
int i;
printf("%-10s%-10s%-10s%-20s\n","学号","姓名","性别","专业");
for(i=0;i<n;i++)
{
printf("%-10s%-10s%-10s%-20s\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].object);
}
}
void Search(struct student stu[],int n)
{
char temp[20];
int i;
system("cls");
printf("请输入要查询的学号:");
scanf("%s",temp);
for(i=0;i<n;i++)
{
if(!strcmp(temp,stu[i].id))
{
Display(&stu[i],1);
break;
}
}
if(i==n)
{
printf("无该学号信息!\n");
}
system("pause");
}
int Del(struct student stu[],int n)
{
char temp[20];
int i,j;
system("cls");
printf("请输入要删除的学号:");
scanf("%s",temp);
for(i=0;i<n;i++)
{
if(!strcmp(temp,stu[i].id))
{
Display(&stu[i],1);
break;
}
}
if(i==n)
{
printf("无该学号信息!\n");
system("pause");
return n;
}
for(j=i;j<n;j++)
{
stu[j]=stu[j+1];
}
printf("删除成功!\n");
system("pause");
return n-1;
}
void modify(struct student stu[],int n)
{
char temp[20];
int i;
system("cls");
printf("请输入要修改的学号:");
scanf("%s",temp);
for(i=0;i<n;i++)
{
if(!strcmp(temp,stu[i].id))
{
Display(&stu[i],1);
break;
}
}
if(i==n)
{
printf("无该学号信息!\n");
system("pause");
return ;
}
printf("请输入学生学号:");
scanf("%s",stu[i].id);
printf("请输入学生姓名:");
scanf("%s",stu[i].name);
printf("请输入学生性别:");
scanf("%s",stu[i].sex);
printf("请输入学生专业:");
scanf("%s",stu[i].object);
printf("修改成功!\n");
system("pause");
}
int Add_New_Stu(struct student stu[],int n)
{
int i;
system("cls");
printf("请输入学生学号:");
scanf("%s",stu[n].id);
for(i=0;i<n;i++)
{
if(!strcmp(stu[n].id,stu[i].id))
{
printf("该学号已存在!\n");
system("pause");
return n;
}
}
printf("请输入学生姓名:");
scanf("%s",stu[n].name);
printf("请输入学生性别:");
scanf("%s",stu[n].sex);
printf("请输入学生专业:");
scanf("%s",stu[n].object);
printf("添加成功!\n");
system("pause");
return n+1;
}
//保存信息
void Save_Info(struct student stu[],int n)
{
int i;
FILE* pFile;
pFile= fopen("StudentInfo.txt","w+");
if(pFile==NULL)
{
return;
}
for(i=0;i<n;i++)
{
fprintf(pFile,"%s %s %s %s\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].object);
}
fclose(pFile);
}
//读取信息
int Read_Info(struct student stu[])
{
int i=0;
int len;
FILE* pFile;
pFile= fopen("StudentInfo.txt","r+");
if(pFile==NULL)
{
return 0;
}
while(1)
{
len=fscanf(pFile,"%s %s %s %s\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].object);
if(len!=4)
{
break;
}
i++;
}
fclose(pFile);
return i;
}
int menu()
{
int choice;
system("cls");
printf(" [1]添加一个学生信息。\n");
printf(" [2]查找一个学生信息。\n");
printf(" [3]修改一个学生信息。\n");
printf(" [4]查看所有学生信息。\n");
printf(" [5]删除一个学生信息。\n");
printf(" [0]退出。\n");
printf("请选择");
scanf("%d",&choice);
while(choice<0||choice>5)
{
printf("请重新选择");
scanf("%d",&choice);
}
return choice;
}
int main(void)
{
int choice;
struct student stu[30];
int n=Read_Info(stu);
do
{
choice=menu();
switch(choice)
{
case 1:
n=Add_New_Stu(stu,n);
break;
case 2:
Search(stu,n);
break;
case 3:
modify(stu,n);
break;
case 4:
system("cls");
Display(stu,n);
system("pause");
break;
case 5:
n=Del(stu,n);
break;
}
}while(choice!=0);
Save_Info(stu,n);
return 0;
}
相关文章: