SlideShare a Scribd company logo
1 of 7
Please answer the 4 questions using C. The expected output is shown below. Thank you!
---------------------------------------------------------------------------------------------------
// Write your name here
// Write the compiler used: Visual studio or gcc
// Reminder that your file name is incredibly important. Please do not change it.
// Reminder that we are compiling on Gradescope using GCC.
// READ BEFORE YOU START:
// You are given a partially completed program that creates a list of game items
like you'd see in a folder.
// Each item has this information: item's name, game's name, type of item, item ID.
// The struct 'itemRecord' holds information of one item. Variety is an enum.
// An array of structs called 'list' is made to hold the list of items.
// To begin, you should trace through the given code and understand how it works.
// Please read the instructions above each required function and follow the
directions carefully.
// You should not modify any of the given code, the return types, or the
parameters. Otherwise, you risk getting compilation errors.
// You are not allowed to modify main().
// You can use string library functions.
// WRITE COMMENTS FOR IMPORANT STEPS IN YOUR CODE.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#pragma warning(disable: 4996) // for Visual Studio
Only
#define MAX_ITEMS 15
#define MAX_NAME_LENGTH 25
typedef enum { Health = 0, Equip, Etc } itemType; // enum type
struct itemRecord { // struct for item details
char itemName[MAX_NAME_LENGTH];
char gameName[MAX_NAME_LENGTH];
itemType variety;
unsigned int itemID;
};
struct itemRecord list[MAX_ITEMS]; // declare list of items
int count = 0; // the number of items
currently stored in the list (initialized to 0)
// functions already implmented
void flushStdIn();
void executeAction(char);
void save(char* fileName);
void display();
// functions that need implementation:
int add(char* itemName_input,
char* gameName_input,
char* variety_input,
unsigned int idNumber_input); // 10 points
void sort(); // 10 points
int delete(unsigned int idNumber_input); // 10 points
void load(char* fileName); // 10 points
int main()
{
char* fileName = "Item_List.txt";
load(fileName); // load list of items from
file (if it exists). Initially there will be no file.
char choice = 'i'; // initialized to a dummy
value
do
{
printf("nEnter your selection:n");
printf("t a: add a new itemn");
printf("t d: display item listn");
printf("t r: remove an item from listn");
printf("t s: sort item list by IDn");
printf("t q: quitn");
choice = getchar();
flushStdIn();
executeAction(choice);
} while (choice != 'q');
save(fileName); // save list of items to file
(overwrites file, if it exists)
return 0;
}
// flush out leftover 'n' characters
void flushStdIn()
{
char c;
do c = getchar();
while (c != 'n' && c != EOF);
}
// ask for details from user for the given selection and perform that action
void executeAction(char c)
{
char itemName_input[MAX_NAME_LENGTH], gameName_input[MAX_NAME_LENGTH];
unsigned int idNumber_input, add_result = 0;
char variety_input[20];
switch (c)
{
case 'a':
// input item record from user
printf("nEnter item name: ");
fgets(itemName_input, sizeof(itemName_input), stdin);
itemName_input[strlen(itemName_input) - 1] = '0';
// discard the trailing 'n' char
printf("Enter game name: ");
fgets(gameName_input, sizeof(gameName_input), stdin);
gameName_input[strlen(gameName_input) - 1] = '0';
// discard the trailing 'n' char
printf("Enter whether item is a 'Health' or 'Equip' or 'Etc' item: ");
fgets(variety_input, sizeof(variety_input), stdin);
variety_input[strlen(variety_input) - 1] = '0';
// discard the trailing 'n' char
printf("Please enter item ID number: ");
scanf("%d", &idNumber_input);
flushStdIn();
// add the item to the list
add_result = add(itemName_input, gameName_input, variety_input,
idNumber_input);
if (add_result == 0)
printf("nItem is already on the list! nn");
else if (add_result == 1)
printf("nItem successfully added to the list! nn");
else
printf("nUnable to add. Item list is full! nn");
break;
case 'r':
printf("Please enter ID number of item to be deleted: ");
scanf("%d", &idNumber_input);
flushStdIn();
int delete_result = delete(idNumber_input);
if (delete_result == 0)
printf("nItem not found in the list! nn");
else
printf("nItem deleted successfully! nn");
break;
case 'd': display(); break;
case 's': sort(); break;
case 'q': break;
default: printf("%c is invalid input!n", c);
}
}
// This function displays the employee list with the details (struct elements) of
each employee.
void display()
{
char* varietyString = "Health"; //
dummy init
for (int i = 0; i < count; i++) //
iterate through the list
{
printf("nItem name: %s", list[i].itemName); //
display item's name
printf("nGame name: %s", list[i].gameName); //
display game's name
if (list[i].variety == Health) //
find what to display for item type
varietyString = "Health";
else if (list[i].variety == Equip)
varietyString = "Equip";
else
varietyString = "Etc";
printf("nItem Type: %s", varietyString); // display
item type
printf("nID Number: %d", list[i].itemID); //
display item's ID
printf("n");
}
}
// save() is called at the end of main()
// This function saves the array of structures to file. It is already implemented.
// You should read and understand how this code works. It will help you with
'load()' function.
// save() is called at end of main() to save the item list to a file.
// The file is saved at the same place as your C file.
// You can simply delete the file to 'reset the list' or to avoid loading from it.
void save(char* fileName)
{
FILE* file;
int i, varietyValue = 0;
file = fopen(fileName, "wb"); // open file for writing
fwrite(&count, sizeof(count), 1, file); // First, store the number of
employees in the list
// Parse the list and write employee record to file
for (i = 0; i < count; i++)
{
fwrite(list[i].itemName, sizeof(list[i].itemName), 1, file);
fwrite(list[i].gameName, sizeof(list[i].gameName), 1, file);
// convert enum to a number for storing
if (list[i].variety == Health)
varietyValue = 0; // 0 for HR
else if (list[i].variety == Equip)
varietyValue = 1; // 1 for Marketing
else
varietyValue = 2; // 2 for ITs
fwrite(&varietyValue, sizeof(varietyValue), 1, file);
fwrite(&list[i].itemID, sizeof(list[i].itemID), 1, file);
}
fclose(file); // close the file after writing
}
// Q1 : add (10 points)
// This function is used to add an item into the list. You can simply add the new
item to the end of list (array of structs).
// Do not allow the item to be added to the list if it already exists in the list.
You can do that by checking item names OR IDs already in the list.
// If the item already exists then return 0 without adding it to the list. If the
item does not exist in the list, then add the item at the end of the list and
return 1.
// If the item list is full, then do not add new item to the list and return 2.
// NOTE: Notice how return type of add() is checked in case 'a' of the
executeAction() function.
// NOTE: You must convert the string 'variety_input' to an enum type and store it
in the list because the item type has enum type (not string type).
// The list should be case sensitive. For instance, 'Mega Death Sword' and 'mega
death sword' should be considered two different names.
// Hint: the global variable 'count' holds the number of items currently in the
list
int add(char* itemName_input, char* gameName_input, char* variety_input, unsigned
int idNumber_input)
{
itemType item_enum;
// Write the code below.
return 0; // edit this
line as needed
}
// Q2 : sort (10 points)
// This function is used to sort the list (array of structs) numerically by the
item's ID.
// Parse the list and compare the item IDs to check which one should appear before
the other in the list.
// Sorting should happen within the list. That is, you should not create a new list
of structs having sorted items.
// Hint: Use a temp struct (already declared) if you need to swap two structs in
your logic
void sort()
{
struct itemRecord itemTemp; //
needed for swapping structs. Not absolutely necessary to use.
// Write the code below.
// display message for user to check the result of sorting. Do not touch this
printf("nItem list sorted! Use display option 'd' to view sorted list.n");
}
// Q3 : delete (10 points)
// This function is used to delete an item by ID.
// Parse the list and compare the item IDs to check which one should be deleted.
// Restore the array structure after removal of the item record.
// Return 0 if the specified ID was not found. Return 1 upon successful removal of
a record.
int delete(unsigned int idNumber_input)
{
struct itemRecord itemTemp; //
useful for swapping structs. Not absolutely necessary to use.
// Write the code below
return 0; // edit this line as needed
}
// Q4: load (10 points)
// This function is called in the beginning of main().
// This function reads the item list from the saved file and builds the array of
structures 'list'.
// In the first run of the program, there will be no saved file because save() is
called at the end of program.
// So at the begining of this function, write code to open the file and check if it
exists. If file does not exist, then return from the function.
// (See expected output of add() in homework question file. It displays
"Item_List.txt not found" because the file did not exist initially.)
// If the file exists, then parse the item list to read the employee details from
the file.
// Use the save function given above as an example of how to write this function.
Notice the order in which the struct elements are saved in save()
// You need to use the same order to read the list back.
// NOTE: The saved file is not exactly readable because all elements of the struct
are not string or char type.
// So you need to implement load() similar to how save() is implemented. Only
then the 'list' will be loaded correctly.
// You can simply delete the file to 'reset the list' or to avoid loading from
it.
void load(char* fileName)
{
// Write the code below.
// The following two print statements are used in your code. You can change
their position but not their contents.
printf("%s not found.n", fileName);
printf("Item record loaded from %s.n", fileName);
}
--------------------------------------
Output:

More Related Content

Similar to Please answer the 4 questions using C- The expected output is shown be.docx

Using the C++ programming language1. Implement the UnsortedList cl.pdf
Using the C++ programming language1. Implement the UnsortedList cl.pdfUsing the C++ programming language1. Implement the UnsortedList cl.pdf
Using the C++ programming language1. Implement the UnsortedList cl.pdf
mallik3000
 
a) Complete both insert and delete methods. If it works correctly 10.pdf
a) Complete both insert and delete methods. If it works correctly 10.pdfa) Complete both insert and delete methods. If it works correctly 10.pdf
a) Complete both insert and delete methods. If it works correctly 10.pdf
MAYANKBANSAL1981
 
RightTrianglerightTriangle.cppRightTrianglerightTriangle.cpp.docx
RightTrianglerightTriangle.cppRightTrianglerightTriangle.cpp.docxRightTrianglerightTriangle.cppRightTrianglerightTriangle.cpp.docx
RightTrianglerightTriangle.cppRightTrianglerightTriangle.cpp.docx
joellemurphey
 
Complete the provided partial C++ Linked List program. Main.cpp is g.pdf
Complete the provided partial C++ Linked List program. Main.cpp is g.pdfComplete the provided partial C++ Linked List program. Main.cpp is g.pdf
Complete the provided partial C++ Linked List program. Main.cpp is g.pdf
rajkumarm401
 
Implementation File- -------------------------------------------------.docx
Implementation File- -------------------------------------------------.docxImplementation File- -------------------------------------------------.docx
Implementation File- -------------------------------------------------.docx
RyanEAcTuckern
 
IN C LANGUAGE- I've been trying to finish this program for the last fe.docx
IN C LANGUAGE- I've been trying to finish this program for the last fe.docxIN C LANGUAGE- I've been trying to finish this program for the last fe.docx
IN C LANGUAGE- I've been trying to finish this program for the last fe.docx
GordonpACKellyb
 
Assignment is Page 349-350 #4 and #5 Use the Linked Lis.pdf
Assignment is Page 349-350 #4 and #5 Use the Linked Lis.pdfAssignment is Page 349-350 #4 and #5 Use the Linked Lis.pdf
Assignment is Page 349-350 #4 and #5 Use the Linked Lis.pdf
formicreation
 
In C++Add the function min as an abstract function to the classar.pdf
In C++Add the function min as an abstract function to the classar.pdfIn C++Add the function min as an abstract function to the classar.pdf
In C++Add the function min as an abstract function to the classar.pdf
fantoosh1
 
#include iostream #include cstring #include vector #i.pdf
 #include iostream #include cstring #include vector #i.pdf #include iostream #include cstring #include vector #i.pdf
#include iostream #include cstring #include vector #i.pdf
anandatalapatra
 
Write a program that accepts an arithmetic expression of unsigned in.pdf
Write a program that accepts an arithmetic expression of unsigned in.pdfWrite a program that accepts an arithmetic expression of unsigned in.pdf
Write a program that accepts an arithmetic expression of unsigned in.pdf
JUSTSTYLISH3B2MOHALI
 
C programming. Answer question only in C code In the eighth part, yo.pdf
C programming. Answer question only in C code In the eighth part, yo.pdfC programming. Answer question only in C code In the eighth part, yo.pdf
C programming. Answer question only in C code In the eighth part, yo.pdf
mohammedfootwear
 
PLEASE MAKE SURE THE PROGRAM IS ASKING FOR INPUT FROM USER TO ADD OR.pdf
PLEASE MAKE SURE THE PROGRAM IS ASKING FOR INPUT FROM USER TO ADD OR.pdfPLEASE MAKE SURE THE PROGRAM IS ASKING FOR INPUT FROM USER TO ADD OR.pdf
PLEASE MAKE SURE THE PROGRAM IS ASKING FOR INPUT FROM USER TO ADD OR.pdf
mallik3000
 
C++ problemPart 1 Recursive Print (40 pts)Please write the recu.pdf
C++ problemPart 1 Recursive Print (40 pts)Please write the recu.pdfC++ problemPart 1 Recursive Print (40 pts)Please write the recu.pdf
C++ problemPart 1 Recursive Print (40 pts)Please write the recu.pdf
callawaycorb73779
 
Complete a C++ class implementation for a linked-list of sorted (asc.pdf
Complete a C++ class implementation for a linked-list of sorted (asc.pdfComplete a C++ class implementation for a linked-list of sorted (asc.pdf
Complete a C++ class implementation for a linked-list of sorted (asc.pdf
shahidqamar17
 
C programming tweak needed for a specific program.This is the comp.pdf
C programming tweak needed for a specific program.This is the comp.pdfC programming tweak needed for a specific program.This is the comp.pdf
C programming tweak needed for a specific program.This is the comp.pdf
flashfashioncasualwe
 

Similar to Please answer the 4 questions using C- The expected output is shown be.docx (20)

Using the C++ programming language1. Implement the UnsortedList cl.pdf
Using the C++ programming language1. Implement the UnsortedList cl.pdfUsing the C++ programming language1. Implement the UnsortedList cl.pdf
Using the C++ programming language1. Implement the UnsortedList cl.pdf
 
a) Complete both insert and delete methods. If it works correctly 10.pdf
a) Complete both insert and delete methods. If it works correctly 10.pdfa) Complete both insert and delete methods. If it works correctly 10.pdf
a) Complete both insert and delete methods. If it works correctly 10.pdf
 
RightTrianglerightTriangle.cppRightTrianglerightTriangle.cpp.docx
RightTrianglerightTriangle.cppRightTrianglerightTriangle.cpp.docxRightTrianglerightTriangle.cppRightTrianglerightTriangle.cpp.docx
RightTrianglerightTriangle.cppRightTrianglerightTriangle.cpp.docx
 
Complete the provided partial C++ Linked List program. Main.cpp is g.pdf
Complete the provided partial C++ Linked List program. Main.cpp is g.pdfComplete the provided partial C++ Linked List program. Main.cpp is g.pdf
Complete the provided partial C++ Linked List program. Main.cpp is g.pdf
 
Implementation File- -------------------------------------------------.docx
Implementation File- -------------------------------------------------.docxImplementation File- -------------------------------------------------.docx
Implementation File- -------------------------------------------------.docx
 
VTU DSA Lab Manual
VTU DSA Lab ManualVTU DSA Lab Manual
VTU DSA Lab Manual
 
IN C LANGUAGE- I've been trying to finish this program for the last fe.docx
IN C LANGUAGE- I've been trying to finish this program for the last fe.docxIN C LANGUAGE- I've been trying to finish this program for the last fe.docx
IN C LANGUAGE- I've been trying to finish this program for the last fe.docx
 
Write a task that will perform some of the functions performed by a s.docx
 Write a task that will perform some of the functions performed by a s.docx Write a task that will perform some of the functions performed by a s.docx
Write a task that will perform some of the functions performed by a s.docx
 
#ifndef MYLIST_H_ #define MYLIST_H_#includeiostream #include.docx
#ifndef MYLIST_H_ #define MYLIST_H_#includeiostream #include.docx#ifndef MYLIST_H_ #define MYLIST_H_#includeiostream #include.docx
#ifndef MYLIST_H_ #define MYLIST_H_#includeiostream #include.docx
 
Assignment is Page 349-350 #4 and #5 Use the Linked Lis.pdf
Assignment is Page 349-350 #4 and #5 Use the Linked Lis.pdfAssignment is Page 349-350 #4 and #5 Use the Linked Lis.pdf
Assignment is Page 349-350 #4 and #5 Use the Linked Lis.pdf
 
In C++Add the function min as an abstract function to the classar.pdf
In C++Add the function min as an abstract function to the classar.pdfIn C++Add the function min as an abstract function to the classar.pdf
In C++Add the function min as an abstract function to the classar.pdf
 
#include fstream#include iostream#include cstdlib#includ.docx
#include fstream#include iostream#include cstdlib#includ.docx#include fstream#include iostream#include cstdlib#includ.docx
#include fstream#include iostream#include cstdlib#includ.docx
 
#include iostream #include cstring #include vector #i.pdf
 #include iostream #include cstring #include vector #i.pdf #include iostream #include cstring #include vector #i.pdf
#include iostream #include cstring #include vector #i.pdf
 
Write a program that accepts an arithmetic expression of unsigned in.pdf
Write a program that accepts an arithmetic expression of unsigned in.pdfWrite a program that accepts an arithmetic expression of unsigned in.pdf
Write a program that accepts an arithmetic expression of unsigned in.pdf
 
C programming. Answer question only in C code In the eighth part, yo.pdf
C programming. Answer question only in C code In the eighth part, yo.pdfC programming. Answer question only in C code In the eighth part, yo.pdf
C programming. Answer question only in C code In the eighth part, yo.pdf
 
PLEASE MAKE SURE THE PROGRAM IS ASKING FOR INPUT FROM USER TO ADD OR.pdf
PLEASE MAKE SURE THE PROGRAM IS ASKING FOR INPUT FROM USER TO ADD OR.pdfPLEASE MAKE SURE THE PROGRAM IS ASKING FOR INPUT FROM USER TO ADD OR.pdf
PLEASE MAKE SURE THE PROGRAM IS ASKING FOR INPUT FROM USER TO ADD OR.pdf
 
C++ problemPart 1 Recursive Print (40 pts)Please write the recu.pdf
C++ problemPart 1 Recursive Print (40 pts)Please write the recu.pdfC++ problemPart 1 Recursive Print (40 pts)Please write the recu.pdf
C++ problemPart 1 Recursive Print (40 pts)Please write the recu.pdf
 
Complete a C++ class implementation for a linked-list of sorted (asc.pdf
Complete a C++ class implementation for a linked-list of sorted (asc.pdfComplete a C++ class implementation for a linked-list of sorted (asc.pdf
Complete a C++ class implementation for a linked-list of sorted (asc.pdf
 
C programming tweak needed for a specific program.This is the comp.pdf
C programming tweak needed for a specific program.This is the comp.pdfC programming tweak needed for a specific program.This is the comp.pdf
C programming tweak needed for a specific program.This is the comp.pdf
 
Write a program to find the number of comparisons using the binary se.docx
 Write a program to find the number of comparisons using the binary se.docx Write a program to find the number of comparisons using the binary se.docx
Write a program to find the number of comparisons using the binary se.docx
 

More from cgraciela1

Please copy and paste the code and explain why it won't work- It is su.docx
Please copy and paste the code and explain why it won't work- It is su.docxPlease copy and paste the code and explain why it won't work- It is su.docx
Please copy and paste the code and explain why it won't work- It is su.docx
cgraciela1
 
Please complete all the code as per instructions in Java programming.docx
Please complete all the code as per instructions in Java programming.docxPlease complete all the code as per instructions in Java programming.docx
Please complete all the code as per instructions in Java programming.docx
cgraciela1
 
Please code in C language- Please do part 1 and 2- Do not recycle answ.docx
Please code in C language- Please do part 1 and 2- Do not recycle answ.docxPlease code in C language- Please do part 1 and 2- Do not recycle answ.docx
Please code in C language- Please do part 1 and 2- Do not recycle answ.docx
cgraciela1
 
Please answer the 3 questions- Case Study 2 Too Much Fatigue and Stres.docx
Please answer the 3 questions- Case Study 2 Too Much Fatigue and Stres.docxPlease answer the 3 questions- Case Study 2 Too Much Fatigue and Stres.docx
Please answer the 3 questions- Case Study 2 Too Much Fatigue and Stres.docx
cgraciela1
 

More from cgraciela1 (20)

PLEASE HELP The above table shows the annual incomes of individuals.docx
PLEASE HELP   The above table shows the annual incomes of individuals.docxPLEASE HELP   The above table shows the annual incomes of individuals.docx
PLEASE HELP The above table shows the annual incomes of individuals.docx
 
Please give examples on all of the following titles and solve them as.docx
Please give examples on all of the following titles and solve them as.docxPlease give examples on all of the following titles and solve them as.docx
Please give examples on all of the following titles and solve them as.docx
 
please give the answer please give the answer A product's life cycl.docx
please give the answer please give the answer    A product's life cycl.docxplease give the answer please give the answer    A product's life cycl.docx
please give the answer please give the answer A product's life cycl.docx
 
please give a details explanation- i tried but i keep getting erronou.docx
please give a details explanation-  i tried but i keep getting erronou.docxplease give a details explanation-  i tried but i keep getting erronou.docx
please give a details explanation- i tried but i keep getting erronou.docx
 
Please explain- Thank you! 3- Show intermediate steps of sorting the a.docx
Please explain- Thank you! 3- Show intermediate steps of sorting the a.docxPlease explain- Thank you! 3- Show intermediate steps of sorting the a.docx
Please explain- Thank you! 3- Show intermediate steps of sorting the a.docx
 
Please explain why the answer is B instead of D 5- Which of the follow.docx
Please explain why the answer is B instead of D 5- Which of the follow.docxPlease explain why the answer is B instead of D 5- Which of the follow.docx
Please explain why the answer is B instead of D 5- Which of the follow.docx
 
Please Drawing this numbers using python Draw these follow.docx
Please Drawing this numbers using python             Draw these follow.docxPlease Drawing this numbers using python             Draw these follow.docx
Please Drawing this numbers using python Draw these follow.docx
 
PLEASE don't copy and paste from a previous answer because it was inco.docx
PLEASE don't copy and paste from a previous answer because it was inco.docxPLEASE don't copy and paste from a previous answer because it was inco.docx
PLEASE don't copy and paste from a previous answer because it was inco.docx
 
Please draw concept map Cdc45 Cdc6 Cdt1 Clamp Clamp loader CMG comp.docx
Please draw concept map    Cdc45 Cdc6 Cdt1 Clamp Clamp loader CMG comp.docxPlease draw concept map    Cdc45 Cdc6 Cdt1 Clamp Clamp loader CMG comp.docx
Please draw concept map Cdc45 Cdc6 Cdt1 Clamp Clamp loader CMG comp.docx
 
Please dont copy paste a-What is customer service- b- Main theories o.docx
Please dont copy paste a-What is customer service-  b- Main theories o.docxPlease dont copy paste a-What is customer service-  b- Main theories o.docx
Please dont copy paste a-What is customer service- b- Main theories o.docx
 
PLEASE DONT COPY ANSWER Draw a DFA that accepts the strings that repre.docx
PLEASE DONT COPY ANSWER Draw a DFA that accepts the strings that repre.docxPLEASE DONT COPY ANSWER Draw a DFA that accepts the strings that repre.docx
PLEASE DONT COPY ANSWER Draw a DFA that accepts the strings that repre.docx
 
Please do this for me!! I would gladly appreciate it- Write one result.docx
Please do this for me!! I would gladly appreciate it- Write one result.docxPlease do this for me!! I would gladly appreciate it- Write one result.docx
Please do this for me!! I would gladly appreciate it- Write one result.docx
 
Please copy and paste the code and explain why it won't work- It is su.docx
Please copy and paste the code and explain why it won't work- It is su.docxPlease copy and paste the code and explain why it won't work- It is su.docx
Please copy and paste the code and explain why it won't work- It is su.docx
 
Please complete all the code as per instructions in Java programming.docx
Please complete all the code as per instructions in Java programming.docxPlease complete all the code as per instructions in Java programming.docx
Please complete all the code as per instructions in Java programming.docx
 
Please code in C language- Please do part 1 and 2- Do not recycle answ.docx
Please code in C language- Please do part 1 and 2- Do not recycle answ.docxPlease code in C language- Please do part 1 and 2- Do not recycle answ.docx
Please code in C language- Please do part 1 and 2- Do not recycle answ.docx
 
please ask and answer questions in internet technologies in the follo.docx
please ask and answer questions in  internet technologies in the follo.docxplease ask and answer questions in  internet technologies in the follo.docx
please ask and answer questions in internet technologies in the follo.docx
 
Please answer the multiple choice questions with detailed explanation.docx
Please answer the multiple choice questions with detailed explanation.docxPlease answer the multiple choice questions with detailed explanation.docx
Please answer the multiple choice questions with detailed explanation.docx
 
Please answer the following questions about the network of streets in.docx
Please answer the following questions about the network of streets in.docxPlease answer the following questions about the network of streets in.docx
Please answer the following questions about the network of streets in.docx
 
Please answer 16-29- thank you P4- Dissection of the Fetal Pig Ventr.docx
Please answer 16-29- thank you   P4- Dissection of the Fetal Pig Ventr.docxPlease answer 16-29- thank you   P4- Dissection of the Fetal Pig Ventr.docx
Please answer 16-29- thank you P4- Dissection of the Fetal Pig Ventr.docx
 
Please answer the 3 questions- Case Study 2 Too Much Fatigue and Stres.docx
Please answer the 3 questions- Case Study 2 Too Much Fatigue and Stres.docxPlease answer the 3 questions- Case Study 2 Too Much Fatigue and Stres.docx
Please answer the 3 questions- Case Study 2 Too Much Fatigue and Stres.docx
 

Recently uploaded

Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
ssuserdda66b
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Recently uploaded (20)

Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 

Please answer the 4 questions using C- The expected output is shown be.docx

  • 1. Please answer the 4 questions using C. The expected output is shown below. Thank you! --------------------------------------------------------------------------------------------------- // Write your name here // Write the compiler used: Visual studio or gcc // Reminder that your file name is incredibly important. Please do not change it. // Reminder that we are compiling on Gradescope using GCC. // READ BEFORE YOU START: // You are given a partially completed program that creates a list of game items like you'd see in a folder. // Each item has this information: item's name, game's name, type of item, item ID. // The struct 'itemRecord' holds information of one item. Variety is an enum. // An array of structs called 'list' is made to hold the list of items. // To begin, you should trace through the given code and understand how it works. // Please read the instructions above each required function and follow the directions carefully. // You should not modify any of the given code, the return types, or the parameters. Otherwise, you risk getting compilation errors. // You are not allowed to modify main(). // You can use string library functions. // WRITE COMMENTS FOR IMPORANT STEPS IN YOUR CODE. #include <stdio.h> #include <stdlib.h> #include <string.h> #pragma warning(disable: 4996) // for Visual Studio Only #define MAX_ITEMS 15 #define MAX_NAME_LENGTH 25 typedef enum { Health = 0, Equip, Etc } itemType; // enum type struct itemRecord { // struct for item details char itemName[MAX_NAME_LENGTH]; char gameName[MAX_NAME_LENGTH]; itemType variety; unsigned int itemID; }; struct itemRecord list[MAX_ITEMS]; // declare list of items int count = 0; // the number of items currently stored in the list (initialized to 0) // functions already implmented void flushStdIn(); void executeAction(char); void save(char* fileName); void display(); // functions that need implementation: int add(char* itemName_input,
  • 2. char* gameName_input, char* variety_input, unsigned int idNumber_input); // 10 points void sort(); // 10 points int delete(unsigned int idNumber_input); // 10 points void load(char* fileName); // 10 points int main() { char* fileName = "Item_List.txt"; load(fileName); // load list of items from file (if it exists). Initially there will be no file. char choice = 'i'; // initialized to a dummy value do { printf("nEnter your selection:n"); printf("t a: add a new itemn"); printf("t d: display item listn"); printf("t r: remove an item from listn"); printf("t s: sort item list by IDn"); printf("t q: quitn"); choice = getchar(); flushStdIn(); executeAction(choice); } while (choice != 'q'); save(fileName); // save list of items to file (overwrites file, if it exists) return 0; } // flush out leftover 'n' characters void flushStdIn() { char c; do c = getchar(); while (c != 'n' && c != EOF); } // ask for details from user for the given selection and perform that action void executeAction(char c) { char itemName_input[MAX_NAME_LENGTH], gameName_input[MAX_NAME_LENGTH]; unsigned int idNumber_input, add_result = 0; char variety_input[20]; switch (c) { case 'a':
  • 3. // input item record from user printf("nEnter item name: "); fgets(itemName_input, sizeof(itemName_input), stdin); itemName_input[strlen(itemName_input) - 1] = '0'; // discard the trailing 'n' char printf("Enter game name: "); fgets(gameName_input, sizeof(gameName_input), stdin); gameName_input[strlen(gameName_input) - 1] = '0'; // discard the trailing 'n' char printf("Enter whether item is a 'Health' or 'Equip' or 'Etc' item: "); fgets(variety_input, sizeof(variety_input), stdin); variety_input[strlen(variety_input) - 1] = '0'; // discard the trailing 'n' char printf("Please enter item ID number: "); scanf("%d", &idNumber_input); flushStdIn(); // add the item to the list add_result = add(itemName_input, gameName_input, variety_input, idNumber_input); if (add_result == 0) printf("nItem is already on the list! nn"); else if (add_result == 1) printf("nItem successfully added to the list! nn"); else printf("nUnable to add. Item list is full! nn"); break; case 'r': printf("Please enter ID number of item to be deleted: "); scanf("%d", &idNumber_input); flushStdIn(); int delete_result = delete(idNumber_input); if (delete_result == 0) printf("nItem not found in the list! nn"); else printf("nItem deleted successfully! nn"); break; case 'd': display(); break; case 's': sort(); break; case 'q': break; default: printf("%c is invalid input!n", c); } } // This function displays the employee list with the details (struct elements) of each employee. void display()
  • 4. { char* varietyString = "Health"; // dummy init for (int i = 0; i < count; i++) // iterate through the list { printf("nItem name: %s", list[i].itemName); // display item's name printf("nGame name: %s", list[i].gameName); // display game's name if (list[i].variety == Health) // find what to display for item type varietyString = "Health"; else if (list[i].variety == Equip) varietyString = "Equip"; else varietyString = "Etc"; printf("nItem Type: %s", varietyString); // display item type printf("nID Number: %d", list[i].itemID); // display item's ID printf("n"); } } // save() is called at the end of main() // This function saves the array of structures to file. It is already implemented. // You should read and understand how this code works. It will help you with 'load()' function. // save() is called at end of main() to save the item list to a file. // The file is saved at the same place as your C file. // You can simply delete the file to 'reset the list' or to avoid loading from it. void save(char* fileName) { FILE* file; int i, varietyValue = 0; file = fopen(fileName, "wb"); // open file for writing fwrite(&count, sizeof(count), 1, file); // First, store the number of employees in the list // Parse the list and write employee record to file for (i = 0; i < count; i++) { fwrite(list[i].itemName, sizeof(list[i].itemName), 1, file); fwrite(list[i].gameName, sizeof(list[i].gameName), 1, file); // convert enum to a number for storing if (list[i].variety == Health)
  • 5. varietyValue = 0; // 0 for HR else if (list[i].variety == Equip) varietyValue = 1; // 1 for Marketing else varietyValue = 2; // 2 for ITs fwrite(&varietyValue, sizeof(varietyValue), 1, file); fwrite(&list[i].itemID, sizeof(list[i].itemID), 1, file); } fclose(file); // close the file after writing } // Q1 : add (10 points) // This function is used to add an item into the list. You can simply add the new item to the end of list (array of structs). // Do not allow the item to be added to the list if it already exists in the list. You can do that by checking item names OR IDs already in the list. // If the item already exists then return 0 without adding it to the list. If the item does not exist in the list, then add the item at the end of the list and return 1. // If the item list is full, then do not add new item to the list and return 2. // NOTE: Notice how return type of add() is checked in case 'a' of the executeAction() function. // NOTE: You must convert the string 'variety_input' to an enum type and store it in the list because the item type has enum type (not string type). // The list should be case sensitive. For instance, 'Mega Death Sword' and 'mega death sword' should be considered two different names. // Hint: the global variable 'count' holds the number of items currently in the list int add(char* itemName_input, char* gameName_input, char* variety_input, unsigned int idNumber_input) { itemType item_enum; // Write the code below. return 0; // edit this line as needed } // Q2 : sort (10 points) // This function is used to sort the list (array of structs) numerically by the item's ID. // Parse the list and compare the item IDs to check which one should appear before the other in the list. // Sorting should happen within the list. That is, you should not create a new list of structs having sorted items.
  • 6. // Hint: Use a temp struct (already declared) if you need to swap two structs in your logic void sort() { struct itemRecord itemTemp; // needed for swapping structs. Not absolutely necessary to use. // Write the code below. // display message for user to check the result of sorting. Do not touch this printf("nItem list sorted! Use display option 'd' to view sorted list.n"); } // Q3 : delete (10 points) // This function is used to delete an item by ID. // Parse the list and compare the item IDs to check which one should be deleted. // Restore the array structure after removal of the item record. // Return 0 if the specified ID was not found. Return 1 upon successful removal of a record. int delete(unsigned int idNumber_input) { struct itemRecord itemTemp; // useful for swapping structs. Not absolutely necessary to use. // Write the code below return 0; // edit this line as needed } // Q4: load (10 points) // This function is called in the beginning of main(). // This function reads the item list from the saved file and builds the array of structures 'list'. // In the first run of the program, there will be no saved file because save() is called at the end of program. // So at the begining of this function, write code to open the file and check if it exists. If file does not exist, then return from the function. // (See expected output of add() in homework question file. It displays "Item_List.txt not found" because the file did not exist initially.) // If the file exists, then parse the item list to read the employee details from the file. // Use the save function given above as an example of how to write this function. Notice the order in which the struct elements are saved in save() // You need to use the same order to read the list back. // NOTE: The saved file is not exactly readable because all elements of the struct are not string or char type. // So you need to implement load() similar to how save() is implemented. Only then the 'list' will be loaded correctly.
  • 7. // You can simply delete the file to 'reset the list' or to avoid loading from it. void load(char* fileName) { // Write the code below. // The following two print statements are used in your code. You can change their position but not their contents. printf("%s not found.n", fileName); printf("Item record loaded from %s.n", fileName); } -------------------------------------- Output: