Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- struct customerData {
- int ID;
- char Name[50];
- char LastName[50];
- char Email[50];
- char Phone[20];
- char Gender[2];
- };
- void createFile();
- void addRecord();
- void loadRecord();
- void modifyRecord();
- void deleteRecord();
- void searchRecord();
- void exit();
- void main()
- {
- FILE *cfPtr;
- int Choice = 0;
- int MaxChoices = 7;
- while (Choice < MaxChoices)
- {
- printf("\n\n");
- printf("--------------------------------- MAIN MENU ---------------------------------\n\n");
- printf(" Please Enter one of the following Choices\n\n");
- printf("--------------------------- Random File Processing --------------------------\n\n\n");
- printf("1 - Create a Random file\n"
- "2 - Add record inside the file\n"
- "3 - Search racord\n"
- "4 - Modify record\n"
- "5 - Load file\n"
- "6 - Delete Record\n"
- "7 - Exit program\n ");
- printf("-----------------------------------------------------------------------------");
- printf("\n\n");
- // Print Your choices here
- scanf("%d", &Choice);
- switch (Choice)
- {
- case 1:
- createFile();
- break;
- case 2:
- addRecord();
- break;
- case 3:
- searchRecord();
- break;
- case 4:
- modifyRecord();
- break;
- case 5:
- loadRecord();
- break;
- case 6:
- break;
- case 7:
- exit();
- break;
- }
- }
- }
- //Not in Menu
- bool FileExists(const char* name)
- {
- if (FILE *file = fopen(name, "r")) {
- fclose(file);
- return true;
- }
- else {
- return false;
- }
- }
- //Case 1 -----> Create Blank Document
- void createFile() {
- if (FileExists("customer.dat"))
- {
- char Answer;
- printf("This Random File already exists!\n");
- printf("Write 'y' or 'Y' if you want to reset it\n");
- // if you ever wanted to get a character using scanf and the computer
- // skips over it, then flush the keyboard buffer
- fflush(stdin);
- scanf("%c", &Answer);
- if (Answer != 'Y' && Answer != 'y')
- {
- return;
- }
- }
- int i;
- struct customerData blankCustomer = { 0, "", "", "", "", "" };
- FILE *cfPtr;
- if ((cfPtr = fopen("customer.dat", "w")) == NULL)
- printf("File could not be opened.\n");
- else {
- for (i = 1; i <= 1000; i++)
- fwrite(&blankCustomer,
- sizeof(struct customerData), 1, cfPtr);
- fclose(cfPtr);
- printf("File was succesfully created!\n");
- }
- return;
- }
- //Case 2 -----> Add Record inside File
- void addRecord() {
- FILE *cfPtr;
- struct customerData customer;
- if ((cfPtr = fopen("customer.dat", "r+")) == NULL)
- {
- printf("File could not be opened.\n");
- }
- else {
- printf("Enter customer ID. Use numbers from 1 to 1000. Use 0 to exit this option:\n ");
- scanf("%d", &customer.ID);
- /*while (customer.ID != 0) */ {
- printf("Enter first name: \n ");
- scanf("%s", &customer.Name);
- printf("Enter last name: \n ");
- scanf("%s", &customer.LastName);
- printf("Enter email: \n ");
- scanf("%s", &customer.Email);
- printf("Enter phone number: \n ");
- scanf("%s", &customer.Phone);
- printf("Enter gender(M or F): \n ");
- scanf("%s", &customer.Gender);
- fseek(cfPtr, (customer.ID - 1) * sizeof(struct customerData), SEEK_SET);
- //write the info one time in the document.
- fwrite(&customer, sizeof(struct customerData), 1, cfPtr);
- /*printf("Enter customer ID\n ? ");
- scanf("%d", &customer.ID);*/
- }
- }
- fclose(cfPtr);
- printf("Saved succesfully in random file!\n");
- return;
- }
- //Case 3 -----> Search Record
- void searchRecord()
- {
- int findID;
- FILE *cfPtr;
- struct customerData customer;
- if ((cfPtr = fopen("customer.dat", "r+")) == NULL)
- {
- printf("File could not be opened.\n");
- }
- else
- {
- printf("Enter customer ID to upload records: \n ");
- scanf("%d", &findID);
- }
- fseek(cfPtr, (findID - 1) * sizeof(struct customerData),
- SEEK_SET);
- fread(&customer, sizeof(struct customerData), 1, cfPtr);
- if (customer.ID == 0)
- printf("There is no ID #%d in the system.\n", findID);
- else {
- printf("%-8d%-20s%-25s%-30s%-25s%-10s%\n",
- customer.ID, customer.Name, customer.LastName, customer.Email, customer.Phone, customer.Gender);
- }
- }
- //Case 4 -----> Modify Record
- void modifyRecord()
- {
- int findID;
- FILE *cfPtr;
- struct customerData customer;
- if ((cfPtr = fopen("customer.dat", "r+")) == NULL)
- {
- printf("File could not be opened.\n");
- }
- else
- {
- printf("Enter customer ID to upload records: \n ");
- scanf("%d", &findID);
- }
- fseek(cfPtr, (findID - 1) * sizeof(struct customerData),
- SEEK_SET);
- fread(&customer, sizeof(struct customerData), 1, cfPtr);
- if (customer.ID == 0)
- printf("There is no ID #%d in the system.\n", findID);
- else {
- printf("%-8d%-20s%-25s%-30s%-25s%-10s%\n",
- customer.ID, customer.Name, customer.LastName, customer.Email, customer.Phone, customer.Gender);
- printf("Enter first name: \n ");
- scanf("%s", &customer.Name);
- printf("Enter last name: \n ");
- scanf("%s", &customer.LastName);
- printf("Enter email: \n ");
- scanf("%s", &customer.Email);
- printf("Enter phone number: \n ");
- scanf("%s", &customer.Phone);
- printf("Enter gender(M or F): \n ");
- scanf("%s", &customer.Gender);
- printf("%-8d%-20s%-25s%-30s%-25s%-10s%\n",
- customer.ID, customer.Name, customer.LastName, customer.Email, customer.Phone, customer.Gender);
- fseek(cfPtr, (customer.ID - 1) * sizeof(struct customerData),
- SEEK_SET);
- fwrite(&customer, sizeof(struct customerData), 1, cfPtr);
- }
- }
- //Case 6 -----> Load Record
- void loadRecord()
- {
- FILE *cfPtr;
- struct customerData customer;
- if ((cfPtr = fopen("customer.dat", "r")) == NULL)
- printf("File could not be opened.\n");
- else
- {
- printf("%-8s%-20s%-25s%-30s%-25s%-10s%\n", "ID", "First Name", "Last Name", "Email", "Phone", "Gender");
- while (!feof(cfPtr)) {
- fread(&customer, sizeof(struct customerData), 1, cfPtr);
- if (customer.ID != 0)
- printf("%-8d%-20s%-25s%-30s%-25s%-10s%\n",
- customer.ID, customer.Name, customer.LastName, customer.Email, customer.Phone, customer.Gender);
- }
- }
- fclose(cfPtr);
- return;
- }
- void exit()
- {
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement