Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<conio.h>
- struct agenda{
- int hora;
- int minuto;
- int dia;
- int mes;
- int ano;
- char compromisso[30];
- };
- struct paciente{
- char nome[30];
- int telefone;
- int documento;
- char rua[20];
- char cidade[40];
- char estado[20];
- };
- void IncluirAgendamento(struct agenda *ptrag,int index){
- if (index!=0){
- ptrag = (struct agenda *)realloc(ptrag,(index+1)*sizeof(struct agenda));
- }
- int a=0;
- do{
- printf("Digite o mes do agendamento entre 1 e 12: ");
- scanf("%d",&ptrag[index].mes);
- if(ptrag[index].mes<=12&&ptrag[index].mes>0){
- a=1;
- }
- }while(a!=1);
- a=0;
- do{
- if(ptrag[index].mes==1 ||ptrag[index].mes==3||ptrag[index].mes==5||ptrag[index].mes==7||ptrag[index].mes==8||ptrag[index].mes==10||ptrag[index].mes==12){
- printf("Digite o dia do agendamento entre 1 e 31: ");
- scanf("%d",&ptrag[index].dia);
- if(ptrag[index].dia<=31&&ptrag[index].dia>0){
- a=1;
- }
- }else if (ptrag[index].mes==4||ptrag[index].mes==6||ptrag[index].mes==9||ptrag[index].mes==11){
- printf("Digite o dia do agendamento entre 1 e 30: ");
- scanf("%d",&ptrag[index].dia);
- if (ptrag[index].dia<=30 && ptrag[index].dia>0){
- a=1;
- }
- }else
- {
- printf("Digite o dia do agendamento entre 1 e 28: ");
- scanf("%d",&ptrag[index].dia);
- if (ptrag[index].dia<=28&&ptrag[index].dia>0){
- a=1;
- }
- }
- }while(a!=1);
- printf("Digite o ano do agendamento: ");
- scanf("%d",&ptrag[index].ano);
- int b=0;
- do{
- printf("Digite a hora do agendamento, entre 0 e 23: ");
- scanf("%d",&ptrag[index].hora);
- if(ptrag[index].hora<24&&ptrag[index].hora>=0){
- b=1;
- }
- }
- while(b!=1);
- b=0;
- do{
- printf("Digite o minuto do agendamento, entre 00 e 59: ");
- scanf("%d",&ptrag[index].minuto);
- if(ptrag[index].minuto<60&&ptrag[index].minuto>=0){
- b=1;
- }
- }while(b!=1);
- printf("Digite o nome do paciente: ");
- fflush(stdin);
- gets(ptrag[index].compromisso);
- }
- void AlterarAgendamento(struct agenda *ptrag,int index){
- int a=0;
- do{
- printf("Digite o mes do agendamento entre 1 e 12: ");
- scanf("%d",&ptrag[index].mes);
- if(ptrag[index].mes<=12&&ptrag[index].mes>0){
- a=1;
- }
- }while(a!=1);
- a=0;
- do{
- if(ptrag[index].mes==1 ||ptrag[index].mes==3||ptrag[index].mes==5||ptrag[index].mes==7||ptrag[index].mes==8||ptrag[index].mes==10||ptrag[index].mes==12){
- printf("Digite o dia do agendamento entre 1 e 31: ");
- scanf("%d",&ptrag[index].dia);
- if(ptrag[index].dia<=31&&ptrag[index].dia>0){
- a=1;
- }
- }else if (ptrag[index].mes==4||ptrag[index].mes==6||ptrag[index].mes==9||ptrag[index].mes==11){
- printf("Digite o dia do agendamento entre 1 e 30: ");
- scanf("%d",&ptrag[index].dia);
- if (ptrag[index].dia<=30 && ptrag[index].dia>0){
- a=1;
- }
- }else
- {
- printf("Digite o dia do agendamento entre 1 e 28: ");
- scanf("%d",&ptrag[index].dia);
- if (ptrag[index].dia<=28&&ptrag[index].dia>0){
- a=1;
- }
- }
- }while(a!=1);
- printf("Digite o ano do agendamento: ");
- scanf("%d",&ptrag[index].ano);
- int b=0;
- do{
- printf("Digite a hora do agendamento, entre 0 e 23: ");
- scanf("%d",&ptrag[index].hora);
- if(ptrag[index].hora<24&&ptrag[index].hora>=0){
- b=1;
- }
- }
- while(b!=1);
- b=0;
- do{
- printf("Digite o minuto do agendamento, entre 00 e 59: ");
- scanf("%d",&ptrag[index].minuto);
- if(ptrag[index].minuto<60&&ptrag[index].minuto>=0){
- b=1;
- }
- }while(b!=1);
- printf("Digite o nome do paciente: ");
- fflush(stdin);
- gets(ptrag[index].compromisso);
- }
- void ExcluirAgendamento(struct agenda *ptrag,int index,int qtdRegAgenda){
- struct agenda *novaag;
- novaag = malloc((qtdRegAgenda)*sizeof(struct agenda));
- int aux = 0;
- int cont = 0;
- while(aux != qtdRegAgenda){
- if(index!=aux){
- novaag[cont].hora = ptrag[aux].hora;
- novaag[cont].minuto = ptrag[aux].minuto;
- novaag[cont].dia = ptrag[aux].dia;
- novaag[cont].mes = ptrag[aux].mes;
- novaag[cont].ano = ptrag[aux].ano;
- strcpy (novaag[cont].compromisso,ptrag[aux].compromisso);
- cont = cont+1;
- }
- aux=aux+1;
- }
- free(ptrag);
- ptrag = novaag;
- }
- void ConsultarAgendamento(struct agenda *ptrag,int index){
- printf("O compromisso e: %s\n",ptrag[index].compromisso);
- printf("A consulta e no dia %d do mes %d do ano %d\n",ptrag[index].dia,ptrag[index].mes,ptrag[index].ano);
- printf("O horario do compromisso e: %d horas e %d minutos\n",ptrag[index].hora,ptrag[index].minuto);
- }
- void ListarAgendamentos(struct agenda *ptrag,int qtdRegAgenda){
- int aux = 0;
- while (aux<qtdRegAgenda){
- printf("O compromisso e: %s\n",ptrag[aux].compromisso);
- printf("A consulta e no dia %d do mes %d do ano %d\n",ptrag[aux].dia,ptrag[aux].mes,ptrag[aux].ano);
- printf("O horario do compromisso e: %d horas e %d minutos\n",ptrag[aux].hora,ptrag[aux].minuto);
- aux=aux+1;
- }
- }
- void SalvarAgendamentos(struct agenda *ptrag,int qtdRegAgenda,FILE *arq){
- int aux = 0;
- while (aux<qtdRegAgenda){
- fwrite(&ptrag[aux],sizeof(struct agenda),1,arq);
- aux=aux+1;
- //fechar e abrir o arquivo pra garantir que salvou.
- }
- }
- int main()
- {
- int escolha,qtdRegAgenda,escolha2,qtdRegPaciente,escolheragendamento,escolherpaciente;
- char nomecompromisso[50];
- struct agenda ag;
- struct paciente pc;
- struct agenda *ptrag;
- struct paciente *ptrpc;
- FILE *arq;
- arq = fopen("agenda.bin", "a+b");
- FILE *ark;
- ark = fopen("registro.bin","a+b");
- ptrag = malloc(1*sizeof(struct agenda));
- ptrpc = malloc(1*sizeof(struct paciente));
- qtdRegAgenda = -1;
- qtdRegPaciente = -1;
- if(ptrag==NULL) {
- printf("Erro na criacao da agenda");
- return 0;
- }
- if(ptrpc==NULL){
- printf("Erro na criacao dos clientes");
- return 0;
- }
- if(arq == NULL)
- {
- printf("ERRO NO ARQUIVO.\n Tecle algo para sair do progama\n");
- getch();
- return 0;
- }
- if(ark == NULL)
- {
- printf("ERRO NO ARQUIVO.\n Tecle algo para sair do progama\n");
- getch();
- return 0;
- }
- printf("1-Incluir Agendamento ou Paciente\n2-Alterar Agendamento ou Paciente\n3-Excluir Agendamento ou Paciente\n4-Consultar Agendamento ou Paciente\n5-Listar todos agendamentos ou todos os Pacientes\n6-Gravar todos os agendamentos ou pacientes em um arquivo binario\n7-Sair do Programa\nSua Escolha: ");
- scanf("%d", &escolha);
- while(1){
- if(escolha==1){
- printf("Digite 1 para incluir agendamento e 2 para incluir um paciente novo: ");
- scanf("%d",&escolha2);
- if(escolha2==1){
- qtdRegAgenda=qtdRegAgenda+1;
- IncluirAgendamento(ptrag,qtdRegAgenda);
- }
- else if(escolha2==2){
- qtdRegPaciente=qtdRegPaciente+1;
- //IncluirPaciente(ptrpc,qtdRegPaciente);
- }
- }
- if(escolha==2){
- printf("Escolha 1 para alterar um agendamento e 2 para alterar um paciente: ");
- scanf("%d",&escolha2);
- if(escolha2==1){
- printf("Escolha o numero do agendamento que voce deseja alterar: ");
- scanf("%d",&escolheragendamento);
- escolheragendamento=escolheragendamento-1;
- AlterarAgendamento(ptrag,escolheragendamento);
- }
- else if(escolha2==2){
- //chamar funcao para alterar paciente
- }
- }
- if(escolha==3){
- printf("Escolha 1 para excluir um agendamento ou 2 para excluir um paciente: ");
- scanf("%d",&escolha2);
- if(escolha2==1){
- printf("Digite o numero do agendamento que voce deseja excluir: ");
- scanf("%d",&escolheragendamento);
- escolheragendamento=escolheragendamento-1;
- ExcluirAgendamento(ptrag,escolheragendamento);
- }
- else if(escolha2==2){
- //chamar funcao para excluir paciente
- }
- }
- if(escolha==4){
- printf("Escolha 1 para consultar agendamento ou 2 para consultar um paciente: ");
- scanf("%d",&escolha2);
- if(escolha2==1){
- printf("Digite o número do agendamento que voce deseja consultar: ");
- scanf("%d",&escolheragendamento)
- escolheragendamento=escolheragendamento-1;
- ConsultarAgendamento(ptrag,escolheragendamento);
- }
- else if(escolha2==2){
- printf("Digite o numero do paciente que tem um cadastro no nosso sistema: ");
- scanf("%d",&escolherpaciente);
- //chamar funcao com parametro nomecompromisso para consultar o paciente
- }
- }
- if(escolha==5){
- printf("Escolha 1 para listar todos os agendamentos ou 2 para listar todos os pacientes cadastrados: ");
- scanf("%d",&escolha2);
- if(escolha2==1){
- ListarAgendamentos(ptrag,qtdRegAgenda);
- }
- else if(escolha2==2){
- //funcao para listar todos os pacientes
- }
- }
- if(escolha==6){
- printf("Escolha 1 para guardar os agendamentos em um arquivo agendamentos.bin ou 2 para guardar os pacientes em um arquivo pacientes.bin: ");
- scanf("%d",&escolha2);
- if(escolha2==1){
- SalvarAgendamentos(ptrag,qtdRegAgenda,arq);
- }
- else if(escolha2==2){
- //funcao para salvar pacientes em pacientes.bin
- }
- }
- if(escolha==7){
- printf("Voce saiu do programa, digite uma tecla");
- getch();
- return 0;
- }
- printf("1-Incluir Agendamento ou Paciente\n2-Alterar Agendamento ou Paciente\n3-Excluir Agendamento ou Paciente\n4-Consultar Agendamento ou Paciente\n5-Listar todos agendamentos ou todos os Pacientes\n6-Gravar todos os agendamentos ou pacientes em um arquivo binario\n7-Sair do Programa\nSua Escolha: ");
- scanf("%d", &escolha);
- }
- fclose(arq);
- fclose(ark);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement