Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- typedef struct lista{
- int num;
- char nome[30];
- char turma[30];
- float media;
- struct lista* prox;
- }lista;
- lista *inicio, *temp, *aux, *ant;
- void inserir(){
- int x;
- do{
- temp=(lista*)malloc(sizeof(lista));
- printf("Numero: ");
- scanf("%d",&temp->num);
- printf("Nome: ");
- scanf("%s",temp->nome);
- printf("Turma: ");
- scanf("%s",temp->turma);
- printf("Media: ");
- scanf("%f",&temp->media);
- if (inicio==NULL){
- inicio=temp;
- inicio->prox=NULL;
- }
- else{
- if (temp->num<inicio->num){
- temp->prox=inicio;
- inicio=temp;
- }
- else{
- aux=inicio;
- ant=NULL;
- while (aux->prox!=NULL && temp->num > aux->num){
- ant=aux;
- aux=aux->prox;
- }
- if (temp->num < aux->num){
- ant->prox=temp;
- temp->prox=aux;
- }
- else{
- aux->prox=temp;
- temp->prox=NULL;
- }
- }
- }
- printf("Pretende continuar? (0-N 1-S)\n");
- scanf("%d",&x);
- }while(x==1);
- }
- void consulta(){
- aux=inicio;
- while(aux!=NULL){
- printf("Numero: %d\nNome: %s\nTurma: %s\nMedia: %.2f\n----------\n",aux->num,aux->nome,aux->turma,aux->media);
- aux=aux->prox;
- }
- }
- void pesquisanum(){
- int numero;
- printf("Numero a pesquisar: ");
- scanf("%d",&numero);
- if (inicio!=NULL){
- aux=inicio;
- while(aux->prox!=NULL && aux->num!=numero){
- aux=aux->prox;
- }
- if (aux->num==numero){
- printf("Numero: %d\nNome: %s\nTurma: %s\nMedia: %.2f\n----------\n",aux->num,aux->nome,aux->turma,aux->media);
- }
- else{
- printf("---------- Numero nao existe ----------\n");
- }
- }
- else{
- printf("---------- Valores nao inseridos ----------\n");
- }
- }
- void pesquisaturma(){
- char turmap[30];
- int i=0;
- printf("Turma a pesquisar: ");
- scanf("%s",turmap);
- if (inicio!=NULL){
- aux=inicio;
- while(aux!=NULL){
- if (strcmp(aux->turma,turmap)==0){
- printf("Numero: %d\nNome: %s\nTurma: %s\nMedia: %.2f\n----------\n",aux->num,aux->nome,aux->turma,aux->media);
- i++;
- }
- aux=aux->prox;
- }
- if (i==0){
- printf("---------- Turma nao encontrada ----------\n");
- }
- }
- else{
- printf("---------- Valores nao inseridos ----------\n");
- }
- }
- void eliminaraluno(){
- int numero;
- printf("Numero que pretende eliminar: ");
- scanf("%d",&numero);
- if (inicio!=NULL){
- aux=inicio;
- ant=NULL;
- while (aux->prox!=NULL && aux->num!=numero){
- ant=aux;
- aux=aux->prox;
- }
- if (aux->num==numero){
- if (aux==inicio){
- inicio=inicio->prox;
- free(aux);
- }
- else{
- ant->prox=aux->prox;
- free(aux);
- }
- }
- else{
- printf("Numero nao encontrado\n");
- }
- }
- else{
- printf("---------- Valores nao inseridos ----------\n");
- }
- }
- void eliminarturma(){
- char turmap[30];
- int i=0;
- printf("Turma que pretende eliminar: ");
- scanf("%s",turmap);
- if (inicio!=NULL){
- aux=inicio;
- ant=NULL;
- while(aux!=NULL){
- if (strcmp(aux->turma,turmap)==0){
- i++;
- if (aux==inicio){
- inicio=inicio->prox;
- free(aux);
- aux=inicio;
- }
- else{
- ant->prox=aux->prox;
- free(aux);
- aux=ant->prox;
- }
- }
- else{
- ant=aux;
- aux=aux->prox;
- }
- }
- if (i==0){
- printf("---------- Turma nao encontrada ----------\n");
- }
- }
- else{
- printf("---------- Valores nao inseridos ----------\n");
- }
- }
- void eliminarlista(){
- while (inicio!=NULL){
- aux=inicio;
- inicio=inicio->prox;
- free(aux);
- }
- }
- void exportar(){
- printf("---------- Funcao nao disponivel ----------\n");
- }
- int main(){
- int op;
- do{
- printf("1 - Inserir ordenadamente por numero\n");
- printf("2 - Consulta global\n");
- printf("3 - Pesquisa por numero\n");
- printf("4 - Pesquisa por turma\n");
- printf("5 - Eliminar um dado aluno\n");
- printf("6 - Eliminar uma dada turma\n");
- printf("7 - Eliminar lista\n");
- printf("8 - Exportar para ficheiro\n");
- printf("9 - Sair\n");
- printf("----------- Escolha ----------\n");
- scanf("%d",&op);
- switch(op){
- case 1: inserir();
- break;
- case 2: consulta();
- break;
- case 3: pesquisanum();
- break;
- case 4: pesquisaturma();
- break;
- case 5: eliminaraluno();
- break;
- case 6: eliminarturma();
- break;
- case 7: eliminarlista();
- break;
- case 8: exportar();
- break;
- }
- }while(op!=9);
- printf("---------- Programa encerrado ----------");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement