fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. //Method Declaration
  6.  
  7. void enter_name();
  8. void find_name();
  9. void find_room();
  10. void checkout_guest();
  11. void view_bookings();
  12.  
  13. //Instance Field Declaration
  14. FILE* view;
  15. FILE *fp;
  16. FILE* enter;
  17. char admin_entry[20] = {'y'};
  18. char user_entry[20] = {'y'};
  19.  
  20. //structure defined to store name, room, bf and wifi required
  21. struct hotel
  22. {
  23. char name[20];
  24. char room[20];
  25. char Gender[20];
  26. char day[20];
  27.  
  28. }h;
  29.  
  30. //main method
  31. int main(){
  32.  
  33. int a,b,c;
  34.  
  35. //Welcome screen
  36.  
  37. printf("\n\n\t\t*************************************************\n");
  38. printf("\t\t* *\n");
  39. printf("\t\t* ----------------------------- *\n");
  40. printf("\t\t* WELCOME TO HOTEL Mgmt *\n");
  41. printf("\t\t* ----------------------------- *\n");
  42. printf("\t\t* *\n");
  43. printf("\t\t*************************************************\n\n\n");
  44.  
  45. printf("\n>>>>>>>>>>>>\tFor ADMIN access enter --> 1 \t\t\t<<<<<<<<<<<<");
  46. printf("\n>>>>>>>>>>>>\tFor USER access enter --> 2 \t\t\t<<<<<<<<<<<<");
  47. printf("\n>> ");
  48. scanf("%d",&a);
  49.  
  50. switch(a){
  51. case 1:{
  52. char pass[10];
  53. char filepass[10];
  54. int i;
  55.  
  56. FILE *passw;
  57. passw = fopen("pass.txt","r");
  58.  
  59. //admins password prompt
  60. printf("\n Hello admin!\n Please enter the password to continue --> ");
  61.  
  62. for(i=0; i<6; i++){
  63. scanf("%s",pass);
  64. fscanf(passw,"%s",filepass);
  65. if (strcmp(filepass,pass) == 0) {
  66. printf("\n\nAccess granted!\n");
  67. fclose(passw);
  68. break;
  69. }
  70. else{
  71. printf("\nIncorrect password, please try again.");
  72. printf("\nYou have %d trys left ",5-i-1);
  73. printf("\n\nEnter password >> ");
  74. }
  75. if(i==4){
  76. fclose(passw);
  77. return 0;
  78. }
  79.  
  80.  
  81. }
  82.  
  83. //re-entry if
  84. while(admin_entry[0] =='y'){
  85.  
  86. printf("\n>>>>>>>>>>>>\tTo VIEW booking requests --> 1 \t\t\t<<<<<<<<<<<<");
  87. printf("\n>>>>>>>>>>>>\tTo VIEW booked guests details --> 2 \t\t\t<<<<<<<<<<<<");
  88. printf("\n>>>>>>>>>>>>\tTo ENTER new guest --> 3 \t\t\t<<<<<<<<<<<<");
  89. printf("\n>>>>>>>>>>>>\tTo FIND room number of existing guest --> 4 \t<<<<<<<<<<<<");
  90. printf("\n>>>>>>>>>>>>\tTo FIND guest of occupied room --> 5 \t<<<<<<<<<<<<");
  91. printf("\n>>>>>>>>>>>>\tTo CHECKOUT room number of existing guest --> 6 <<<<<<<<<<<<\n");
  92. printf(">> ");
  93. scanf("%d",&b);
  94.  
  95. switch(b){
  96. case 1:{
  97. view_bookings();
  98. break;
  99. }
  100. case 2:{
  101. FILE* fpi;
  102. fpi = fopen("hotelnew.txt","r");
  103.  
  104. while(fscanf(fpi,"%s %s %s",h.name,h.room,h.day) != -1){
  105. fgets(h.Gender, 255, (FILE*)fpi);
  106. printf("%s %s %s %s \n",h.name,h.room,h.day,h.Gender);
  107. }
  108. break;
  109. }
  110. case 3:{
  111. enter_name();
  112. break;
  113. }
  114. case 4:{
  115. find_name();
  116. break;
  117. }
  118. case 5:{
  119. find_room();
  120. break;
  121. }
  122. case 6:{
  123. checkout_guest();
  124. break;
  125. }
  126. default:{
  127. printf("\n Wrong entry!");
  128. }
  129. }
  130. //enter again?
  131. printf("Would you like to continue? (y/n)\n");
  132. scanf("%s",admin_entry);
  133.  
  134. }
  135. if(strcmp(admin_entry,"n") == 0){
  136. printf("Exiting...\n");
  137. printf("\e[1;1H\e[2J");
  138. printf("\n >Exited<\n\n");
  139. //system("clear");
  140. return 0;
  141. }
  142. else{
  143. printf("Wrong entry!\nExiting...\n");
  144. return 0;
  145. }
  146. break;
  147. }
  148.  
  149.  
  150. case 2:{
  151. while(user_entry[0] =='y'){
  152. printf("\nHello user and welcome to Hotel!");
  153. printf("\n>>>>>>>>>>>>\tTo view available rooms --> 1 \t\t\t<<<<<<<<<<<<");
  154. printf("\n>>>>>>>>>>>>\tTo request booking of room --> 2 \t<<<<<<<<<<<<");
  155. printf("\n>> ");
  156. scanf("%d",&c);
  157. switch(c){
  158. case 1:{
  159. FILE* view;
  160. view = fopen("rooms.txt","r");
  161. printf("Available rooms are:\n");
  162. while(fscanf(view,"%s",h.room) != -1){
  163. printf("%s \n",h.room);
  164. }
  165. fclose(view);
  166. break;
  167. }
  168.  
  169. case 2:{
  170. printf("Enter your name: ");
  171. scanf("%s",h.name);
  172. printf("Enter room to book: ");
  173. scanf("%s",h.room);
  174. printf("Enter day (1/5): ");
  175. scanf("%s",h.day);
  176. printf("Enter Gender (Male /Female ): ");
  177. scanf("%s",h.Gender);
  178.  
  179. enter = fopen("bookings.txt","a");
  180.  
  181. fprintf(enter,"%s %s %s %s",h.name,h.room,h.day,h.Gender);
  182. fprintf(enter,"\n");
  183.  
  184. printf("Succesfully requested booking\n");
  185. fclose(enter);
  186.  
  187. }
  188. }
  189.  
  190. printf("Would you like to continue? (y/n)\n");
  191. scanf("%s",user_entry);
  192.  
  193. }
  194. if(strcmp(user_entry,"n") == 0){
  195. printf("Exiting...\n");
  196. printf("\e[1;1H\e[2J");
  197. printf("\n >Exited<\n\n");
  198. //system("clear");
  199. return 0;
  200. }
  201. else{
  202. printf("Wrong entry!\nExiting...\n");
  203. return 0;
  204. }
  205. break;
  206. }
  207. }
  208. }
  209.  
  210. //method declare to enter name
  211. void enter_name(){
  212.  
  213. FILE *tmp1;
  214. FILE *tmp2;
  215.  
  216. printf("\nEnter guest name --> ");
  217. scanf("%s",h.name);
  218. printf("\nEnter their room number --> ");
  219. scanf("%s",h.room);
  220. printf("\n Enter wifi plan (1GB/5GB) --> ");
  221. scanf("%s",h.day);
  222. printf("\nEnter if breakfast is included --> ");
  223. scanf("%s",h.Gender);
  224.  
  225. //entering guests
  226. fp = fopen("hotelnew.txt","a");
  227.  
  228. if( fp == NULL){
  229. printf("\nFile not found");
  230. exit(1);
  231. }
  232. else{
  233. fprintf(fp,"%s %s %s %s",h.name,h.room,h.day,h.Gender);
  234. printf("\nDone\n");
  235. }
  236. fprintf(fp,"\n");
  237.  
  238. //
  239. char remove_guest[20];
  240. strcpy(remove_guest,h.name);
  241. char remove_room[20];
  242. strcpy(remove_room,h.room);
  243.  
  244. //removing booking
  245. tmp1 = fopen("tmp1.txt","a");
  246. enter = fopen("bookings.txt","r");
  247.  
  248. while(fscanf(enter,"%s %s %s",h.name,h.room,h.day) != -1){
  249. fgetc(enter);
  250. fgets(h.Gender, 20, (FILE*)enter);
  251. if(strcmp(h.name,remove_guest) != 0){
  252. fprintf(tmp1,"%s %s %s %s",h.name,h.room,h.day,h.Gender);
  253. }
  254. }
  255. fclose(enter);
  256. fclose(tmp1);
  257. remove("bookings.txt");
  258. rename("tmp1.txt","bookings.txt");
  259. fclose(fp);
  260.  
  261. //removing room
  262. tmp2 = fopen("tmp2.txt","a");
  263. view = fopen("rooms.txt","r");
  264.  
  265.  
  266. while(fscanf(view,"%s",h.room) != -1){
  267. if(strcmp(h.room,remove_room) != 0){
  268. fprintf(tmp2,"%s",h.room);
  269. fprintf(tmp2,"\n");
  270. }
  271. }
  272. fclose(view);
  273. fclose(tmp2);
  274. remove("rooms.txt");
  275. rename("tmp2.txt","rooms.txt");
  276.  
  277.  
  278. fclose(fp);
  279. }
  280.  
  281. //method defined to find quest name
  282. void find_name(){
  283. char buffer[20];
  284. char entered_name[20];
  285. int guestFound =0;
  286.  
  287. printf("\nEnter guest name to find -->");
  288. scanf("%s",entered_name);
  289.  
  290. fp = fopen("hotelnew.txt","r");
  291. while(fscanf(fp,"%s %s %s",h.name,h.room,h.day) != -1){
  292. fgets(h.day, 255, (FILE*)fp);
  293. if(strcmp(h.name,entered_name) == 0){
  294. guestFound = 1;
  295. printf("\n Guest found!");
  296. printf("\n Name is %s",h.name);
  297. printf("\n Room number is %s",h.room);
  298. printf("\n WiFi plan is %s",h.day);
  299. printf("\n Breakfast included %s",h.Gender);
  300.  
  301. }
  302. }
  303. if(guestFound == 0){
  304. printf("\nGuest %s not found!\n", entered_name);
  305. }
  306. fclose(fp);
  307. }
  308.  
  309. //method definition for guest checkout
  310. void checkout_guest(){
  311. char buffer2[20];
  312. char checkout_name[20];
  313. char add_room[20];
  314.  
  315. FILE *tmp;
  316.  
  317. printf("Enter guest too checkout ");
  318. scanf("%s",checkout_name);
  319.  
  320. fp = fopen("hotelnew.txt","r");
  321. tmp = fopen("tmp.txt","w");
  322.  
  323. if(fp == NULL){
  324. printf("File not found");
  325. exit(1);
  326. }
  327. else{
  328. while(fscanf(fp,"%s %s %s",h.name,h.room,h.day) != -1){
  329. fgetc(fp);
  330. fgets(h.Gender, 20, (FILE*)fp);
  331. if(strcmp(h.name,checkout_name) != 0){
  332. fprintf(tmp,"%s %s %s %s",h.name,h.room,h.day,h.Gender);
  333. }
  334. else{
  335. strcpy(add_room,h.room);
  336. }
  337. }
  338. printf("Room checked out!");
  339. }
  340.  
  341. fclose(fp);
  342. fclose(tmp);
  343. remove("hotelnew.txt");
  344. rename("tmp.txt","hotelnew.txt");
  345.  
  346. //enter room back into available rooms list
  347. view = fopen("rooms.txt","a");
  348. printf(" add is %s",add_room);
  349. fprintf(view,"%s",add_room);
  350. fclose(view);
  351.  
  352. }
  353.  
  354. //method definition for finding rooms avalaible
  355. void find_room(){
  356. char buffer[20];
  357. char entered_room[20];
  358. int roomFound =0;
  359. FILE *fp;
  360. printf("\nEnter room number to find -->");
  361. scanf("%s",entered_room);
  362.  
  363. fp = fopen("hotelnew.txt","r");
  364. while(fscanf(fp,"%s %s %s",h.name,h.room,h.day) != -1){
  365. fgets(h.Gender, 255, (FILE*)fp);
  366. if(strcmp(h.room,entered_room) == 0){
  367. roomFound = 1;
  368. printf("\n Room found!");
  369. printf("\n Name is %s",h.name);
  370. printf("\n Room number is %s",h.room);
  371. printf("WiFi plan is %s",h.day);
  372. printf("\n Breakfast included %s",h.Gender);
  373. }
  374. }
  375. if(roomFound == 0){
  376. printf("\nRoom %s not found!\n", entered_room);
  377. }
  378. fclose(fp);
  379. }
  380.  
  381. //method defined to view bookings
  382. void view_bookings(){
  383.  
  384. enter = fopen("bookings.txt","r");
  385.  
  386. while(fscanf(enter,"%s %s %s",h.name,h.room,h.day) != -1){
  387. fgets(h.Gender, 255, (FILE*)enter);
  388. printf("%s %s %s %s \n",h.name,h.room,h.day,h.Gender);
  389. }
  390. }
  391.  
Success #stdin #stdout 0s 5312KB
stdin
10
aba
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
stdout

		*************************************************
		*                                               *
		*       -----------------------------           *
		*            WELCOME TO HOTEL Mgmt              *
		*       -----------------------------           *
		*                                               *
		*************************************************



>>>>>>>>>>>>	For ADMIN access enter --> 1 			<<<<<<<<<<<<
>>>>>>>>>>>>	For USER access enter --> 2 			<<<<<<<<<<<<
>>