Programa: Criando um menu usando funções em C

Para ilustrar bem o uso das funções, vamos repetir um exercício que fizemos quando estudamos testes condicionais e laços.

Aqui, vamos criar um aplicativo em C que exibe algumas frases e invoca funções.

Clique aqui e saiba como obter seu certificado de programação C! Entre já no Mercado de Trabalho!

Exemplo de código em C

Crie um programa em C que exiba um menu e converse com o usuário.

Vamos exibir um menu, com algumas saudações, para o usuário escolher.
Essa opção ficará armazenada na variável inteira 'continuar', que também será usada como condição para que o laço DO WHILE ocorra.

Assim, caso o usuário digite 0, ele vai sair do programa.
Caso ele digite qualquer outro número, a opção é tratada pelo teste condicional SWITCH.

Bem, se você estudou todas as aulas de nosso curso, sobre testes e laços, você já é um mestre.
Então não precisamos entrar muito em detalhes, apenas olhando para o código você já nota o que está acontece.

Nosso foco aqui é nas funções.
Note o SWITCH e seus cases, como ficaram menor, mais organizados e bonitos.

#include<stdio.h>

void oi()
{
    printf("Oi!\n");
}

void tudo_bem()
{
    printf("Tudo otimo, e com voce?\n");
}

void familia()
{
    printf("Meus bits...digo, minha familia vai bem!\n");
}

void sair()
{
    printf("Ja vai??? Nao! Nao! Espere! Naa...\n");
}


int main()
{
    int continuar=1;

    do
    {
        printf("\n\tChat Foreve Alone\n\n");
        printf("1. Oi\n");
        printf("2. Tudo bem\n");
        printf("3. Como vai a familia\n");
        printf("0. Sair\n");

        scanf("%d", &continuar);
        system("cls || clear");

        switch(continuar)
        {
            case 1:
                oi();
                break;

            case 2:
                tudo_bem();
                break;

            case 3:
                familia();
                break;

            case 0:
                sair();
                break;

            default:
                printf("Digite uma opcao valida\n");
        }
    } while(continuar);
}

Bacana, essas funções, não?



18 comentários:

Anônimo disse...

Otima explicação, obrigado.

Anônimo disse...

Muito legal!!! Parabéns pelo Ótimo site!!! e Obrigado por disponibilizar esse ótimo curso!!! Obrigado!!!

Anônimo disse...

Excelente site! explicação muito clara e objetiva. Parabéns pelo trabalho e obrigado por disponibilizar para nós.

Murilo Almeida

Bruno Souza disse...

Desculpe, mas porque você teve que declarar que a variável continuar fosse igual a 1?

Anônimo disse...

Sou meio leigo no assunto, mas por que voce declarou a variável continuar=1 ?

Anônimo disse...

Continuar está ali para criar um loop, caso vc queira continuar no programa, ele pede pra vc digitar um valor que será o continuar, se for igual a 1, ele continua.

Anônimo disse...

Muito bom o exemplo!

Anônimo disse...

Ali no if continua=1

não seria
if continua==1?








/

Apostila C Progressivo disse...

Olá Anônimo,

Na verdade ali não é um if e sim um int.

Fábio Pavan disse...

Eu adaptei o código da seguinte maneira:
[b]#include
#include

int main() {
int continuar;
printf("\n\tQual pessoa voce e, digite o numero\n\n");
printf("1. Fabio Pavan\n");
printf("2. Vinicius Melegari\n");
printf("3. Luiz Godinho\n");
printf("4. Alessandro Pavan\n");
scanf("%d", &continuar);

if (continuar == 1) {
printf("\nOla, voce e o N.E.R.D que me criou.\n");
}

if (continuar == 2) {
printf("\nERRO: TROLL DETECADO! SOBRECARGA NO SISTEMA!\n");
}

if (continuar == 3) {
printf("\nTa mais baixo que o Vinicius.\n");
}

if (continuar == 4) {
printf("\nUm retardado jogador de League of Legends (lol)\n");
}

system("pause");
}[b]

Anônimo disse...

Que legal, está sendo muito útil para mim. Sucesso aí pessoal! Obrigadoooo

Laion Jordi disse...

Quando eu uso qualquer opção o programa para de funcionar.O que pode ser isso ?
Se tiver algum tópico no fórum, por favor, me passe o link.

monia tavares disse...

muito bom, o cod ficou bem organizado e bonito...fora a criatividade hehehehe,
da ate pra criar menus bem engraçados, e brincar com as funções.
muito legal

monia tavares disse...

o continuar =1 é pela questão lógica. como é um laço, se o usuario digitar 0 , ele entendera como 0 = false, e portanto encerrará o laço do while. se digitar 1, 2,3, a condição será true e o laço continuará. lembrando que qualquer numero sera considerado true ,menos o zero.

Vinicius Gaio disse...

O meu tambem programa esta dando erro na hora de compilar, qual o problema no codigo?

#include
#include

void Oi()
{
printf("Iaew fera\n");
}

void bem()
{
printf("Tudo bem, e com vc\n");
}

void sair()
{
printf("Entao ate mais tarde\n");
}

int main()
{
int continuar=1;

printf("\n\tChat\n");
printf("1- Ola\n");
printf("2- Tudo bem\n");
printf("3- Tenho que sair\n");

scanf("%d", continuar);
system("cls || clear");

switch(continuar)
{
case 1:

Oi();
break;

case 2:

bem();
break;

case 3:

sair();
break;

default:

printf("Codigo invalido.\n");
break;
}
}

Anônimo disse...

Vinicius Gaio, sei que é um pouco tarde pra resposta, mas eu to fazendo o curso agora, kkk, mas enfim. O erro no seu código é porque está faltando o "&" no scanf(). E também, apesar de não ser um erro, você poderia ter colocado tudo isso num laço while, pra o menu ser repetido até o usuário querer sair.

Anônimo disse...

se o programa estiver parando, experimenta colocar a valor na variável de entrada que seja diferente da opção de saída, isso na hora de indicar

Anônimo disse...

ele colocou o valor da variável de entrada para receber 1, para não acontecer dela ficar igual a opção de saída do case

Gostou desse tutorial de C?
Sabia que o acervo do portal C Progressivo é o mesmo, ou maior que, de um livro ou curso presencial?
E o melhor: totalmente gratuito.

Mas para nosso projeto se manter é preciso divulgação.
Para isso, basta curtir nossa página no Facebook e/ou clicar no botão +1 do Google.
Contamos e precisamos de seu apoio.