Advertisement
Guest User

Untitled

a guest
Nov 17th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.99 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<conio.h>
  4.  
  5.  
  6. struct agenda{
  7.  
  8. int hora;
  9. int minuto;
  10. int dia;
  11. int mes;
  12. int ano;
  13. char compromisso[30];
  14.  
  15. };
  16.  
  17.  
  18. struct paciente{
  19.  
  20. char nome[30];
  21. int telefone;
  22. int documento;
  23. char rua[20];
  24. char cidade[40];
  25. char estado[20];
  26.  
  27. };
  28.  
  29. void IncluirAgendamento(struct agenda *ptrag,int index){
  30. if (index!=0){
  31. ptrag = (struct agenda *)realloc(ptrag,(index+1)*sizeof(struct agenda));
  32. }
  33.  
  34. int a=0;
  35. do{
  36. printf("Digite o mes do agendamento entre 1 e 12: ");
  37. scanf("%d",&ptrag[index].mes);
  38. if(ptrag[index].mes<=12&&ptrag[index].mes>0){
  39. a=1;
  40. }
  41. }while(a!=1);
  42. a=0;
  43. do{
  44. 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){
  45. printf("Digite o dia do agendamento entre 1 e 31: ");
  46. scanf("%d",&ptrag[index].dia);
  47. if(ptrag[index].dia<=31&&ptrag[index].dia>0){
  48. a=1;
  49. }
  50. }else if (ptrag[index].mes==4||ptrag[index].mes==6||ptrag[index].mes==9||ptrag[index].mes==11){
  51. printf("Digite o dia do agendamento entre 1 e 30: ");
  52. scanf("%d",&ptrag[index].dia);
  53. if (ptrag[index].dia<=30 && ptrag[index].dia>0){
  54. a=1;
  55. }
  56. }else
  57. {
  58. printf("Digite o dia do agendamento entre 1 e 28: ");
  59. scanf("%d",&ptrag[index].dia);
  60. if (ptrag[index].dia<=28&&ptrag[index].dia>0){
  61. a=1;
  62. }
  63. }
  64.  
  65. }while(a!=1);
  66. printf("Digite o ano do agendamento: ");
  67. scanf("%d",&ptrag[index].ano);
  68. int b=0;
  69. do{
  70. printf("Digite a hora do agendamento, entre 0 e 23: ");
  71. scanf("%d",&ptrag[index].hora);
  72. if(ptrag[index].hora<24&&ptrag[index].hora>=0){
  73. b=1;
  74. }
  75. }
  76. while(b!=1);
  77. b=0;
  78. do{
  79. printf("Digite o minuto do agendamento, entre 00 e 59: ");
  80. scanf("%d",&ptrag[index].minuto);
  81. if(ptrag[index].minuto<60&&ptrag[index].minuto>=0){
  82. b=1;
  83. }
  84. }while(b!=1);
  85. printf("Digite o nome do paciente: ");
  86. fflush(stdin);
  87. gets(ptrag[index].compromisso);
  88. }
  89.  
  90. void AlterarAgendamento(struct agenda *ptrag,int index){
  91. int a=0;
  92. do{
  93. printf("Digite o mes do agendamento entre 1 e 12: ");
  94. scanf("%d",&ptrag[index].mes);
  95. if(ptrag[index].mes<=12&&ptrag[index].mes>0){
  96. a=1;
  97. }
  98. }while(a!=1);
  99. a=0;
  100. do{
  101. 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){
  102. printf("Digite o dia do agendamento entre 1 e 31: ");
  103. scanf("%d",&ptrag[index].dia);
  104. if(ptrag[index].dia<=31&&ptrag[index].dia>0){
  105. a=1;
  106. }
  107. }else if (ptrag[index].mes==4||ptrag[index].mes==6||ptrag[index].mes==9||ptrag[index].mes==11){
  108. printf("Digite o dia do agendamento entre 1 e 30: ");
  109. scanf("%d",&ptrag[index].dia);
  110. if (ptrag[index].dia<=30 && ptrag[index].dia>0){
  111. a=1;
  112. }
  113. }else
  114. {
  115. printf("Digite o dia do agendamento entre 1 e 28: ");
  116. scanf("%d",&ptrag[index].dia);
  117. if (ptrag[index].dia<=28&&ptrag[index].dia>0){
  118. a=1;
  119. }
  120. }
  121.  
  122. }while(a!=1);
  123. printf("Digite o ano do agendamento: ");
  124. scanf("%d",&ptrag[index].ano);
  125. int b=0;
  126. do{
  127. printf("Digite a hora do agendamento, entre 0 e 23: ");
  128. scanf("%d",&ptrag[index].hora);
  129. if(ptrag[index].hora<24&&ptrag[index].hora>=0){
  130. b=1;
  131. }
  132. }
  133. while(b!=1);
  134. b=0;
  135. do{
  136. printf("Digite o minuto do agendamento, entre 00 e 59: ");
  137. scanf("%d",&ptrag[index].minuto);
  138. if(ptrag[index].minuto<60&&ptrag[index].minuto>=0){
  139. b=1;
  140. }
  141. }while(b!=1);
  142. printf("Digite o nome do paciente: ");
  143. fflush(stdin);
  144. gets(ptrag[index].compromisso);
  145. }
  146.  
  147. void ExcluirAgendamento(struct agenda *ptrag,int index,int qtdRegAgenda){
  148. struct agenda *novaag;
  149. novaag = malloc((qtdRegAgenda)*sizeof(struct agenda));
  150. int aux = 0;
  151. int cont = 0;
  152. while(aux != qtdRegAgenda){
  153. if(index!=aux){
  154. novaag[cont].hora = ptrag[aux].hora;
  155. novaag[cont].minuto = ptrag[aux].minuto;
  156. novaag[cont].dia = ptrag[aux].dia;
  157. novaag[cont].mes = ptrag[aux].mes;
  158. novaag[cont].ano = ptrag[aux].ano;
  159. strcpy (novaag[cont].compromisso,ptrag[aux].compromisso);
  160. cont = cont+1;
  161. }
  162. aux=aux+1;
  163. }
  164. free(ptrag);
  165. ptrag = novaag;
  166. }
  167.  
  168. void ConsultarAgendamento(struct agenda *ptrag,int index){
  169. printf("O compromisso e: %s\n",ptrag[index].compromisso);
  170. printf("A consulta e no dia %d do mes %d do ano %d\n",ptrag[index].dia,ptrag[index].mes,ptrag[index].ano);
  171. printf("O horario do compromisso e: %d horas e %d minutos\n",ptrag[index].hora,ptrag[index].minuto);
  172. }
  173.  
  174. void ListarAgendamentos(struct agenda *ptrag,int qtdRegAgenda){
  175. int aux = 0;
  176. while (aux<qtdRegAgenda){
  177. printf("O compromisso e: %s\n",ptrag[aux].compromisso);
  178. printf("A consulta e no dia %d do mes %d do ano %d\n",ptrag[aux].dia,ptrag[aux].mes,ptrag[aux].ano);
  179. printf("O horario do compromisso e: %d horas e %d minutos\n",ptrag[aux].hora,ptrag[aux].minuto);
  180. aux=aux+1;
  181. }
  182. }
  183.  
  184. void SalvarAgendamentos(struct agenda *ptrag,int qtdRegAgenda,FILE *arq){
  185. int aux = 0;
  186. while (aux<qtdRegAgenda){
  187. fwrite(&ptrag[aux],sizeof(struct agenda),1,arq);
  188. aux=aux+1;
  189. //fechar e abrir o arquivo pra garantir que salvou.
  190. }
  191. }
  192.  
  193. int main()
  194. {
  195.  
  196. int escolha,qtdRegAgenda,escolha2,qtdRegPaciente,escolheragendamento,escolherpaciente;
  197. char nomecompromisso[50];
  198. struct agenda ag;
  199. struct paciente pc;
  200. struct agenda *ptrag;
  201. struct paciente *ptrpc;
  202. FILE *arq;
  203. arq = fopen("agenda.bin", "a+b");
  204.  
  205. FILE *ark;
  206. ark = fopen("registro.bin","a+b");
  207.  
  208. ptrag = malloc(1*sizeof(struct agenda));
  209. ptrpc = malloc(1*sizeof(struct paciente));
  210. qtdRegAgenda = -1;
  211. qtdRegPaciente = -1;
  212. if(ptrag==NULL) {
  213. printf("Erro na criacao da agenda");
  214. return 0;
  215. }
  216. if(ptrpc==NULL){
  217. printf("Erro na criacao dos clientes");
  218. return 0;
  219. }
  220.  
  221. if(arq == NULL)
  222. {
  223. printf("ERRO NO ARQUIVO.\n Tecle algo para sair do progama\n");
  224. getch();
  225. return 0;
  226. }
  227.  
  228. if(ark == NULL)
  229. {
  230. printf("ERRO NO ARQUIVO.\n Tecle algo para sair do progama\n");
  231. getch();
  232. return 0;
  233. }
  234.  
  235. 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: ");
  236. scanf("%d", &escolha);
  237. while(1){
  238. if(escolha==1){
  239. printf("Digite 1 para incluir agendamento e 2 para incluir um paciente novo: ");
  240. scanf("%d",&escolha2);
  241. if(escolha2==1){
  242. qtdRegAgenda=qtdRegAgenda+1;
  243. IncluirAgendamento(ptrag,qtdRegAgenda);
  244. }
  245. else if(escolha2==2){
  246. qtdRegPaciente=qtdRegPaciente+1;
  247. //IncluirPaciente(ptrpc,qtdRegPaciente);
  248. }
  249. }
  250.  
  251.  
  252. if(escolha==2){
  253. printf("Escolha 1 para alterar um agendamento e 2 para alterar um paciente: ");
  254. scanf("%d",&escolha2);
  255. if(escolha2==1){
  256. printf("Escolha o numero do agendamento que voce deseja alterar: ");
  257. scanf("%d",&escolheragendamento);
  258. escolheragendamento=escolheragendamento-1;
  259. AlterarAgendamento(ptrag,escolheragendamento);
  260. }
  261. else if(escolha2==2){
  262. //chamar funcao para alterar paciente
  263. }
  264. }
  265.  
  266.  
  267. if(escolha==3){
  268. printf("Escolha 1 para excluir um agendamento ou 2 para excluir um paciente: ");
  269. scanf("%d",&escolha2);
  270. if(escolha2==1){
  271. printf("Digite o numero do agendamento que voce deseja excluir: ");
  272. scanf("%d",&escolheragendamento);
  273. escolheragendamento=escolheragendamento-1;
  274. ExcluirAgendamento(ptrag,escolheragendamento);
  275. }
  276. else if(escolha2==2){
  277. //chamar funcao para excluir paciente
  278. }
  279. }
  280.  
  281. if(escolha==4){
  282. printf("Escolha 1 para consultar agendamento ou 2 para consultar um paciente: ");
  283. scanf("%d",&escolha2);
  284. if(escolha2==1){
  285. printf("Digite o número do agendamento que voce deseja consultar: ");
  286. scanf("%d",&escolheragendamento)
  287. escolheragendamento=escolheragendamento-1;
  288. ConsultarAgendamento(ptrag,escolheragendamento);
  289. }
  290. else if(escolha2==2){
  291. printf("Digite o numero do paciente que tem um cadastro no nosso sistema: ");
  292. scanf("%d",&escolherpaciente);
  293. //chamar funcao com parametro nomecompromisso para consultar o paciente
  294. }
  295. }
  296. if(escolha==5){
  297. printf("Escolha 1 para listar todos os agendamentos ou 2 para listar todos os pacientes cadastrados: ");
  298. scanf("%d",&escolha2);
  299. if(escolha2==1){
  300. ListarAgendamentos(ptrag,qtdRegAgenda);
  301. }
  302. else if(escolha2==2){
  303. //funcao para listar todos os pacientes
  304. }
  305. }
  306.  
  307. if(escolha==6){
  308. printf("Escolha 1 para guardar os agendamentos em um arquivo agendamentos.bin ou 2 para guardar os pacientes em um arquivo pacientes.bin: ");
  309. scanf("%d",&escolha2);
  310. if(escolha2==1){
  311. SalvarAgendamentos(ptrag,qtdRegAgenda,arq);
  312. }
  313. else if(escolha2==2){
  314. //funcao para salvar pacientes em pacientes.bin
  315. }
  316. }
  317. if(escolha==7){
  318. printf("Voce saiu do programa, digite uma tecla");
  319. getch();
  320. return 0;
  321. }
  322. 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: ");
  323. scanf("%d", &escolha);
  324. }
  325. fclose(arq);
  326. fclose(ark);
  327.  
  328.  
  329. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement