Jump to content
heddyman

Ajuda com algoritimo

Recommended Posts

bom dia nobres colegas,

 

Sou estudante e estou tendo uma dificuldade com um algorítimo... vocês poderiam me ajudar??? Ele não está compilando e tá difícil pra mim identificar... eu agradeço a boa vontade ....:grin:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
struct cadastro_de_aluno
{
    char RU[200];
    char nome[200];
    char email[200];
    int vazio,cod;
};
    struct cadastro_de_aluno alunoCad;
   
//AQUI DECLARO AS FUNÇÕES A SEREM USADAS
int verifica_pos(void);
int verifica_cod( int cod );
int opt;
void list();
void consultaCod (void);
void excluirAluno (void);
int main(void){ //INICIO DO MAIN

    int i,Opcao,OpcaoAluno,posicao,retorno;
    int codaux;
    do
    {
        printf("1 - Cadastrar Novo Aluno\n");
        printf("2 - Aluno\n");
        printf("3 - Alterar Aluno\n");
        printf("4 - Excluir Aluno\n");
        printf("5 - Sair\n");
        printf(" Selecione uma opcao por favor: ");
        scanf("%d", &Opcao);
        getchar();
        if (Opcao == 1)
        {
            printf("Voce selecionou a opcao 1 - Cadastrar Novo Aluno\n");
            posicao=verifica_pos();

                if ( posicao != -1 )
                {

                    printf("\nEntre com um codigo de 1 a 10 para seu cadastro: \n");
                    scanf("%d",&codaux);fflush(stdin);

                    retorno = verifica_cod( codaux );}

                else
                    printf("\nNao e possivel realizar mais cadastros!\n");

                break;
 
        }
        else if (Opcao == 2)
        {
            system("cls");
            do{
            printf("Voce selecionou a opcao 2 - Alunos\n\n");
            printf("1 - Pesquisar aluno por codigo\n");
            printf("2 - Listar todos os alunos\n");
            printf("3 - Voltar ao menu principal\n");
            printf("Selecione uma opcao por favor: ");
            scanf("%d", &OpcaoAluno);
            getchar();
                 if(OpcaoAluno == 1){
                    consultaCod();
                }
                else if(OpcaoAluno == 2){
                    list();
                }
                else if(OpcaoAluno == 3){
                    printf("Voce selecionou voltar ao menu principal, pressione ENTER para continuar");
                    getchar();
                    system("cls");
                }
                else
                    printf("Opcao Invalida\n\n");
    }while(OpcaoAluno =!3 || OpcaoAluno > 3 || OpcaoAluno < 0 || OpcaoAluno == 0);
        }
        else if (Opcao == 3)
        {
            printf("Voce selecionou a opcao 3 - Alterar Aluno\n");
        }
        else if (Opcao == 4)
        {
            printf("Voce selecionou a opcao 4 - Excluir Aluno\n");
            excluirAluno();
        }
        else if (Opcao == 5)
        {
        {
            printf("Voce selecionou a opção 5 - Sair\n");
        }
    }
        else{
            printf("Opcao invalida, favor pressione enter para voltar ao menu principal");
            getchar();
            system("cls");
        }
        }    while (Opcao != 5 || Opcao < 5);

} // FIM DO MAIN

void list(){ // Lista os usuarios cadastrados.
    int i,j;   
    for(i=0;i<200;i++){
        if(log[i].cod!=NULL){
            printf("\nCodigo: %d \nNome: %s\nRU: %s\n email: \n\n", log[i].cod,log[i].nome,log[i].RU,log[i]. email,log[i]);
    }
}
    printf("Pressione enter para volta ao menu principal");
    getchar();
    system("cls");

} //FIM DO LIST
void cadastroP(int cod, int pos){ //Cadastro das pessoas
    int i;
    do{
    pos = verifica_pos();
    log[pos].cod = cod;
         printf("\nDigite o RU: ");
        gets(log[pos].RU);
		printf("\nDigite o nome: ");
        gets(log[pos].nome);
        printf("\nDigite o  email: ");
        gets(log[pos]. email);
               log[pos].vazio = 1;
        //printf("\nDigite enter para efetuar novo cadastro ou qualquer outra tecla para voltar ao menu principal");
        //scanf("%d", &opt);
        opt ==1;
        getchar();   
    }while(opt==1);
    system("cls");
    main();

} // FIM DO CADASTRO DE PESSOAS
int verifica_pos( void ) //VERIFICADOR DA POSIÇÃO
{
    int cont = 0;

    while ( cont <= 10 )
    {

        if ( log[cont].vazio == 0 )
            return(cont);

        cont++;

    }

    return(-1);

} // FIM DO VERIFICADOR
int verifica_cod( int cod ) // VERIFICADOR DE CÓDIGO
{
    int cont = 0;

    while ( cont <= 10 )
    {
        if ( log[cont].cod == cod )
            return(0);

        cont++;
    }

    return(1);

} 

        cont++;

        if ( cont > 10 ){
            printf("\nCodigo nao encontrado, pressione enter para volar ao menu principal\n");
            getchar();
            system("cls");
        }

    
} // FIM DA FUNÇÃO CONSULTAR
void excluirAluno(void)  // EXCLUI ALUNO
{
    int cod, cont = 0;
    char resp;
    printf("\nEntre com o codigo do registro que deseja excluir: \n");
    scanf("%d", &cod );

    while ( cont <= 10 )
    {

        if ( log[cont].cod == cod )
        {

            if (log[cont].vazio == 1 )
            {
                printf("\nCodigo: %d \nNome: %s\nRU: %s\n email: %s\n\n", log[cont].cod,log[cont].nome,log[cont].RU,log[cont]. email,);
                getchar();
                printf("\nDeseja realmente exlucir? s/n: ");
                scanf("%s",&resp);

                if ( ( resp == 'S' ) || ( resp == 's' ) )
                {
                    log[cont].vazio=0;
                    log[cont].cod = NULL;
                    printf("\nExclusao feita com sucesso\n");
                    break;
                }
                else
                {
                    if ( ( resp == 'N' ) || ( resp == 'n' ) )
                    {
                        printf("Exclusao cancelada!\n");
                        break;
                    }
                }

            }

        }

        cont++;

        if ( cont > 10 )
            printf("\nCodigo nao encontrado\n");

    }

    system("pause");
    system("cls");

}

 

Share this post


Link to post
Share on other sites

Publique os erros listados

Share this post


Link to post
Share on other sites

Gente obrigado pela ajuda, mas segui o conselho do amigo e refiz meu código, sem franksteins,  e agora parece funcionar.... o que acharam???? melhor e mais limpo???

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#define SIZE 60

int op;

struct cadastro_de_alunos {
	int  ru[SIZE];
	char nome[SIZE][10];
	char email[SIZE][10];
}; struct cadastro_de_alunos aluno;




void cadastro();
void pesquisa();


int main(void) {


	do {
		system("cls");
		printf("*========================*\n");
		printf("| Escolha uma opcao      |\n");
		printf("| 1. Cadastrar Aluno     |\n");
		printf("| 2. Pesquisar Aluno     |\n");
		printf("| 3. Sair                |\n");
		printf("*========================*\n");
		scanf_s("%d", &op);
		switch (op) {
		case 1:
			cadastro();

			break;

		case 2:
			pesquisa();

			break;

		case 3:

			system("exit");
			break;
		default:
			printf("Opcao Invalida...");
			break;
		}

	} while (op != 3);




}


void cadastro() {

	static int linha;
	do {
		printf("\n Digite o nome do RU:");
		scanf_s("%d", &aluno.ru[linha]);
		printf("\n Digite o nome do Aluno:");
		scanf_s("%s", &aluno.nome[linha]);
		printf("\n Digite o nome do Email:");
		scanf_s("%s", &aluno.email[linha]);
		printf("\n Digite 1 para continuar ou 0 para sair:");
		scanf_s("%d", &op);
		linha++;
	} while (op == 1);

}

void pesquisa() {
	int ru_aux;
	char nome_aux[50];
	int i;

	do {
		printf("\n Digite parametro da pesquisa: \n1 RU \n2 Nome :\n");
		scanf_s("%d", &op);
		switch (op) {
		case 1:
			printf("\n Digite o RU do Aluno:");
			scanf_s("%d", &ru_aux);
			for (i = 0; i < SIZE; i++) {
				if (aluno.ru[i] == ru_aux) {
					printf("\n RU: %d\n Nome: %d\n Email: %s\n", aluno.ru[i], aluno.nome[i], aluno.email[i]);
				}
			}
			break;
		case 2:
			printf("\n Digite o nome do Aluno:");
			scanf_s("%s", &aluno.nome);
			for (i = 0; i < SIZE; i++) {
				if (strcmp(aluno.nome[i], nome_aux) == 0) {
					printf("\n RU: %d\n Nome: %d\n Email: %s\n", aluno.ru[i], aluno.nome[i], aluno.email[i]);
				}
			}
			break;

		default:
			printf("\n****opcao invalida*****");
			break;
		}
		printf("\ndigite 1 para nova pesquisa e 0 para sair\n");
		scanf_s("%d", &op);
	} while (op == 1);
}

 

Share this post


Link to post
Share on other sites

tenho só mais uma dúvida... 

 

no enunciado do exercício está dizendo: "Não é necessário fazer a leitura dos dados dos dados dos alunos manualmente. Você já pode deixar pré-cadastrado os dados no seu código. Cadastre pelo menos uns 10 contatos de alunos na sua estrutura de dados. Um dos contatos deverá ser o seu próprio nome e o seu RU".... como faço pra pré cadastrar essas informações???

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By wanderleyalves
      Olá, estou começando a aprender o php e quero muito saber como busco um arquivo pdf em um diretório usando o login que e o cpf como texto para busca, ja fiz a tela de login, o formulario de busca  e o mostra resultado em php usando a função glob http://php.net/manual/pt_BR/function.glob.php, que encontra qualquer arquivo com o nome que escrever no campo busca, porem gostaria que ao logar já mostrasse o arquivo daquele usuário sem ter que buscar por ele, se o usuário buscar por 1, mostra todos os arquivos que contem 1 no nome.
       
      exemplo:
      Login do usuario 1 CPF:11111111111 senha ******
      Diretório: /arquivos/ 11111111111.pdf
       
      Login do usuario 2 CPF:22222222222 senha ******
      Diretório: /arquivos/22222222222.pdf
       
      mostra_busca.php
      <?php $arquivo = $_POST['arquivo']; $nome = "$arquivo"; $dir = 'cedulas/'; $arquivos_pattern = glob($dir . $nome . "*.*"); $i = 0; if($arquivos_pattern !== false) { foreach($arquivos_pattern as $arquivo) { echo "<a href=\"".$arquivo."\">" . basename($arquivo) . "</a><br />"; $i++; } echo $i > 0 ? "<br>" : NULL; } echo $nome_user; echo ", foram encontrados <strong>".$i."</strong> registros clique no link para imprimir"; ?>  
    • By alyssonw2silva
      Sou novo aqui e estou com o seguinte código 
      function buscar($query) { include_once 'conn.php'; if ($resulte2 = mysqli_query($conn, $query)) { while($row2 = mysqli_fetch_array($resulte2)) { print "<option value='".$row2[0]."'>".$row2[1]."</option>"; }; }; ele e para preencher os campos do meu select está funcionando mas como tenho outro select o primeiro roda agora o segundo da erro quando eu desabilito o primeiro  o segundo select e preenchido 
       
      estou chamando a mesma função para ambos os selects mas o parâmetro $query e diferente 
       
    • By Miqueias Barros
      Fala pessoal tudo bem?
      Estou criando um site de guia de comercio no meu estado e estou utilizando o tema Robolist Lite.
      Estou personalizando o buscador principal, porém o resultado da busca faz apenas atualizar a página. O novo link com a localização, categoria e o que a pessoa procura altera, mas o layout do site permanece o mesmo apenas atualizando.
       
      O buscador padrão do WP atualiza e mostra os resultados, mas quando utilizo o padrão do tema não mostra os resultados.
      Já tentei adaptar usando a função do padrão que é get_search_form(); , mas não surtiu efeito, criou outro box sem estar personalizado.
       
      Segue o código do botão:
      <button class="button btn-default"><i                                class="ion-ios-search"></i><?php echo esc_html__('Buscar', 'robolist-lite'); ?></button> O site é este: https://www.negociandoempresas.com/1salto/
       
      Grato a quem me ajudar, abraços.
    • By abcrute2121@yahoo.com
      Fazer um algoritmo que efetue a leitura de 10 elementos de um vetor A. Construir um vetor B do mesmo tipo de tamanho, observando a seguinte lei de formação: se o valor do índice for par, o valor deverá ser multiplicado por 5; sendo ímpar deverá ser somado com 5. Ao final mostrar o conteúdo dos dois vetores.
    • By abcrute2121@yahoo.com
      ) Desenvolver um programa que carregue elementos de uma matriz 4 x 4. No final, apresente o total da soma de todos os elementos que sejam pares.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.