📄 delet.c
字号:
/*以下是删除对话框处理函数。*/
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -