|
|
|
@ -58,9 +58,6 @@ void meun() //
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void new_student()
|
|
|
|
|
{
|
|
|
|
|
system("color 12");
|
|
|
|
@ -108,7 +105,7 @@ void new_student()
|
|
|
|
|
if ((fp1 = fopen("Student.txt","r")) == NULL)
|
|
|
|
|
{
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("***---文件打开失败!请重试!---***\n");;
|
|
|
|
|
printf("***---文件打开失败,请重试!---***\n");;
|
|
|
|
|
system("pause");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -144,7 +141,7 @@ void new_student()
|
|
|
|
|
|
|
|
|
|
if (fclose(fp1))
|
|
|
|
|
{
|
|
|
|
|
printf("***---文件关闭失败!请重试!---***\n");
|
|
|
|
|
printf("***---文件关闭失败,请重试!---***\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -156,18 +153,18 @@ void new_student()
|
|
|
|
|
{
|
|
|
|
|
if ((p = (struct Student*)malloc(sizeof(struct Student))) == NULL)
|
|
|
|
|
{
|
|
|
|
|
printf("***---获取内存失败,请重试!---***\n");
|
|
|
|
|
printf("***---获取内存失败,请重试!---***\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
printf("***---请输入第%d个学生的信息---***\n",i+1);
|
|
|
|
|
while (1)
|
|
|
|
|
{
|
|
|
|
|
printf("***---学号为11位,请输入学生学号:");
|
|
|
|
|
printf("***---学号为11位,请输入学生学号:");
|
|
|
|
|
scanf("%s",p->num);
|
|
|
|
|
if (strlen(p->num) !=11)
|
|
|
|
|
{
|
|
|
|
|
printf("***---您输入有误,请重新输入!---***");;
|
|
|
|
|
printf("***---您输入有误,请重新输入!---***");;
|
|
|
|
|
system("pause");
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
@ -249,7 +246,7 @@ void new_student()
|
|
|
|
|
|
|
|
|
|
if ((fp2 = fopen("Student.txt","w")) == NULL)
|
|
|
|
|
{
|
|
|
|
|
printf("***---文件打开失败!请重试!---***\n");
|
|
|
|
|
printf("***---文件打开失败,请重试!---***\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -263,14 +260,14 @@ void new_student()
|
|
|
|
|
|
|
|
|
|
if (fclose(fp2))
|
|
|
|
|
{
|
|
|
|
|
printf("***---文件关闭失败!请重试!---***\n");
|
|
|
|
|
printf("***---文件关闭失败,请重试!---***\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
for (int i=1; i<=10; i++)
|
|
|
|
|
{
|
|
|
|
|
printf("***---正在保存*****%d0%%,请稍后\n", i);
|
|
|
|
|
printf("***---正在保存*****%d0%%,请稍后\n", i);
|
|
|
|
|
Sleep(1);
|
|
|
|
|
system("cls");
|
|
|
|
|
}
|
|
|
|
@ -291,13 +288,13 @@ void output_student()
|
|
|
|
|
|
|
|
|
|
if ((fp1 = fopen("Student.txt","r")) == NULL)
|
|
|
|
|
{
|
|
|
|
|
printf("***---文件打开失败!请重试!---***\n");
|
|
|
|
|
printf("***---文件打开失败,请重试!---***\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ((head = (struct Student*)malloc(sizeof(struct Student))) == NULL)
|
|
|
|
|
{
|
|
|
|
|
printf("***---获取内存失败,请重试!---***\n");
|
|
|
|
|
printf("***---获取内存失败,请重试!---***\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -305,7 +302,8 @@ void output_student()
|
|
|
|
|
if(ch==EOF)
|
|
|
|
|
{
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("***---没有学生信息,请录入!---***\n");;
|
|
|
|
|
printf("***---没有学生信息,请录入!---***\n");
|
|
|
|
|
Sleep(500);
|
|
|
|
|
system("pause");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -315,7 +313,7 @@ void output_student()
|
|
|
|
|
{
|
|
|
|
|
if ((p1 = (struct Student*)malloc(sizeof(struct Student))) == NULL)
|
|
|
|
|
{
|
|
|
|
|
printf("***---获取数据失败,请重试!---***\n");
|
|
|
|
|
printf("***---获取数据失败,请重试!---***\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -336,14 +334,14 @@ void output_student()
|
|
|
|
|
|
|
|
|
|
if (fclose(fp1))
|
|
|
|
|
{
|
|
|
|
|
printf("***---文件关闭失败!请重试!---***\n");
|
|
|
|
|
printf("***---文件关闭失败,请重试!---***\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
p2 = head;
|
|
|
|
|
system("cls");
|
|
|
|
|
|
|
|
|
|
printf("学号: 姓名: 年龄: 性别: 出生年月: 地址: 电话号码: 邮箱:\n\n");
|
|
|
|
|
printf("学号: 姓名: 年龄: 性别: 出生年月: 地址: 电话号码: 邮箱:\n\n");
|
|
|
|
|
while (p2->next!=NULL)
|
|
|
|
|
{
|
|
|
|
|
printf("%-15s%-8s%-8s%-8s%-15s%-20s%-14s%-30s\n", p2->num,p2->name,p2->age,
|
|
|
|
@ -417,6 +415,7 @@ char search_student(char bools, char *info) //
|
|
|
|
|
{
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("***---没有学生信息,请录入!---***\n");
|
|
|
|
|
Sleep(500);
|
|
|
|
|
printf("\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
return 'n';
|
|
|
|
@ -427,7 +426,7 @@ char search_student(char bools, char *info) //
|
|
|
|
|
{
|
|
|
|
|
if ((p1 = (struct Student*)malloc(sizeof(struct Student))) == NULL)
|
|
|
|
|
{
|
|
|
|
|
printf("***---获取数据失败,请重试!---***\n");
|
|
|
|
|
printf("***---获取数据失败,请重试!---***\n");
|
|
|
|
|
return 'n';
|
|
|
|
|
}
|
|
|
|
|
fscanf(fp1,"%s %s %s %s %s %s %s %s", p1->num,p1->name,p1->age,
|
|
|
|
@ -519,7 +518,7 @@ char search_student(char bools, char *info) //
|
|
|
|
|
|
|
|
|
|
if (!flag)
|
|
|
|
|
{
|
|
|
|
|
printf("***---您查询的学生不存在,请重试!---***\n");
|
|
|
|
|
printf("***---您查询的学生不存在,请重试!---***\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
return 'y';
|
|
|
|
|
}
|
|
|
|
@ -598,7 +597,7 @@ void modify(char bools,char *info) //
|
|
|
|
|
if(ch1==EOF)
|
|
|
|
|
{
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("***---没有学生信息,请录入!---***\n");
|
|
|
|
|
printf("***---没有学生信息,请录入!---***\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -662,35 +661,35 @@ void modify(char bools,char *info) //
|
|
|
|
|
switch (a[i])
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
printf("***---请输入修改后的学号:\n");
|
|
|
|
|
printf("***---请输入修改后的学号:");
|
|
|
|
|
gets(p1->num);
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
printf("***---请输入修改后的姓名:\n");
|
|
|
|
|
printf("***---请输入修改后的姓名:");
|
|
|
|
|
gets(p1->name);
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
printf("***---请输入修改后的年龄:\n");
|
|
|
|
|
printf("***---请输入修改后的年龄:");
|
|
|
|
|
gets(p1->age);
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
printf("***---请输入修改后的性别:\n");
|
|
|
|
|
printf("***---请输入修改后的性别:");
|
|
|
|
|
gets(p1->sex);
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
printf("***---请输入修改后的出生年月:\n");
|
|
|
|
|
printf("***---请输入修改后的出生年月:");
|
|
|
|
|
gets(p1->birthday);
|
|
|
|
|
break;
|
|
|
|
|
case 6:
|
|
|
|
|
printf("***---请输入修改后的地址:\n");
|
|
|
|
|
printf("***---请输入修改后的地址:");
|
|
|
|
|
gets(p1->address);
|
|
|
|
|
break;
|
|
|
|
|
case 7:
|
|
|
|
|
printf("***---请输入修改后的电话号码:\n");
|
|
|
|
|
printf("***---请输入修改后的电话号码:");
|
|
|
|
|
gets(p1->telephone);
|
|
|
|
|
break;
|
|
|
|
|
case 8:
|
|
|
|
|
printf("***---请输入修改后的邮箱:\n");
|
|
|
|
|
printf("***---请输入修改后的邮箱:");
|
|
|
|
|
gets(p1->email);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
@ -726,35 +725,35 @@ void modify(char bools,char *info) //
|
|
|
|
|
switch (a[i])
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
printf("***---请输入修改后的学号:\n");
|
|
|
|
|
printf("***---请输入修改后的学号:");
|
|
|
|
|
gets(p2->num);
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
printf("***---请输入修改后的姓名:\n");
|
|
|
|
|
printf("***---请输入修改后的姓名:");
|
|
|
|
|
gets(p2->name);
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
printf("***---请输入修改后的年龄:\n");
|
|
|
|
|
printf("***---请输入修改后的年龄:");
|
|
|
|
|
gets(p2->age);
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
printf("***---请输入修改后的性别:\n");
|
|
|
|
|
printf("***---请输入修改后的性别:");
|
|
|
|
|
gets(p2->sex);
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
printf("***---请输入修改后的出生年月:\n");
|
|
|
|
|
printf("***---请输入修改后的出生年月:");
|
|
|
|
|
gets(p2->birthday);
|
|
|
|
|
break;
|
|
|
|
|
case 6:
|
|
|
|
|
printf("***---请输入修改后的地址:\n");
|
|
|
|
|
printf("***---请输入修改后的地址:");
|
|
|
|
|
gets(p2->address);
|
|
|
|
|
break;
|
|
|
|
|
case 7:
|
|
|
|
|
printf("***---请输入修改后的电话号码:\n");
|
|
|
|
|
printf("***---请输入修改后的电话号码:");
|
|
|
|
|
gets(p2->telephone);
|
|
|
|
|
break;
|
|
|
|
|
case 8:
|
|
|
|
|
printf("***---请输入修改后的邮箱:\n");
|
|
|
|
|
printf("***---请输入修改后的邮箱:");
|
|
|
|
|
gets(p2->email);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
@ -798,39 +797,39 @@ void modify(char bools,char *info) //
|
|
|
|
|
switch (a[i])
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
printf("***---请输入修改后的学号:\n");
|
|
|
|
|
printf("***---请输入修改后的学号:");
|
|
|
|
|
gets(p1->num);
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
printf("***---请输入修改后的姓名:\n");
|
|
|
|
|
printf("***---请输入修改后的姓名:");
|
|
|
|
|
gets(p1->name);
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
printf("***---请输入修改后的年龄:\n");
|
|
|
|
|
printf("***---请输入修改后的年龄:");
|
|
|
|
|
gets(p1->age);
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
printf("***---请输入修改后的性别:\n");
|
|
|
|
|
printf("***---请输入修改后的性别:");
|
|
|
|
|
gets(p1->sex);
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
printf("***---请输入修改后的出生年月:\n");
|
|
|
|
|
printf("***---请输入修改后的出生年月:");
|
|
|
|
|
gets(p1->birthday);
|
|
|
|
|
break;
|
|
|
|
|
case 6:
|
|
|
|
|
printf("***---请输入修改后的地址:\n");
|
|
|
|
|
printf("***---请输入修改后的地址:");
|
|
|
|
|
gets(p1->address);
|
|
|
|
|
break;
|
|
|
|
|
case 7:
|
|
|
|
|
printf("\t\t\t\t请输入修改后的电话号码:\n");
|
|
|
|
|
printf("\t\t\t\t请输入修改后的电话号码:");
|
|
|
|
|
gets(p1->telephone);
|
|
|
|
|
break;
|
|
|
|
|
case 8:
|
|
|
|
|
printf("***---请输入修改后的邮箱:\n");
|
|
|
|
|
printf("***---请输入修改后的邮箱:");
|
|
|
|
|
gets(p1->email);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
printf("***---您输入有误,请重试!\n");;
|
|
|
|
|
printf("***---您输入有误,请重试!\n");;
|
|
|
|
|
system("pause");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -861,34 +860,34 @@ void modify(char bools,char *info) //
|
|
|
|
|
switch (a[i])
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
printf("***---请输入修改后的学号:\n");
|
|
|
|
|
printf("***---请输入修改后的学号:");
|
|
|
|
|
gets(p2->num);
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
printf("***---请输入修改后的姓名:\n");
|
|
|
|
|
printf("***---请输入修改后的姓名:");
|
|
|
|
|
gets(p2->name);
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
printf("***---请输入修改后的年龄:\n");
|
|
|
|
|
printf("***---请输入修改后的年龄:");
|
|
|
|
|
gets(p2->age);
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
printf("***---请输入修改后的性别:\n");
|
|
|
|
|
printf("***---请输入修改后的性别:");
|
|
|
|
|
gets(p2->sex);
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
printf("***---请输入修改后的出生年月:\n");
|
|
|
|
|
printf("***---请输入修改后的出生年月:");
|
|
|
|
|
gets(p2->birthday);
|
|
|
|
|
break;
|
|
|
|
|
case 6:
|
|
|
|
|
printf("***---请输入修改后的地址:\n");
|
|
|
|
|
printf("***---请输入修改后的地址:");
|
|
|
|
|
gets(p2->address);
|
|
|
|
|
break;
|
|
|
|
|
case 7:
|
|
|
|
|
printf("***---请输入修改后的电话号码:\n");
|
|
|
|
|
printf("***---请输入修改后的电话号码:");
|
|
|
|
|
gets(p2->telephone);
|
|
|
|
|
break;
|
|
|
|
|
case 8: printf("***---请输入修改后的邮箱:\n");
|
|
|
|
|
case 8: printf("***---请输入修改后的邮箱:");
|
|
|
|
|
gets(p2->email);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
@ -927,7 +926,7 @@ void modify(char bools,char *info) //
|
|
|
|
|
{
|
|
|
|
|
for (int i=1; i<=10; i++)
|
|
|
|
|
{
|
|
|
|
|
printf("***---正在修改*****%d0%%,请稍后---***\n", i);
|
|
|
|
|
printf("***---正在修改*****%d0%%,请稍后---***\n", i);
|
|
|
|
|
Sleep(1);
|
|
|
|
|
system("cls");
|
|
|
|
|
}
|
|
|
|
@ -964,7 +963,7 @@ void modify(char bools,char *info) //
|
|
|
|
|
{
|
|
|
|
|
for (int i=1; i<=10; i++)
|
|
|
|
|
{
|
|
|
|
|
printf("***---正在保存*****%d0%%,请稍后---***\n", i);
|
|
|
|
|
printf("***---正在保存*****%d0%%,请稍后---***\n", i);
|
|
|
|
|
Sleep(1);
|
|
|
|
|
system("cls");
|
|
|
|
|
}
|
|
|
|
@ -990,4 +989,226 @@ char menu_modefy_save() //
|
|
|
|
|
printf("--------------------------\n");
|
|
|
|
|
printf("***---请选择是否保存:");
|
|
|
|
|
return getchar();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void delete_meun() //打印删除菜单,调用删除函数
|
|
|
|
|
{
|
|
|
|
|
void deletes(char bools,char *info);
|
|
|
|
|
system("color E4");
|
|
|
|
|
|
|
|
|
|
char bools;
|
|
|
|
|
char info[20];
|
|
|
|
|
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("----------------------------\n");
|
|
|
|
|
printf("***--- 0.返回主菜单 ---***\n");
|
|
|
|
|
printf("***--- 1.按学号删除 ---***\n");
|
|
|
|
|
printf("***--- 2.按姓名删除 ---***\n");
|
|
|
|
|
printf("----------------------------\n");
|
|
|
|
|
printf("***---请输入你想执行的功能:");
|
|
|
|
|
scanf("\n%c",&bools);
|
|
|
|
|
|
|
|
|
|
system("cls");
|
|
|
|
|
if ((bools != '1') && (bools != '2'))
|
|
|
|
|
{
|
|
|
|
|
system("color 0F");
|
|
|
|
|
return ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else if (bools == '1')
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
printf("***---请输入要删除学生的学号:");
|
|
|
|
|
scanf("%s",info);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
printf("***---请输入要删除学生的姓名:");
|
|
|
|
|
scanf("\n%s",info);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
deletes(bools,info);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void deletes(char bools,char *info) //删除函数
|
|
|
|
|
{
|
|
|
|
|
struct Student *head;
|
|
|
|
|
struct Student *p1=NULL, *p2=NULL;
|
|
|
|
|
|
|
|
|
|
FILE *fp1;
|
|
|
|
|
|
|
|
|
|
if ((fp1 = fopen("Student.txt","r")) == NULL)
|
|
|
|
|
{
|
|
|
|
|
printf("***---文件打开失败,请重试!---***\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
while (!feof(fp1))
|
|
|
|
|
{
|
|
|
|
|
if ((p1 = (struct Student*)malloc(sizeof(struct Student))) == NULL)
|
|
|
|
|
{
|
|
|
|
|
printf("***---获取数据失败,请重试!---***\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
fscanf(fp1,"%s %s %s %s %s %s %s %s", p1->num,p1->name,p1->age,
|
|
|
|
|
p1->sex,p1->birthday,p1->address,p1->telephone,p1->email);
|
|
|
|
|
|
|
|
|
|
if (p2 == NULL)
|
|
|
|
|
{
|
|
|
|
|
head = p2 = p1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
p2->next = p1;
|
|
|
|
|
p2 = p1;
|
|
|
|
|
p2->next = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (fclose(fp1))
|
|
|
|
|
{
|
|
|
|
|
printf("***---文件关闭失败,请重试!---***\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int flag = 0;
|
|
|
|
|
p1 = head;
|
|
|
|
|
p2 = head->next;
|
|
|
|
|
|
|
|
|
|
//输入学号删除
|
|
|
|
|
if (bools == '1')
|
|
|
|
|
{
|
|
|
|
|
if (!strcmp(head->num, info))
|
|
|
|
|
{
|
|
|
|
|
head = head->next;
|
|
|
|
|
free(p1);
|
|
|
|
|
flag = 1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
while (p2->next!= NULL)
|
|
|
|
|
{
|
|
|
|
|
if (!strcmp(p2->num, info))
|
|
|
|
|
{
|
|
|
|
|
p1->next = p2->next;
|
|
|
|
|
free(p2);
|
|
|
|
|
flag = 1;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
p1 = p1->next;
|
|
|
|
|
p2 = p2->next;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//输入姓名删除
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (!strcmp(head->name, info))
|
|
|
|
|
{
|
|
|
|
|
head = head->next;
|
|
|
|
|
free(p1);
|
|
|
|
|
flag = 1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
while (p2->next!= NULL)
|
|
|
|
|
{
|
|
|
|
|
if (!strcmp(p2->name, info))
|
|
|
|
|
{
|
|
|
|
|
p1->next = p2->next;
|
|
|
|
|
free(p2);
|
|
|
|
|
flag = 1;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
p1 = p1->next;
|
|
|
|
|
p2 = p2->next;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!flag)
|
|
|
|
|
{
|
|
|
|
|
printf("***---您删除的学生不存在,请重试!---***\n");
|
|
|
|
|
printf("\n");
|
|
|
|
|
system("pause");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
for (int i=1; i<=10; i++)
|
|
|
|
|
{
|
|
|
|
|
printf("***---正在删除*****%d0%%,请稍后---***\n", i);
|
|
|
|
|
Sleep(1);
|
|
|
|
|
system("cls");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
printf("***---删除成功!---***\n");
|
|
|
|
|
Sleep(500);
|
|
|
|
|
}
|
|
|
|
|
char menu_delete_save();
|
|
|
|
|
char temp = menu_delete_save(); //保存删除后的数据
|
|
|
|
|
if ((temp == 'y') || (temp == 'Y'))
|
|
|
|
|
{
|
|
|
|
|
FILE *fp2;
|
|
|
|
|
p1 = head;
|
|
|
|
|
|
|
|
|
|
if ((fp2 = fopen("Student.txt","w")) == NULL)
|
|
|
|
|
{
|
|
|
|
|
printf("***---文件打开失败,请重试!---***\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
while (p1->next!= NULL)
|
|
|
|
|
{
|
|
|
|
|
fprintf(fp2,"%s %s %s %s %s %s %s %s\n", p1->num, p1->name, p1->age,
|
|
|
|
|
p1->sex, p1->birthday, p1->address, p1->telephone, p1->email);
|
|
|
|
|
p1 = p1->next;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (fclose(fp2))
|
|
|
|
|
{
|
|
|
|
|
printf("***---文件关闭失败,请重试!---***\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
for (int i=1;i<=10;i++)
|
|
|
|
|
{
|
|
|
|
|
printf("***---正在保存*****%d0%%,请稍后---***\n", i);
|
|
|
|
|
Sleep(1);
|
|
|
|
|
system("cls");
|
|
|
|
|
}
|
|
|
|
|
printf("***---保存成功!---***\n");
|
|
|
|
|
Sleep(500);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
system("cls");
|
|
|
|
|
printf("***---您的删除操作未保存!---***\n");
|
|
|
|
|
Sleep(500);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
char menu_delete_save() //打印删除是否保存的菜单
|
|
|
|
|
{
|
|
|
|
|
system("cls");
|
|
|
|
|
|
|
|
|
|
printf("------------------------\n");
|
|
|
|
|
printf("***--- y.保存 ---***\n");
|
|
|
|
|
printf("***--- n.不保存 ---***\n");
|
|
|
|
|
printf("------------------------\n");
|
|
|
|
|
printf("***---请选择是否保存:");
|
|
|
|
|
|
|
|
|
|
getchar();
|
|
|
|
|
return getchar();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|