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

📄 main.cpp

📁 这是毕业设计的程序主要是图书管理功能,希望大家给给意见
💻 CPP
📖 第 1 页 / 共 3 页
字号:
    char buf[30];
    if (!GetList(handle)->tag) return;
    sprintf(buf,"总共有%d条记录.",GetList(handle)->count);
    strcpy(GetLabel(GetList(handle)->tag)->Caption,buf);
}

void OnEditHouseOK(){
    int i;
    char *name=GetEdit(EditHouse.Edit1)->Text;

    if (!name[0]){
        MessageBox("请输入宿舍楼号!","提示");
        return;
    }
    if (!CheckValue(GetEdit(EditHouse.Edit6)->Text)) {
            MessageBox("金额输入不合法","提示!");
            return;
    }
    if (!CheckValue(GetEdit(EditHouse.Edit5)->Text)) {
            MessageBox("床位数输入不合法","提示!");
            return;
    }
    if (!CheckValue(GetEdit(EditHouse.Edit4)->Text)) {
            MessageBox("房间数输入不合法","提示!");
            return;
    }
    pHouse p;
    pHouse pre;
    if (GetWindow(EditHouse.handle)->tag){
        p=pHouse(GetWindow(EditHouse.handle)->tag);
        pre=p->pre;
    } else {
        pre=head;
        p=head->next;
        while (p) {
            if (strcmp(p->name,name)==0) {
                if (DlgBox("该宿舍楼已存在,是否覆盖?","询问")) break;
                return;
            }
            pre=p;
            p=p->next;
        }
    }
    bool isnew=false;
    if (!p){
        p=(pHouse)malloc(sizeof *p);
        memset(p,0,sizeof *p);
        p->pre=pre;
        pre->next=p;
        isnew=true;
    }
    strcpy(p->name,name);
    strcpy(p->manager,GetEdit(EditHouse.Edit2)->Text);
    strcpy(p->phone,GetEdit(EditHouse.Edit3)->Text);
    strcpy(p->rooms,GetEdit(EditHouse.Edit4)->Text);
    strcpy(p->beds,GetEdit(EditHouse.Edit5)->Text);
    strcpy(p->cost,GetEdit(EditHouse.Edit6)->Text);
    if (isnew){
        Pchar str[6];
        str[0]=p->name;
        str[1]=p->manager;
        str[2]=p->phone;
        str[3]=p->cost;
        TotOfHouse++;
        ListAdd(HouseList,str,(int)p);
    }
    UpdateList(HouseList);
    CloseWindow(EditHouse.handle);
    Changed=true;
}



void AddHouseClick(){
    GetEdit(EditHouse.Edit1)->Text[0]=0;
    GetEdit(EditHouse.Edit2)->Text[0]=0;
    GetEdit(EditHouse.Edit3)->Text[0]=0;
    GetEdit(EditHouse.Edit4)->Text[0]=0;
    GetEdit(EditHouse.Edit5)->Text[0]=0;
    GetEdit(EditHouse.Edit6)->Text[0]=0;
    GetWindow(EditHouse.handle)->tag=0;
    ShowWindow(EditHouse.handle);
}

void EditHouseClick(){
    if (!GetList(HouseList)->SelectTag) return;
    GetWindow(EditHouse.handle)->tag=GetList(HouseList)->SelectTag;
    pHouse p=(pHouse)GetList(HouseList)->SelectTag;
    strcpy(GetEdit(EditHouse.Edit1)->Text,p->name);
    strcpy(GetEdit(EditHouse.Edit2)->Text,p->manager);
    strcpy(GetEdit(EditHouse.Edit3)->Text,p->phone);
    strcpy(GetEdit(EditHouse.Edit4)->Text,p->rooms);
    strcpy(GetEdit(EditHouse.Edit5)->Text,p->beds);
    strcpy(GetEdit(EditHouse.Edit6)->Text,p->cost);
    ShowWindow(EditHouse.handle);

}

void DelHouseClick(){
    pList List=GetList(HouseList);
    if (!List->SelectTag) return;
    if (!DlgBox("该操作将删除此宿舍所有同学?","询问")) return;
    pHouse House=(pHouse)(List->SelectTag);
    int i;
    for (i=List->Selected;i<List->count;i++){
        memcpy(List->Text[i],List->Text[i+1],sizeof List->Text[i+1]);
        List->tags[i]=List->tags[i+1];
    }
    List->count--;
    List->SelectTag=List->Selected=0;
    DelHouse(House);
    TotOfHouse--;
    UpdateList(HouseList);
    DrawWindow(HouseWindow);
}

void FindHouseButtonClick(){
    char *Text=GetEdit(FindHouseEdit)->Text;
    if (!Text[0]) return;
    pList List=GetList(HouseList);
    List->count=0;
    List->Show=0;
    List->Selected=0;
    List->SelectTag=0;
    pHouse p;
    Pchar str[6];
    for (p=head->next;p;p=p->next){
        if (strstr(p->name,Text) ||
            strstr(p->manager,Text) ||
            strstr(p->phone,Text) ||
            strstr(p->cost,Text)){
                str[0]=p->name;
                str[1]=p->manager;
                str[2]=p->phone;
                str[3]=p->cost;
                ListAdd(HouseList,str,(int)p);
        }
    }
    UpdateList(HouseList);
    DrawWindow(HouseWindow);
}

void ShowAllHouse(){
    pList List=GetList(HouseList);
    List->count=0;
    List->Show=0;
    List->Selected=0;
    List->SelectTag=0;
    pHouse p;
    Pchar str[6];
    for (p=head->next;p;p=p->next){
            str[0]=p->name;
            str[1]=p->manager;
            str[2]=p->phone;
            str[3]=p->cost;
            ListAdd(HouseList,str,(int)p);
    }
    UpdateList(HouseList);
}

void ShowAllHouseClick(){
    ShowAllHouse();
    DrawWindow(HouseWindow);
}

void OnEditStuOK(){
    int i,j;
    char *name=GetEdit(EditStu.Edit1)->Text;
    char *num=GetEdit(EditStu.Edit2)->Text;
    char *house=GetEdit(EditStu.Edit9)->Text;

    if (!name[0]){
        MessageBox("请输入姓名!","提示");
        return;
    }
    if (!num[0]){
        MessageBox("请输入学号!","提示");
        return;
    }
    if (!house[0]){
        MessageBox("请输入宿舍楼号!","提示");
        return;
    }
    if (!CheckValue(GetEdit(EditStu.Edit2)->Text)){
        MessageBox("学号必须为数字!","提示");
        return;
    }
    if (!CheckDate(GetEdit(EditStu.Edit7)->Text)){
        MessageBox("入学日期输入非法!","提示");
        return;
    }

    pStu p;
    pStu pre;
    pHouse v;
    if (GetWindow(EditStu.handle)->tag){
        p=pStu(GetWindow(EditStu.handle)->tag);
        pre=p->pre;
    } else {
        v=head->next;
        while (v) {
            if (strcmp(v->name,house)==0)
                break;
            v=v->next;
        }
        if (!v) {
            if (DlgBox("无此宿舍楼,是否添加?","询问")){
                strcpy(GetEdit(EditHouse.Edit1)->Text,house);
                GetEdit(EditHouse.Edit2)->Text[0]=0;
                GetEdit(EditHouse.Edit3)->Text[0]=0;
                GetEdit(EditHouse.Edit4)->Text[0]=0;
                GetEdit(EditHouse.Edit5)->Text[0]=0;
                GetEdit(EditHouse.Edit6)->Text[0]=0;
                GetWindow(EditHouse.handle)->tag=0;
                ShowWindow(EditHouse.handle);
            }
            return;
        }
        pre=NULL;
        p=v->first;
        while (p){
            if (strcmp(num,p->num)==0){
                if (!DlgBox("学号已经存在,是否覆盖?","询问")) 
                    return;
                break;
            }
            pre=p;
            p=p->next;
        }
    }
    bool isnew=false;
    if (!p){
        p=(pStu)malloc(sizeof *p);
        memset(p,0,sizeof *p);
        p->pre=pre;
        if (pre)
            pre->next=p;
        else 
            v->first=p;
        p->phouse=v;
        isnew=true;
    }
    strcpy(p->name,GetEdit(EditStu.Edit1)->Text);
    strcpy(p->num,GetEdit(EditStu.Edit2)->Text);
    strcpy(p->sex,GetEdit(EditStu.Edit3)->Text);
    strcpy(p->birthday,GetEdit(EditStu.Edit4)->Text);
    strcpy(p->type,GetEdit(EditStu.Edit5)->Text);
    strcpy(p->LengthOfEdu,GetEdit(EditStu.Edit6)->Text);
    strcpy(p->InYear,GetEdit(EditStu.Edit7)->Text);
    strcpy(p->Class,GetEdit(EditStu.Edit8)->Text);
    strcpy(p->roomnum,GetEdit(EditStu.Edit10)->Text);
    strcpy(p->phone,GetEdit(EditStu.Edit11)->Text);
    strcpy(p->EMail,GetEdit(EditStu.Edit12)->Text);
    strcpy(p->room,p->phouse->name);
    strcat(p->room,p->roomnum);
    sscanf(GetEdit(EditStu.Edit7)->Text,"%d-%d",&p->year,&p->month);
    UpdateStuLack(p);

    if (isnew){
        Pchar str[6];
        str[0]=p->name;
        str[1]=p->num;
        str[2]=p->Class;
        str[3]=p->room;
        str[4]=p->lack;
        v->count++;
        ListAdd(StuList,str,(int)p);
    }
    UpdateList(StuList);
    CloseWindow(EditStu.handle);
    Changed=true;
}



void AddStuClick(){
    GetEdit(EditStu.Edit1)->Text[0]=0;
    GetEdit(EditStu.Edit2)->Text[0]=0;
    GetEdit(EditStu.Edit3)->Text[0]=0;
    GetEdit(EditStu.Edit4)->Text[0]=0;
    GetEdit(EditStu.Edit5)->Text[0]=0;
    GetEdit(EditStu.Edit6)->Text[0]=0;
    GetEdit(EditStu.Edit7)->Text[0]=0;
    GetEdit(EditStu.Edit8)->Text[0]=0;
    GetEdit(EditStu.Edit9)->Text[0]=0;
    GetEdit(EditStu.Edit10)->Text[0]=0;
    GetEdit(EditStu.Edit11)->Text[0]=0;
    GetEdit(EditStu.Edit12)->Text[0]=0;

    GetWindow(EditStu.handle)->tag=0;
    ShowWindow(EditStu.handle);
}

void EditStuClick(){
    if (!GetList(StuList)->SelectTag) return;
    GetWindow(EditStu.handle)->tag=GetList(StuList)->SelectTag;
    pStu p=(pStu)GetList(StuList)->SelectTag;
    strcpy(GetEdit(EditStu.Edit1)->Text,p->name);
    strcpy(GetEdit(EditStu.Edit2)->Text,p->num);
    strcpy(GetEdit(EditStu.Edit3)->Text,p->sex);
    strcpy(GetEdit(EditStu.Edit4)->Text,p->birthday);
    strcpy(GetEdit(EditStu.Edit5)->Text,p->type);
    strcpy(GetEdit(EditStu.Edit6)->Text,p->LengthOfEdu);
    strcpy(GetEdit(EditStu.Edit7)->Text,p->InYear);
    strcpy(GetEdit(EditStu.Edit8)->Text,p->Class);
    strcpy(GetEdit(EditStu.Edit9)->Text,p->phouse->name);
    strcpy(GetEdit(EditStu.Edit10)->Text,p->roomnum);
    strcpy(GetEdit(EditStu.Edit11)->Text,p->phone);
    strcpy(GetEdit(EditStu.Edit12)->Text,p->EMail);
    ShowWindow(EditStu.handle);
}

void DelStuClick(){
    pList List=GetList(StuList);
    if (!List->SelectTag) return;
    if (!DlgBox("确认删除该学生?","询问")) return;
    pStu p=(pStu)(List->SelectTag);
    p->phouse->count--;
    DelStu(p);
    int i;
    for (i=List->Selected;i<List->count;i++){
        memcpy(List->Text[i],List->Text[i+1],sizeof List->Text[i+1]);
        List->tags[i]=List->tags[i+1];
    }
    List->count--;
    List->SelectTag=List->Selected=0;

    UpdateList(StuList);
    DrawWindow(StuWindow);
}

void FindStuButtonClick(){
    char *Text=GetEdit(FindStuEdit)->Text;
    if (!Text[0]) return;
    pList List=GetList(StuList);
    List->count=0;
    List->Show=0;
    List->Selected=0;
    List->SelectTag=0;
    pHouse v;
    pStu p;
    Pchar str[6];
    for (v=head->next;v;v=v->next)
        for (p=v->first;p;p=p->next){
            if (strstr(p->name,Text) ||
                strstr(p->num,Text) ||
                strstr(p->sex,Text) ||
                strstr(p->birthday,Text) ||
                strstr(p->type,Text) ||
                strstr(p->LengthOfEdu,Text) ||
                strstr(p->InYear,Text) ||
                strstr(p->Class,Text) ||
                strstr(p->room,Text) ||
                strstr(p->EMail,Text) ||
                strstr(p->phone,Text)){
                    str[0]=p->name;
                    str[1]=p->num;
                    str[2]=p->Class;
                    str[3]=p->room;
                    str[4]=p->lack;
                    ListAdd(StuList,str,(int)p);
            }
        }
    UpdateList(StuList);
    DrawWindow(StuWindow);
}

void ShowLackClick(){
    pList List=GetList(StuList);
    List->count=0;
    List->Show=0;
    List->Selected=0;
    List->SelectTag=0;
    pHouse v;
    pStu p;
    Pchar str[6];
    for (v=head->next;v;v=v->next)
        for (p=v->first;p;p=p->next){
            if (atof(p->lack)>0){
                str[0]=p->name;
                str[1]=p->num;
                str[2]=p->Class;
                str[3]=p->room;
                str[4]=p->lack;
                ListAdd(StuList,str,(int)p);
            }
        }
    UpdateList(StuList);
    DrawWindow(StuWindow);
}

void ShowAllStudent(){
    pList List=GetList(StuList);
    List->count=0;
    List->Show=0;
    List->Selected=0;
    List->SelectTag=0;
    pHouse v;
    pStu p;
    Pchar str[6];
    for (v=head->next;v;v=v->next)
        for (p=v->first;p;p=p->next){
            strcpy(p->room,p->phouse->name);
            strcat(p->room,p->roomnum);
            str[0]=p->name;
            str[1]=p->num;
            str[2]=p->Class;
            str[3]=p->room;
            str[4]=p->lack;
            ListAdd(StuList,str,(int)p);
        }
    UpdateList(StuList);
}

void ShowAllStuClick(){
    ShowAllStudent();
    DrawWindow(StuWindow);
}

⌨️ 快捷键说明

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