活力长者社区(C语言)

活力长者社区

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void scene0();
void vipscene();
void roomscene();
void settlescene();
void equipmentscene();
void userscene();
void addvip();
void searchvip();
struct vip getdata(char info[]);
void correctvip(char vipid[]);
void changevip(char vipid[]);
void deletevip(char vipid[]);
void changetel(char vipid[]);
void changename(char vipid[]);
void changeid(char vipid[]);
void addroom();
void buyroom();
void purchase(char info[]);
void settleroom(char info[]);
void rentroom(char info[]);
void freeroom(char info[]);
void selectroom(char info[]);
void addequip();
void inoutequip();
void lendequip(char info[20]);
void returnequip(char info[20]);

struct node {
    int data;
    struct node *next;
};//创建单向链表节点
void print(struct node*head)
{
    struct node *temp;
    temp=head;
    while(temp!=NULL)
    {
        temp=temp->next;
    }
}//创建链表指针

struct equipment{
    int id;
    char name[20];
    int usestate;
};//定义设施结构体

struct vip {
    char vipid[20];
    char name[20];
    char id[20];
    char tel[20];
};//定义会员结构体

struct room{
    int id;
    int size;
    char info[20];
    int vipid;
    int usestate;
};//定义房屋结构体

int main() {
    scene0();
    int choice1;
    scanf("%d",&choice1);
    switch (choice1) {
        case 1:
            vipscene();
            break;
        case 2:
            roomscene();
            break;
        case 3:
            settlescene();
            break;
        case 4:
            equipmentscene();
            break;
        case 5:
            userscene();
            break;
        case 6:
            printf("退出成功!");
            break;
        default:{printf("选择失败:请输入有效数字!\n");
                main();
                 break;
                }
    }
}//主UI功能

void scene0() {
    printf("****************************************\n"
           "======欢迎登陆活力长者社区管理系统!======\n"
           "****************************************\n"
           "请输入相应数字以选择服务:\n"
           "┌─────────────────────┐\n"
           "│会员管理------------1\n"
           "│房屋管理------------2\n"
           "│入住管理------------3\n"
           "│场馆设施排队管理----4\n"
           "│用户管理------------5\n"
           "│退出系统------------6\n"
           "└─────────────────────┘\n"
           "****************************************\n");
}//主UI

void settlescene() {
    printf("请输入办理入住的房屋编码:\n");
    char info[20];
    scanf("%s",&info);
    FILE *fp = NULL;
    char buff[255];
    fp = fopen("roomdata.txt", "r");
    while(fgets(buff, 255, (FILE *) fp)!=NULL)
    {
        char *ptr, *retptr;
        ptr = buff;
        char substr[5][20];
        int  i= 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        if(strcmp(substr[0],info)==0) {
            selectroom(info);
            break;
        }
    }
    if (feof(fp)) {
        printf("未找到该房屋!\n"
               "***********************\n");
        buyroom();
    }
    fclose(fp);
    }//入住管理

void selectroom(char info[]) {
    FILE *fp = NULL;
    char buff[255];
    fp = fopen("roomdata.txt", "r");
    while(fgets(buff, 255, (FILE *) fp)!=NULL) {
        char *ptr, *retptr;
        ptr = buff;
        char substr[5][20];
        int i = 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        if (strcmp(substr[0], info)==0) {
            printf("┌───────────────────┐\n"
                   "│房屋面积:%s\n"
                   "│房屋位置:%s\n"
                   "│会员编号:%s\n"
                   "│入住情况:%s\n"
                   "└───────────────────┘\n", substr[1], substr[2], substr[3], substr[4]);
            printf("****************************************\n"
                   "请输入相应数字以选择服务:\n"
                   "┌───────────────────┐\n"
                   "│办理入住-----------1\n"
                   "│房屋出租-----------2\n"
                   "│房屋闲置-----------3\n"
                   "│返回主页-----------4\n"
                   "└───────────────────┘\n"
                   "****************************************\n"
            );
            int choice6;
            scanf("%d", &choice6);
            switch (choice6) {
                case 1:
                    settleroom(info);
                    break;
                case 2:
                    rentroom(info);
                    break;
                case 3:
                    freeroom(info);
                    break;
                case 4:
                    main();
                    break;
                default: {
                    printf("选择失败:请输入有效数字!\n");
                    settlescene();
                    break;
                }
            }
        }
        }
//            printf("该会员不存在!\n");
//            settlescene();
}//查找房屋

void freeroom(char info[]) {
    FILE *fp = NULL;
    char buff[255];
    struct room roomlist[255];
    int k=0;
    fp = fopen("roomdata.txt", "r");
    while(fgets(buff, 255, (FILE *) fp)!=NULL)
    {
        char *ptr, *retptr;
        ptr = buff;
        char substr[5][20];
        int  i= 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        struct room newroom;
        if(strcmp(substr[0],info)==0) {
            newroom.id = atoi(substr[0]);
            newroom.size= atoi(substr[1]);
            for(int j=0;j<20;j++) {
                newroom.info[j]= substr[2][j];
            }
            newroom.vipid= atoi(substr[3]);
            newroom.usestate=0;
            roomlist[k]=newroom;
        } else {
            newroom.id = atoi(substr[0]);
            newroom.size= atoi(substr[1]);
            for(int j=0;j<20;j++) {
                newroom.info[j]= substr[2][j];
            }
            newroom.vipid= atoi(substr[3]);
            newroom.usestate=atoi(substr[4]);
            roomlist[k]=newroom;
        }
        k++;
    }
    FILE *fp2;
    fp2= fopen("roomdata.txt", "w");
    for(int i=0;i<k;i++) {
        fprintf(fp2,"%d,%d,%s,%d,%d\n",roomlist[i].id,roomlist[i].size,roomlist[i].info,roomlist[i].vipid,roomlist[i].usestate);
    }
    fclose(fp2);
    fclose(fp);
    printf("办理闲置成功!\n");
    main();
}//办理闲置

void rentroom(char info[]) {
    FILE *fp = NULL;
    char buff[255];
    struct room roomlist[255];
    int k=0;
    fp = fopen("roomdata.txt", "r");
    while(fgets(buff, 255, (FILE *) fp)!=NULL)
    {
        char *ptr, *retptr;
        ptr = buff;
        char substr[5][20];
        int  i= 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        struct room newroom;
        if(strcmp(substr[0],info)==0) {
            newroom.id = atoi(substr[0]);
            newroom.size= atoi(substr[1]);
            for(int j=0;j<20;j++) {
                newroom.info[j]= substr[2][j];
            }
            newroom.vipid= atoi(substr[3]);
            newroom.usestate=2;
            roomlist[k]=newroom;
        } else {
            newroom.id = atoi(substr[0]);
            newroom.size= atoi(substr[1]);
            for(int j=0;j<20;j++) {
                newroom.info[j]= substr[2][j];
            }
            newroom.vipid= atoi(substr[3]);
            newroom.usestate=atoi(substr[4]);
            roomlist[k]=newroom;
        }
        k++;
    }
    FILE *fp2;
    fp2= fopen("roomdata.txt", "w");
    for(int i=0;i<k;i++) {
        fprintf(fp2,"%d,%d,%s,%d,%d\n",roomlist[i].id,roomlist[i].size,roomlist[i].info,roomlist[i].vipid,roomlist[i].usestate);
    }
    fclose(fp2);
    fclose(fp);
    printf("办理出租成功!\n");
    main();
}//办理出租

void settleroom(char info[]) {
    FILE *fp = NULL;
    char buff[255];
    struct room roomlist[255];
    int k=0;
    fp = fopen("roomdata.txt", "r");
    while(fgets(buff, 255, (FILE *) fp)!=NULL)
    {
        char *ptr, *retptr;
        ptr = buff;
        char substr[5][20];
        int  i= 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        struct room newroom;
        if(strcmp(substr[0],info)==0) {
            newroom.id = atoi(substr[0]);
            newroom.size= atoi(substr[1]);
            for(int j=0;j<20;j++) {
                newroom.info[j]= substr[2][j];
            }
            newroom.vipid= atoi(substr[3]);
            newroom.usestate=1;
            roomlist[k]=newroom;
        } else {
            newroom.id = atoi(substr[0]);
            newroom.size= atoi(substr[1]);
            for(int j=0;j<20;j++) {
                newroom.info[j]= substr[2][j];
            }
            newroom.vipid= atoi(substr[3]);
            newroom.usestate=atoi(substr[4]);
            roomlist[k]=newroom;
        }
        k++;
    }
    FILE *fp2;
    fp2= fopen("roomdata.txt", "w");
    for(int i=0;i<k;i++) {
        fprintf(fp2,"%d,%d,%s,%d,%d\n",roomlist[i].id,roomlist[i].size,roomlist[i].info,roomlist[i].vipid,roomlist[i].usestate);
    }
    fclose(fp2);
    fclose(fp);
    printf("办理入住成功!\n");
    main();
}//办理入住

void roomscene() {
    printf("****************************************\n"
           "请输入相应数字以选择服务:\n"
           "┌───────────────────┐\n"
           "│新建房屋-----------1\n"
           "│购买房屋-----------2\n"
           "│返回上层-----------3\n"
           "└───────────────────┘\n"
           "****************************************\n"
    );
    int choice5;
    scanf("%d", &choice5);
    switch (choice5) {
        case 1:
            addroom();
            break;
        case 2:
            buyroom();
            break;
        case 3:
            main();
            break;
        default:{
            printf("选择失败:请输入有效数字!\n");
            roomscene();
            break;
        }
    }
}//房屋管理

void buyroom() {
    printf("请输入购买的房屋编号:\n");
    char info[20];
    scanf("%s",&info);
    FILE *fp = NULL;
    char buff[255];
    fp = fopen("roomdata.txt", "r");
    while(fgets(buff, 255, (FILE *) fp)!=NULL)
    {
        char *ptr, *retptr;
        ptr = buff;
        char substr[5][20];
        int  i= 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        if(strcmp(substr[0],info)==0) {
            printf("┌───────────────────┐\n"
                   "│房屋面积:%s\n"
                   "│房屋位置:%s\n"
                   "│会员编号:%s\n"
                   "│入住情况:%s\n"
                   "└───────────────────┘\n"
                   "*****************************\n",substr[1],substr[2],substr[3],substr[4]);
            purchase(info);
            break;
        }
    }
    if (feof(fp)) {
        printf("未找到该房屋!\n"
               "***********************\n");
        buyroom();
    }
    fclose(fp);
    }//购买房屋

void purchase(char info[]) {
    printf("请输入购买会员编号:\n");
    int vipid;
    scanf("%d",&vipid);
    FILE *fp = NULL;
    char buff[255];
    struct room roomlist[255];
    int k=0;
    fp = fopen("roomdata.txt", "r");
    while(fgets(buff, 255, (FILE *) fp)!=NULL) {
        char *ptr, *retptr;
        ptr = buff;
        char substr[5][20];
        int i = 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        struct room newroom;
        if (strcmp(substr[0], info) == 0) {
            newroom.id = atoi(substr[0]);
            newroom.size = atoi(substr[1]);
            for (int j = 0; j < 20; j++) {
                newroom.info[j] = substr[2][j];
            }
            newroom.vipid = vipid;
            newroom.usestate = atoi(substr[4]);
            roomlist[k] = newroom;
        } else {
            newroom.id = atoi(substr[0]);
            newroom.size = atoi(substr[1]);
            for (int j = 0; j < 20; j++) {
                newroom.info[j] = substr[2][j];
            }
            newroom.vipid = atoi(substr[3]);
            newroom.usestate = atoi(substr[4]);
            roomlist[k] = newroom;
        }
        k++;
    }
   FILE *fp2;
   fp2= fopen("roomdata.txt", "w");
    for(int i=0;i<k;i++) {
        fprintf(fp2,"%d,%d,%s,%d,%d\n",roomlist[i].id,roomlist[i].size,roomlist[i].info,roomlist[i].vipid,roomlist[i].usestate);
    }
    fclose(fp2);
    fclose(fp);
    printf("购买成功!\n");
    roomscene();
}//处理购买行为

void addroom() {
    int size;
    char info[20];
    printf("请输入房屋面积:\n");
    scanf("%d",&size);
    printf("请输入房屋位置:\n");
    scanf("%s",&info);
    FILE * f = 0;
    int lines=0;
    char line[256];
    f = fopen("roomdata.txt", "r");
    while(fgets(line, 255, (FILE *) f)!=NULL)
    {
        char *ptr, *retptr;
        ptr = line;
        char substr[5][20];
        int i = 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        lines++;
    }
    fclose(f);
    int roomid=lines+1;
    printf("新建房屋成功!\n"
           "房屋编号为:%d\n",roomid);
    FILE *fp;
    fp= fopen("roomdata.txt", "a");
    fprintf(fp, "%d,%d,%s,0,0\n",roomid,size,info);
    fclose(fp);
    roomscene();
}//新建房屋

void deletevip(char vipid[]) {
    printf("确定删除该会员吗?输入1确认,0取消\n");
    int confirm;
    scanf("%d",&confirm);
    if(confirm==1) {
        FILE *fp = NULL;
        char buff[255];
        struct vip viplist[255];
        int k=0;
        fp = fopen("vipdata.txt", "r");
        while(fgets(buff, 255, (FILE *) fp)!=NULL)
        {
            char *ptr, *retptr;
            ptr = buff;
            char substr[4][20];
            int  i= 0;
            while ((retptr = strtok(ptr, ",")) != NULL) {
                strcpy(substr[i++], retptr);
                ptr = NULL;
            }//分割字符串
            struct vip deletevip;
            if(strcmp(substr[0],vipid)!=0) {
                int j = 0;
                while (j < 20) {
                    deletevip.vipid[j] = substr[0][j];
                    deletevip.name[j] = substr[1][j];
                    deletevip.id[j] = substr[2][j];
                    deletevip.tel[j] = substr[3][j];
                    j++;
                }viplist[k]=deletevip;
                k++;
            }
        }
        FILE *fp2;
        fp2= fopen("vipdata.txt", "w");
        for(int i=0;i<k;i++) {
            fprintf(fp2,"%s,%s,%s,%s\n",viplist[i].vipid,viplist[i].name,viplist[i].id,viplist[i].tel);
        }
        fclose(fp2);
        fclose(fp);
        printf("删除会员成功!\n");
        vipscene();
    }
    else if (confirm==0) {
        printf("已取消删除\n"
               "*****************************");
        correctvip(vipid);
    }
}//删除会员UI

void vipscene() {
    printf("****************************************\n"
           "请输入相应数字以选择服务:\n"
           "┌───────────────────┐\n"
           "│新建会员-----------1\n"
           "│查询会员-----------2\n"
           "│返回上层-----------3\n"
           "└───────────────────┘\n"
           "****************************************\n"
    );
    int choice2;
    scanf("%d", &choice2);
    switch (choice2) {
        case 1:
            addvip();
            break;
        case 2:
            searchvip();
            break;
        case 3:
            main();
            break;
        default:{
            printf("选择失败:请输入有效数字!\n");
            vipscene();
            break;
        }
    }
}//会员管理

void addvip() {
    char name[10];
    char id[18];
    int tel;
    printf("请输入会员姓名:\n");
    scanf("%s",&name);
    printf("请输入会员手机号:\n");
    scanf("%d",&tel);
    printf("请输入会员身份证号:\n");
    scanf("%s",&id);
    FILE * f = 0;
    int lines=0;
    char line[256];
    f = fopen("vipdata.txt", "r");
    while(fgets(line, 255, (FILE *) f)!=NULL)
    {
        char *ptr, *retptr;
        ptr = line;
        char substr[4][20];
        int i = 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        if(atoi(substr[0])>lines) {
            lines = atoi(substr[0]);
        }
    }
    fclose(f);
    int vipid=lines+1;
    printf("新建会员成功!\n"
           "会员编号为:%d\n",vipid);
    FILE *fp;
    fp= fopen("vipdata.txt", "a");
    fprintf(fp, "%d,%s,%s,%d\n",vipid,name,id,tel);
    fclose(fp);
    vipscene();
}//增会员

void searchvip() {
    printf("请输入会员ID/身份证号/姓名/手机号码:\n");
    char info[20];
    scanf("%s",&info);
    if(strcmp(getdata(info).vipid,"")!=0) {
        printf("┌───────────────────────────┐\n");
        printf("│会员编号:%s\n", getdata(info).vipid);
        printf("│会员姓名:%s\n", getdata(info).name);
        printf("│会员身份证号:%s\n", getdata(info).id);
        printf("│会员手机号:%s\n", getdata(info).tel);
        printf("└───────────────────────────┘\n");
        correctvip(getdata(info).vipid);
    } else {
        printf("未找到此人!\n");
        searchvip();
    }//查找失败
}//查会员

void correctvip(char vipid[]) {
    printf("请输入相应数字选择以下操作:\n"
           "┌─────────────────────┐\n"
           "│修改会员信息---------1\n"
           "│删除会员-------------2\n"
           "│返回上层-------------3\n"
           "└─────────────────────┘\n"
           "*****************************\n");
    int choice3;
    scanf("%d",&choice3);
    switch (choice3) {
        case 1:
            changevip(vipid);
            break;
        case 2:
            deletevip(vipid);
            break;
        case 3:
            vipscene();
            break;
        default: {
            printf("选择失败:请输入有效数字!\n");
            correctvip(vipid);
            break;
        }
    }
}//会员删改UI

void changevip(char vipid[]) {
    printf("请选择修改内容:\n"
           "┌─────────────────┐\n"
           "│电话号码---------1\n"
           "│姓名-------------2\n"
           "│身份证号---------3\n"
           "│取消修改---------4\n"
           "└─────────────────┘\n"
           "*****************************\n");
    int choice4;
    scanf("%d", &choice4);
    switch (choice4) {
        case 1:
            changetel(vipid);
            break;
        case 2:
            changename(vipid);
            break;
        case 3:
            changeid(vipid);
            break;
        case 4:
            vipscene();
            break;
        default: {
            printf("选择失败:请输入有效数字!\n");
            changevip(vipid);
            break;
        }
    }
}//修改会员UI

void changeid(char vipid[]) {
    printf("请输入新的身份证号:\n");
    char newid[18];
    scanf("%s",&newid);
    FILE *fp = NULL;
    char buff[255];
    struct vip viplist[255];
    int k=0;
    fp = fopen("vipdata.txt", "r");
    while(fgets(buff, 255, (FILE *) fp)!=NULL)
    {
        char *ptr, *retptr;
        ptr = buff;
        char substr[4][20];
        int  i= 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        struct vip idvip;
        if(strcmp(substr[0],vipid)==0) {
            int j = 0;
            while (j < 20) {
                idvip.vipid[j] = substr[0][j];
                idvip.name[j] = substr[1][j];
                idvip.id[j] = newid[j];
                idvip.tel[j] = substr[3][j];
                j++;
            }viplist[k]=idvip;
        } else {
            int j = 0;
            while (j < 20) {
                idvip.vipid[j] = substr[0][j];
                idvip.name[j] = substr[1][j];
                idvip.id[j] = substr[2][j];
                idvip.tel[j] = substr[3][j];
                j++;
            }viplist[k]=idvip;
        }
        k++;

        }
    FILE *fp2;
    fp2= fopen("vipdata.txt", "w");
    for(int i=0;i<k;i++) {
        fprintf(fp2,"%s,%s,%s,%s\n",viplist[i].vipid,viplist[i].name,viplist[i].id,viplist[i].tel);
    }
    fclose(fp2);
    fclose(fp);
    printf("修改成功!\n"
           "*****************************\n");
    changevip(vipid);
}//修改身份证号

void changetel(char vipid[]) {
    printf("请输入新的电话号码:\n");
    char newtel[11];
    scanf("%s",&newtel);
    FILE *fp = NULL;
    char buff[255];
    struct vip viplist[255];
    int k=0;
    fp = fopen("vipdata.txt", "r");
    while(fgets(buff, 255, (FILE *) fp)!=NULL)
    {
        char *ptr, *retptr;
        ptr = buff;
        char substr[4][20];
        int  i= 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        struct vip telvip;
        if(strcmp(substr[0],vipid)==0) {
            int j = 0;
            while (j < 20) {
                telvip.vipid[j] = substr[0][j];
                telvip.name[j] = substr[1][j];
                telvip.id[j] = substr[2][j];
                telvip.tel[j] = newtel[j];
                j++;
            }viplist[k]=telvip;
        } else {
            int j = 0;
            while (j < 20) {
                telvip.vipid[j] = substr[0][j];
                telvip.name[j] = substr[1][j];
                telvip.id[j] = substr[2][j];
                telvip.tel[j] = substr[3][j];
                j++;
            }viplist[k]=telvip;
        }
        k++;

    }
    FILE *fp2;
    fp2= fopen("vipdata.txt", "w");
    for(int i=0;i<k;i++) {
        fprintf(fp2,"%s,%s,%s,%s\n",viplist[i].vipid,viplist[i].name,viplist[i].id,viplist[i].tel);
    }
    fclose(fp2);
    fclose(fp);
    printf("修改成功!\n"
           "*****************************\n");
    changevip(vipid);
}//修改电话号

void changename(char vipid[]) {
    printf("请输入新的姓名:\n");
    char newname[11];
    scanf("%s",&newname);
    FILE *fp = NULL;
    char buff[255];
    struct vip viplist[255];
    int k=0;
    fp = fopen("vipdata.txt", "r");
    while(fgets(buff, 255, (FILE *) fp)!=NULL)
    {
        char *ptr, *retptr;
        ptr = buff;
        char substr[4][20];
        int  i= 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        struct vip namevip;
        if(strcmp(substr[0],vipid)==0) {
            int j = 0;
            while (j < 20) {
                namevip.vipid[j] = substr[0][j];
                namevip.name[j] = newname[j];
                namevip.id[j] = substr[2][j];
                namevip.tel[j] = substr[3][j];
                j++;
            }viplist[k]=namevip;
        } else {
            int j = 0;
            while (j < 20) {
                namevip.vipid[j] = substr[0][j];
                namevip.name[j] = substr[1][j];
                namevip.id[j] = substr[2][j];
                namevip.tel[j] = substr[3][j];
                j++;
            }viplist[k]=namevip;
        }
        k++;

    }
    FILE *fp2;
    fp2= fopen("vipdata.txt", "w");
    for(int i=0;i<k;i++) {
        fprintf(fp2,"%s,%s,%s,%s\n",viplist[i].vipid,viplist[i].name,viplist[i].id,viplist[i].tel);
    }
    fclose(fp2);
    fclose(fp);
    printf("修改成功!\n"
           "*****************************\n");
    changevip(vipid);
}//修改姓名

struct vip getdata(char info[]){
    FILE *fp = NULL;
    char buff[255];
    struct vip nullvip={"","","",""};
    struct vip newvip={"","","",""};
    fp = fopen("vipdata.txt", "r");
    while(fgets(buff, 255, (FILE *) fp)!=NULL) {
        char *ptr, *retptr;
        ptr = buff;
        char substr[4][20];
        int i = 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        if (strcmp(substr[0], info) == 0 || strcmp(substr[2], info) == 0 || strcmp(substr[1], info) == 0 ||
            strcmp(substr[3], info) == 0) {
            int j = 0;
            while (j < 20) {
                newvip.vipid[j] = substr[0][j];
                newvip.name[j] = substr[1][j];
                newvip.id[j] = substr[2][j];
                newvip.tel[j] = substr[3][j];
                j++;
            }
            return newvip;
        }
    }
        if (feof(fp))
            return newvip;
    fclose(fp);
    return nullvip;

} //读取会员文件取出对象

void equipmentscene() {
    printf("****************************************\n"
           "请输入相应数字以选择服务:\n"
           "┌───────────────────┐\n"
           "│新建设施-----------1\n"
           "│借还设施-----------2\n"
           "│返回上层-----------3\n"
           "└───────────────────┘\n"
           "****************************************\n"
    );
    int choice7;
    scanf("%d", &choice7);
    switch (choice7) {
        case 1:
            addequip();
            break;
        case 2:
            inoutequip();
            break;
        case 3:
            main();
            break;
        default:{
            printf("选择失败:请输入有效数字!\n");
            equipmentscene();
            break;
        }
    }
}//设备管理

void inoutequip() {
    printf("请输入借还的设施编号:\n");
    char info[20];
    scanf("%s",&info);
    FILE *fp = NULL;
    char buff[255];
    fp = fopen("equipdata.txt", "r");
    while(fgets(buff, 255, (FILE *) fp)!=NULL)
    {
        char *ptr, *retptr;
        ptr = buff;
        char substr[3][20];
        int  i= 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        if(strcmp(substr[0],info)==0) {
            printf("┌───────────────────┐\n"
                   "│设施名称:%s\n"
                   "│使用情况:%s\n"
                   "└───────────────────┘\n",substr[1],substr[2]);
            if (strcmp(substr[0], info)==0) {
                printf("****************************************\n"
                       "请输入相应数字以选择服务:\n"
                       "┌───────────────────┐\n"
                       "│借用设备-----------1\n"
                       "│归还设备-----------2\n"
                       "│返回上层-----------3\n"
                       "└───────────────────┘\n"
                       "****************************************\n"
                );
                int choice8;
                scanf("%d", &choice8);
                switch (choice8) {
                    case 1:
                        lendequip(info);
                        break;
                    case 2:
                        returnequip(info);
                        break;
                    case 3:
                        equipmentscene();
                        break;
                    default: {
                        printf("选择失败:请输入有效数字!\n");
                        inoutequip();
                        break;
                    }
                }
            }
            break;
        }
    }
    if (feof(fp)) {
        printf("未找到该设施!\n"
               "***********************\n");
        inoutequip();
    }
    fclose(fp);
}//借还设施

void returnequip(char info[20]) {
    FILE *fp = NULL;
    char buff[255];
    struct equipment equiplist[255];
    int k=0;
    fp = fopen("equipdata.txt", "r");
    while(fgets(buff, 255, (FILE *) fp)!=NULL)
    {
        char *ptr, *retptr;
        ptr = buff;
        char substr[3][20];
        int  i= 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        struct equipment newequip;
        if(strcmp(substr[0],info)==0) {
            newequip.id = atoi(substr[0]);
            for(int j=0;j<20;j++) {
                newequip.name[j]= substr[1][j];
            }
            newequip.usestate=0;
            equiplist[k]=newequip;
        } else {
            newequip.id = atoi(substr[0]);
            for(int j=0;j<20;j++) {
                newequip.name[j]= substr[1][j];
            }
            newequip.usestate=atoi(substr[2]);
            equiplist[k]=newequip;
        }
        k++;
    }
    FILE *fp2;
    fp2= fopen("equipdata.txt", "w");
    for(int i=0;i<k;i++) {
        fprintf(fp2,"%d,%s,%d\n",equiplist[i].id,equiplist[i].name,equiplist[i].usestate);
    }
    fclose(fp2);
    fclose(fp);
    printf("归还设备成功!\n");
    equipmentscene();
}

void lendequip(char info[20]) {
    FILE *fp = NULL;
    char buff[255];
    struct equipment equiplist[255];
    int k=0;
    fp = fopen("equipdata.txt", "r");
    while(fgets(buff, 255, (FILE *) fp)!=NULL)
    {
        char *ptr, *retptr;
        ptr = buff;
        char substr[3][20];
        int  i= 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        struct equipment newequip;
        if(strcmp(substr[0],info)==0) {
            newequip.id = atoi(substr[0]);
            for(int j=0;j<20;j++) {
                newequip.name[j]= substr[1][j];
            }
            newequip.usestate=1;
            equiplist[k]=newequip;
        } else {
            newequip.id = atoi(substr[0]);
            for(int j=0;j<20;j++) {
                newequip.name[j]= substr[1][j];
            }
            newequip.usestate=atoi(substr[2]);
            equiplist[k]=newequip;
        }
        k++;
    }
    FILE *fp2;
    fp2= fopen("equipdata.txt", "w");
    for(int i=0;i<k;i++) {
        fprintf(fp2,"%d,%s,%d\n",equiplist[i].id,equiplist[i].name,equiplist[i].usestate);
    }
    fclose(fp2);
    fclose(fp);
    printf("借用设备成功!\n");
    equipmentscene();
}

void addequip() {
    char name[20];
    printf("请输入设施名称:\n");
    scanf("%s",&name);
    FILE * f = 0;
    int lines=0;
    char line[256];
    f = fopen("equipdata.txt", "r");
    while(fgets(line, 255, (FILE *) f)!=NULL)
    {
        char *ptr, *retptr;
        ptr = line;
        char substr[3][20];
        int i = 0;
        while ((retptr = strtok(ptr, ",")) != NULL) {
            strcpy(substr[i++], retptr);
            ptr = NULL;
        }//分割字符串
        lines++;
    }
    fclose(f);
    int equipid=lines+1;
    printf("新建设施成功!\n"
           "设施编号为:%d\n",equipid);
    FILE *fp;
    fp= fopen("equipdata.txt", "a");
    fprintf(fp, "%d,%s,0\n",equipid,name);
    fclose(fp);
    equipmentscene();
}//新建设施

设备文档(示例) equip.txt

1,滑梯,0
2,会议室,0

房屋文档(示例) roomdata.txt

1,50,二楼203,1,1
2,88,一号楼101,0,2

客户文档(示例) vipdata.txt

1,lzh,123456123111111111,44567897891
2,wzy,123456789456,75631597841
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值