delet.c

来自「学生成绩管理系统,C语言开发,图形界面,希望对大家有所帮助」· C语言 代码 · 共 86 行

C
86
字号
/*以下是删除对话框处理函数。*/ 
struct student *DMainHead; /*把要删除的信息保存到以CMainHead为开头的链表中。*/ 
void DeletStu(struct student *head){/*删除学生结点。*/ 
struct student *p,*pfore,*dp; 
dp=head; 
p=MainHead; 
pfore=p; 
do 
{ 
if(p==dp) 
{ 
if(MainHead==dp) 
{ 
MainHead=MainHead->stup; 
free(dp); 
break; 
} 
else 
{ 
pfore->stup=p->stup; 
free(p); 
break; 
} 
} 
else 
{ 
pfore=p; 
p=p->stup; 
} 
}while(p!=NULL); 
} 
void DeletObj(struct student *head){ /*本函数以姓名为依据,删除科目结点。?/ 
struct student *p,*cp; 
struct student *q,*cq,*cqfore; 
p=head; 
q=p->stdhead; 
cp=FindTheAsked(p->stdname,Rleft); 
if(*(q->objectname)=='\0') 
{ 
DeletStu(cp); 
return; 
} 
cq=cp->stdhead; 
cqfore=cq; 
do 
{ 
do 
{ 
if(strcmp(q->objectname,cq->objectname)==0) 
{ 
if(cq==cp->stdhead) 
{ 
cp->stdhead=cq->stdp; 
free(cq); 
} 
else 
{ 
cqfore->stdp=cp->stdp; 
free(cq); 
} 
break; 
} 
else 
{ 
cqfore=cq; 
cq=cq->stdp; 
} 
}while(cq!=NULL); 
q=q->stdp; 
cq=cp->stdhead; 
}while(q!=NULL); 
} 
void ShowDeletBox(void){ 
struct student *p; 
InitInputBox(); 
DMainHead=Imakechain(); 
p=DMainHead; 
do 
{ 
DeletObj(p); 
p=p->stup; 
}while(p!=NULL); 
freechain(CMainHead); 
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?