Ir para conteúdo
Fórum Script Brasil
  • 0

Ordem Alfabética


Guest --Roberto --

Pergunta

Guest --Roberto --

Bom dia, pessoal.

Estou fazendo ciência da computação, segundo semestre, e o professor pediu um projeto de algum tipo de agenda de contatos, muito simples, sem nem acesso ao banco de dados.

A agenda deve ter as seguintes funções: Inclusão, exclusão, procura e listagem.

Já fiz os 3 primeiros itens, mas estou com dificuldade de fazer o ultimo, pois precisa ser organizado em ordem alfabética.

Como postado no tópico relativo a estudantes, pedindo para não colocar o código inteiro, vou colocar as partes que eu acho relevante:

struct Usuario {
       char nome[30], telr[10], telc[10], cel[10], endC[50], email[30];
       int posicao, ativo;
};
Aqui há a criação do struct com os campos que cada contato precisa ter... O inteiro ativo será 0 se o usuário não existir ou tiver sido deletado e 1 se estiver ativo, e a posição foi uma variável que criei para tentar organizar alfabéticamente, se alguém que for me ajudar sugerir que ela seja inutil, eu tiro, sem problema (Ao incluir um contato, estou inicializando ela com 100). Depois tem a criação do array de Usuarios:
int main(){
    Usuario usu[100];

(O professor limitou à 100 o numero de usuarios)

Bom.. Acho que é isso.. Se alguém precisar de mais alguma coisa, fique à vontade de pedir.

Agradeço desde já.

Roberto.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
Guest --Roberto --

Eu já tentei de algumas maneiras, Felipe =)

Sou programador Java e trabalho na Locaweb, mas eu nunca tinha visto C, e estou tendo alguma dificuldade pois as linguagens que estou acostumado são bem diferentes.. Principalmente no que diz respeito ao uso de String..

Se não quiser ajudar, não precisa, mas não venha fazer pose de superior nã, ok? =D

Eu sei que devem haver muitas pessoas que entram no forum postam pedindo ajuda e depois nunca mais aparecem, mas não custuma ser meu caso..

Inclusive eu ia responder um tópico postado acima do meu, mas quando eu tava testando o programa tive que parar pois recebi um serviço urgente.

Se alguém mais se habilitar a ajudar, eu agradeço.

Abraços, Roberto.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Roberto --

Eu estava tendo dificuldade na parte de manipulação de String..

Mas com a ajuda do Kleber eu consegui fazer uma ordenação através de Bubble Sort..

Segue abaixo o código:

int troca, i, j, n;
                for(i=0;i<100;i++){ //acha a utlima posicao ativa
                    if(usu[i].ativo==1)
                       n=i;
                 }
                 n++;
                for (i = n-1; i > 0; i--){
                    troca = 0;

                    for (j =0; j <= i-1; j++){
                        if (strcmp(usu[i].nome, usu[j].nome)<0){
                             strcpy(aux.nome, usu[i].nome); //faz o backup
                             strcpy(aux.telr, usu[i].telr);
                             strcpy(aux.telc, usu[i].telc);
                             strcpy(aux.cel, usu[i].cel);
                             strcpy(aux.endC, usu[i].endC);
                             strcpy(aux.email, usu[i].email);
                             aux.ativo = usu[i].ativo;
                             aux.posicao = usu[i].posicao;
                          
                             strcpy(usu[i].nome, usu[j].nome); //faz a troca
                             strcpy(usu[i].telr, usu[j].telr);
                             strcpy(usu[i].telc, usu[j].telc);
                             strcpy(usu[i].cel, usu[j].cel);
                             strcpy(usu[i].endC, usu[j].endC);
                             strcpy(usu[i].email, usu[j].email);
                             usu[i].ativo = usu[j].ativo;
                             usu[i].posicao = usu[i].posicao;
                             
                             strcpy(usu[j].nome, aux.nome); //busca o backup
                             strcpy(usu[j].telr, aux.telr);
                             strcpy(usu[j].telc, aux.telc);
                             strcpy(usu[j].cel, aux.cel);
                             strcpy(usu[j].endC, aux.endC);
                             strcpy(usu[j].email, aux.email);
                             usu[j].ativo = aux.ativo;
                             usu[j].posicao = aux.posicao;
                             troca = 1;
                        }
                    }

Se alguém tiver alguma dúvida (não garanto que vou poder ajudar..): robertokl@gmail.com

Abraço a todos!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Célio

Pois é, só que o modelo a cima é utilizando vetores, se eu quisesse ordenar alfabeticamente uma lista encadeada como a que está a baixo (pelo campo nome), como seria...E se ainda quisesse excluir algum nome da lista como seria o procedimento para excluir:

#include <iostream>

using namespace std;

struct empregado {

char matricula[8];

char nome[20];

struct empregado *proximo;

};

void imprime (struct empregado* cauda) {

cout <<"lista: "<<endl;

while(cauda) {

cout<<"matricula: " <<cauda->matricula;

cout<<"nome: "<<cauda->nome<<endl;

cauda=cauda->proximo;

}

}

main () {

char que= '';

struct empregado *lista=new struct empregado;

cin>>lista->matricula;

cin>>lista->nome;

lista->proximo=0;

while (que!='que') {

struct empregado *l= new struct empregado;

cin>>l->matricula;

cin>>l->nome;

l->proximo=lista;

lista=l;

cout<<" continua digitando? (s=continua, que =sair)";

cin>>que;

}

imprime (lista);

cout<<" digite que para encerrar a execucao";

cin>>que;

}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...