鱼C论坛

 找回密码
 立即注册
查看: 1272|回复: 9

[已解决]这个文件部分怎么写

[复制链接]
发表于 2022-2-22 22:25:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1、隐私信息管理系统

本题要求采用结构体数组(或链表)存储数据。具体要求如下:
1) 程序执行时,首先要进行密码检测,以不让非法用户使用本程序。标准密码预先在程序中设定,程序运行时,若用户的输入密码和标准密码相同,则显示“口令正确!”并转去执行后续程序;若不相等,重新输入,3次都不相等则显示“您是非法用户!”并终止程序的执行。
2) 现在每个人在不同网站都有用户名和密码等信息,还有银行卡号及密码信息,众多的信息经常忘记,最好的方法是将这些信息用文件的形式保存起来。但是很多私密数据(特别是密码)不能明文存储,比较保险的办法是采用密文存储,即先将密码明文加密成密文后,再进行存储。加密方法自行设计,例如输入密码明文为字符1,但存储时却存储的是其密文字符a,这只要通过ASCII值加一个整数值即可实现。
3) 需要保护的数据信息包括编号,帐号位置,帐号描述,帐号名,密码等
4) 系统具体提供以下功能:
Ø 系统以菜单方式工作。开始运行程序时要进行密码验证。
Ø 信息的录入功能、浏览功能。
Ø 信息的查询功能。按帐号名查询,如输入“acm”可查出上表第2条记录。
Ø 信息的删除、修改功能。
Ø 信息存入文件。信息中的密码必须要加密后才能存入文件,建议先输入一串字符作为加密密钥,对信息中的密码加密后再进行存储,即确保存入文件中的信息里面,“密码”是加密后的字符串。
Ø 将文件中的信息导入。与信息存入文件的过程相反,将密码解密后导入。

文件部分希望既可以写入也可以输出



#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct user
{
    int number;
    char position[100];
    char description[100];
    char name[100];
    char word[100];
} use[10000];
int num=0;
int password();
void menue();
void message_insert();
void message_search();
void message_modify();
void message_delete();
void message_search_id();
void message_search_name();
void display_all();
void display_single();
void FILE_read();
void FILE_write();
int password()//密码验证
{
    int flag=1;
    char original[55];
    strcpy(original,"1008611");
    char user_word[55];
    printf("*******请输入密码***********\n");
    int i=3;
    for(i=1; i<=3; i++)
    {
        scanf("%s",user_word);
        if(i<3)
        {
            if(strcmp(user_word,original)==0)
            {
                printf("*****密码正确·,进入系统******\n");
                return 1;
                break;
            }
            else
            {
                printf("*******密码错误,请重新输入**********\n");
            }
        }

        else if(i==3)
        {
            printf("********多次输入错误,已退出系统**********\n");
            flag=0;
        }
    }
    return flag;

}
void menue()
{
    printf("*******请输入您所需功能的序号*********\n");
    printf("1.录入账号信息\n");
    printf("2.查询账号信息\n");
    printf("3.删除账号信息\n");
    printf("4.修改账号信息\n");
    printf("5.浏览当前保存的账号信息\n");
    printf("6.退出系统\n");

}
void message_insert()
{
    int i;
    char str[20];
    printf("***请输入编号****\n");
    scanf("%d",&use[num].number);
    getchar();
    printf("***请输入账号位置***\n");
    scanf("%s",use[num].position);
    getchar();
    printf("****请输入账号的描述****\n");
    scanf("%s",use[num].description);
    getchar();
    printf("*****请输入账号名*****\n");
    scanf("%s",use[num].name);
    getchar();
    printf("****请输入该账号密码*****\n");
    scanf("%s",str);
    getchar();
    for(i=0; i<strlen(str); i++)
        use[num].word[i]=str[i]+48;
    use[num].word[strlen(str)]='\0';
    num++;
}
void message_search_id()
{
    int id;
    printf("请输入您要查询的编号\n");
    scanf("%d",&id);
    int flag=0;
    int i;
    for(i=0; i<num; i++)
    {
        if(use[i].number==id)
        {
            display_single(i);
            flag=1;
            break;
        }
    }
    if(!flag)printf("信息查询失败\n");

}
void message_search_name()
{
    int flag=0;
    char name_use[100];
    printf("***请输入您要查询的账号名***\n");
    scanf("%s",name_use);
    int i;
    for(i=0; i<num; i++)
    {
        if(strcmp(name_use,use[i].name)==0)
        {
            display_single(i);
            flag=1;
            break;
        }
    }
    if(!flag)printf("***该账号名不存在,请重新输入***\n");
}
void message_delete()
{
    int id;
    int i;
    int flag=0;
    int k;
    char ans_2[20];
    printf("****请输入您要修改的编号****\n");
    scanf("%d",&id);
    for(i=0; i<num; i++)
    {
        if(use[i].number==id)
        {
            k=i;
            printf("****请确定您要修改的信息****\n");
            display_single(i);
            flag=1;
            break;
        }
    }
    if(!flag)printf("未找到信息\n");
    else
    {
    printf("****是否需要删除,请选择yes/no\n");
    scanf("%s",ans_2);
    if(strcmp(ans_2,"yes")==0)
    {
        for(i=k; i<num; i++)
            use[i]=use[i+1];
    }
    }
    printf("删除成功\n");
    num--;
}
void message_modify()
{
    int num_1;
    int id;
    int i;
    int j;
    char str_word[100];
    printf("****请输入您要修改信息的编号****\n");
    scanf("%d",&id);
    if(id<1||id>num)
        printf("***该信息不存在***\n");
    for(j=0; j<num; j++)
    {
        if(use[j].number==id)
        {
            num_1=j;
            break;
        }
    }
    printf("*****您要修改的信息为*****\n");
    display_single(num_1);
    printf("请重新输入编号\n");
    scanf("%d",&use[num_1].number);
    getchar();
    printf("请重新输入账号位置\n");
    scanf("%s",use[num_1].position);
    printf("请重新输入账号描述\n");
    scanf("%s",use[num_1].description);
    getchar();
    printf("请重新输入账号名\n");
    scanf("%s",use[num_1].name);
    getchar();
    printf("请重新输入密码\n");
    scanf("%s",str_word);
    for(i=0; i<strlen(str_word); i++)
        use[num_1].word[i]=str_word[i]+48;

}
void message_search()
{
    int s;
    printf("本系统提供有两种查询方式\n");
    printf("1.编号查询\n");
    printf("2.账号名查询\n");
    printf("请选择查询方式\n");
    scanf("%d",&s);
    switch(s)
    {
    case 1:
        message_search_id();
        break;
    case 2:
        message_search_name();
        break;
    }
}
void display_single(int id)
{
    int i;
    char str_1[20];
    printf("%-5s%-25s%-20s%-18s%-10s\n","编号","账号位置","账号描述","账号名","密码");
    printf("========================================================================\n");
    for(i=0; i<strlen(use[id].word); i++)
        str_1[i]=use[id].word[i]-48;
    str_1[strlen(use[id].word)]='\0';
    printf("No.%-5d%-25s%-20s%-18s%-10s\n",use[id].number,use[id].position,use[id].description,use[id].name,str_1);
}
void display_all()
{
    int i,j;
    while(1)
    {
        printf("%-5s%-25s%-20s%-18s%-10s\n","编号","账号位置","账号描述","账号名","密码");
        printf("-------------------------------------------------------------------------\n");
        for(i=0; i<num; i++)
        {
            char str[20];
            for(j=0; j<strlen(use[i].word); j++)
            {
                str[j]=use[i].word[j]-48;
            }
            str[strlen(use[i].word)]='\0';
            printf("%-5d%-25s%-20s%-18s%-10s\n",use[i].number,use[i].position,
                   use[i].description,use[i].name,str);
        }
        break;
    }
}
void FILE_write()
{
    FILE *fp;
    int i;
    if((fp = fopen("exper.txt","wb"))==NULL)
    {
        return;
    }
    if(fwrite(&num, sizeof(int),1,fp) != 1)
        printf("无法写入文件\n");
    else
    {
        for(i = 0; i < num; i++)
        {
            if( fwrite(&use[i], sizeof(struct user),1,fp)!=1)
                printf("无法写入文件\n");
        }
    }
    fclose(fp);
}
void FILE_read()
{
    FILE *fp;
    int i;
    if((fp = fopen("exper.txt","rb"))==NULL)
    {
        return;
    }
    if(fread(&num,sizeof(int),1,fp)!=1)
        num = 1;
    else
    {
        for(i = 0; i < num; i++)
            fread(&use[i],sizeof(struct user),1,fp);
    }
    num = 0;
    fclose(fp);
}
int main()
{

    if(!password())
        return 0;
        int n;
    FILE_read();
    while(1)
    {
        menue();
        scanf("%d",&n);
        getchar();
        switch(n)
        {
        case 1:
            message_insert();
            break;
        case 2:
            message_search();
            break;
        case 3:
            message_delete();
            break;
        case 4:
            message_modify();
            break;
        case 5:
            display_all();
            break;
        case 6:
            return 0;
        }
       FILE_write();
    }
}
最佳答案
2022-2-24 13:59:12
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

#define USER_MAX 10000 // 程序能保存的最大用户数

struct user
{
    char number[10]; // 编号用字符串更合理
    int position; // 信息在数组中的位置 10000 int型足够了
    char description[50];
    char name[20];
    char word[20];
} use[USER_MAX]={0}; // 全初始化为0
int num=0;

// 加密
void encode(char str[])
{
    int i;
    for(i=0; i<strlen(str); i++)
        str[i]=str[i]+48;
}

// 解密
void decode(char str[])
{
    int i;
    for(i=0; i<strlen(str); i++)
        str[i]=str[i]-48;
}

int password()//密码验证
{
    int flag=1;
    char original[55];
    strcpy(original,"1008611");
    char user_word[55]="1008611";
    printf("*******请输入密码***********\n");
    int i=3;
    for(i=1; i<=3; i++)
    {
        // scanf("%s",user_word);
        if(i<3)
        {
            if(strcmp(user_word,original)==0)
            {
                printf("*****密码正确·,进入系统******\n");
                return 1;
                break;
            }
            else
            {
                printf("*******密码错误,请重新输入**********\n");
            }
        }

        else if(i==3)
        {
            printf("********多次输入错误,已退出系统**********\n");
            flag=0;
        }
    }
    return flag;

}
void menue()
{
    printf("*******请输入您所需功能的序号*********\n");
    printf("1.录入账号信息\n");
    printf("2.查询账号信息\n");
    printf("3.删除账号信息\n");
    printf("4.修改账号信息\n");
    printf("5.浏览当前保存的账号信息\n");
    printf("6.退出系统\n");

}
void message_insert()
{
    int i;
    char str[20]={'\0'};

    if(num==USER_MAX-1)
    {
        printf("信息已满!");
        return;
    }


    printf("***请输入编号****\n");
    scanf("%s",&use[num].number);
    getchar();
    printf("****请输入账号的描述****\n");
    scanf("%s",use[num].description);
    getchar();
    printf("*****请输入账号名*****\n");
    scanf("%s",use[num].name);
    getchar();
    printf("****请输入该账号密码*****\n");
    scanf("%s",str);
    encode(str); // 加密
    strcpy(use[num].word, str);

    use[num].position = num+1;

    num++;
}

// 按编号查询出用户所在位置
int user_position(char number[])
{
    int i;

    for(i=0; i<num; i++)
    {
        if(strcmp(use[i].number, number)==0)
        {
            return i;
            break;
        }
    }

    return -1;
}

void message_search_number()
{
    char number[10]={'\0'};
    int i;

    printf("请输入您要查询的编号\n");
    scanf("%s", &number);
    i = user_position(number);
    if (i==-1)
    {
        printf("未查询到编号为 %s 的信息。\n", number);
        return;
    }

    display_single(i);
}
void message_search_name()
{
    int flag=0;
    char name[20];
    printf("***请输入您要查询的账号名***\n");
    scanf("%s",name);
    int i;
    for(i=0; i<num; i++)
    {
        if(strcmp(name,use[i].name)==0)
        {
            display_single(i);
            flag=1;
        }
    }
    if(!flag)printf("未查询到帐号名为 %s 的信息。\n", name);
}
void message_delete()
{
    char number[20]={'\0'};
    int i, k;
    char ans_2[20];

    if(num==0)
    {
        printf("当前已无数据。");
        return;
    }

    printf("****请输入您要删除的编号****\n");
    scanf("%s", &number);

    k = user_position(number);
    if(k==-1)
    {
        printf("未找到信息\n");
        return;
    }

    printf("****请确定您要删除的信息****\n");
    display_single(k);

    printf("****是否需要删除,请选择yes/no\n");
    scanf("%s",ans_2);
    if(strcmp(ans_2,"yes")==0)
    {
        // 最后一位,直接清0
        if(k==num-1)
        {
            memset(&use[k], 0, sizeof(struct user));
        }
        else // 首位和中间处理方式一样
        {
            int j; // 临时保存删除位置
            if(k==0)
            {
                j = 0;
            }
            else // 中间
            {
                j=k;
            }

            for(i=j; i<num; i++)
            {
                use[i]=use[i+1];
                use[i].position=i+1;
            }
            memset(&use[i+1], 0, sizeof(struct user));
        }

        printf("删除成功\n");
        num--;
    }
}
void message_modify()
{
    char number[10]={'\0'};
    int k;
    char str[20];

    if(num==0)
    {
        printf("当前已无数据。");
        return;
    }

    printf("****请输入您要修改信息的编号****\n");
    scanf("%s", &number);

    k = user_position(number);
    if(k==-1)
    {
        printf("未找到信息\n");
        return;
    }

    printf("*****您要修改的信息为*****\n");
    display_single(k);
    printf("新编号:");
    scanf("%s",&use[k].number);
    getchar();
    printf("新账号描述:");
    scanf("%s",use[k].description);
    getchar();
    printf("新账号名:");
    scanf("%s",use[k].name);
    getchar();
    printf("新密码:");
    scanf("%s",str);

    encode(str);
    strcpy(use[k].word, str);
}
void message_search()
{
    int s;
    printf("本系统提供有两种查询方式\n");
    printf("1.编号查询\n");
    printf("2.账号名查询\n");
    printf("请选择查询方式\n");
    scanf("%d",&s);
    switch(s)
    {
    case 1:
        message_search_number();
        break;
    case 2:
        message_search_name();
        break;
    }
}
void display_single(int i)
{
    char str[20];
    strcpy(str, use[i].word);
    decode(str);

    printf("%-5s%-25s%-20s%-18s%-10s\n","编号","账号位置","账号描述","账号名","密码");
    printf("========================================================================\n");

    printf("No.%-5s%-25d%-20s%-18s%-10s\n", use[i].number, use[i].position, use[i].description, use[i].name, str);
}
void display_all()
{
    int i,j;

    printf("%-5s%-25s%-20s%-18s%-10s\n","编号","账号位置","账号描述","账号名","密码");
    printf("-------------------------------------------------------------------------\n");
    for(i=0; i<num; i++)
    {
        char str[20]={'\0'};
        strcpy(str, use[i].word);
        decode(str);

        printf("%-5s%-25d%-20s%-18s%-10s\n",use[i].number, use[i].position, use[i].description, use[i].name, str);
    }
}
void FILE_write()
{
    FILE *fp;
    int i;
    if((fp = fopen("exper.txt","wb"))==NULL)
    {
        return;
    }

    if(num==0)
    {
        return;
    }

    for(i=0; i<num; i++)
    {
        if( fwrite(&use[i], sizeof(struct user),1,fp)!=1)
            printf("无法写入文件\n");
    }

    fclose(fp);
}
void FILE_read()
{
    FILE *fp;
    if((fp = fopen("exper.txt","rb"))==NULL)
    {
        return;
    }

    num = 0; // 记录用户数量
    while(1)
    {
        if(fread(&use[num],sizeof(struct user),1,fp)!=1) // 读取失败退出
            break;
        num++;
    }

    fclose(fp);
}
int main()
{

    if(!password())
        return 0;

    int n;
    FILE_read();
    while(1)
    {
        menue();
        scanf("%d",&n);
        getchar();
        switch(n)
        {
        case 1:
            message_insert();
            break;
        case 2:
            message_search();
            break;
        case 3:
            message_delete();
            break;
        case 4:
            message_modify();
            break;
        case 5:
            display_all();
            break;
        case 6:
            break;
        }
        if(n==6) break;
    }

    // 退出保存
    FILE_write();
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-24 13:59:12 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +1 鱼币

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

#define USER_MAX 10000 // 程序能保存的最大用户数

struct user
{
    char number[10]; // 编号用字符串更合理
    int position; // 信息在数组中的位置 10000 int型足够了
    char description[50];
    char name[20];
    char word[20];
} use[USER_MAX]={0}; // 全初始化为0
int num=0;

// 加密
void encode(char str[])
{
    int i;
    for(i=0; i<strlen(str); i++)
        str[i]=str[i]+48;
}

// 解密
void decode(char str[])
{
    int i;
    for(i=0; i<strlen(str); i++)
        str[i]=str[i]-48;
}

int password()//密码验证
{
    int flag=1;
    char original[55];
    strcpy(original,"1008611");
    char user_word[55]="1008611";
    printf("*******请输入密码***********\n");
    int i=3;
    for(i=1; i<=3; i++)
    {
        // scanf("%s",user_word);
        if(i<3)
        {
            if(strcmp(user_word,original)==0)
            {
                printf("*****密码正确·,进入系统******\n");
                return 1;
                break;
            }
            else
            {
                printf("*******密码错误,请重新输入**********\n");
            }
        }

        else if(i==3)
        {
            printf("********多次输入错误,已退出系统**********\n");
            flag=0;
        }
    }
    return flag;

}
void menue()
{
    printf("*******请输入您所需功能的序号*********\n");
    printf("1.录入账号信息\n");
    printf("2.查询账号信息\n");
    printf("3.删除账号信息\n");
    printf("4.修改账号信息\n");
    printf("5.浏览当前保存的账号信息\n");
    printf("6.退出系统\n");

}
void message_insert()
{
    int i;
    char str[20]={'\0'};

    if(num==USER_MAX-1)
    {
        printf("信息已满!");
        return;
    }


    printf("***请输入编号****\n");
    scanf("%s",&use[num].number);
    getchar();
    printf("****请输入账号的描述****\n");
    scanf("%s",use[num].description);
    getchar();
    printf("*****请输入账号名*****\n");
    scanf("%s",use[num].name);
    getchar();
    printf("****请输入该账号密码*****\n");
    scanf("%s",str);
    encode(str); // 加密
    strcpy(use[num].word, str);

    use[num].position = num+1;

    num++;
}

// 按编号查询出用户所在位置
int user_position(char number[])
{
    int i;

    for(i=0; i<num; i++)
    {
        if(strcmp(use[i].number, number)==0)
        {
            return i;
            break;
        }
    }

    return -1;
}

void message_search_number()
{
    char number[10]={'\0'};
    int i;

    printf("请输入您要查询的编号\n");
    scanf("%s", &number);
    i = user_position(number);
    if (i==-1)
    {
        printf("未查询到编号为 %s 的信息。\n", number);
        return;
    }

    display_single(i);
}
void message_search_name()
{
    int flag=0;
    char name[20];
    printf("***请输入您要查询的账号名***\n");
    scanf("%s",name);
    int i;
    for(i=0; i<num; i++)
    {
        if(strcmp(name,use[i].name)==0)
        {
            display_single(i);
            flag=1;
        }
    }
    if(!flag)printf("未查询到帐号名为 %s 的信息。\n", name);
}
void message_delete()
{
    char number[20]={'\0'};
    int i, k;
    char ans_2[20];

    if(num==0)
    {
        printf("当前已无数据。");
        return;
    }

    printf("****请输入您要删除的编号****\n");
    scanf("%s", &number);

    k = user_position(number);
    if(k==-1)
    {
        printf("未找到信息\n");
        return;
    }

    printf("****请确定您要删除的信息****\n");
    display_single(k);

    printf("****是否需要删除,请选择yes/no\n");
    scanf("%s",ans_2);
    if(strcmp(ans_2,"yes")==0)
    {
        // 最后一位,直接清0
        if(k==num-1)
        {
            memset(&use[k], 0, sizeof(struct user));
        }
        else // 首位和中间处理方式一样
        {
            int j; // 临时保存删除位置
            if(k==0)
            {
                j = 0;
            }
            else // 中间
            {
                j=k;
            }

            for(i=j; i<num; i++)
            {
                use[i]=use[i+1];
                use[i].position=i+1;
            }
            memset(&use[i+1], 0, sizeof(struct user));
        }

        printf("删除成功\n");
        num--;
    }
}
void message_modify()
{
    char number[10]={'\0'};
    int k;
    char str[20];

    if(num==0)
    {
        printf("当前已无数据。");
        return;
    }

    printf("****请输入您要修改信息的编号****\n");
    scanf("%s", &number);

    k = user_position(number);
    if(k==-1)
    {
        printf("未找到信息\n");
        return;
    }

    printf("*****您要修改的信息为*****\n");
    display_single(k);
    printf("新编号:");
    scanf("%s",&use[k].number);
    getchar();
    printf("新账号描述:");
    scanf("%s",use[k].description);
    getchar();
    printf("新账号名:");
    scanf("%s",use[k].name);
    getchar();
    printf("新密码:");
    scanf("%s",str);

    encode(str);
    strcpy(use[k].word, str);
}
void message_search()
{
    int s;
    printf("本系统提供有两种查询方式\n");
    printf("1.编号查询\n");
    printf("2.账号名查询\n");
    printf("请选择查询方式\n");
    scanf("%d",&s);
    switch(s)
    {
    case 1:
        message_search_number();
        break;
    case 2:
        message_search_name();
        break;
    }
}
void display_single(int i)
{
    char str[20];
    strcpy(str, use[i].word);
    decode(str);

    printf("%-5s%-25s%-20s%-18s%-10s\n","编号","账号位置","账号描述","账号名","密码");
    printf("========================================================================\n");

    printf("No.%-5s%-25d%-20s%-18s%-10s\n", use[i].number, use[i].position, use[i].description, use[i].name, str);
}
void display_all()
{
    int i,j;

    printf("%-5s%-25s%-20s%-18s%-10s\n","编号","账号位置","账号描述","账号名","密码");
    printf("-------------------------------------------------------------------------\n");
    for(i=0; i<num; i++)
    {
        char str[20]={'\0'};
        strcpy(str, use[i].word);
        decode(str);

        printf("%-5s%-25d%-20s%-18s%-10s\n",use[i].number, use[i].position, use[i].description, use[i].name, str);
    }
}
void FILE_write()
{
    FILE *fp;
    int i;
    if((fp = fopen("exper.txt","wb"))==NULL)
    {
        return;
    }

    if(num==0)
    {
        return;
    }

    for(i=0; i<num; i++)
    {
        if( fwrite(&use[i], sizeof(struct user),1,fp)!=1)
            printf("无法写入文件\n");
    }

    fclose(fp);
}
void FILE_read()
{
    FILE *fp;
    if((fp = fopen("exper.txt","rb"))==NULL)
    {
        return;
    }

    num = 0; // 记录用户数量
    while(1)
    {
        if(fread(&use[num],sizeof(struct user),1,fp)!=1) // 读取失败退出
            break;
        num++;
    }

    fclose(fp);
}
int main()
{

    if(!password())
        return 0;

    int n;
    FILE_read();
    while(1)
    {
        menue();
        scanf("%d",&n);
        getchar();
        switch(n)
        {
        case 1:
            message_insert();
            break;
        case 2:
            message_search();
            break;
        case 3:
            message_delete();
            break;
        case 4:
            message_modify();
            break;
        case 5:
            display_all();
            break;
        case 6:
            break;
        }
        if(n==6) break;
    }

    // 退出保存
    FILE_write();
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-25 09:26:26 | 显示全部楼层
顶顶帖子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-25 09:55:50 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-25 10:33:54 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-26 04:58:50 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-26 19:30:04 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-26 17:45:30 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-28 08:39:55 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-28 08:42:41 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-16 22:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表