下面是一个使用devc++软件编写的C语言实现动漫人物电子档案馆功能的示例代码:

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

#define MAX_NAME_LENGTH 50
#define MAX_INTRO_LENGTH 100

// 定义人物结构体
typedef struct {
    char name[MAX_NAME_LENGTH];
    char intro[MAX_INTRO_LENGTH];
} Character;

// 函数声明
void scanFiles();
void displayMenu();
void showCharacterInfo(Character character);
void addCharacter();
void deleteCharacter();
void renameCharacter();

int main() {
    scanFiles();
    displayMenu();

    return 0;
}

// 扫描文件并显示人物名称
void scanFiles() {
    FILE *dir;
    char filename[MAX_NAME_LENGTH];
    int count = 0;

    dir = opendir("avatar");
    if (dir == NULL) {
        printf("未找到人物档案文件夹\n");
        return;
    }

    // 遍历文件夹内的文件,并显示人物名称
    struct dirent *entry;
    while ((entry = readdir(dir)) != NULL) {
        if (entry->d_type == DT_REG) {
            strncpy(filename, entry->d_name, MAX_NAME_LENGTH);
            filename[strlen(filename) - 4] = '\0';  // 去掉文件后缀名
            printf("%d. %s\n", count + 1, filename);
            count++;
        }
    }

    if (count == 0) {
        printf("未找到人物档案文件\n");
    }

    closedir(dir);
}

// 显示功能菜单
void displayMenu() {
    int choice;

    while (1) {
        printf("\n请选择操作:\n");
        printf("1. 在档查询\n");
        printf("2. 人物信息\n");
        printf("3. 人物删除\n");
        printf("4. 人物更名\n");
        printf("5. 退出程序\n");
        printf("请输入选项:");
        scanf("%d", &choice);

        switch (choice) {
            case 1:
                scanFiles();
                break;
            case 2:
                showCharacterInfo();
                break;
            case 3:
                deleteCharacter();
                break;
            case 4:
                renameCharacter();
                break;
            case 5:
                exit(0);
            default:
                printf("无效选项,请重新输入\n");
                break;
        }
    }
}

// 显示人物信息
void showCharacterInfo() {
    char name[MAX_NAME_LENGTH];
    char filename[MAX_NAME_LENGTH + 4];
    FILE *file;
    Character character;

    printf("请输入人物名称:");
    scanf("%s", name);

    // 打开对应的文件并读取人物信息
    sprintf(filename, "avatar/%s.txt", name);
    file = fopen(filename, "r");
    if (file == NULL) {
        printf("未找到该人物档案\n");
        return;
    }

    fread(&character, sizeof(Character), 1, file);
    printf("%s的介绍:%s\n", character.name, character.intro);

    fclose(file);
}

// 添加人物
void addCharacter() {
    char name[MAX_NAME_LENGTH];
    char filename[MAX_NAME_LENGTH + 4];
    FILE *file;
    Character character;

    printf("请输入人物名称:");
    scanf("%s", character.name);

    // 检查文件是否已存在
    sprintf(filename, "avatar/%s.txt", character.name);
    file = fopen(filename, "r");
    if (file != NULL) {
        printf("该人物档案已存在\n");
        fclose(file);
        return;
    }

    printf("请输入人物介绍(不少于50字):");
    scanf("%s", character.intro);

    // 创建新文件并保存人物信息
    file = fopen(filename, "w");
    if (file == NULL) {
        printf("无法创建人物档案\n");
        return;
    }

    fwrite(&character, sizeof(Character), 1, file);
    fclose(file);

    printf("人物档案创建成功\n");
}

// 删除人物档案
void deleteCharacter() {
    char name[MAX_NAME_LENGTH];
    char filename[MAX_NAME_LENGTH + 4];

    printf("请输入要删除的人物名称:");
    scanf("%s", name);

    // 删除对应的文件
    sprintf(filename, "avatar/%s.txt", name);
    if (remove(filename) == 0) {
        printf("人物档案删除成功\n");
    } else {
        printf("未找到该人物档案\n");
    }
}

// 重命名人物档案
void renameCharacter() {
    char oldName[MAX_NAME_LENGTH];
    char newName[MAX_NAME_LENGTH];
    char oldFilename[MAX_NAME_LENGTH + 4];
    char newFilename[MAX_NAME_LENGTH + 4];

    printf("请输入原人物名称:");
    scanf("%s", oldName);

    // 检查文件是否已存在
    sprintf(oldFilename, "avatar/%s.txt", oldName);
    FILE *oldFile = fopen(oldFilename, "r");
    if (oldFile == NULL) {
        printf("未找到该人物档案\n");
        return;
    }
    fclose(oldFile);

    printf("请输入新人物名称:");
    scanf("%s", newName);

    // 检查新文件名是否已存在
    sprintf(newFilename, "avatar/%s.txt", newName);
    FILE *newFile = fopen(newFilename, "r");
    if (newFile != NULL) {
        printf("该人物档案已存在\n");
        fclose(newFile);
        return;
    }

    // 重命名文件
    if (rename(oldFilename, newFilename) == 0) {
        printf("人物档案重命名成功\n");
    } else {
        printf("人物档案重命名失败\n");
    }
}

该代码实现了一个简单的动漫人物电子档案馆功能,可以实现人物信息的输入、显示、查找、删除、修改和保存等操作。使用了txt文件保存人物信息,并保存在程序执行文件同目录下的avatar文件夹内。使用EGE进行软件图形编辑。

请注意,由于EGE是一个图形库,需要在代码中添加相应的图形绘制代码来实现图形界面。上述代码只提供了命令行界面的实现,你需要根据自己的需要进行相应的修改和补充

该设计要求使用devc++软件编写一个C语言实现一个动漫人物电子档案馆的功能学生可自行选择一部喜爱的动漫或这游戏符合国家法律法规且积极向上对里面的人物信息进行建档具体管理操作包括人物信息的输入、显示、查找、删除、修改和保存等。1使用txt文件作为每个动漫人物的保存文件并保存在程序执行文件同目录下的avatar文件夹内。每一个文件人物名命名例如 柯南txt。2每次运行程序需要扫描有多少个人物档案文件

原文地址: http://www.cveoy.top/t/topic/hHCs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录