Advertisement
12345678900987654323

123

Jun 3rd, 2016
388
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*-------------------------------Include Header-------------------------------*/
  2. #define _CRT_SECURE_NO_WARNINGS
  3. #include<stdio.h>             //Include the Standard Input/Output Header
  4. #include<string.h>            //Include the Strings Header
  5. #include<ctype.h>             //Include the Header to handle Characters
  6. #include<windows.h>
  7. #include<stdlib.h>            //Include the Standard Library Header
  8.  
  9.  
  10. /*-----------------------------Sub function declaration------------------------*/
  11.  
  12. //int or void is return type
  13.  
  14. //Login function
  15. int doc();                //function header of "doctor"
  16. int rec();                //function header of "reception"
  17.  
  18. //Selection menu
  19. void doc_menu();
  20. void rec_menu();
  21. void doc_pat_menu();
  22. void doc_app_menu();
  23. void rec_pat_menu();
  24. void rec_app_menu();
  25.  
  26. //Add function
  27. int add_new_pat();
  28. int add_app();
  29.  
  30. //View and Search function
  31. void view_pat();
  32. void search_pat();
  33. void view_app();
  34. void search_app();
  35.  
  36. //Delete and Modify function
  37. void delete_pat();
  38. void delete_app();
  39. void modify_pat();
  40. void modify_app();
  41.  
  42. //Search function
  43. int find_pat();
  44. int find_app();
  45.  
  46. //global variable to call for each choice needed
  47. int choice;
  48.  
  49. //Validation Function
  50. int num_str_validation();
  51. int alpha_validation();
  52.  
  53. void gotoxy();
  54.  
  55. fpos_t position;
  56.  
  57. //Structure for patient
  58. struct patient
  59. {
  60.     char pat_name[25];
  61.     char pat_ID[5];
  62.     char gender[5];
  63.     char age[5];
  64.     char contact_num[13];
  65.     char ic_num[15];
  66.     char app_type[20];
  67.     char doc_name[25];
  68.     char app_date[10];
  69.     char app_time[5];
  70.     char room[10];
  71. }p1;
  72.  
  73. int alpha_str_validation(char input[])
  74. {
  75.     int validation, i;
  76.  
  77.     for(i=0;i<(strlen(input));i++)
  78.     {
  79.         if(isalpha(input[i])||(isspace(input[i])))
  80.             validation=1;
  81.         else
  82.         {
  83.             validation=0;
  84.             break;
  85.         }
  86.     }
  87.  
  88.     return validation;
  89. }
  90.  
  91. int num_str_validation(char input[])
  92. {
  93.     int validation, i;
  94.  
  95.     for(i=0;i<(strlen(input));i++)
  96.     {
  97.         if(input[i]>=48 && input[i]<=57)
  98.             validation=1;
  99.         else
  100.         {
  101.             validation=0;
  102.             break;
  103.         }
  104.     }
  105.  
  106.     return validation;
  107. }
  108.  
  109. void getPatientName()
  110. {
  111.     int n=0;
  112.     int validation=0;
  113.     char buffer[100];
  114.  
  115.     do
  116.     {
  117.         printf("Enter Name\t\t:");
  118.         gets(buffer);
  119.  
  120.             while(n < sizeof(buffer))
  121.             {
  122.                 if(buffer[n] == ' ')
  123.                     buffer[n] = '_' ;
  124.                     n++ ;
  125.             }
  126.             buffer[n] = '0';
  127.             strcpy(p1.pat_name , buffer);
  128.             validation = alpha_str_validation(p1.pat_name);
  129.     }
  130.     while(validation == 0);
  131. }
  132.  
  133. void getPatientID()
  134. {
  135.     int validation = 0;
  136.     do
  137.     {
  138.         printf("Enter Patient ID\t:");
  139.         gets(p1.pat_ID);
  140.         validation = num_str_validation(p1.pat_ID);
  141.     }
  142.     while(validation ==0);
  143. }
  144.  
  145. void getGender()
  146. {
  147.     printf("Enter Gender\t\t:");
  148.     gets(p1.gender);
  149. }
  150.  
  151. void getAge()
  152. {
  153.     printf("Enter Age\t\t:");
  154.     gets(p1.age);
  155. }
  156.  
  157. void getContactNum()
  158. {
  159.     printf("Enter Contact Number\t:");
  160.     gets(p1.contact_num);
  161. }
  162.  
  163. void getIcNum()
  164. {
  165.     printf("Enter IC Number\t\t:");
  166.     gets(p1.ic_num);
  167. }
  168.  
  169. void getAppType()
  170. {
  171.     gotoxy(25,10);
  172.     printf("Enter Appointment Type\t:");
  173.     gets(p1.app_type);
  174. }
  175.  
  176. void getDocName()
  177. {
  178.     gotoxy(25,11);
  179.     printf("Enter Doctor Name\t:");
  180.     gets(p1.doc_name);
  181. }
  182.  
  183. void getAppDate()
  184. {
  185.     gotoxy(25,12);
  186.     printf("Enter Date\t\t:");
  187.     gets(p1.app_date);
  188. }
  189.  
  190. void getAppTime()
  191. {
  192.     gotoxy(25,13);
  193.     printf("Enter Appointment Time\t:");
  194.     gets(p1.app_time);
  195. }
  196.  
  197. void getRoom()
  198. {
  199.     gotoxy(25,14);
  200.     printf("Enter Room\t\t:");
  201.     gets(p1.room);
  202. }
  203.  
  204. //function below allow the implementation of gotoxy in codeblocks
  205. COORD coord = { 0, 0 };
  206. void gotoxy(int x, int y)
  207. {
  208.     coord.X = x;
  209.     coord.Y = y;
  210.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
  211. }
  212.  
  213. int find_pat(FILE *fp)
  214. {
  215.     const char s[2] = ">";
  216.     char *token;
  217.     char confirm;
  218.  
  219.     fp = fopen("patient.txt", "r");
  220.     if(fp==NULL)
  221.     {
  222.         exit(1);
  223.         printf("File cannot open");
  224.     }
  225.     else
  226.     {
  227.         char buffer[200];
  228.         char input[200];
  229.         char tok[200];
  230.         int found = 1;
  231.         int save =0 , line=0 , count=1;
  232.  
  233.         system("cls");
  234.         printf("Enter the Patient ID: ");
  235.         fflush(stdin);
  236.         gets(input);
  237.  
  238.         rewind(fp);
  239.         while(fgets(buffer,200,fp) != NULL)
  240.         {
  241.             line ++;
  242.             token = strtok(buffer, s);
  243.             if(strcmp(token,input)==0)
  244.             {
  245.                 save = line ;
  246.                 break;
  247.             }
  248.         }
  249.         if(save != 0)
  250.         {
  251.             rewind(fp);
  252.             while(count<=save)
  253.             {
  254.                 fscanf(fp,"%s %s %s %s %s %s",p1.pat_ID,p1.pat_name,p1.gender,p1.age,p1.contact_num,p1.ic_num);
  255.                 if(count!=save)
  256.                     {
  257.                         count++;
  258.                     }
  259.                     else
  260.                     {
  261.                         p1.pat_ID[strlen(p1.pat_ID)-1] = '\0';  //delete '>' in the file
  262.                         printf("\nPatient ID\t: %s\n",p1.pat_ID);
  263.                         printf("Patient Name\t: %s\n",p1.pat_name);
  264.                         printf("Gender\t\t: %s\n",p1.gender);
  265.                         printf("Age\t\t: %s\n",p1.age);
  266.                         printf("Contact number\t: %s\n",p1.contact_num);
  267.                         printf("IC number\t: %s\n\n",p1.ic_num);
  268.                         return count;
  269.                     }
  270.  
  271.             }
  272.         }
  273.         else
  274.         {
  275.             printf("\nID not found\n");
  276.             return -1 ;
  277.         }
  278.     }
  279.     fclose(fp);
  280.     system("pause");
  281. }
  282.  
  283. int find_app(FILE *fp1)
  284. {
  285.     const char s[2] = ">";
  286.     char *token;
  287.     char confirm;
  288.  
  289.     fp1 = fopen("appointment.txt", "r");
  290.     if(fp1==NULL)
  291.     {
  292.         exit(1);
  293.         printf("File cannot open");
  294.     }
  295.     else
  296.     {
  297.         char buffer[200];
  298.         char input[200];
  299.         char tok[200];
  300.         int found = 1;
  301.         int save =0 , line=0 , count=1;
  302.  
  303.         system("cls");
  304.         printf("Enter the Patient ID: ");
  305.         fflush(stdin);
  306.         gets(input);
  307.  
  308.         rewind(fp1);
  309.         while(fgets(buffer,200,fp1) != NULL)
  310.         {
  311.             line ++;
  312.             token = strtok(buffer, s);
  313.             if(strcmp(token,input)==0)
  314.             {
  315.                 save = line ;
  316.                 break;
  317.             }
  318.         }
  319.             if(save != 0)
  320.             {
  321.                 rewind(fp1);
  322.                 while(count<=save)
  323.                 {
  324.                     fscanf(fp1,"%s %s %s %s %s %s %s",p1.pat_ID,p1.pat_name,p1.app_type,p1.doc_name,p1.app_date,p1.app_time,p1.room);
  325.                     if(count!=save)
  326.                     {
  327.                         printf("Test");
  328.                         count++;
  329.                     }
  330.                     else
  331.                     {
  332.                         p1.pat_ID[strlen(p1.pat_ID)-1] = '\0';  //delete '>' in the file
  333.                         printf("Patient ID: %s\n",p1.pat_ID);
  334.                         printf("Patient Name: %s\n",p1.pat_name);
  335.                         printf("Appointment Type: %s\n",p1.app_type);
  336.                         printf("Doctor Name: %s\n",p1.doc_name);
  337.                         printf("Date: %s\n",p1.app_date);
  338.                         printf("Time: %s\n",p1.app_time);
  339.                         printf("Room: %s\n",p1.room);
  340.                         return count;
  341.                     }
  342.  
  343.                 }
  344.  
  345.             }
  346.             else
  347.             {
  348.                 printf("\nID not found\n");
  349.                 return -1 ;
  350.             }
  351.     }
  352.     fclose(fp1);
  353.     system("pause");
  354. }
  355.  
  356. /*------------------------Main------------------------*/
  357. void main()
  358. {
  359.     int a, b;
  360.     do
  361.     {
  362.         system("cls");
  363.         gotoxy(21,7);
  364.         printf("**********   Welcome to Jack Hospital   **********");
  365.         gotoxy(33, 11);
  366.         printf("1. Doctor\n");
  367.         gotoxy(33, 12);
  368.         printf("2. Reception\n");
  369.         gotoxy(33, 14);
  370.         printf("Enter your choice:");
  371.         scanf("%d", &choice);
  372.         if (choice < 1 || choice > 2)
  373.         {
  374.             gotoxy(25, 16);
  375.             printf("Invalid Entry\n");
  376.             gotoxy(25, 17);
  377.             printf("Please try again!\n");
  378.         }
  379.         switch (choice)
  380.         {
  381.             case 1: a = doc();
  382.                     if (a != 0)
  383.                     doc_menu();
  384.                     break;
  385.             case 2: b = rec();
  386.                     if (b != 0)
  387.                     rec_menu();
  388.                     break;
  389.         }
  390.     }
  391.     while (choice <1  ||  choice > 2);
  392. }
  393.  
  394. /*--------------------Login Function------------------------*/
  395. //Doctor Login Process
  396. int doc()
  397. {
  398.     char name[30] = "Doctor", password[10] = "1234";
  399.     char user_input[30], user_password[10];
  400.     int a = 0;
  401.     do
  402.     {
  403.         system("cls");
  404.         gotoxy(22, 8);
  405.         printf("**********   Welcome Doctor   **********\n");
  406.         fflush(stdin);
  407.         gotoxy(25, 11);
  408.         printf("User Name\t:");
  409.         gets(user_input);
  410.         fflush(stdin);
  411.         gotoxy(25, 13);
  412.         printf("Password\t:");
  413.         gets(user_password);
  414.         if ((strcmp(name, user_input) == 0) && (strcmp(password, user_password) == 0))
  415.         {
  416.             printf("Login successful");
  417.             a = 1;
  418.         }
  419.         else
  420.         {
  421.             a = 0;
  422.         }
  423.     }
  424.     while (a == 0);
  425.     return a;
  426. }
  427.  
  428. //Reception Login Process
  429. int rec()
  430. {
  431.     char name[30] = "Jack", password[10] = "1234";
  432.     char user_input[30], user_password[10];
  433.     int a = 0;
  434.     do
  435.     {
  436.         system("cls");
  437.         gotoxy(22, 8);
  438.         printf("**********   Welcome Admin   ***********\n");
  439.         fflush(stdin);
  440.         gotoxy(25, 11);
  441.         printf("User Name\t:");
  442.         fflush(stdin);
  443.         gets(user_input);
  444.         gotoxy(25, 13);
  445.         printf("Password\t:");
  446.         gets(user_password);
  447.         if ((strcmp(name, user_input) == 0) && ((strcmp(password, user_password) == 0)))
  448.         {
  449.             printf("Login successful");
  450.             a = 1;
  451.         }
  452.         else
  453.         {
  454.             a = 0;
  455.         }
  456.     }
  457.     while (a == 0);
  458.     return a;
  459. }
  460.  
  461. /*---------------------------Doctor Menu----------------------------*/
  462. void doc_menu()
  463. {
  464.     do
  465.     {
  466.         while(1)
  467.         {
  468.             system("cls");
  469.             gotoxy(25, 8);
  470.             printf("----------Doctor Menu----------");
  471.             gotoxy(25, 10);
  472.             printf("1. Patient\n");
  473.             gotoxy(25, 11);
  474.             printf("2. Appointment\n");
  475.             gotoxy(25, 12);
  476.             printf("3. Logout");
  477.             gotoxy(25, 13);
  478.             printf("4. Exit");
  479.                 if (choice < 1 && choice > 4)
  480.                 {
  481.                     gotoxy(25, 16);
  482.                     printf("Invalid Entry\n");
  483.                     gotoxy(25, 17);
  484.                     printf("Please try again!\n");
  485.                 }
  486.             gotoxy(25, 15);
  487.             printf("Enter your choice:");
  488.             scanf("%d", &choice);
  489.             switch (choice)
  490.             {
  491.                 case 1: doc_pat_menu();
  492.                         break;
  493.                 case 2: doc_app_menu();
  494.                         break;
  495.                 case 3: return;
  496.                 case 4: exit(0);
  497.  
  498.             }
  499.         }
  500.     }
  501.     while (choice <1  ||  choice > 4);
  502. }
  503.  
  504. /*--------------------------Reception Menu---------------------------*/
  505. void rec_menu()
  506. {
  507.     do
  508.     {
  509.         while(1)
  510.         {
  511.             system("cls");
  512.             gotoxy(25, 8);
  513.             printf("----------Reception Menu----------");
  514.             gotoxy(25, 10);
  515.             printf("1. Patient\n");
  516.             gotoxy(25, 11);
  517.             printf("2. Appointment\n");
  518.             gotoxy(25, 12);
  519.             printf("3. Logout");
  520.             gotoxy(25, 13);
  521.             printf("4. Exit");
  522.  
  523.             gotoxy(25, 14);
  524.             printf("Enter your choice:");
  525.             scanf("%d", &choice);
  526.                 if (choice < 1 || choice > 2)
  527.                 {
  528.                     gotoxy(25, 16);
  529.                     printf("Invalid Entry\n");
  530.                     gotoxy(25, 17);
  531.                     printf("Please try again!\n");
  532.                 }
  533.             switch (choice)
  534.             {
  535.                 case 1: rec_pat_menu();
  536.                         break;
  537.                 case 2: rec_app_menu();
  538.                         break;
  539.                 case 3: return;
  540.                 case 4: exit(0);
  541.             }
  542.         }
  543.     }
  544.     while (choice <1  ||  choice > 2);
  545. }
  546. void doc_pat_menu()
  547. {
  548.     do
  549.     {
  550.         while(1)
  551.         {
  552.             system("cls");
  553.             gotoxy(25, 10);
  554.             printf("1. Search Patient\n");
  555.             gotoxy(25, 11);
  556.             printf("2. View Patient\n");
  557.             gotoxy(25, 12);
  558.             printf("3. Back\n");
  559.  
  560.             gotoxy(25, 14);
  561.             printf("Enter your choice:");
  562.             scanf("%d", &choice);
  563.                 if ((choice <1  ||  choice > 2))
  564.                 {
  565.                     gotoxy(25, 16);
  566.                     printf("Invalid Entry\n");
  567.                     gotoxy(25, 17);
  568.                     printf("Please try again!\n");
  569.                 }
  570.             switch (choice)
  571.             {
  572.                 case 1: search_pat();
  573.                         break;
  574.                 case 2: view_pat();
  575.                         break;
  576.                 case 3: return;
  577.             }
  578.         }
  579.     }
  580. while (choice <1  ||  choice > 2);
  581. }
  582.  
  583. void doc_app_menu()
  584. {
  585.     do
  586.     {
  587.         while(1)
  588.         {
  589.             system("cls");
  590.             gotoxy(25, 10);
  591.             printf("1. Search Appointment\n");
  592.             gotoxy(25, 11);
  593.             printf("2. View Appointment\n");
  594.             gotoxy(25, 12);
  595.             printf("3. Back\n");
  596.  
  597.             gotoxy(25, 14);
  598.             printf("Enter your choice:");
  599.             scanf("%d", &choice);
  600.                 if (choice <1 || choice > 2)
  601.                 {
  602.                     gotoxy(25, 16);
  603.                     printf("Invalid Entry\n");
  604.                     gotoxy(25, 17);
  605.                     printf("Please try again!\n");
  606.                 }
  607.             switch (choice)
  608.             {
  609.                 case 1: search_app();
  610.                         break;
  611.                 case 2: view_app();
  612.                         break;
  613.                 case 3: return;
  614.             }
  615.         }
  616.     }
  617.     while (choice <1  ||  choice > 2);
  618. }
  619.  
  620. void rec_pat_menu()
  621. {
  622.     do
  623.     {
  624.         while(1)
  625.         {
  626.             system("cls");
  627.             gotoxy(25, 8);
  628.             printf("1. Add New Patient\n");
  629.             gotoxy(25, 9);
  630.             printf("2. View Patient\n");
  631.             gotoxy(25, 10);
  632.             printf("3. Search Patient\n");
  633.             gotoxy(25, 11);
  634.             printf("4. Delete Patient\n");
  635.             gotoxy(25, 12);
  636.             printf("5. Modify Patient\n");
  637.             gotoxy(25, 13);
  638.             printf("6. Back\n");
  639.  
  640.             gotoxy(25, 15);
  641.             printf("Enter your choice:");
  642.             fflush(stdin);
  643.             scanf("%d", &choice);
  644.                 if ((choice <1  ||  choice > 5))
  645.                 {
  646.                     gotoxy(25, 17);
  647.                     printf("Invalid Entry\n");
  648.                     gotoxy(25, 18);
  649.                     printf("Please try again!\n");
  650.                 }
  651.             switch (choice)
  652.             {
  653.                 case 1: add_new_pat();
  654.                         break;
  655.                 case 2: view_pat();
  656.                         break;
  657.                 case 3: search_pat();
  658.                         break;
  659.                 case 4: delete_pat();
  660.                         break;
  661.                 case 5: modify_pat();
  662.                         break;
  663.                 case 6: return;
  664.             }
  665.  
  666.         }
  667.     }
  668.     while ((choice <1  ||  choice > 5));
  669. }
  670.  
  671. void rec_app_menu()
  672. {
  673.     do
  674.     {
  675.         while(1)
  676.         {
  677.             system("cls");
  678.             gotoxy(25, 8);
  679.             printf("1. Add New Appointment\n");
  680.             gotoxy(25, 9);
  681.             printf("2. View Appointment\n");
  682.             gotoxy(25, 10);
  683.             printf("3. Search Appointment\n");
  684.             gotoxy(25, 11);
  685.             printf("4. Delete Appointment\n");
  686.             gotoxy(25, 12);
  687.             printf("5. Modify Appointment\n");
  688.             gotoxy(25 ,13);
  689.             printf("6. Back\n");
  690.  
  691.             gotoxy(25, 15);
  692.             printf("Enter your choice:");
  693.             fflush(stdin);
  694.             scanf("%d", &choice);
  695.                 if ((choice <1 || choice > 6))
  696.                 {
  697.                     gotoxy(25, 16);
  698.                     printf("Invalid Entry\n");
  699.                     gotoxy(25, 17);
  700.                     printf("Please try again!\n");
  701.                 }
  702.             switch (choice)
  703.             {
  704.                 case 1: add_app();
  705.                         break;
  706.                 case 2: view_app();
  707.                         break;
  708.                 case 3: search_app();
  709.                         break;
  710.                 case 4: delete_app();
  711.                         break;
  712.                 case 5: modify_app();
  713.                         break;
  714.                 case 6: return;
  715.             }
  716.         }
  717.     }
  718.     while ((choice <1 || choice > 6));
  719. }
  720.  
  721. //Add new patient
  722. int add_new_pat()               // Store patient details
  723. {
  724.     char selection = 'Y';
  725.  
  726.     FILE*fp;
  727.     fp = fopen("patient.txt", "a");
  728.  
  729.         while (selection = 'Y')
  730.         {
  731.             system("cls");
  732.             fflush(stdin);
  733.             getPatientName();
  734.             getPatientID();
  735.             getGender();
  736.             getAge();
  737.             getContactNum();
  738.             getIcNum();
  739.  
  740.             fprintf(fp, "%s>\t\t%s\t%s\t%s\t%s\t%s\n", p1.pat_ID, p1.pat_name, p1.gender, p1.age, p1.contact_num, p1.ic_num);
  741.             printf("\nDo You Want To Add Another Patient's Details? (Y/N):");
  742.             fflush(stdin);
  743.             selection = getchar();
  744.  
  745.                 if (toupper(selection) != 'Y')
  746.                     {
  747.                         fclose(fp);
  748.                         rec_pat_menu();
  749.                     }
  750.         }
  751. }
  752.  
  753.  
  754. //View all patient details
  755. void view_pat()
  756. {
  757.     int length = 0;
  758.  
  759.     FILE*fp;
  760.     fp = fopen("patient.txt", "r");
  761.  
  762.     system("cls");
  763.     if (fp == NULL)
  764.     {
  765.         printf("File Cannot Open!\n");
  766.         system("pause");
  767.         rec_pat_menu();
  768.  
  769.     }
  770.     else
  771.     {
  772.         while (1)
  773.         {
  774.             fscanf(fp, "%s", p1.pat_ID);
  775.                 if(feof(fp))
  776.                     break;
  777.                     length = strlen(p1.pat_ID);
  778.                     p1.pat_ID[length - 1] = '\0';
  779.                     printf("Patient ID\t:%s\n", p1.pat_ID);
  780.                     fscanf(fp, "%s", p1.pat_name);
  781.                     printf("Patient Name\t:%s\n", p1.pat_name);
  782.                     fscanf(fp, "%s", p1.gender);
  783.                     printf("Gender\t\t:%s\n", p1.gender);
  784.                     fscanf(fp, "%s", p1.age);
  785.                     printf("Age\t\t:%s\n", p1.age);
  786.                     fscanf(fp, "%s", p1.contact_num);
  787.                     printf("Contact Number\t:%s\n", p1.contact_num);
  788.                     fscanf(fp, "%s", p1.ic_num);
  789.                     printf("IC Number\t:%s\n\n", p1.ic_num);
  790.         };
  791.         fclose(fp);
  792.         system("pause");
  793.         return;
  794.     }
  795. }
  796.  
  797. //Search patient
  798. void search_pat()
  799. {
  800.     int check=0;
  801.  
  802.     FILE*fp;
  803.     fp = fopen("patient.txt", "r");
  804.  
  805.         if(fp==NULL)
  806.         {
  807.             printf("Error");
  808.             exit(1);
  809.         }
  810.         else
  811.         {
  812.             char cont = 'n';
  813.                 do
  814.                 {
  815.                     check = find_pat(fp);
  816.                     printf("Do you want to search another patient? (Y/N):");
  817.                     scanf("%c",&cont);
  818.  
  819.                 }
  820.                 while(cont == 'y' || cont == 'Y');
  821.         }
  822.     fclose(fp);
  823.     system("pause");
  824.     return;
  825. }
  826.  
  827. //Delete patient
  828. void delete_pat()
  829. {
  830.     FILE *fp;
  831.     fp = fopen("patient.txt", "r");
  832.  
  833.         if(fp==NULL)
  834.         {
  835.             printf("Error!");
  836.             exit(1);
  837.         }
  838.         else
  839.         {
  840.             char confirm;
  841.             int line=0;
  842.             line = find_pat(fp);
  843.             rewind(fp);
  844.                 if(line != -1)
  845.                 {
  846.                     printf("\nConfirm Delete? (Y/N):");
  847.                     confirm = getchar();
  848.                         if(confirm == 'Y' || confirm == 'y')
  849.                         {
  850.                             char words[100];
  851.                             char *buffer;
  852.                             char *ptr;
  853.                             int read_line = 0;
  854.                             char user_input[100];
  855.                             int done =0;
  856.  
  857.                             buffer=(char *)malloc(1000*sizeof(char));
  858.                             memset(buffer,0,1000*sizeof(char));
  859.                             ptr=buffer;
  860.  
  861.                             strcat(p1.pat_ID,"\n");
  862.                             while(fgets(words, 100, fp) != NULL)
  863.                             {
  864.                                 read_line ++;
  865.                                     if(read_line != line)
  866.                                     {
  867.                                         strcpy(ptr, words);
  868.                                         ptr +=strlen(words);
  869.                                     }
  870.                             }
  871.                             fclose(fp);
  872.  
  873.                             fp=fopen("patient.txt","w");
  874.                             fprintf(fp, "%s", buffer);
  875.                             fclose(fp);
  876.  
  877.                     }
  878.              }
  879.         }
  880.     system("pause");
  881. }
  882.  
  883. //Modify patient
  884. void modify_pat()
  885. {
  886.     FILE *fp;
  887.     fp = fopen("patient.txt", "r");
  888.  
  889.         if(fp==NULL)
  890.         {
  891.             exit(1);
  892.             printf("File cannot open");
  893.         }
  894.         else
  895.         {
  896.             char confirm;
  897.             int line=0;
  898.  
  899.             line = find_pat(fp);
  900.             rewind(fp);
  901.  
  902.             if(line != -1)
  903.             {
  904.                 printf("\nConfirm Edit?(Y/N):");
  905.                 confirm = getchar();
  906.                     if(confirm == 'Y' || confirm == 'y')
  907.                         {
  908.                             char words[1024];
  909.                             char *buffer;
  910.                             char *ptr;
  911.                             int read_line = 0;
  912.                             int done =0;
  913.  
  914.  
  915.                             buffer=(char *)malloc(1000*sizeof(char));
  916.                             memset(buffer,0,1000*sizeof(char));
  917.                             ptr=buffer;
  918.  
  919.                             strcat(p1.pat_ID,"\n");
  920.                             while(fgets(words, 1024, fp) != NULL)
  921.                             {
  922.                                 read_line ++;
  923.                                     if(read_line != line)
  924.                                         {
  925.                                             strcpy(ptr, words);
  926.                                             ptr +=strlen(words);
  927.                                         }
  928.                                         else if(read_line == line)
  929.                                         {
  930.                                             char newline[1024];
  931.                                             system("cls");
  932.                                             fflush(stdin);
  933.                                             getPatientName();
  934.                                             getPatientID();
  935.                                             getGender();
  936.                                             getAge();
  937.                                             getContactNum();
  938.                                             getIcNum();
  939.  
  940.                                             strcpy(newline,p1.pat_ID);
  941.                                             strcat(newline,">");
  942.                                             strcat(newline,"\t");
  943.                                             strcat(newline,"\t");
  944.                                             strcat(newline,p1.pat_name);
  945.                                             strcat(newline,"\t");
  946.                                             strcat(newline,p1.gender);
  947.                                             strcat(newline,"\t");
  948.                                             strcat(newline,p1.age);
  949.                                             strcat(newline,"\t");
  950.                                             strcat(newline,p1.contact_num);
  951.                                             strcat(newline,"\t");
  952.                                             strcat(newline,p1.ic_num);
  953.                                             strcat(newline,"\n");
  954.  
  955.                                             strcpy(ptr, newline);
  956.                                             ptr +=strlen(newline);
  957.  
  958.                                             printf("Modify is completed.");
  959.                                         }
  960.  
  961.                                     }
  962.                                         fclose(fp);
  963.  
  964.                                         fp=fopen("patient.txt","w");
  965.                                         fprintf(fp, "%s", buffer);
  966.                                         fclose(fp);
  967.                             }
  968.  
  969.             }
  970.         }
  971.  
  972.  
  973.     system("pause");
  974. }
  975.  
  976. //Add appointment
  977. int add_app()
  978. {
  979.     int line = 0;
  980.  
  981.     FILE*fp;
  982.     FILE*fp1;
  983.     fp=fopen("patient.txt","r");
  984.  
  985.         if(fp=NULL)
  986.         {
  987.             printf("Error!");
  988.             exit(1);
  989.         }
  990.         else
  991.         {
  992.             line = find_pat(fp);
  993.             char cont = 'Y';
  994.                 do
  995.                 {
  996.                     if(line != -1)
  997.                     {
  998.                         fp1=fopen("appointment.txt","a");
  999.                         char cont = 'y';
  1000.  
  1001.                         fflush(stdin);
  1002.                         getAppType();
  1003.                         getDocName();
  1004.                         getAppDate();
  1005.                         getAppTime();
  1006.                         getRoom();
  1007.  
  1008.                         printf("Patient Name: %s",p1.pat_name);
  1009.                         printf("Patient ID: %s", p1.pat_ID);
  1010.                         printf("Appointment Type: %s",p1.app_type);
  1011.                         printf("Doctor Name: %s",p1.doc_name);
  1012.                         printf("Appointment Date: %s",p1.app_date);
  1013.                         printf("Appointment Time: %s",p1.app_time);
  1014.                         printf("Room: %s",p1.room);
  1015.  
  1016.                         printf("Confirm Add?\n");
  1017.                             if(cont == 'y' || cont == 'Y')
  1018.                             {
  1019.                                 fprintf(fp1, "%s>\t%s\t\t%s\t%s\t%s\t%s\t%s\n",p1.pat_ID,p1.pat_name,p1.app_type, p1.doc_name, p1.app_date, p1.app_time, p1.room);
  1020.                             }
  1021.                             fclose(fp1);
  1022.                             return 0;
  1023.                     }
  1024.                     else
  1025.                     {
  1026.                         printf("ID not detected\n");
  1027.                         system("pause");
  1028.                         return;
  1029.                     }
  1030.                 }
  1031.                 while(cont == 'y' || cont == 'Y');
  1032.             }
  1033.  
  1034.         return -1;
  1035. }
  1036.  
  1037. //View all appointment details
  1038. void view_app()
  1039. {
  1040.     int length = 0;
  1041.  
  1042.     FILE*fp1;
  1043.     system("cls");
  1044.     fp1 = fopen("appointment.txt", "r");
  1045.     if (fp1 == NULL)
  1046.         {
  1047.             printf("File Cannot Open!\n");
  1048.             system("pause");
  1049.             rec_app_menu();
  1050.  
  1051.         }
  1052.     else
  1053.         {
  1054.             while (1)
  1055.                 {
  1056.                     fscanf(fp1, "%s", p1.pat_ID);
  1057.                         if(feof(fp1))
  1058.                                 break;
  1059.             length = strlen(p1.pat_ID);
  1060.             p1.pat_ID[length - 1] = '\0';
  1061.             printf("Patient ID\t\t:%s\n", p1.pat_ID);
  1062.             fscanf(fp1, "%s", p1.pat_name);
  1063.             printf("Patient Name\t\t:%s\n", p1.pat_name);
  1064.             fscanf(fp1, "%s", p1.app_type);
  1065.             printf("Appointment Type\t:%s\n", p1.app_type);
  1066.             fscanf(fp1, "%s", p1.doc_name);
  1067.             printf("Doctor Name\t\t:%s\n", p1.doc_name);
  1068.             fscanf(fp1, "%s", p1.app_date);
  1069.             printf("Date\t\t\t:%s\n", p1.app_date);
  1070.             fscanf(fp1, "%s", p1.app_time);
  1071.             printf("Time\t\t\t:%s\n", p1.app_time);
  1072.             fscanf(fp1,"%s",p1.room);
  1073.             printf("Room\t\t\t:%s\n\n",p1.room);
  1074.         } ;
  1075.         fclose(fp1);
  1076.         system("pause");
  1077.         return;
  1078.     }
  1079. }
  1080.  
  1081. //Search appointment
  1082. void search_app()
  1083. {
  1084.     FILE*fp1;
  1085.     int check = 0;
  1086.     fp1 = fopen("appointment.txt", "r");
  1087.         if(fp1==NULL)
  1088.             {
  1089.                 printf("Error");
  1090.                 exit(1);
  1091.             }
  1092.         else
  1093.             {
  1094.             char cont = 'n';
  1095.                 do
  1096.                     {
  1097.                         check = find_app(fp1);
  1098.                         printf("Do you want to search again? (Y/N): ");
  1099.                         scanf("%c",&cont);
  1100.  
  1101.                     }
  1102.                     while(cont == 'y' || cont == 'Y');
  1103.             }
  1104.     fclose(fp1);
  1105.     system("pause");
  1106.     return;
  1107. }
  1108.  
  1109. //delete appointment
  1110. void delete_app()
  1111. {
  1112.     FILE *fp1;
  1113.     fp1 = fopen("appointment.txt", "r");
  1114.         if(fp1==NULL)
  1115.             {
  1116.                 printf("Error!");
  1117.                 exit(1);
  1118.             }
  1119.         else
  1120.             {
  1121.                 char confirm;
  1122.                 int line=0;
  1123.                 line = find_app(fp1);
  1124.                 rewind(fp1);
  1125.                     if(line != -1)
  1126.                         {
  1127.                             printf("\nConfirm Delete?");
  1128.                             confirm = getchar();
  1129.                                 if(confirm == 'Y' || confirm == 'y')
  1130.                                     {
  1131.                                         char words[100];
  1132.                                         char *buffer;
  1133.                                         char *ptr;
  1134.                                         int read_line = 0;
  1135.                                         char user_input[100];
  1136.                                         int done =0;
  1137.  
  1138.                                 buffer=(char *)malloc(1000*sizeof(char));
  1139.                                 memset(buffer,0,1000*sizeof(char));
  1140.                                 ptr=buffer;
  1141.  
  1142.  
  1143.                                 strcat(p1.pat_ID,"\n");
  1144.  
  1145.                                     while(fgets(words, 100, fp1) != NULL)
  1146.                                         {
  1147.                                             read_line ++;
  1148.                                                 if(read_line != line)
  1149.                                                     {
  1150.                                                         strcpy(ptr, words);
  1151.                                                         ptr +=strlen(words);
  1152.                                                     }
  1153.                                         }
  1154.                                             fclose(fp1);
  1155.  
  1156.                                             fp1=fopen("appointment.txt","w");
  1157.                                             fprintf(fp1, "%s", buffer);
  1158.                                             fclose(fp1);
  1159.  
  1160.                         }
  1161.              }
  1162.         }
  1163.  
  1164.     system("pause");
  1165. }
  1166.  
  1167. //Modify appointment
  1168. void modify_app()
  1169. {
  1170.     FILE *fp1;
  1171.     fp1 = fopen("appointment.txt", "r");
  1172.  
  1173.         if(fp1==NULL)
  1174.         {
  1175.             exit(1);
  1176.             printf("File cannot open");
  1177.         }
  1178.         else
  1179.         {
  1180.             char confirm;
  1181.             int line=0;
  1182.  
  1183.             line = find_app(fp1);
  1184.             rewind(fp1);
  1185.  
  1186.             if(line != -1)
  1187.             {
  1188.                         printf("\nConfirm Edit?");
  1189.                         confirm = getchar();
  1190.                         if(confirm == 'Y' || confirm == 'y')
  1191.                         {
  1192.                             char words[1024];
  1193.                             char *buffer;
  1194.                             char *ptr;
  1195.                             int read_line = 0;
  1196.                             int done =0;
  1197.  
  1198.                             buffer=(char *)malloc(1000*sizeof(char));
  1199.                             memset(buffer,0,1000*sizeof(char));
  1200.                             ptr=buffer;
  1201.  
  1202.                             strcat(p1.pat_ID,"\n");
  1203.                                 while(fgets(words, 1024, fp1) != NULL)
  1204.                                 {
  1205.                                     read_line ++;
  1206.                                         if(read_line != line)
  1207.                                         {
  1208.                                             strcpy(ptr, words);
  1209.                                             ptr +=strlen(words);
  1210.                                         }
  1211.                                         else if(read_line == line)
  1212.                                         {
  1213.                                             char newline[1024];
  1214.  
  1215.                                             system("cls");
  1216.                                             fflush(stdin);
  1217.                                             getPatientName();
  1218.                                             getPatientID();
  1219.                                             getAppType();
  1220.                                             getDocName();
  1221.                                             getAppDate();
  1222.                                             getAppTime();
  1223.                                             getRoom();
  1224.  
  1225.                                             strcpy(newline,p1.pat_ID);
  1226.                                             strcat(newline,">");
  1227.                                             strcat(newline,"\t");
  1228.                                             strcat(newline,"\t");
  1229.                                             strcat(newline,p1.pat_name);
  1230.                                             strcat(newline,"\t");
  1231.                                             strcat(newline,p1.app_type);
  1232.                                             strcat(newline,"\t");
  1233.                                             strcat(newline,p1.doc_name);
  1234.                                             strcat(newline,"\t");
  1235.                                             strcat(newline,p1.app_date);
  1236.                                             strcat(newline,"\t");
  1237.                                             strcat(newline,p1.app_time);
  1238.                                             strcat(newline,"\t");
  1239.                                             strcat(newline,p1.room);
  1240.                                             strcat(newline,"\n");
  1241.  
  1242.                                             strcpy(ptr, newline);
  1243.                                             ptr +=strlen(newline);
  1244.  
  1245.                                             printf("Modify is completed.");
  1246.                                         }
  1247.  
  1248.                                     }
  1249.                                         fclose(fp1);
  1250.  
  1251.                                         fp1=fopen("appointment.txt","w");
  1252.                                         fprintf(fp1, "%s", buffer);
  1253.                                         fclose(fp1);
  1254.  
  1255.                     }
  1256.  
  1257.             }
  1258.         }
  1259.     system("pause");
  1260. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement