Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.06 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. struct customerData {
  4. int ID;
  5. char Name[50];
  6. char LastName[50];
  7. char Email[50];
  8. char Phone[20];
  9. char Gender[2];
  10. };
  11.  
  12. void createFile();
  13. void addRecord();
  14. void loadRecord();
  15. void modifyRecord();
  16. void deleteRecord();
  17. void searchRecord();
  18. void exit();
  19.  
  20.  
  21. void main()
  22. {
  23. FILE *cfPtr;
  24. int Choice = 0;
  25. int MaxChoices = 7;
  26.  
  27. while (Choice < MaxChoices)
  28. {
  29. printf("\n\n");
  30. printf("--------------------------------- MAIN MENU ---------------------------------\n\n");
  31. printf(" Please Enter one of the following Choices\n\n");
  32. printf("--------------------------- Random File Processing --------------------------\n\n\n");
  33. printf("1 - Create a Random file\n"
  34. "2 - Add record inside the file\n"
  35. "3 - Search racord\n"
  36. "4 - Modify record\n"
  37. "5 - Load file\n"
  38. "6 - Delete Record\n"
  39. "7 - Exit program\n ");
  40. printf("-----------------------------------------------------------------------------");
  41. printf("\n\n");
  42.  
  43. // Print Your choices here
  44. scanf("%d", &Choice);
  45.  
  46. switch (Choice)
  47. {
  48. case 1:
  49. createFile();
  50. break;
  51.  
  52. case 2:
  53. addRecord();
  54. break;
  55.  
  56. case 3:
  57. searchRecord();
  58. break;
  59.  
  60. case 4:
  61. modifyRecord();
  62. break;
  63.  
  64. case 5:
  65. loadRecord();
  66. break;
  67.  
  68. case 6:
  69.  
  70. break;
  71.  
  72. case 7:
  73. exit();
  74. break;
  75. }
  76. }
  77. }
  78.  
  79. //Not in Menu
  80.  
  81.  
  82. bool FileExists(const char* name)
  83. {
  84. if (FILE *file = fopen(name, "r")) {
  85. fclose(file);
  86. return true;
  87. }
  88. else {
  89. return false;
  90. }
  91. }
  92. //Case 1 -----> Create Blank Document
  93. void createFile() {
  94.  
  95. if (FileExists("customer.dat"))
  96. {
  97. char Answer;
  98. printf("This Random File already exists!\n");
  99. printf("Write 'y' or 'Y' if you want to reset it\n");
  100. // if you ever wanted to get a character using scanf and the computer
  101. // skips over it, then flush the keyboard buffer
  102. fflush(stdin);
  103. scanf("%c", &Answer);
  104. if (Answer != 'Y' && Answer != 'y')
  105. {
  106. return;
  107. }
  108. }
  109.  
  110. int i;
  111. struct customerData blankCustomer = { 0, "", "", "", "", "" };
  112.  
  113. FILE *cfPtr;
  114.  
  115. if ((cfPtr = fopen("customer.dat", "w")) == NULL)
  116. printf("File could not be opened.\n");
  117. else {
  118. for (i = 1; i <= 1000; i++)
  119. fwrite(&blankCustomer,
  120. sizeof(struct customerData), 1, cfPtr);
  121.  
  122. fclose(cfPtr);
  123. printf("File was succesfully created!\n");
  124. }
  125. return;
  126. }
  127. //Case 2 -----> Add Record inside File
  128. void addRecord() {
  129. FILE *cfPtr;
  130. struct customerData customer;
  131.  
  132. if ((cfPtr = fopen("customer.dat", "r+")) == NULL)
  133. {
  134. printf("File could not be opened.\n");
  135. }
  136.  
  137. else {
  138. printf("Enter customer ID. Use numbers from 1 to 1000. Use 0 to exit this option:\n ");
  139. scanf("%d", &customer.ID);
  140.  
  141. /*while (customer.ID != 0) */ {
  142. printf("Enter first name: \n ");
  143. scanf("%s", &customer.Name);
  144.  
  145. printf("Enter last name: \n ");
  146. scanf("%s", &customer.LastName);
  147.  
  148. printf("Enter email: \n ");
  149. scanf("%s", &customer.Email);
  150.  
  151. printf("Enter phone number: \n ");
  152. scanf("%s", &customer.Phone);
  153.  
  154. printf("Enter gender(M or F): \n ");
  155. scanf("%s", &customer.Gender);
  156.  
  157. fseek(cfPtr, (customer.ID - 1) * sizeof(struct customerData), SEEK_SET);
  158.  
  159. //write the info one time in the document.
  160. fwrite(&customer, sizeof(struct customerData), 1, cfPtr);
  161. /*printf("Enter customer ID\n ? ");
  162. scanf("%d", &customer.ID);*/
  163. }
  164. }
  165.  
  166. fclose(cfPtr);
  167. printf("Saved succesfully in random file!\n");
  168.  
  169. return;
  170. }
  171.  
  172. //Case 3 -----> Search Record
  173.  
  174. void searchRecord()
  175. {
  176. int findID;
  177. FILE *cfPtr;
  178. struct customerData customer;
  179.  
  180. if ((cfPtr = fopen("customer.dat", "r+")) == NULL)
  181. {
  182. printf("File could not be opened.\n");
  183. }
  184. else
  185. {
  186. printf("Enter customer ID to upload records: \n ");
  187. scanf("%d", &findID);
  188. }
  189. fseek(cfPtr, (findID - 1) * sizeof(struct customerData),
  190. SEEK_SET);
  191. fread(&customer, sizeof(struct customerData), 1, cfPtr);
  192.  
  193. if (customer.ID == 0)
  194. printf("There is no ID #%d in the system.\n", findID);
  195. else {
  196. printf("%-8d%-20s%-25s%-30s%-25s%-10s%\n",
  197. customer.ID, customer.Name, customer.LastName, customer.Email, customer.Phone, customer.Gender);
  198. }
  199. }
  200.  
  201. //Case 4 -----> Modify Record
  202.  
  203. void modifyRecord()
  204. {
  205. int findID;
  206. FILE *cfPtr;
  207. struct customerData customer;
  208.  
  209. if ((cfPtr = fopen("customer.dat", "r+")) == NULL)
  210. {
  211. printf("File could not be opened.\n");
  212. }
  213. else
  214. {
  215. printf("Enter customer ID to upload records: \n ");
  216. scanf("%d", &findID);
  217. }
  218. fseek(cfPtr, (findID - 1) * sizeof(struct customerData),
  219. SEEK_SET);
  220. fread(&customer, sizeof(struct customerData), 1, cfPtr);
  221.  
  222. if (customer.ID == 0)
  223. printf("There is no ID #%d in the system.\n", findID);
  224. else {
  225. printf("%-8d%-20s%-25s%-30s%-25s%-10s%\n",
  226. customer.ID, customer.Name, customer.LastName, customer.Email, customer.Phone, customer.Gender);
  227.  
  228. printf("Enter first name: \n ");
  229. scanf("%s", &customer.Name);
  230.  
  231. printf("Enter last name: \n ");
  232. scanf("%s", &customer.LastName);
  233.  
  234. printf("Enter email: \n ");
  235. scanf("%s", &customer.Email);
  236.  
  237. printf("Enter phone number: \n ");
  238. scanf("%s", &customer.Phone);
  239.  
  240. printf("Enter gender(M or F): \n ");
  241. scanf("%s", &customer.Gender);
  242.  
  243. printf("%-8d%-20s%-25s%-30s%-25s%-10s%\n",
  244. customer.ID, customer.Name, customer.LastName, customer.Email, customer.Phone, customer.Gender);
  245.  
  246. fseek(cfPtr, (customer.ID - 1) * sizeof(struct customerData),
  247. SEEK_SET);
  248. fwrite(&customer, sizeof(struct customerData), 1, cfPtr);
  249. }
  250. }
  251.  
  252.  
  253.  
  254.  
  255. //Case 6 -----> Load Record
  256. void loadRecord()
  257. {
  258. FILE *cfPtr;
  259. struct customerData customer;
  260.  
  261. if ((cfPtr = fopen("customer.dat", "r")) == NULL)
  262. printf("File could not be opened.\n");
  263. else
  264. {
  265. printf("%-8s%-20s%-25s%-30s%-25s%-10s%\n", "ID", "First Name", "Last Name", "Email", "Phone", "Gender");
  266.  
  267.  
  268. while (!feof(cfPtr)) {
  269. fread(&customer, sizeof(struct customerData), 1, cfPtr);
  270.  
  271. if (customer.ID != 0)
  272. printf("%-8d%-20s%-25s%-30s%-25s%-10s%\n",
  273. customer.ID, customer.Name, customer.LastName, customer.Email, customer.Phone, customer.Gender);
  274. }
  275. }
  276.  
  277. fclose(cfPtr);
  278.  
  279. return;
  280. }
  281.  
  282.  
  283.  
  284. void exit()
  285. {
  286. return;
  287. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement