系统可以保存10个角色人物的信息(姓名 性别 职业),能够完成对这些角色信息的增删改查操作。
#include <stdio.h> #include <string.h> #include <windows.h> static struct character { char name[20]; char sex[10]; char job[10]; }arry[10]; int caidan(void); int quit(int); int addcharacter(int); int namechazhao(int); void showallrole(int); int changerole(int); int deleterole(int); int main(int argc, char *argv[]) { int flag =1; int choice; int number = 0; while (flag) { choice = caidan(); if (choice == 1) { number = addcharacter(number);//角色添加 } else if(choice == 2) { number = deleterole(number);//删除角色 } else if(choice == 3) { changerole(number);//角色信息更改 } else if(choice == 4) { namechazhao(number);//查找角色信息 } else if (choice == 5) { showallrole(number);//显示所有角色信息 } else if (choice == 6) { flag = quit(choice); Sleep(2000); } else { printf("输入错误请重新输入。\n"); } } return 0; } int caidan(void) { int choose; printf("****角色管理系统****\n"); printf("1. 添加角色\n"); printf("2. 删除角色\n"); printf("3. 修改角色\n"); printf("4. 查询角色\n"); printf("5. 显示所有角色信息\n"); printf("6. 退出系统\n"); printf("你的选择:"); scanf("%d",&choose); return choose; } int quit(int choice)//退出系统 { int flag = 1; printf("正在退出系统。"); if (choice == 6) flag = 0; return flag; } int addcharacter(int number)//添加角色 { int num; int flag = 1; while(1) { if (number <= 10) { printf("请输入你要添加的数量:"); scanf("%d",&num); if(num + number <= 10) { for (int i = number; i < num + number; i++) { printf("请输入第%d个角色姓名:",i + 1); scanf("%s",arry[i].name); printf("性别:"); scanf("%s",arry[i].sex); printf("职业:"); scanf("%s",arry[i].job); } break; } else { printf("超出范围。\n"); break; } } else { printf("存储人物已满,请选择其他功能。\n"); break; } } return num + number; } int namechazhao(int number)//查找角色 { int j = 0; char cname[20]; printf("按照姓名查找\n"); printf("请输入你要查找的姓名:"); scanf("%s",cname); for (int i = 0; i < number; i++) { if (!strcmp(cname,arry[i].name)) { printf("存在此人,角色信息如下:\n"); printf("姓名:%s,性别:%s,职业:%s\n",arry[i].name,arry[i].sex,arry[i].job); j++; } } if (j == 0) { printf("不存在此人。\n"); //return 0; } } void showallrole(int number)//显示全部角色 { if (number == 0) { printf("还没有录入角色信息,请先录入。\n"); } else { printf("开始显示所有角色信息:\n\n"); printf("姓名\t性别\t职业\n"); for (int i = 0; i < number; i++) { printf("%s\t%s\t%s\t\n",arry[i].name,arry[i].sex,arry[i].job); } printf("\n"); } } int changerole(int number)//角色信息更改 { int j = 0; char judge; char cname[20]; printf("开始修改角色信息:\n"); if (number == 0) { printf("还没有录入角色信息,请先录入。\n"); } else { printf("按照姓名查修改,请输入你要修改的姓名:\n"); scanf("%s",cname); for (int i = 0; i < number; i++) { if (!strcmp(cname,arry[i].name)) { printf("存在此人,角色信息如下:\n"); printf("姓名:%s,性别:%s,职业:%s\n",arry[i].name,arry[i].sex,arry[i].job); printf("是否确定修改?(y/n)\n"); getchar(); scanf("%c",&judge); if (judge == 'y') { getchar(); puts("新姓名:"); gets(arry[i].name); puts("性别:"); gets(arry[i].sex); puts("职业:"); gets(arry[i].job); printf("修改成功!\n"); } j++; } } if (j == 0) { printf("不存在此人。\n"); return j; } } } int deleterole(int number) { char cname[20]; printf("开始进入删除模块:\n"); showallrole(number); puts("确定删除(y/n)?"); getchar(); if (getchar() == 'y') { printf("按照姓名查删除,请输入你要删除的姓名:\n"); scanf("%s",cname); for (int i = 0; i < number; i++) { if (!strcmp(cname,arry[i].name)) { number -=1; for (i; i < number; i++) { arry[i] = arry[i+1]; } printf("删除成功。\n"); return number; } } } }