C Proyecto - sistema de elección Harem princesa - al día siguiente

Debido a que la enfermedad sólo puede estar en casa viendo la clase de red, unos pocos días después de aprender el lenguaje C, se pretende encontrar un proyecto, hoy es el segundo día, los artículos anteriores se vuelven a emitir ayer

Proyecto: princesa sistema de elección harén

Seis módulos:

1.下旨选妃 -完成
    输入一名新妃子的名字,新增加一位新的妃子,然后其他妃子的宠爱度减 10 点
2.翻牌宠幸-完成
    输入一名妃子的名字,翻牌宠幸其,增加其宠爱度10点,减少其他妃子宠爱度10点
3.打入冷宫-完成
    输入一名妃子的名字,删除一位妃子,然后其他所有的妃子宠爱度加 10 点,若无此人则显示虚惊一场
4.朕的爱妃呢-完成
    查找妃子,输入妃子的姓名并显示基本信息,被选中的妃子宠幸度加 10 点.其他妃子宠爱度减10点
5.巡视后宫-完成
    巡视后宫,显示所有在宫妃子信息
6.游戏规则判定-未

Al día siguiente, se toca una tasa mucho más rápido que ayer, pero el último en salir de la determinación de las reglas del juego han hecho otra mañana fuera

Bueno, sin más preámbulos, aquí están algunos de la fosa encontrado en el proceso, todos se han resuelto, el código completo en el más retrasada

1. número Alternativamente especificado con el texto especificado

Dentro del proyecto, cada nivel tiene su propia concubina, de la Real Mujeres, Conferencia Mundial sobre la Mujer, bin, después de su esposa, pero la definición de la estructura cuando este nivel es el número que utilizo en lugar de 1-5, para evitar errores tipográficos y algunos de los otros errores, pero cuando se quiere imprimir 5 de nivel para cada concubina método no se puede imprimir o digital, es necesario utilizar palabras en vez de aquí, creo que el método se sustituye por el interruptor para determinar el carácter del código es el siguiente:

switch (ptca->level)
            {
            case 1:
                printf("御女\t");
                break;
            case 2:
                printf("世妇\t");
                break;
            case 3:
                printf("嫔\t");
                break;
            case 4:
                printf("夫人\t");
                break;
            case 5:
                printf("后\t");
                break;
            default:
                printf("0");
                break;
            }

2.XX a la vida

Primer vistazo a la sección de código 2, me torturó durante dos horas!

char a_name[10];
scanf("%s ", a_name);
scanf("%s", a_name);

No he visto, en más de un espacio, lo que resulta en la ejecución de un programa al que gg, fui a ver un poco, por lo que dice:

declaración Scanf en la cadena de formato en ausencia de caracteres no formato entre "% d% d% d" como el intervalo de entrada, y por lo tanto utilizar más de un espacio o la tecla de retorno de carro como entrada entre los dos operandos de entrada para cada intervalos.

No entiendo, es que tienes más espacios, tiene que introducir más de una vez, un espacio para la vida! ! ! Recuerde recordar recordar! ! !

3. Analizar las cadenas son iguales

Utilizar la función strcmp (str1, str2), si str1 = str2, devuelve cero; si str1 <str2, el número negativo; si str1> str2, devuelve un número positivo.
! Recuerde que debe escribir el fichero <string.h> cabecera Oh!

if ((strcmp(a_name, (ptca->name)) == 0)) //判断名字是否相等,相等返回0
        {
            ptca->likability += 10;
            printf(" %s 翻牌成功!\n", ptca->name);
        }
        else
        {
            ptca->likability -= 10;
            printf("后宫徒生嫉妒, %s 宠爱度减少10点!\n", ptca->name);
        }

Bueno, no, me encontré con el pozo de hoy, por lo tanto, quiero ayudarte, cualquier pregunta por favor acción, si el proyecto puede optimizar la gran esperanza aclara el Dios!

código completo:

/*
后宫选妃系统
六大模块:
    1.下旨选妃 -完成
        输入一名新妃子的名字,新增加一位新的妃子,然后其他妃子的宠爱度减 10 点
    2.翻牌宠幸-完成
        输入一名妃子的名字,翻牌宠幸其,增加其宠爱度10点,减少其他妃子宠爱度10点
    3.打入冷宫-完成
        输入一名妃子的名字,删除一位妃子,然后其他所有的妃子宠爱度加 10 点,若无此人则显示虚惊一场
    4.朕的爱妃呢-完成
        查找妃子,输入妃子的姓名并显示基本信息,被选中的妃子宠幸度加 10 点.其他妃子宠爱度减10点
    5.巡视后宫-完成
        巡视后宫,显示所有在宫妃子信息
    6.游戏规则判定-未
妃子等级制(始皇制):
    一后
    三夫人
    九嫔
    二十七世妇
    八十一御女
游戏规则:1.若有三名妃子宠爱度处于50以下则发生暴动,游戏结束
        2.若有人宠爱度达到100,镇压后宫,游戏结束
        3.每名妃子默认宠爱度70点
*/

#include <stdio.h>
#include <string.h>
typedef struct concubine
{
    char name[10];  //名字,最多十个字符
    int level;      //后宫等级
    int likability; //宠爱度
} concu;
void addOne(concu *ptca, int *num);
void chooseOne(concu *ptca, int *num);
void forsakeOne(concu *ptca, int *num);
void findOne(concu *ptca, int *num);
void seeAll(concu *ptca, int *num);
int num = 0;

int main(void)
{
    //存储conu的(X可变长)数组
    concu concus[31];
    int n = 0, *num = &n; //存储后宫妃子总数,使用指针方便更改!数字指针定义时需要&取地址
    concu *p;

    //后宫初始化,默认有三位妃子
    concu c1 = {"刘解忧", 1, 70};
    concu c2 = {"孙尚香", 1, 70};
    concu c3 = {"鱼幼薇", 1, 70};
    concus[0] = c1;
    concus[1] = c2;
    concus[2] = c3;
    *num = 3;

    //选妃系统界面控制

    int c; //控制控制界面
    while (1)
    {
        p = concus; //初始化指针
        printf("-------后宫选妃系统-------\n\
            四大模块:\n\
                1.下旨选妃\n\
                2.翻牌宠幸\n\
                3.打入冷宫\n\
                4.朕的爱妃呢\n\
                5.后宫巡视\n\
                6.退出选妃系统\n\
            请输入序号选择功能:\n");

        scanf("%d", &c);
        switch (c)
        {
        case 1:
            // printf("1\n");
            addOne(p, num); //函数1
            printf("输入任意键以继续.....\n");
            scanf("%d", &c);
            break;
        case 2:
            // printf("2");
            chooseOne(p, num); //函数2
            printf("输入任意键以继续.....\n");
            scanf("%d", &c);
            break;
        case 3:
            printf("3");
            forsakeOne(p, num); //函数3
            printf("输入任意键以继续.....\n");
            scanf("%d", &c);
            break;
        case 4:
            printf("4");
            findOne(p, num); //函数4
            printf("输入任意键以继续.....\n");
            scanf("%d", &c);
            break;
        case 5:
            printf("5");
            seeAll(p, num); //函数5
            printf("输入任意键以继续.....\n");
            scanf("%d", &c);
            break;
        case 6:
            printf("退出成功...\n");
            c = 0;
            break;
        default:
            printf("小主,查无此功能啊!\n");
            printf("输入任意键以继续.....");
            scanf("%d", &c);
            break;
        }
    }
}

//1.下旨选妃-输入一名新妃子的名字,新增加一位新的妃子,然后其他妃子的宠爱度减 10 点
void addOne(concu *ptca, int *num)
{
    //根据输入初始化一位妃子的信息
    char ch[10];
    int lev, like;
    printf("请输入妃子姓名,等级(1-5)(空号间隔):\n");
    scanf("%s %d", ch, &lev);
    concu c;
    strcpy(c.name, ch);
    c.level = lev;
    c.likability = 70;
    int n = *num; //临时数量控制器,操纵循环
    //使用遍历完成下旨选妃中的操作
    for (int i = 0; i < n + 1; i++)
    {
        if (i < *num)
        {
            ptca->likability -= 10;
            ptca++;
        }
        else
        {
            *ptca = c;
            *num += 1; //总数加一
            printf("恭喜选妃成功;妃子信息:姓名:%s,等级:%d,宠爱度:%d\n", ptca->name, ptca->level, ptca->likability);
            printf("当前后宫总人数:%d\n", *num);
        }
    }
}

//2.翻牌宠幸-输入一名妃子的名字,翻牌宠幸其,增加其宠爱度10点,减少其他妃子宠爱度10点
void chooseOne(concu *ptca, int *num)
{
    int n = *num; //临时变量,控制循环
    char a_name[10];

    //准备翻牌
    printf("皇上,可以翻牌了呢,输入想翻牌的妃子名字即可:\n");
    scanf("%s", a_name);
    // gets(name);
    // printf("1");
    int i = 0;
    printf("当前即将被翻牌的妃子名称是 %s ...", a_name);

    printf("\n");
    for (int i = 0; i < n; i++)
    {
        if ((strcmp(a_name, (ptca->name)) == 0)) //判断名字是否相等,相等返回0
        {
            ptca->likability += 10;
            printf(" %s 翻牌成功!\n", ptca->name);
        }
        else
        {
            ptca->likability -= 10;
            printf("后宫徒生嫉妒, %s 宠爱度减少10点!\n", ptca->name);
        }
        ptca++; //指针指向下一个结构体
    }
};

//3.打入冷宫-输入一名妃子的名字,删除一位妃子,然后其他所有的妃子宠爱度加 10 点,若无此人则显示虚惊一场
void forsakeOne(concu *ptca, int *num)
{
    int n = *num; //临时变量,控制循环
    char a_name[10];
    concu c;
    strcpy(c.name, "0");
    c.level = 0;
    c.likability = 0;

    //准备翻牌
    printf("皇上,您要抛弃哪位妃子呢,输入妃子名字即可:\n");
    scanf("%s", a_name);
    // gets(name);
    // printf("1");
    int i = 0;
    printf("当前即将被即将被打入冷宫的妃子名称是 %s ...", a_name);

    printf("\n");
    for (int i = 0; i < n; i++)
    {
        if ((strcmp(a_name, (ptca->name)) == 0)) //判断名字是否相等,相等返回0
        {
            *ptca = c;
        }
        else
        {
            ptca->likability += 10;
            printf("因 %s 被打入冷宫, %s宠爱度增加10点!\n", a_name, ptca->name);
        }
        ptca++; //指针指向下一个结构体
    }
};
void findOne(concu *ptca, int *num)
{
    int n = *num; //临时变量,控制循环
    char a_name[10];
    printf("皇上您要查找哪一位妃子呢,输入名字即可:\n");
    scanf("%s",a_name);
    printf("当前要查找的妃子是%s....\n", a_name);

    //在遍历中寻找符合要求的妃子并打印信息
    for (int i = 0; i < n; i++)
    {
        if ((strcmp(a_name, (ptca->name)) == 0))
        {
            printf("姓名\t等级\t宠爱度\t\n");
            printf("%s\t", ptca->name);
            //打印等级,并用中文替代
            switch (ptca->level)
            {
            case 1:
                printf("御女\t");
                break;
            case 2:
                printf("世妇\t");
                break;
            case 3:
                printf("嫔\t");
                break;
            case 4:
                printf("夫人\t");
                break;
            case 5:
                printf("后\t");
                break;
            default:
                printf("0\t");
                break;
            }
            //打印宠爱度
            printf("%d\n", ptca->likability);
        }
        ptca++;
    }
};

//5.巡视后宫,打印所有妃子信息,跳过被打入冷宫的妃子信息
void seeAll(concu *ptca, int *num)
{
    int n = *num; //临时变量控制循环
    printf("-----------------------------------------\n");
    printf("姓名\t等级\t宠爱度\t\n");
    for (int i = 0; i < n; i++)
    {
        if (ptca->level != 0)
        {
            //打印姓名
            printf("%s\t", ptca->name);
            //打印等级,并用中文替代
            switch (ptca->level)
            {
            case 1:
                printf("御女\t");
                break;
            case 2:
                printf("世妇\t");
                break;
            case 3:
                printf("嫔\t");
                break;
            case 4:
                printf("夫人\t");
                break;
            case 5:
                printf("后\t");
                break;
            default:
                printf("0");
                break;
            }
            //打印宠爱度
            printf("%d\n", ptca->likability);
        }
        ptca++;
    }
};

Publicado 12 artículos originales · ganado elogios 3 · Vistas 737

Supongo que te gusta

Origin blog.csdn.net/weixin_45761327/article/details/104794048
Recomendado
Clasificación