📄 dele.cpp
字号:
//删除
#include"head.h"
student *dele(struct student *p, int k)
{
struct student *head, *taill;
head=taill=NULL;
int choise =10;
if (k==0)
{
printf("你没有权限,无法删除!\n");
getch();
return p;
}
do
{
system("cls");//清屏
fflush(stdin);
printf("\n\n\n\t\t\t\t 删除菜单\n\n");
printf("\t\t\t*****************************\n\n");
printf("\t\t\t 1. 按学号删除\n\n");
printf("\t\t\t 2. 按姓名删除\n\n");
printf("\t\t\t 3. 全部删除\n\n");
printf("\t\t\t 0. 退出\n\n");
printf("\t\t\t*****************************\n\n");
printf("\t\t\t 请选择(0 ~ 3)\n");
scanf("%d",&choise);
switch(choise)
{
case 1:
dele_number(p); //按学号删除
getch();
break;
case 2:
dele_name(p); //按姓名删除
getch();
break;
case 3:
dele_all(p); //全部删除
p=NULL;
getch();
break;
case 0:
break;
default:
fflush(stdin);
printf("输入错误,请重新输入!");
getch();
}
}while(choise!=0);
return head;
}
//按学号删除
student * dele_number(struct student *p)
{
struct student *head=p, *taill=p;
char number[10];
char queren='n';
head=taill=p;
fflush(stdin);
printf("请输入要删除学员的学号:\n");
scanf("%s",number);
fflush(stdin);
printf("确定删除吗?\n");
scanf("%c",&queren);
if(queren=='n' || queren =='N')
goto end ;
if(queren!='y' && queren!='Y')
{
printf("输入错误,请从新选择!\n");
goto end ;
}
while(NULL!=p)
{
if(strcmp(number,p->Stnumber)==0)
{
if (head==p)
{
head=p->next;
free(p);
break;
}
else
{
taill->next=p->next;
free(p);
break;
}
}
else
{
taill=p;
p=p->next;
}
}
if(p==NULL)
printf("\n\t\t\t查无此人!\n\n");
}
end :
return head;
}
//按姓名删除
student * dele_name(struct student *p)
{
struct student *head=p, *taill=p;
char name[10];
char queren='n';
head=taill=p;
printf("请输入要删除学员的姓名:\n");
scanf("%s",name);
fflush(stdin);
printf("确定删除吗?\n");
scanf("%c",&queren);
if(queren=='n' || queren =='N')
goto end ;
if(queren!='y' && queren!='Y')
{
printf("输入错误,请从新选择!\n");
goto end ;
}
while(NULL!=p)
{
if(strcmp(name,p->name)==0)
{
if (head==p)
{
head=p->next;
free(p);
printf("删除成功!");
break;
}
else
{
taill->next=p->next;
free(p);
break;
}
}
else
{
taill=p;
p=p->next;
}
}
if(p==NULL)
printf("\n\t\t\t查无此人!\n\n");
end:
return head;
}
//全部删除
student * dele_all(struct student *p)
{
char queren='n';
struct student *taill=NULL;
printf("确认删除吗?( n \ y )\n");
fflush(stdin);
scanf("%c",&queren);
if(queren=='n'||queren=='N')
goto end ;
if(queren!='y' && queren !='Y')
{
printf("输入错误!\n");
goto end ;
}
while(p!=NULL)
{
taill=p;
p=p->next;
free(taill);
}
printf("删除成功!\n");
end:
return p;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -