#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n\n#define MAX_NAME_LENGTH 50\n#define MAX_INTRO_LENGTH 1000\n#define MAX_FILE_NAME_LENGTH 100\n\ntypedef struct {\n char name[MAX_NAME_LENGTH];\n char intro[MAX_INTRO_LENGTH];\n} Character;\n\nvoid getInputString(char *str, int max_length) {\n fflush(stdin);\n fgets(str, max_length, stdin);\n str[strcspn(str, "\n")] = '\0'; // 移除换行符\n}\n\nvoid createCharacterFile(Character character) {\n char file_name[MAX_FILE_NAME_LENGTH];\n sprintf(file_name, "avatar/%s.txt", character.name);\n FILE *file = fopen(file_name, "w");\n if (file == NULL) {\n printf("无法创建人物档案文件。\n");\n return;\n }\n fprintf(file, "名称:%s\n", character.name);\n fprintf(file, "介绍:%s\n", character.intro);\n fclose(file);\n printf("人物档案文件创建成功。\n");\n}\n\nvoid displayCharacterList() {\n int count = 0;\n FILE *dir = popen("dir /b avatar", "r");\n if (dir == NULL) {\n printf("无法打开人物档案文件夹。\n");\n return;\n }\n printf("人物档案列表:\n");\n char file_name[MAX_FILE_NAME_LENGTH];\n while (fgets(file_name, sizeof(file_name), dir) != NULL) {\n printf("%d. %s\n", ++count, strtok(file_name, "\n"));\n }\n pclose(dir);\n printf("\n");\n}\n\nvoid searchCharacter() {\n int count = 0;\n FILE *dir = popen("dir /b avatar", "r");\n if (dir == NULL) {\n printf("无法打开人物档案文件夹。\n");\n return;\n }\n char file_name[MAX_FILE_NAME_LENGTH];\n while (fgets(file_name, sizeof(file_name), dir) != NULL) {\n ++count;\n }\n pclose(dir);\n printf("系统内共有%d个动漫人物的存档文件。\n\n", count);\n}\n\nvoid displayCharacterInfo(char *name) {\n char file_name[MAX_FILE_NAME_LENGTH];\n sprintf(file_name, "avatar/%s.txt", name);\n FILE *file = fopen(file_name, "r");\n if (file == NULL) {\n printf("找不到该人物的档案文件。\n");\n return;\n }\n char line[1000];\n while (fgets(line, sizeof(line), file) != NULL) {\n printf("%s", line);\n }\n fclose(file);\n printf("\n");\n}\n\nvoid deleteCharacterFile(char *name) {\n char file_name[MAX_FILE_NAME_LENGTH];\n sprintf(file_name, "avatar/%s.txt", name);\n if (remove(file_name) == 0) {\n printf("人物档案文件删除成功。\n");\n } else {\n printf("找不到该人物的档案文件。\n");\n }\n}\n\nvoid renameCharacterFile(char *old_name, char *new_name) {\n char old_file_name[MAX_FILE_NAME_LENGTH];\n char new_file_name[MAX_FILE_NAME_LENGTH];\n sprintf(old_file_name, "avatar/%s.txt", old_name);\n sprintf(new_file_name, "avatar/%s.txt", new_name);\n if (rename(old_file_name, new_file_name) == 0) {\n printf("人物档案文件更名成功。\n");\n } else {\n printf("找不到该人物的档案文件。\n");\n }\n}\n\nvoid modifyCharacterInfo(char *name) {\n char file_name[MAX_FILE_NAME_LENGTH];\n sprintf(file_name, "avatar/%s.txt", name);\n FILE *file = fopen(file_name, "w");\n if (file == NULL) {\n printf("找不到该人物的档案文件。\n");\n return;\n }\n printf("请输入新的人物介绍(不少于50字):\n");\n char intro[MAX_INTRO_LENGTH];\n getInputString(intro, MAX_INTRO_LENGTH);\n if (strlen(intro) < 50) {\n printf("人物介绍不少于50字。\n");\n fclose(file);\n return;\n }\n fprintf(file, "名称:%s\n", name);\n fprintf(file, "介绍:%s\n", intro);\n fclose(file);\n printf("人物档案文件修改成功。\n");\n}\n\nvoid playCharacterMusic(char *name) {\n printf("播放相关人物音乐:%s\n", name);\n}\n\nvoid playCharacterVideo(char *name) {\n printf("播放相关人物视频:%s\n", name);\n}\n\nvoid displayCharacterImage(char *name) {\n printf("展示相关人物图片:%s\n", name);\n}\n\nint main() {\n while (1) {\n printf("请选择操作:\n");\n printf("a.在档查询\n");\n printf("b.人物信息\n");\n printf("c.人物删除\n");\n printf("d.人物更名\n");\n printf("e.修改人物信息\n");\n printf("f.播放相关人物音乐\n");\n printf("g.播放相关人物视频\n");\n printf("h.展示相关人物图片\n");\n printf("q.退出\n");\n char option;\n scanf(" %c", &option);\n switch (option) {\n case 'a':\n searchCharacter();\n break;\n case 'b':\n displayCharacterList();\n printf("请输入人物名称:\n");\n char name[MAX_NAME_LENGTH];\n getInputString(name, MAX_NAME_LENGTH);\n displayCharacterInfo(name);\n break;\n case 'c':\n displayCharacterList();\n printf("请输入要删除的人物名称:\n");\n getInputString(name, MAX_NAME_LENGTH);\n deleteCharacterFile(name);\n break;\n case 'd':\n displayCharacterList();\n printf("请输入原人物名称:\n");\n getInputString(name, MAX_NAME_LENGTH);\n printf("请输入新的人物名称:\n");\n char new_name[MAX_NAME_LENGTH];\n getInputString(new_name, MAX_NAME_LENGTH);\n renameCharacterFile(name, new_name);\n break;\n case 'e':\n displayCharacterList();\n printf("请输入要修改的人物名称:\n");\n getInputString(name, MAX_NAME_LENGTH);\n modifyCharacterInfo(name);\n break;\n case 'f':\n displayCharacterList();\n printf("请输入人物名称:\n");\n getInputString(name, MAX_NAME_LENGTH);\n playCharacterMusic(name);\n break;\n case 'g':\n displayCharacterList();\n printf("请输入人物名称:\n");\n getInputString(name, MAX_NAME_LENGTH);\n playCharacterVideo(name);\n break;\n case 'h':\n displayCharacterList();\n printf("请输入人物名称:\n");\n getInputString(name, MAX_NAME_LENGTH);\n displayCharacterImage(name);\n break;\n case 'q':\n printf("程序已退出。\n");\n return 0;\n default:\n printf("无效的选项,请重新选择。\n");\n break;\n }\n }\n


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

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