⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dele.cpp

📁 学生管理系统是本人用c语言写的一个DOC界面的简单学生管理系统
💻 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 + -