Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*typedef struct aluno *List;
- typedef struct aluno {
- char *nome_aluno;
- int nmr_aluno;
- char *curso;
- int ano_matricula; //1,2,3...
- char *regime; //normal, trabalhador-estudante,atleta,dirigente associativo, Erasmus
- List next;
- }List_aluno;*/
- List cria_lista_alunos(void)
- {
- List aux;
- aux = (List) malloc(sizeof(List_aluno));
- if (aux != NULL){
- aux->nome_aluno = NULL;
- aux->nmr_aluno = 0;
- aux->curso = NULL;
- aux->ano_matricula = 0;
- aux->next = NULL;
- }
- return aux;
- }
- int lista_vazia(List lista)
- {
- return (lista->next==NULL?1:0);
- }
- void procura_nome(List lista, char *chave, List *ant, List *actual)
- {
- *ant = lista;
- *actual = lista->next;
- while((*actual)!=NULL && strcmp((*actual)->nome_aluno,chave)<0){ /* O primeiro caracter que não corresponde tem um valor menor em ptr1 do que em ptr2*/
- *ant = *actual;
- *actual = (*actual)->next;
- }
- if ((*actual)!=NULL && strcmp((*actual)->nome_aluno,chave)!=0)
- *actual = NULL;
- }
- void insere_aluno_lista(List lista, char *name, int n, char *c, int ano_m , char *regim) /*ORDENADO POR NOME*/
- {
- List no;
- List ant, actual;
- no = (List) malloc(sizeof (List_aluno));
- if(no!=NULL){
- procura_nome(lista, name, &ant, &actual);
- /*if(actual==NULL){*/
- no->nome_aluno=(char*) malloc((strlen(name))*sizeof(char));
- no->curso=(char*) malloc((strlen(c))*sizeof(char));
- no->regime=(char*) malloc((strlen(regim))*sizeof(char));
- if(no->nome_aluno!=NULL)
- {
- strcpy(no->nome_aluno,name);
- no->nmr_aluno = n;
- strcpy(no->curso,c);
- no->ano_matricula = ano_m;
- strcpy(no->regime,regim);
- }
- no->next=ant->next;
- ant->next=no;
- /*}*/
- }
- }
- void imprime_lista_alunos(List lista)
- {
- List l = lista->next; /*salta o header*/
- while(l){
- printf("%s\n%d\n%s\n%d\n%s\n\n" , l->nome_aluno, l->nmr_aluno, l->curso, l->ano_matricula, l->regime);
- l=l->next;
- }
- }
- /*
- void add_lista(List l1, List l2)
- {
- List aux=l2->next;
- while(aux){
- insere_nome_lista(l1, aux->nome_aluno,aux->nmr_aluno,aux->curso,aux->ano_matricula,aux->regime);
- aux=aux->next;
- }
- }*/
- int nmr_aluno()
- {
- char nmr[MAX];
- int n;
- printf("Insira o numero do aluno(10 digitos): ");
- gets(nmr);
- while( (strlen(nmr) != 10) || (verifica_digitos(nmr) == 0) )
- {
- printf("Numero invalido.\n");
- printf("Volte a inserir o numero do aluno(10 digitos): ");
- gets(nmr);
- }
- n = atoi(nmr); /*tranforma a string num inteiro--> atoi()*/
- return n;
- }
- int year_matricula()
- {
- char nmr[MAX];
- int n;
- printf("Insira o numero da sua matricula(2 digitos maximo): ");
- gets(nmr);
- while( (strlen(nmr) <1) || (strlen(nmr) >2) || (verifica_digitos(nmr) == 0) )
- {
- printf("Numero invalido.\n");
- printf("Volte a inserir o numero da sua matricula(2 digitos maximo): ");
- gets(nmr);
- }
- n = atoi(nmr); /*tranforma a string num inteiro--> atoi()*/
- return n;
- }
- List insere_dados_aluno(void)
- {
- List student;
- int nmr,ano_m;
- char nome[MAX],curs[MAX],reg[MAX];
- student = cria_lista_alunos();
- /*------------------NOME ALUNO---------------*/
- printf("Insira o nome do aluno: ");
- gets(nome); /*a string é um vetor*/
- strupr(nome);/*converte tudo para maiuscula*/
- while( (verifica_caracteres(nome) == 0) || (strlen(nome)>MAX) )
- {
- printf("Contem caracteres invalidos ou ultrapassou o numero maximo de caracteres(50).\n");
- printf("Volte a inserir o nome do aluno: ");
- gets(nome);
- }
- /*printf("%s\n",nome);*/
- /*------FIM NOME ALUNO ------*/
- nmr = nmr_aluno(); /*NUMERO ALUNO*/
- /*-----------CURSO-------------*/
- printf("Insira o curso do aluno: ");
- gets(curs); /*a string é um vetor*/
- /*strupr(nome); //converte tudo para maiuscula*/
- while( (verifica_caracteres(curs) == 0) || (strlen(curs)>MAX) )
- {
- printf("Contem caracteres invalidos ou ultrapassou o numero maximo de caracteres(50).\n");
- printf("Volte a inserir o curso do aluno: ");
- gets(curs);
- }
- /*----------FIM CURSO--------*/
- ano_m = year_matricula(); /*ANO DA MATRICULA NO CURSO*/
- /*---------REGIME-------*/
- printf("De entre os diversos regimes:\n\nNormal\nTrabalhador estudante\natleta\nDirigente associativo\nErasmo\n\nInsira o regime do aluno: ");
- gets(reg); /*a string é um vetor*/
- /*strupr(nome); //converte tudo para maiuscula*/
- while( (verifica_caracteres(reg) == 0) || (strlen(reg)>MAX) )
- {
- printf("Contem caracteres invalidos ou ultrapassou o numero maximo de caracteres(50).\n");
- printf("Volte a inserir o regime do aluno: ");
- gets(reg);
- }
- insere_aluno_lista(student , nome, nmr, curs , ano_m, reg);
- /*printf("Lista de alunos ordenada alfabeticamente:\n");
- imprime_lista(student);*/
- return student;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement