fork download
  1. #include <stdio.h>
  2.  
  3. struct user_info {
  4. int id_num;
  5. int password;
  6. };
  7.  
  8. struct user_info user[16];
  9.  
  10. int print_seats(int s_array[3][5]);
  11. int reserve(int s_array[3][5], int row, int col);
  12. int cancle(int s_array[3][5], int row, int col);
  13. int load_user_info();
  14. int check_login(int id, int passwd);
  15.  
  16. int main() {
  17. int id, passwd;
  18. int s[3][5] = { 0 };
  19. int select;
  20. load_user_info();
  21. do {
  22. printf("로그인을 하세요.\n");
  23. printf("id_num : ");
  24. scanf("%d", &id);
  25. printf("password : ");
  26. scanf("%d", &passwd);
  27. printf("%d",check_login(id, passwd));
  28.  
  29. if (check_login(id, passwd) == id) {
  30. printf("로그인 성공\n");
  31. }
  32. else if (check_login(id, passwd) == -1) {
  33. printf("아이디가 존재하지 않습니다.\n");
  34. }
  35. else if (check_login(id, passwd) == -2) {
  36. printf("아이디는 맞으나 패스워드가 틀렸습니다.\n");
  37. }
  38. } while (check_login(id, passwd) != id);
  39.  
  40.  
  41.  
  42.  
  43. do {
  44. load_user_info();
  45. printf("1---좌석확인하기\n");
  46. printf("2--예약하기\n");
  47. printf("3--예약취소하기\n");
  48. printf("4--종료하기\n");
  49. printf("메뉴를 선택하시요:");
  50. scanf("%d", &select);
  51.  
  52. if (select == 1)
  53. {
  54. printf("선택된 메뉴=좌석확인하기\n\n");
  55. print_seats(s);
  56. }
  57.  
  58. else if (select == 2)
  59. {
  60. int i, j;
  61. printf("선택된 메뉴=예약하기\n\n");
  62. printf("예약을 원하는 자리는?(행 열)?");
  63. scanf("%d %d", &i, &j);
  64. reserve(s, i, j);
  65. }
  66.  
  67. else if (select == 3)
  68. {
  69. int i, j;
  70. printf("선택된 메뉴=예약취소하기\n\n");
  71. printf("예약취소를 원하는 자리는(행 열)?\n");
  72. scanf("%d %d", &i, &j);
  73. cancle(s, i, j);
  74. }
  75.  
  76. } while (select != 4);
  77.  
  78. printf("선택된 메뉴=종료하기\n\n");
  79. printf("이용해 주셔서 감사합니다.\n\n");
  80.  
  81. return 0;
  82. }
  83.  
  84. int print_seats(int s_array[3][5])
  85. {
  86. int i, j, k;
  87. printf(" |");
  88. for (k = 0; k < 5; k++) {
  89. printf(" %d", k);
  90. }
  91. printf("\n");
  92. printf(" ---------------\n");
  93. for (i = 0; i < 3; i++) {
  94. printf(" %2d|", i);
  95. for (j = 0; j < 5; j++) {
  96. printf("%2d", s_array[i][j]);
  97. }
  98. printf("\n");
  99. }
  100. return 0;
  101. }
  102.  
  103. int reserve(int s_array[][5], int row, int col)
  104. {
  105. if (s_array[row][col] == 0) {
  106. s_array[row][col] = 1;
  107. printf("예약이 완료되었습니다.\n");
  108. print_seats(s_array);
  109. return 1;
  110. }
  111. else if (s_array[row][col] == 1) {
  112. printf("이미 예약된 자리입니다.\n");
  113. return -1;
  114. }
  115. else {
  116. printf("행은 0~2, 열은 0~4사이의 숫자만 입력하세요\n");
  117. }
  118. return 0;
  119. }
  120.  
  121. int cancle(int s_array[][5], int row, int col)
  122. {
  123. if (s_array[row][col] == 1) {
  124. s_array[row][col] = 0;
  125. printf("예약이 취소되었습니다.\n");
  126. print_seats(s_array);
  127. return 1;
  128. }
  129. else if (s_array[row][col] == 0) {
  130. printf("이미 취소된 자리입니다.\n");
  131. return -1;
  132. }
  133. else {
  134. printf("행은 0~2, 열은 0~4사이의 숫자만 입력하세요\n");
  135. }
  136. return 0;
  137. }
  138.  
  139.  
  140.  
  141. int load_user_info() {
  142. for (int i = 0; i < 16; i++) {
  143. user[i].id_num = 10 + (i * 10);
  144. user[i].password = 1004 + (i * 1000);
  145. }
  146.  
  147. return 0;
  148. }
  149.  
  150. int check_login(int id, int passwd) {
  151. int low, high, middle;
  152. low = 0;
  153. high = 15;
  154. while (low <= high) {
  155. middle = (low + high) / 2;
  156. if (id == user[middle].id_num) {
  157.  
  158. middle = (low + high) / 2;
  159. if (passwd == user[middle].password) {
  160. }
  161.  
  162. else if (passwd > user[middle].password) {
  163.  
  164. low = middle + 1;
  165. }
  166. else {
  167. high = middle + 1;
  168. }
  169. }
  170. else if (id > user[middle].id_num) {
  171. low = middle + 1;
  172. }
  173.  
  174. else {
  175. high = middle - 1;
  176. }
  177. }
  178.  
  179.  
  180. return 0;
  181.  
  182.  
  183. }
Runtime error #stdin #stdout 0.01s 5504KB
stdin
Standard input is empty