Ir ao conteúdo
  • Cadastre-se

luckyiers

Membro Pleno
  • Posts

    20
  • Cadastrado em

  • Última visita

Tudo que luckyiers postou

  1. Ola boa tarde estou fazendo um exercicio e preciso listar os pacientes e cadastrar e fazer a checagem na hora do cadastro do paciente se ja possui o crm do medico mais nao esta funcionando #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <iomanip> #include <vector> #include <stdlib.h> #include <string.h> #include <conio.h> #include <ctype.h> #define getch() _getch(); //protótipo das funções int menu(); int cadastrar(int); int cadastrar_paci(int); void listar(int); void listar_pac(int); void consultar(int); void grava_tudo_no_arquivo(int); int pega_dados_do_arquivo(int); //criação da struct typedef struct { char crm[15], nomeMedico[41], codPac[15], nomePac[41],dataAten[10]; char especialidade[40]; } medico; medico cadGeral[100]; //função principal int main() { int resp,contador = pega_dados_do_arquivo(0); do { resp = menu(); switch( resp ) { case 1 : contador = cadastrar(contador); break; case 2 : listar(contador); break; case 3 : consultar(contador); break; case 4 : cadastrar_paci(contador); break; case 5 : listar_pac(contador); break; case 0 : grava_tudo_no_arquivo(contador); exit(0); default: printf("\nOpcao invalida...\n"); system("pause"); } } while ( resp != 0 ); return 16; } //função cadastrarmedico() int cadastrar(int contador) { //declaração das variáveis locais char resposta; int ax; do { LabeL_1: // pode ser qualquer nome system("cls"); printf("Informe o crm do medico: "); fflush(stdin); scanf("%14[^\n]", cadGeral[contador].crm);//o contador aponta para a posição do vetor de struct ou typedef printf("Informe o nome do medico: "); fflush(stdin); scanf("%40[^\n]", cadGeral[contador].nomeMedico); fflush(stdin); printf("informe a especialidade do medico: "); scanf("%38[^\n]", cadGeral[contador].especialidade); fflush(stdin); ax = 0;//começa pesquisar da posição zero , a primeira no vetor while( ax < contador ) { if( strcmp( cadGeral[ax].crm,cadGeral[contador].crm ) == 0 ) { printf("ja tem um crm com esse numero , digite crm,nome,especialidade novamente"); getch(); goto LabeL_1; // comando em desuso , mas func } ax++; } contador++; printf("Cadastrar outro medico <S/N>"); resposta = getche(); } while(toupper(resposta)=='S'); return contador; } //função cadastrarpacientes() int cadastrar_paci(int contador) { //declaração das variáveis locais char resposta; int ax; do { LabeL_1: // pode ser qualquer nome system("cls"); printf("Informe o nome do paciente: "); fflush(stdin); scanf("%14[^\n]", cadGeral[contador].nomePac);//o contador aponta para a posição do vetor de struct ou typedef printf("Informe a data de atendimento: "); fflush(stdin); scanf("%40[^\n]", cadGeral[contador].dataAten); fflush(stdin); printf("Digite o crm do medico atendido: "); fflush(stdin); scanf("%14[^\n]", cadGeral[contador].crm); ax = 0;//começa pesquisar da posição zero , a primeira no vetor while( ax < contador ) { if( strcmp( cadGeral[ax].crm,cadGeral[contador].crm ) == false ) { printf("nao possui esse crm"); getch(); goto LabeL_1; // comando em desuso , mas func } ax++; } contador++; printf("Cadastrar outro paciente <S/N>");\ resposta = getche(); } while(toupper(resposta)=='S'); return contador; } //função menu() int menu() { //declaração da variável int opcao; system("cls"); printf(" 0 - Para salvar tudo e sair\n"); printf(" 1 - Cadastrar medicos\n"); printf(" 2 - Listar medicos\n"); printf(" 3 - Consultar medicos\n"); printf(" 4 - Cadastar Paciente\n"); printf(" 5 - Listar Paciente\n"); printf("Digite: "); scanf("%i", &opcao); return opcao; } //função consultar medicos() void consultar(int contador) { //variáveis locais medico cadGeral; char chave[41]; int flag = 0; //ponteiro para o arquivo FILE *pontarq; //abrir o arquivo para leitura modo binário if((pontarq=fopen("cadastrocli.txt", "rb"))==NULL) { printf("\nErro na abertura do arquivo ou nao ha registros\n"); } else { system("cls"); printf("Informe o nome a consultar: "); fflush(stdin); scanf("%40[^\n]", chave); //estrutura de repetição para ler o arquivo e comparar com a chave while((fread(&cadGeral, sizeof(cadGeral), 1, pontarq))==1) { if(strcmp(strupr(chave),strupr(cadGeral.nomeMedico))==0) { printf("crm: %s", cadGeral.crm); printf("\nNome: %s", cadGeral.nomeMedico); printf("\nCredito: %s", cadGeral.especialidade); //mostrar flag para 1 - encontrou flag = 1; } } if(flag == 0) printf("\nCliente nao cadastrado...\n"); //fechar o arquivo fclose(pontarq); } system("pause"); } //listar medicos void listar(int contador) { int j,i; for(j=0;j<contador; j++) { printf("CRM -------: %s\n" ,cadGeral[j].crm); printf("NOME ------: %s\n" ,cadGeral[j].nomeMedico ); printf("ESPECIALIDADE ---: %.2f\n\n",cadGeral[j].especialidade); } printf("Aperte qualquer Tecla"); getch(); } //lstar pacientes void listar_pac(int contador) { int j,i; for(j=0;j<contador; j++) { printf("Nome paciente: %s\n",cadGeral[j].nomePac); printf("Data de paciente %s\n",cadGeral[j].dataAten ); printf("CRM do medico que atendeu: %s \n\n",cadGeral[j].crm); } printf("Aperte qualquer Tecla"); getch(); } void grava_tudo_no_arquivo(int contador) { int j; FILE *pontarq; pontarq = fopen("cadastrocli.bin", "wb");// cria resete e abre o arquivo para gravar desde o início dele for(j=0; j<contador; j++) fwrite(&cadGeral[j], sizeof(cadGeral),1,pontarq); fclose(pontarq); } int pega_dados_do_arquivo(int contador) { FILE *pontarq; pontarq = fopen("cadastrocli.bin", "rb"); if(pontarq == NULL )return 0; printf("Dados ja cadastrados e que estão gravados no Arquivo\n"); while( fread( &cadGeral[contador], sizeof(cadGeral), 1, pontarq ) == 1 ) { printf("crm -------: %s\n" ,cadGeral[contador].crm); printf("NOME ------: %s\n" ,cadGeral[contador].nomeMedico); printf("CREDITO ---: %s\n\n",cadGeral[contador].especialidade); contador++; } fclose(pontarq); printf("aperte qualquer tecla: "); getch(); return contador; }
  2. @devair1010 cara muito obrigado estou tentando passar em ordem alfabetica mais ta listando somente 1 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <iomanip> #include <vector> #include <stdlib.h> #include <string.h> #include <conio.h> #include <ctype.h> #define getch() _getch(); //protótipo das funções int menu(); int cadastrar(int); void listar(int); void consultar(int); void grava_tudo_no_arquivo(int); int pega_dados_do_arquivo(int); //criação da struct typedef struct { char crm[15], nome[41], titulo_eleitor[20], certif_militar[20]; float credito; } cliente; cliente cadcliente[100]; //função principal int main() { int resp,contador = pega_dados_do_arquivo(0); do { resp = menu(); switch( resp ) { case 1 : contador = cadastrar(contador); break; case 2 : listar(contador); break; case 3 : consultar(contador); break; case 0 : grava_tudo_no_arquivo(contador); exit(0); default: printf("\nOpcao invalida...\n"); system("pause"); } } while ( resp != 0 ); return 16; } //função cadastrar() int cadastrar(int contador) { //declaração das variáveis locais char resposta; int ax; do { LabeL_1: // pode ser qualquer nome system("cls"); printf("Informe o crm do cliente: "); fflush(stdin); scanf("%14[^\n]", cadcliente[contador].crm);//o contador aponta para a posição do vetor de struct ou typedef printf("Informe o nome do cliente: "); fflush(stdin); scanf("%40[^\n]", cadcliente[contador].nome); printf("Informe o valor do credito: "); scanf("%f", &cadcliente[contador].credito); ax = 0;//começa pesquisar da posição zero , a primeira no vetor while( ax < contador ) { if( strcmp( cadcliente[ax].crm,cadcliente[contador].crm ) == 0 ) { printf("ja tem um crm com esse numero , digite crm nome credito novamente TecLe"); getch(); goto LabeL_1; // comando em desuso , mas func } ax++; } contador++; printf("Cadastrar outro cliente <S/N>"); resposta = getche(); } while(toupper(resposta)=='S'); return contador; } //função menu() int menu() { //declaração da variável int opcao; system("cls"); printf(" 0 - Sair\n"); printf(" 1 - Cadastrar\n"); printf(" 2 - Listar\n"); printf(" 3 - Consultar\n"); printf(" Opcao ? : "); scanf("%i", &opcao); return opcao; } //função consultar() void consultar(int contador) { //variáveis locais cliente cadcliente; char chave[41]; int flag = 0; //ponteiro para o arquivo FILE *pontarq; //abrir o arquivo para leitura modo binário if((pontarq=fopen("cadastrocli.txt", "rb"))==NULL) { printf("\nErro na abertura do arquivo ou nao ha registros\n"); } else { system("cls"); printf("Informe o nome a consultar: "); fflush(stdin); scanf("%40[^\n]", chave); //estrutura de repetição para ler o arquivo e comparar com a chave while((fread(&cadcliente, sizeof(cadcliente), 1, pontarq))==1) { if(strcmp(strupr(chave),strupr(cadcliente.nome))==0) { printf("crm: %s", cadcliente.crm); printf("\nNome: %s", cadcliente.nome); printf("\nCredito: %.2f\n", cadcliente.credito); //mostrar flag para 1 - encontrou flag = 1; } } if(flag == 0) printf("\nCliente nao cadastrado...\n"); //fechar o arquivo fclose(pontarq); } system("pause"); } void listar(int contador) { int j,i; for(j=0;j<contador; j++) { printf("crm -------: %s\n" ,cadcliente[j].crm ); printf("NOME ------: %s\n" ,cadcliente[j].nome ); printf("CREDITO ---: %.2f\n\n",cadcliente[j].credito); } fflush(stdin); printf("\nPessoas em ordem alfabetica:\n"); for(i=1; i<contador; i++){ for(j=i+1;j<contador;j++){ if(strcoll(cadcliente[i].nome , cadcliente[j].nome) > 0 ){ cadcliente[0]=cadcliente[i]; cadcliente[i]=cadcliente[j]; cadcliente[j]=cadcliente[0]; fflush(stdin); } } } for(i=0;i<contador;i++){ printf("NOME: %s\n",cadcliente[i].nome); fflush(stdin); } printf("Aperte qualquer Tecla"); getch(); } void grava_tudo_no_arquivo(int contador) { int j; FILE *pontarq; pontarq = fopen("cadastrocli.bin", "wb");// cria resete e abre o arquivo para gravar desde o início dele for(j=0; j<contador; j++) fwrite(&cadcliente[j], sizeof(cadcliente),1,pontarq); fclose(pontarq); } int pega_dados_do_arquivo(int contador) { FILE *pontarq; pontarq = fopen("cadastrocli.bin", "rb"); if(pontarq == NULL )return 0; printf("Dados já cadastrados e que estão gravados no Arquivo\n"); while( fread( &cadcliente[contador], sizeof(cadcliente), 1, pontarq ) == 1 ) { printf("crm -------: %s\n" ,cadcliente[contador].crm ); printf("NOME ------: %s\n" ,cadcliente[contador].nome ); printf("CREDITO ---: %.2f\n\n",cadcliente[contador].credito); contador++; } fclose(pontarq); printf(" Tecle !"); getch(); return contador; }
  3. @devair1010 ai eu nao entendi como vou poder comparar
  4. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <ctype.h> //protótipo das funções int menu(); void cadastrar(); void listar(); void consultar(); //criação da struct typedef struct { char cpf[15], nome[41]; float credito; } cliente; //função principal main() { int resp; do { resp = menu(); switch(resp) { case 1 : cadastrar(); break; //case 2 : listar(); break; case 3 : consultar(); break; case 0 : exit(0); default: { printf("\nOpcao invalida...\n"); system("pause"); } } } while (resp !=0); } //função cadastrar() void cadastrar() { //declaração das variáveis locais cliente cadcliente; char resposta; //declaração ponteiro do arquivo FILE *pontarq; //abrir o arquivo para escrita no modo binário (ab) pontarq = fopen("cadastrocli.txt", "ab"); //estrutura de repetição da entrada de dados do { system("cls"); printf("Informe o CPF do cliente: "); fflush(stdin); scanf("%14[^\n]", cadcliente.cpf); printf("Informe o nome do cliente: "); fflush(stdin); scanf("%40[^\n]", cadcliente.nome); printf("Informe o valor do credito: "); scanf("%f", &cadcliente.credito); //gravar as informações no arquivo fwrite(&cadcliente, sizeof(cadcliente),1,pontarq); printf("Cadastrar outro cliente <S/N>"); resposta = getche(); } while(toupper(resposta)=='S'); //fechar o arquivo fclose(pontarq); } //função menu() int menu() { //declaração da variável int opcao; system("cls"); printf("1-Cadastrar\n2-Listar\n3-Consultar\n0-Sair\n"); printf("Opcao?: "); scanf("%i", &opcao); return opcao; } //função consultar() void consultar() { //variáveis locais cliente cadcliente; char chave[41]; int flag = 0; //ponteiro para o arquivo FILE *pontarq; //abrir o arquivo para leitura modo binário if((pontarq=fopen("cadastrocli.txt", "rb"))==NULL) { printf("\nErro na abertura do arquivo ou nao ha registros\n"); } else { system("cls"); printf("Informe o nome a consultar: "); fflush(stdin); scanf("%40[^\n]", chave); //estrutura de repetição para ler o arquivo e comparar com a chave while((fread(&cadcliente, sizeof(cadcliente), 1, pontarq))==1) { if(strcmp(strupr(chave),strupr(cadcliente.nome))==0) { printf("CPF: %s", cadcliente.cpf); printf("\nNome: %s", cadcliente.nome); printf("\nCredito: %.2f\n", cadcliente.credito); //mostrar flag para 1 - encontrou flag = 1; } } if(flag == 0) printf("\nCliente nao cadastrado...\n"); //fechar o arquivo fclose(pontarq); } system("pause"); } Tem esse cadastro de CPF o nome e o credito mais eu não queria que repetisse tipo por exemplo o CPF eu n sei como q eu posso estar fazendo isso
  5. Olá boa tarde preciso criar uma função para gravar em arquivo (como registro e modo binário) o CRM de um medico o seu nome e sua especialidade (preciso utilizar structs e o CRM não pode se repetir) não estou entendo como vou fazer a função de não repetir os números de CRM. Obrigado
  6. ola bom dia eu instalei o linux a pouco tempo e ao eu instalar o code blocks ele fica todo preto
  7. @arfneto isso a struct remedios de cadastros tem eu estar no maximo 50
  8. #include<stdio.h> #include<stdlib.h> struct remedios { int codigo, quantidade; char nome[50]; float valor; struct remedios *ant; struct remedios *prox; }; int escolha; main() { remedios*inicio = (remedios*)malloc(sizeof(remedios)); if(!inicio) { printf("Erro"); exit(1); } inicio->codigo = NULL; inicio->nome[0] = NULL; inicio->quantidade= NULL; inicio->valor = NULL; inicio->prox = NULL; do { printf("1 - Carregar despesas de remedios" ); printf("\n"); printf("2 - Imprimir lista das despesas de remedios"); printf("\n"); printf("3 - Sair"); printf("\nFunção: "); scanf("%i", &escolha); printf("\n"); switch(escolha) { case 1: { remedios*novo = (remedios*)malloc(sizeof(remedios)); if (!novo) { printf("Erro"); exit(1); } novo->codigo = NULL; novo->nome[0] = NULL; novo->quantidade = NULL; novo->valor = NULL; novo->prox = NULL; printf("Codigo: "); scanf("%i", &novo->codigo); printf("Nome do remedio: "); fflush(stdin); gets(novo->nome); printf("quantidade: "); scanf("%i", &novo->quantidade); printf("valor: "); scanf("%f", &novo->valor); if (inicio->prox == NULL) { inicio->prox = novo; } else { remedios *temp; temp = inicio; while (temp->prox != NULL) { temp = temp->prox; } temp->prox = novo; } } break; case 2: { remedios *temp; temp = inicio; if(inicio->prox == NULL) { printf("Nenhum remedio encontrado\n\n"); system("pause"); break; } else { do { temp = temp->prox; printf("Codigo: %2i\n", temp->codigo); printf("Nome do remedio: %2s\n", temp->nome); printf("Quantidade: %2i\n", temp->quantidade); printf("valor: %2f\n", temp->valor); printf("\n"); }while (temp->prox != NULL); } } printf("\n"); system("pause"); break; case 3: { printf("Fim do programa\n\n"); } system("pause"); break; } system("cls"); }while(escolha != 3); } Ola estou tentando limitar essa struct do comeco para 50 mais ela nao esta indo se alguem poder me ajudar como fazer isso agradeco. Obrigado
  9. #include <iostream> #include <new> #include <string> #include <stdlib.h> using namespace std; //Struct para album struct album{ string nome; int ano; struct album *proximo; }; //Limpa a tela void limpatela(){ system("CLS"); } //Conta quantos elementos tem na lista int retornaTamanhoListaEncadeada(album *ponteiroEncadeada){ //Tamanho da lista int tamanho = 0; //Ponteiro para percorrer a lista album *p = ponteiroEncadeada; while(p != NULL){ //Transforma o P no endereco do proximo valor, Caso o endereco seja NULL, estamos no fim da lista p = p->proximo; //Contador de tamanho da lista tamanho++; } return tamanho; } //Imprime a lista encadeada void imprimeEncadeada(album *ponteiroEncadeada) { //Ponteiro auxiliar para percorrer a lista album *p = ponteiroEncadeada; //Mostra a posicao do elemento int posicao = 0; //Enquanto o p nao for nulo while(p != NULL){ //Imprime o valor da lista cout << posicao << " - " << p->nome << ", " << p->ano << "\n"; //Transforma o P no endereco do proximo valor, Caso o endereco seja NULL, estamos no fim da lista p = p->proximo; //Incrementa a variavel da posicao dos elementos posicao++; } //Libera Memoria free(p); } //Adiciona um elemento ao comeco void adcComecoEncadeada(album *&ponteiroEncadeada, string nome, int ano){ //Cria uma nova estrutura album *novovalor = new album; novovalor->nome = nome; novovalor->ano = ano; novovalor->proximo = ponteiroEncadeada; //Redireciona o ponteiro ponteiroEncadeada = novovalor; } //Adiciona um elemento ao fim void adcFimEncadeada(album *ponteiroEncadeada, string nome, int ano){ //Cria um novo valor album *novoValor = new album; novoValor->nome = nome; novoValor->ano = ano; novoValor->proximo = NULL; //Cria um cursor que percorre a lista album *p = ponteiroEncadeada; //Enquanto o p nao for nulo while(p != NULL){ //Se estiver no ultimo elemento if(p->proximo == NULL){ //Faz ele acrescentar o novo valor e sair do while p->proximo = novoValor; return; } //Transforma o P no endereco do proximo valor //Caso o endereco seja NULL, estamos no fim da lista //E saimos do while p = p->proximo; } //Libera Memoria free(p); free(novoValor); } //Adiciona valor numa posicao especifica void adcPosicaoEncadeada(album *ponteiroEncadeada,string nome,int ano, int posicao){ //Criar NODE com um valor album *novoValor = new album; novoValor->nome = nome; novoValor->ano = ano; novoValor->proximo = NULL; //Ponteiro Auxiliar album *p = ponteiroEncadeada; //Variavel que percorre a lista int i = 0; //Criar o auxiliar para Salvar o endereco em K-1 ->proximo while(i <= posicao){ if(i == posicao-1){ //Auxiliar do valor album *aux = new album; //Precisamos armazenar o endereco a ser apontado pelo novo node aux->proximo = p->proximo; //Fazendo o elemento K-1 apontar para o novo NODE p->proximo = novoValor; //Fazendo o novo NODE apontar para a auxiliar novoValor->proximo = aux->proximo; //Libera a Memoria free(aux); } //Analisa o proximo membro da lista p = p->proximo; //Contador de posiчѕes i++; } } //Remove o elemento inicial void removeInicioEncadeada(album *&ponteiroEncadeada, string *nome, int *ano){ //Retorna o nome do removido *nome = ponteiroEncadeada->nome; *ano = ponteiroEncadeada->ano; //O ponteiroEncadeada recebe o endereo do proximo elemento,Agora o segundo elemento torna-se o ponteiroEncadeada ponteiroEncadeada=ponteiroEncadeada->proximo; } //Remove do final da lista void removeFinalEncadeada(album *&ponteiroEncadeada, string *nome, int *ano){ //Auxiliares album *p = new album; album *aux = new album; //Se houver apenas um elemento na lista if(ponteiroEncadeada->proximo == NULL){ //Recupera o nome e ano de quem saiu *nome = ponteiroEncadeada->nome; *ano = ponteiroEncadeada->ano; //Libera a Memoria do unico elemento e o deixa nulo free(ponteiroEncadeada); ponteiroEncadeada = NULL; }else{ //Se houver mais de um elemento, nosso auxiliar p iguala-se ao ponteiroEncadeada p = ponteiroEncadeada; //Enquanto nao estiver no ultimo termo,o auxiliar torna-se o proximo //ate que o aux seja o penultimo elemento da lista while(p->proximo != NULL){ aux = p; p=p->proximo; } //passa o valor do ultimo elemento para a variavel "valor" *nome = p->nome; *ano = p->ano; //Aqui, o aux representa o peultimo elemento da lista //Tornando-o o ultimo elemento da lista aux->proximo = NULL; //Este codigo щ para fazer a limpeza de memoria free(p); } } //Remove posiчуo especэfica void removePosicaoEncadeada(album *ponteiroEncadeada,string *nome,int *ano, int posicao){ //Ponteiro Auxiliar album *p = ponteiroEncadeada; //Variavel que percorre a lista int i = 0; //Navega pela lista while(i <= posicao){ //Caso tenha alcanчado a posicao desejada if(i == posicao-1){ //Retorna os dados do usuario a ser removido *nome = p->nome; *ano = p->ano; //Auxiliar do valor album *aux = new album; //Precisamos armazenar o endereco a ser apontado pelo novo node aux = p->proximo; //Fazendo o elemento K apontar para o novo NODE (2 membros a frente) p->proximo = aux->proximo; //Libera a Memoria free(aux); } //Analisa o proximo membro da lista p = p->proximo; //Contador de posiчѕes i++; } free(p); } string retornaNomeEncadeada(album *&ponteiroEncadeada, int ano){ //nome return string nome = "Nao existe"; //ponteiro auxiliar album *p = ponteiroEncadeada; //le a lista while(p->proximo != NULL){ if(p->ano == ano){ nome = p->nome; return nome; } p = p->proximo; } return nome; } int main(){ //Variсveis int funcaoDesejada = 1, tamanho; //Cria o inicio da lista Encadeada album *ponteiroEncadeada; //Manipula as listas while(funcaoDesejada < 10 && funcaoDesejada > 0){ cout << "Operacoes \n"; cout << "1 - Insira um album no inicio da lista \n"; cout << "2 - Insira um album no fim da lista \n"; cout << "3 - Insira um album na posicao N \n"; cout << "4 - Retirar um album do inicio da lista \n"; cout << "5 - Retirar um album no fim da lista \n"; cout << "6 - Retirar um album na posicao N \n"; cout << "7 - Procurar um album com o campo nome \n"; cout << "8 - Imprimir a Lista. \n"; cout << "9 - Sair do sistema. \n"; cout << "10 - Help"; cout << "\nEscolha um numero e pressione ENTER: \n"; cout << "\nTamanho Atual[" << retornaTamanhoListaEncadeada(ponteiroEncadeada) << "]\n"; imprimeEncadeada(ponteiroEncadeada); //Lъ a opчуo cin >> funcaoDesejada; //Limpa as opчѕes limpatela(); //Variсveis para valores novos string nome; int ano, posicao,posicaoNaLista; //Alterna as Operacoes switch(funcaoDesejada){ case 1: //Cabecalho da acao cout << "Funcao Escolhida: Insira um album no inicio da lista\n"; //Lendo valores do usuario cout << "\nDigite o nome do album: "; cin >> nome; cout << "Digite o ano lancado: "; cin >> ano; //Adiciona no inicio adcComecoEncadeada(ponteiroEncadeada, nome, ano); //Exibe o usuario inserido cout << "Album: " << nome << ",ano: " << ano << " adicionado ao inicio da lista)"; break; case 2: //Cabecalho da acao cout << "Funcao Escolhida: Insira um album no fim da lista\n"; //Lendo valores do usuario cout << "\nDigite o nome: "; cin >> nome; cout << "Digite o ano: "; cin >> ano; if(retornaTamanhoListaEncadeada(ponteiroEncadeada) < 1){ //Adiciona ao inicio da Lista adcComecoEncadeada(ponteiroEncadeada, nome, ano); }else{ //Adiciona ao fim da Lista adcFimEncadeada(ponteiroEncadeada, nome, ano); } //Exibe o usuario inserido cout << "Usuario: "<< nome<< ",ano: "<< ano<< " adicionado ao final da lista("<< retornaTamanhoListaEncadeada(ponteiroEncadeada) << ")"; break; case 3: //Cabecalho da acao cout << "Funcao Escolhida: Insira um album na posicao N \n"; //Lendo valores do usuario cout << "\nDigite a Posicao: "; cin >> posicao; cout << "Digite o album: "; cin >> nome; cout << "Digite o ano: "; cin >> ano; if(posicao == 0 ){ //Adiciona ao inicio da Lista adcComecoEncadeada(ponteiroEncadeada, nome, ano); }else if(posicao == retornaTamanhoListaEncadeada(ponteiroEncadeada) - 1){ //Adiciona ao fim da Lista adcFimEncadeada(ponteiroEncadeada, nome, ano); }else{ //Adiciona na posicao N da Lista adcPosicaoEncadeada(ponteiroEncadeada,nome,ano, posicao); } //Exibe o album inserido cout << "Album: " << nome << ",ano: " << ano << " adicionado na posicao " << posicao << " da lista."; break; case 4: //Remove no inicio if(retornaTamanhoListaEncadeada(ponteiroEncadeada) == 0){ cout << "Lista Vazia"; }else{ //Remove no inicio removeInicioEncadeada(ponteiroEncadeada, &nome, &ano); //Exibe o album removido cout << "album: " << nome<< ",ano: " << ano << " foi removido do inicio"; } break; case 5: //Remove no final removeFinalEncadeada(ponteiroEncadeada, &nome, &ano); //Exibe o album removido cout << "album: " << nome << ",ano: " << ano << " foi removido do final."; break; case 6: //Cabealho da acao cout << "Funcao Escolhida: Remove um album na posicao escolhida\n"; cout << "Tamanho da Lista" << retornaTamanhoListaEncadeada(ponteiroEncadeada); //Lendo valores do album cout << "\nDigite a Posicao: "; cin >> posicao; if(posicao == 0){ //Remove no inicio removeInicioEncadeada(ponteiroEncadeada, &nome, &ano); }else{ //Remove na posicao N removePosicaoEncadeada(ponteiroEncadeada, &nome, &ano, posicao); } //Exibe o album removido cout << "album: "<< nome<< ",ano: "<< ano<< " foi removido da posicao" << posicao; break; case 7: //Cabecalho da acao cout << "Funcao Escolhida: Retorna o nome e a posicao pelo nome\n"; //Lendo valores do album cout << "Digite o ano: "; cin >> ano; cout << "O nome do ano:" << ano << " eh : " << retornaNomeEncadeada(ponteiroEncadeada, ano); break; case 8: imprimeEncadeada(ponteiroEncadeada); break; case 9: system("pause"); case 10: cout<<"Ola você entrou na ajuda. o progrma eh bem simples bem intuitivo com tudo explicado voce poderá listar quantos albuns desejar e ate modificar suas ordens do jeito que desejar imprimir retirar mudar o que for possivel :)"; } } return 0; } Ola boa noite estou tentando desenvolver um codigo como cadastro de albuns e nome e o ano de lancamento mais mue ocdigo nao roda
  10. Ola boa tarde estou tentar montar alguns codigos mas o meu nao esta rodando e se poderem me ajudar com os outros dois. Obrigado 1-Implemente um código em linguagem C usando o conceito de Fila Encadeada Simples. 2-Implemente um código em linguagem C usando o conceito de Fila Encadeada Simples. 3-Implemente um código em linguagem C usando o conceito de Fila Circular Duplamente Encadeada 1- #include<string.h> #include<stdio.h> #include<stdlib.h> typedef struct tipoNo { int codigo; char nome[21]; struct tipoNo *prox; }tn; typedef struct tipoLista{ tn *inicio; tn *fim; }tl; //---------------------------------------------------------------------------------------- //Esvaziar lista void inicializar_lista(tl *lista){ lista->inicio = NULL; lista->fim = NULL; } //----------------------------------------------------------------------------------------- //Inserção de Elementos void inserir_fim (tl *lista){ tn* novo=(tn*)malloc(sizeof(tn)); novo->codigo = NULL; novo->nome[0] = NULL; novo->prox = NULL; printf("\nInsira o codigo: "); scanf("%i", &novo->codigo); printf("Insira o nome: "); fflush(stdin); gets(novo->nome); if( lista->inicio == NULL){ lista->inicio = novo; lista->fim = novo; } else{ lista->fim->prox = novo; lista->fim = novo; } } void inserir_inicio(tl *lista){ tn novo=(tn)malloc(sizeof(tn)); novo->codigo = NULL; novo->nome[0] = NULL; novo->prox = NULL; printf("\nInsira o codigo: "); scanf("%i", &novo->codigo); printf("Insira o nome: "); fflush(stdin); gets(novo->nome); if(lista->inicio == NULL){ lista->inicio = novo; lista->fim = novo; } else{ novo->prox= lista->inicio; lista->inicio= novo; } } //---------------------------------------------------------------------------------------- //Imprimir void imprimir_todos(tl *lista){ tn *temp; temp = lista->inicio; if(temp == NULL) printf("\nLista VAZIA..."); else{ while(temp != NULL){ printf("\nCodigo: %i", temp->codigo); printf("\nNome: %s", temp->nome); printf("\n"); temp= temp->prox; } } } void imprimir_especifico(tl *lista){ tn *temp; char nomeR[21]; printf("\nInsira o nome da pessoa q deseja imprimir os dados: "); fflush(stdin); gets(nomeR); if(lista->inicio == NULL) printf("\nLista VAZIA..."); else{ temp= lista->inicio; while( temp != NULL){ if(strcmp(temp->nome,nomeR)==0){ printf("\nCodigo: %i", temp->codigo); printf("\nNome: %s", temp->nome); printf("\n"); } temp= temp->prox; } } } //--------------------------------------------------------------------------------- //Remover void remover(tl *lista){ char nomeR[21]; tn *temp; tn *tempAnt; printf("\nInserir o Nome q deseja remover da lista: "); fflush(stdin); gets(nomeR); if(lista->inicio == NULL) printf("\nLista VAZIA..."); else{ tempAnt= lista->inicio; temp= lista->inicio; while(temp != NULL){ if(strcmp(temp->nome, nomeR)==0){ if(temp == lista->inicio){ lista->inicio= lista->inicio->prox; free(temp); break; } else{ if(temp == lista->fim){ lista->fim = tempAnt; } tempAnt->prox= temp->prox; free(temp); break; } } else{ tempAnt = temp; temp= temp->prox; } } } } //--------------------------------------------------------------------------------- //Função Principal main(){ tl l_encadeada; int opcao; inicializar_lista(&l_encadeada); do{ printf("\n1 - Inserir no final\n2 - Inserir no inicio\n3 - Imprimir todos\n4 - Imprimir uma pessoa especifica\n5 - Remover pessoa da fila\n9 - Sair\n"); scanf("%i", &opcao); switch(opcao){ case 1: inserir_fim(&l_encadeada); break; case 2: inserir_inicio(&l_encadeada); break; case 3: imprimir_todos(&l_encadeada); break; case 4: imprimir_especifico(&l_encadeada); break; case 5: remover(&l_encadeada); break; case 9:{ printf("Finalizando...\n"); break; } default: printf("Opcao invalida...\n"); } }while(opcao != 9); }
  11. @devair1010 cara mt obrigado vou reformular o topico
  12. //Elaborar um programa para receber 5 nomes e mostrar o nome que possui o maior número de caracteres e o nome que possui a maior quantidade de vogais.//biblio #include <stdio.h> #include <string.h> #include <stdlib.h> //variaveis char nomes[5][41], nomeM[41], vogaismaiores[41]; int i, j, contador=0; char vogais[] = "aeiouAEIOU"; //Função principal main() { //repeticao entrada for(i=0; i<5; i++) { printf("Informe o nome: "); fflush(stdin); scanf("%40[^\n]", nomes); } //Comparacao de strings for(i=0; i<5; i++) { if(strcmp(nomes, nomeM) > 0) { strcpy(nomeM, nomes); } } for (i=0;i<5;i++) { if(strcmp(nomes, vogais) > 0) { strcpy(vogaismaiores, nomes); } } printf("O nome com mais caracteres: %s\n", nomeM); printf("\nO nome com mais vogais %s\n", vogaismaiores); system("pause"); } algo assim ? n sei se deu certo
  13. Receber 5 nomes e mostrar o nome que possui o maior número de caracteres e o nome que possui a maior quantidade de vogais eu montei a parte de maior numero de caracteres mais nao consigo a maior quantidade de vogais se poderem me ajudar < #include <stdio.h> #include <string.h> #include <stdlib.h> //Declaração das variáveis char nomes[5][41], maior[41]; int i; //Função principal main() { //Estrutura de repetição para entrada de dados for(i=0; i<5; i++) { printf("Informe o nome: "); fflush(stdin); scanf("%40[^\n]", nomes); } //Estrutura de repetição para comparar o tamanho das string for(i=0; i<5; i++) { if(strcmp(nomes, maior) >= 0) { strcpy(maior, nomes); } } printf("o nome com maior quantidade de caracteres e: %s\n", maior); system("pause"); } >
  14. Então eu preciso criar um algoritmo em que tenho que inserir 5 números e desses 5 números pegar os 4 maiores eu so queria entender como posso estar montando isso que n sai nada da minha cabeça .obrigado
  15. A Ti da empresa resolveu fazer a troca do notebook. obrigado pela ajuda
  16. ola boa noite tenho um notebook e ele estava lento agora ele fica ate 50% e n sobe mais que isso
  17. Ola bom dia eu possuo um tablet galaxy tab 2 e seu android esta 4.0 e gostaria de fazer uma atualizacao para um android mais atualizado e queria saber de algum tutorial bem explicado ou alguem poderia ta me ajudando a atualizar... obrigado
  18. 1. Elaborar um algoritmo na linguagem C para ler o salário e o estado civil (1-casado, 2-solteiro ou 3-separado) de 15 colaboradores de uma empresa. Mostrar o salário médio dos colaboradores por estado civil (casado, solteiro e separado)

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!