fork download
  1. #include<stdio.h>
  2. #include "readline.h"
  3.  
  4. #define NAME_LEN 25
  5. #define MAX_PARTS 100
  6.  
  7. struct part {
  8. int number;
  9. char name[NAME_LEN+1];
  10. int on_hand;
  11. };
  12.  
  13.  
  14. int find_part(struct part inv[] , int number , int num_parts);
  15. void insert(struct part inv[] , int num_parts);
  16. void search(struct part inv[] , int num_parts);
  17. void update(struct part inv[] , int num_parts);
  18. void print(struct part inv[] , int num_parts);
  19.  
  20. int main(void)
  21. {
  22. char code;
  23.  
  24. struct part inv[MAX_PARTS];
  25.  
  26. int num_parts=0;
  27.  
  28. for(;;) {
  29. printf("Enter operation code: ");
  30. scanf(" %c" , &code);
  31. while( getchar() !='\n')
  32. ;
  33.  
  34. switch(code) {
  35. case 'i': insert(inv, num_parts); num_parts++;
  36. break;
  37. case 's': search(inv, num_parts);
  38. break;
  39. case 'u': update(inv, num_parts);
  40. break;
  41. case 'p': print(inv, num_parts);
  42. break;
  43. case 'q': return 0;
  44. default: printf("Illegal code\n");
  45. }
  46. printf("\n");
  47. }
  48. }
  49.  
  50. int find_part( struct part inv[] , int number , int num_parts)
  51. {
  52. int i;
  53.  
  54. for(i=0; i<num_parts; i++)
  55. if( inv[i].number == number)
  56. return i;
  57.  
  58. return -1;
  59. }
  60. void insert( struct part inv[] , int num_parts )
  61. {
  62. int part_number , i;
  63.  
  64. printf("num_parts: %d" , num_parts);
  65.  
  66. if (num_parts == MAX_PARTS) {
  67. printf("Database is full; Can't add more parts. \n");
  68. return;
  69. }
  70.  
  71. printf("Enter part number: ");
  72. scanf("%d" , &part_number);
  73.  
  74. if( find_part( inv , part_number , num_parts ) >=0 ) {
  75. printf("Part already exists. \n");
  76. return;
  77. }
  78.  
  79. inv[num_parts].number = part_number;
  80. printf("Enter part name: ");
  81. read_line(inv[num_parts].name , NAME_LEN);
  82. printf("Enter quantity on hand: ");
  83. scanf("%d" , &inv[num_parts].on_hand);
  84.  
  85. }
  86.  
  87. void search(struct part inv[] , int num_parts)
  88. {
  89. int i , number;
  90.  
  91. printf("Enter part number: ");
  92. scanf("%d" , &number);
  93.  
  94. i = find_part(inv , number , num_parts);
  95.  
  96. if( i >=0 ){
  97. printf(" Part name : %s \n " , inv[i].name);
  98. printf(" Quantity on hand: %d \n" , inv[i].on_hand);
  99. } else
  100. printf("Part not found. \n ");
  101. }
  102.  
  103. void update(struct part inv[] , int num_parts)
  104. {
  105. int i , number , change;
  106.  
  107. printf(" Enter part number: ");
  108. scanf("%d" , &number);
  109.  
  110. i= find_part( inv , number , num_parts);
  111. if(i>=0) {
  112. printf(" Enter change in quantity on hand: ");
  113. scanf("%d" , &change);
  114. inv[i].on_hand += change;
  115. } else
  116. printf("Part not found");
  117. }
  118.  
  119. void print(struct part inv[] , int num_parts)
  120. {
  121. int i ;
  122.  
  123. printf(" Part Number Part Name "
  124. "Quantity on Hand\n");
  125. for(i=0; i < num_parts; i++)
  126. printf("%7d %-25s%11d\n" , inv[i].number , inv[i].name , inv[i].on_hand);
  127. }
  128.  
  129.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.c:2:22: fatal error: readline.h: No such file or directory
compilation terminated.
stdout
Standard output is empty