Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.36 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. /*Criação da struct que armazena os dados dos pacientes*/
  6. struct Paciente {
  7. int id;
  8. int capacidade;
  9. int cpf[14];
  10. int cid[4];
  11. int crm[5];
  12. char *nomePaciente[30];
  13. int codigo;
  14. int ultimo;
  15. Paciente* prox;
  16. };
  17.  
  18. /*Insere os dados do paciente dentro da Struct*/
  19. int inserir(struct Paciente *f, int c, int cpf, int cid, int crm, char* nome, int hash) {
  20. int tam=0;
  21. Paciente* p;
  22.  
  23. /*O bloco abaixo percorre o "vetor" da struct oara armazenar os dados na ultima posição.*/
  24. for(p = f; p != NULL; p = p){
  25. p->crm[5]=crm;
  26. p->cid[4]=cid;
  27. p->cpf[14]=cpf;
  28. p->ultimo++;
  29. p->codigo=hash;
  30. p->capacidade=c;
  31. tam = sizeof(nome);
  32. /**O bloco abaixo percorre o vetor nome para armazenar os caracteres recebidos na variável nome.*/
  33. for(int a=0; a<=tam;a++){
  34. p->nomePaciente[a]=nome;
  35. }
  36. p->prox;
  37. break;
  38. }
  39. }
  40. int estaVazia( struct Paciente *f ) { // retorna verdadeiro se a Paciente está vazia
  41.  
  42. return (f->ultimo==0);
  43.  
  44. }
  45.  
  46. int estaCheia( struct Paciente *f ) { // retorna verdadeiro se a Paciente está cheia
  47.  
  48. return (f->ultimo == f->capacidade);
  49. }
  50.  
  51. Paciente* mostrarPaciente(Paciente *f, int consulta){
  52. Paciente* p;
  53. int cont, i;
  54. char teste;
  55. for(p = f; p != NULL; p = p){
  56. printf("\nNOME: %s", f->nomePaciente);
  57. printf("\nCID: %d", p->cid[4]);
  58. printf("\nCPF: %d", p->cpf[14]);
  59. printf("\nCRM: %d", p->crm[5]);
  60. printf("\nCodigo Hash: %d", p->codigo);
  61. break;
  62. }
  63. if (i == f->capacidade)
  64. i=0;
  65.  
  66. printf("\n\n");
  67.  
  68. }
  69.  
  70. /*O código abaixo gera o código "hash" do programa*/
  71. int geraCodigo(int cpf){
  72. int codigo = cpf%1000+cpf;
  73. return codigo;
  74. }
  75.  
  76. int main () {
  77. /* Declaração das variáveis*/
  78. int opcao;
  79. float valor;
  80. struct Paciente umaPaciente; //Declaração da variável umaPaciente do tipo Struct Paciente
  81. int capacidade=1;
  82. int cpf, cid, crm, consulta;
  83. char *nome;
  84. int valida=1;
  85. /*Fim da declaração das variáveis*/
  86. while(valida=1){ // enquando a variável valida for igual a , executa as instruções abaixo.
  87. printf("\n*********MENU**********\n 1- Cadastro\n 2- Buscar\n Opcao: "); // Gera o Menu
  88. scanf("%d", &opcao);//Le a opção escolhida do Menu
  89. system ("cls"); //Limpa a tela
  90. /*No bloco de código abaixo, verifica-se qual o caracter foi digitado para a variável opção
  91. Caso o caracter seja 1, o programa lê os dados do paciente e guarda na Struct Paciente*/
  92. switch(opcao){
  93. case 1:
  94. system ("cls");
  95. for(int i=0;i<=capacidade-1;i++){
  96. printf("CPF: ");
  97. scanf("%d", &cpf);
  98. printf("CRM: ");
  99. scanf("%d", &crm);
  100. printf("CID: ");
  101. scanf("%d", &cid);
  102. printf("Nome: ");
  103. scanf("%s", &nome);
  104. int codigo = geraCodigo(cpf);//Chama a funçao que gera o código e armazena o valor retornado na cariável código.
  105. inserir(&umaPaciente, i, cpf, cid, crm, nome, codigo);//Chama a funçao que guarda os valores lidos acima na Struct
  106. }
  107. break;
  108. case 2: //Consulta os pacientes cadastrados
  109. printf("Qual CPF do paciente que deseja consultar?");
  110. scanf("%d", &consulta);
  111. if(consulta==0){ //Se o CPF digitado for igual a 0, retorna a mensagem que não tem paciente cadastrado e limpa a tela.
  112. printf("Não existe paciente cadastrado!");
  113. system ("cls");
  114. system ("pause");
  115. }else{ // Senão, chama a função que mostra os dados do paciente na tela.
  116. mostrarPaciente(&umaPaciente, consulta);
  117. }
  118. break;
  119.  
  120. }
  121. }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement