SlideShare a Scribd company logo
1 of 6
Download to read offline
please follow all instructions and answer the inbedded questions, and written in C pls
// 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 linked list of game
items like you'd see in a folder.
// Each item has this information: item name, game name, type of item, item ID.
// The struct 'itemRecord' holds the information of one item. Variety is an enum.
// A linked list of structs called 'list' is declared 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 all string library functions.
// You will have to write your functions from scratch by looking at what is
expected to be passed into them in the pre-existing functions
// WRITE COMMENTS FOR IMPORANT STEPS IN YOUR CODE.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#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* next; // pointer to next node
};
struct itemRecord* list = NULL; // declare linked list
'list'
int count = 0; // the number of items
currently stored in the list (initialized to 0)
// functions already pre-implemented last homework
void flushStdIn();
void executeAction(char);
void save(char* fileName);
void display();
// functions that need implementation: add, sort, delete, load
// Implement your own headers.
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 a 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 itemId_input, add_result = 0;
char itemtype_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 item type (Health/Equip/Etc): ");
fgets(itemtype_input, sizeof(itemtype_input), stdin);
itemtype_input[strlen(itemtype_input) - 1] = '0'; // discard the
trailing 'n' char
printf("Please enter item ID number: ");
scanf("%d", &itemId_input);
flushStdIn();
// add the item to the list
add_result = add(itemName_input, gameName_input, itemtype_input,
itemId_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 the item. the Item list is full! nn");
break;
case 'r':
printf("Please enter ID number of item to be deleted: ");
scanf("%d", &itemId_input);
flushStdIn();
int delete_result = delete(itemId_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 item list with the details (struct elements) of each
item.
// Display all items.
void display()
{
struct itemRecord* tempList = list; // work on a copy of
'list'
char* itemTypeString = "NoType"; // dummy init
while (tempList != NULL) { // traverse all items in
the list
printf("nItem Name: %s", tempList->itemName); // display the
item name
printf("nGame name: %s", tempList->gameName); // display the
game name
if (tempList->variety == Health) // find what to display
for item type
itemTypeString = "Health";
else if(tempList->variety == Equip)
itemTypeString = "Equip";
else
itemTypeString = "Etc";
printf("nItem Type: %s", itemTypeString); // display item
type
printf("nItem ID: %d", tempList->itemID); // display item id
printf("n");
tempList = tempList->next;
}
}
// save() is called at the end of main()
// This function saves the linked list of structures to file.
// 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. For VS, the default
directory looks like this:
// C:Users<username>DocumentsVisual Studio 20XXProjectsProject1Project1
// You can simply delete the file to 'reset the list' or to avoid loading from it.
void save(char* fileName)
{
struct itemRecord* tempList = list; // work on a copy of 'list'
FILE* file;
int itemTypeValue = 0;
file = fopen(fileName, "wb"); // open file for writing
fwrite(&count, sizeof(count), 1, file); // First, store the number of
items in the list
// Parse the list and write item records to the file
while (tempList != NULL) {
fwrite(tempList->itemName, sizeof(tempList->itemName), 1, file);
fwrite(tempList->gameName, sizeof(tempList->gameName), 1, file);
// convert enum to a number for storing
if (tempList->variety == Health)
itemTypeValue = 0; // 0 for Health
else if(tempList->variety == Equip)
itemTypeValue = 1; // 1 for Equip
else
itemTypeValue = 2; // 2 for Etc
fwrite(&itemTypeValue, sizeof(itemTypeValue), 1, file);
fwrite(&tempList->itemID, sizeof(tempList->itemID), 1, file);
tempList = tempList->next;
}
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 (linked list 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 the item 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 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 executeAction()
// NOTE: You will likely pass the variety attribute as a string. This must be
converted to an enum type because itemType has enum type.
// The list should be case sensitive. For instance, 'Poprocks' and 'popRocks'
should be considered two different names.
// Hint: 'count' holds the number of items currently in the list
// Q2 : sort (10 points)
// This function is used to sort the list (linked list of structs) numerically by
item 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 node
of structs having sorted items.
// Please use this print statement to print after successfully sorting the list:
// 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.
// Return 0 if the specified ID was not found. Return 1 upon successful removal of
a record.
// 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 linked list
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 the expected output of add() in homework the 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 item 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.
// You'll need to use the following two print statements in your code:
// printf("Item record loaded from %s.n", fileName);
// printf("%s not found.n", fileName);

More Related Content

Similar to please follow all instructions and answer the inbedded questions- and.pdf

This is the main file include itemh include itemList.pdf
This is the main file include itemh include itemList.pdfThis is the main file include itemh include itemList.pdf
This is the main file include itemh include itemList.pdfinfo334223
 
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.pdfrajkumarm401
 
All code should be in C++Using the UnsortedList class (UnsortedLis.pdf
All code should be in C++Using the UnsortedList class (UnsortedLis.pdfAll code should be in C++Using the UnsortedList class (UnsortedLis.pdf
All code should be in C++Using the UnsortedList class (UnsortedLis.pdfakashenterprises93
 
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.pdfcallawaycorb73779
 
This class maintains a list of 4 integers. This list .docx
 This class maintains a list of 4 integers.   This list .docx This class maintains a list of 4 integers.   This list .docx
This class maintains a list of 4 integers. This list .docxKomlin1
 
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.pdfshahidqamar17
 
Implement the following specification of UnsortedType using circular.pdf
Implement the following specification of UnsortedType using circular.pdfImplement the following specification of UnsortedType using circular.pdf
Implement the following specification of UnsortedType using circular.pdfudit652068
 
BackgroundIn many applications, the composition of a collection o.pdf
BackgroundIn many applications, the composition of a collection o.pdfBackgroundIn many applications, the composition of a collection o.pdf
BackgroundIn many applications, the composition of a collection o.pdfmayorothenguyenhob69
 
(Unordered Sets) As explained in this chapter, a set is a collection.pdf
(Unordered Sets) As explained in this chapter, a set is a collection.pdf(Unordered Sets) As explained in this chapter, a set is a collection.pdf
(Unordered Sets) As explained in this chapter, a set is a collection.pdfssuserc77a341
 
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.pdffantoosh1
 
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.pdfMAYANKBANSAL1981
 
C++ detyrat postim_slideshare
C++ detyrat postim_slideshareC++ detyrat postim_slideshare
C++ detyrat postim_slidesharetctal
 
please i need help Im writing a program to test the merge sort alg.pdf
please i need help Im writing a program to test the merge sort alg.pdfplease i need help Im writing a program to test the merge sort alg.pdf
please i need help Im writing a program to test the merge sort alg.pdfezonesolutions
 
Using Array Approach, Linked List approach, and Delete Byte Approach.pdf
Using Array Approach, Linked List approach, and Delete Byte Approach.pdfUsing Array Approach, Linked List approach, and Delete Byte Approach.pdf
Using Array Approach, Linked List approach, and Delete Byte Approach.pdffms12345
 
please help me in C++Objective Create a singly linked list of num.pdf
please help me in C++Objective Create a singly linked list of num.pdfplease help me in C++Objective Create a singly linked list of num.pdf
please help me in C++Objective Create a singly linked list of num.pdfaminbijal86
 
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.docxajoy21
 
This is a java lab assignment. I have added the first part java re.pdf
This is a java lab assignment. I have added the first part java re.pdfThis is a java lab assignment. I have added the first part java re.pdf
This is a java lab assignment. I have added the first part java re.pdffeetshoemart
 
import java.util.; public class IteratorDemo {public static voi.pdf
import java.util.; public class IteratorDemo {public static voi.pdfimport java.util.; public class IteratorDemo {public static voi.pdf
import java.util.; public class IteratorDemo {public static voi.pdfanilgoelslg
 

Similar to please follow all instructions and answer the inbedded questions- and.pdf (20)

This is the main file include itemh include itemList.pdf
This is the main file include itemh include itemList.pdfThis is the main file include itemh include itemList.pdf
This is the main file include itemh include itemList.pdf
 
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
 
All code should be in C++Using the UnsortedList class (UnsortedLis.pdf
All code should be in C++Using the UnsortedList class (UnsortedLis.pdfAll code should be in C++Using the UnsortedList class (UnsortedLis.pdf
All code should be in C++Using the UnsortedList class (UnsortedLis.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
 
This class maintains a list of 4 integers. This list .docx
 This class maintains a list of 4 integers.   This list .docx This class maintains a list of 4 integers.   This list .docx
This class maintains a list of 4 integers. This list .docx
 
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
 
Implement the following specification of UnsortedType using circular.pdf
Implement the following specification of UnsortedType using circular.pdfImplement the following specification of UnsortedType using circular.pdf
Implement the following specification of UnsortedType using circular.pdf
 
BackgroundIn many applications, the composition of a collection o.pdf
BackgroundIn many applications, the composition of a collection o.pdfBackgroundIn many applications, the composition of a collection o.pdf
BackgroundIn many applications, the composition of a collection o.pdf
 
(Unordered Sets) As explained in this chapter, a set is a collection.pdf
(Unordered Sets) As explained in this chapter, a set is a collection.pdf(Unordered Sets) As explained in this chapter, a set is a collection.pdf
(Unordered Sets) As explained in this chapter, a set is a collection.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
 
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
 
C++ detyrat postim_slideshare
C++ detyrat postim_slideshareC++ detyrat postim_slideshare
C++ detyrat postim_slideshare
 
please i need help Im writing a program to test the merge sort alg.pdf
please i need help Im writing a program to test the merge sort alg.pdfplease i need help Im writing a program to test the merge sort alg.pdf
please i need help Im writing a program to test the merge sort alg.pdf
 
Using Array Approach, Linked List approach, and Delete Byte Approach.pdf
Using Array Approach, Linked List approach, and Delete Byte Approach.pdfUsing Array Approach, Linked List approach, and Delete Byte Approach.pdf
Using Array Approach, Linked List approach, and Delete Byte Approach.pdf
 
강의자료6
강의자료6강의자료6
강의자료6
 
please help me in C++Objective Create a singly linked list of num.pdf
please help me in C++Objective Create a singly linked list of num.pdfplease help me in C++Objective Create a singly linked list of num.pdf
please help me in C++Objective Create a singly linked list of num.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
 
강의자료7
강의자료7강의자료7
강의자료7
 
This is a java lab assignment. I have added the first part java re.pdf
This is a java lab assignment. I have added the first part java re.pdfThis is a java lab assignment. I have added the first part java re.pdf
This is a java lab assignment. I have added the first part java re.pdf
 
import java.util.; public class IteratorDemo {public static voi.pdf
import java.util.; public class IteratorDemo {public static voi.pdfimport java.util.; public class IteratorDemo {public static voi.pdf
import java.util.; public class IteratorDemo {public static voi.pdf
 

More from Ian5L3Allanm

Please write a C++ program to (1) Generate the following pattern using.pdf
Please write a C++ program to (1) Generate the following pattern using.pdfPlease write a C++ program to (1) Generate the following pattern using.pdf
Please write a C++ program to (1) Generate the following pattern using.pdfIan5L3Allanm
 
please solve part (C) only- Thanks The following information was taken.pdf
please solve part (C) only- Thanks The following information was taken.pdfplease solve part (C) only- Thanks The following information was taken.pdf
please solve part (C) only- Thanks The following information was taken.pdfIan5L3Allanm
 
Please provide a short answer to the image! Analyze this Karyotype as.pdf
Please provide a short answer to the image!  Analyze this Karyotype as.pdfPlease provide a short answer to the image!  Analyze this Karyotype as.pdf
Please provide a short answer to the image! Analyze this Karyotype as.pdfIan5L3Allanm
 
Please illustrate the differences between Variable Costing system vers.pdf
Please illustrate the differences between Variable Costing system vers.pdfPlease illustrate the differences between Variable Costing system vers.pdf
Please illustrate the differences between Variable Costing system vers.pdfIan5L3Allanm
 
Please complete and post the screenshots here- I can be reached at pra.pdf
Please complete and post the screenshots here- I can be reached at pra.pdfPlease complete and post the screenshots here- I can be reached at pra.pdf
Please complete and post the screenshots here- I can be reached at pra.pdfIan5L3Allanm
 
Please answer it appropriately- I have already uploaded and the expert.pdf
Please answer it appropriately- I have already uploaded and the expert.pdfPlease answer it appropriately- I have already uploaded and the expert.pdf
Please answer it appropriately- I have already uploaded and the expert.pdfIan5L3Allanm
 
please answer these two questions briefly thank you Examine Figures 1.pdf
please answer these two questions briefly  thank you Examine Figures 1.pdfplease answer these two questions briefly  thank you Examine Figures 1.pdf
please answer these two questions briefly thank you Examine Figures 1.pdfIan5L3Allanm
 
Phonology- infants start to produce sounds as soon as they are born (c.pdf
Phonology- infants start to produce sounds as soon as they are born (c.pdfPhonology- infants start to produce sounds as soon as they are born (c.pdf
Phonology- infants start to produce sounds as soon as they are born (c.pdfIan5L3Allanm
 
Phenylketonuria (PKU) is a autosomal recessive disorder in which a per.pdf
Phenylketonuria (PKU) is a autosomal recessive disorder in which a per.pdfPhenylketonuria (PKU) is a autosomal recessive disorder in which a per.pdf
Phenylketonuria (PKU) is a autosomal recessive disorder in which a per.pdfIan5L3Allanm
 
Please answer the following questions- Question #1- Which of the follo.pdf
Please answer the following questions- Question #1- Which of the follo.pdfPlease answer the following questions- Question #1- Which of the follo.pdf
Please answer the following questions- Question #1- Which of the follo.pdfIan5L3Allanm
 
Please help me solve this problem entirely - I really appreciate it- T (5).pdf
Please help me solve this problem entirely - I really appreciate it- T (5).pdfPlease help me solve this problem entirely - I really appreciate it- T (5).pdf
Please help me solve this problem entirely - I really appreciate it- T (5).pdfIan5L3Allanm
 
Please help me solve the above 2 questions- I will drop a thumbs up fo.pdf
Please help me solve the above 2 questions- I will drop a thumbs up fo.pdfPlease help me solve the above 2 questions- I will drop a thumbs up fo.pdf
Please help me solve the above 2 questions- I will drop a thumbs up fo.pdfIan5L3Allanm
 
Please help me i will give good rating Hanan works for a Korean multi.pdf
Please help me i will give good rating  Hanan works for a Korean multi.pdfPlease help me i will give good rating  Hanan works for a Korean multi.pdf
Please help me i will give good rating Hanan works for a Korean multi.pdfIan5L3Allanm
 
Please answer the following questions thoroughly- 1) What are the m.pdf
Please answer the following questions thoroughly-    1) What are the m.pdfPlease answer the following questions thoroughly-    1) What are the m.pdf
Please answer the following questions thoroughly- 1) What are the m.pdfIan5L3Allanm
 
photosythesis - chromatography paper- separation of photosynthetic pig.pdf
photosythesis - chromatography paper- separation of photosynthetic pig.pdfphotosythesis - chromatography paper- separation of photosynthetic pig.pdf
photosythesis - chromatography paper- separation of photosynthetic pig.pdfIan5L3Allanm
 
Please follow the instructions carefully as there are some specific co (1).pdf
Please follow the instructions carefully as there are some specific co (1).pdfPlease follow the instructions carefully as there are some specific co (1).pdf
Please follow the instructions carefully as there are some specific co (1).pdfIan5L3Allanm
 
Please follow the instructions carefully as there are some specific co.pdf
Please follow the instructions carefully as there are some specific co.pdfPlease follow the instructions carefully as there are some specific co.pdf
Please follow the instructions carefully as there are some specific co.pdfIan5L3Allanm
 
Please explain what this means -The overall model was statistically si.pdf
Please explain what this means -The overall model was statistically si.pdfPlease explain what this means -The overall model was statistically si.pdf
Please explain what this means -The overall model was statistically si.pdfIan5L3Allanm
 
Please draw an evolutionary tree dthe information given- 3- A new or.pdf
Please draw an evolutionary tree dthe information given-   3- A new or.pdfPlease draw an evolutionary tree dthe information given-   3- A new or.pdf
Please draw an evolutionary tree dthe information given- 3- A new or.pdfIan5L3Allanm
 
Please complete the following App using Parallel Arrays- -- -- Conte.pdf
Please complete the following App using Parallel Arrays-  -- --  Conte.pdfPlease complete the following App using Parallel Arrays-  -- --  Conte.pdf
Please complete the following App using Parallel Arrays- -- -- Conte.pdfIan5L3Allanm
 

More from Ian5L3Allanm (20)

Please write a C++ program to (1) Generate the following pattern using.pdf
Please write a C++ program to (1) Generate the following pattern using.pdfPlease write a C++ program to (1) Generate the following pattern using.pdf
Please write a C++ program to (1) Generate the following pattern using.pdf
 
please solve part (C) only- Thanks The following information was taken.pdf
please solve part (C) only- Thanks The following information was taken.pdfplease solve part (C) only- Thanks The following information was taken.pdf
please solve part (C) only- Thanks The following information was taken.pdf
 
Please provide a short answer to the image! Analyze this Karyotype as.pdf
Please provide a short answer to the image!  Analyze this Karyotype as.pdfPlease provide a short answer to the image!  Analyze this Karyotype as.pdf
Please provide a short answer to the image! Analyze this Karyotype as.pdf
 
Please illustrate the differences between Variable Costing system vers.pdf
Please illustrate the differences between Variable Costing system vers.pdfPlease illustrate the differences between Variable Costing system vers.pdf
Please illustrate the differences between Variable Costing system vers.pdf
 
Please complete and post the screenshots here- I can be reached at pra.pdf
Please complete and post the screenshots here- I can be reached at pra.pdfPlease complete and post the screenshots here- I can be reached at pra.pdf
Please complete and post the screenshots here- I can be reached at pra.pdf
 
Please answer it appropriately- I have already uploaded and the expert.pdf
Please answer it appropriately- I have already uploaded and the expert.pdfPlease answer it appropriately- I have already uploaded and the expert.pdf
Please answer it appropriately- I have already uploaded and the expert.pdf
 
please answer these two questions briefly thank you Examine Figures 1.pdf
please answer these two questions briefly  thank you Examine Figures 1.pdfplease answer these two questions briefly  thank you Examine Figures 1.pdf
please answer these two questions briefly thank you Examine Figures 1.pdf
 
Phonology- infants start to produce sounds as soon as they are born (c.pdf
Phonology- infants start to produce sounds as soon as they are born (c.pdfPhonology- infants start to produce sounds as soon as they are born (c.pdf
Phonology- infants start to produce sounds as soon as they are born (c.pdf
 
Phenylketonuria (PKU) is a autosomal recessive disorder in which a per.pdf
Phenylketonuria (PKU) is a autosomal recessive disorder in which a per.pdfPhenylketonuria (PKU) is a autosomal recessive disorder in which a per.pdf
Phenylketonuria (PKU) is a autosomal recessive disorder in which a per.pdf
 
Please answer the following questions- Question #1- Which of the follo.pdf
Please answer the following questions- Question #1- Which of the follo.pdfPlease answer the following questions- Question #1- Which of the follo.pdf
Please answer the following questions- Question #1- Which of the follo.pdf
 
Please help me solve this problem entirely - I really appreciate it- T (5).pdf
Please help me solve this problem entirely - I really appreciate it- T (5).pdfPlease help me solve this problem entirely - I really appreciate it- T (5).pdf
Please help me solve this problem entirely - I really appreciate it- T (5).pdf
 
Please help me solve the above 2 questions- I will drop a thumbs up fo.pdf
Please help me solve the above 2 questions- I will drop a thumbs up fo.pdfPlease help me solve the above 2 questions- I will drop a thumbs up fo.pdf
Please help me solve the above 2 questions- I will drop a thumbs up fo.pdf
 
Please help me i will give good rating Hanan works for a Korean multi.pdf
Please help me i will give good rating  Hanan works for a Korean multi.pdfPlease help me i will give good rating  Hanan works for a Korean multi.pdf
Please help me i will give good rating Hanan works for a Korean multi.pdf
 
Please answer the following questions thoroughly- 1) What are the m.pdf
Please answer the following questions thoroughly-    1) What are the m.pdfPlease answer the following questions thoroughly-    1) What are the m.pdf
Please answer the following questions thoroughly- 1) What are the m.pdf
 
photosythesis - chromatography paper- separation of photosynthetic pig.pdf
photosythesis - chromatography paper- separation of photosynthetic pig.pdfphotosythesis - chromatography paper- separation of photosynthetic pig.pdf
photosythesis - chromatography paper- separation of photosynthetic pig.pdf
 
Please follow the instructions carefully as there are some specific co (1).pdf
Please follow the instructions carefully as there are some specific co (1).pdfPlease follow the instructions carefully as there are some specific co (1).pdf
Please follow the instructions carefully as there are some specific co (1).pdf
 
Please follow the instructions carefully as there are some specific co.pdf
Please follow the instructions carefully as there are some specific co.pdfPlease follow the instructions carefully as there are some specific co.pdf
Please follow the instructions carefully as there are some specific co.pdf
 
Please explain what this means -The overall model was statistically si.pdf
Please explain what this means -The overall model was statistically si.pdfPlease explain what this means -The overall model was statistically si.pdf
Please explain what this means -The overall model was statistically si.pdf
 
Please draw an evolutionary tree dthe information given- 3- A new or.pdf
Please draw an evolutionary tree dthe information given-   3- A new or.pdfPlease draw an evolutionary tree dthe information given-   3- A new or.pdf
Please draw an evolutionary tree dthe information given- 3- A new or.pdf
 
Please complete the following App using Parallel Arrays- -- -- Conte.pdf
Please complete the following App using Parallel Arrays-  -- --  Conte.pdfPlease complete the following App using Parallel Arrays-  -- --  Conte.pdf
Please complete the following App using Parallel Arrays- -- -- Conte.pdf
 

Recently uploaded

18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 

Recently uploaded (20)

18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 

please follow all instructions and answer the inbedded questions- and.pdf

  • 1. please follow all instructions and answer the inbedded questions, and written in C pls // 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 linked list of game items like you'd see in a folder. // Each item has this information: item name, game name, type of item, item ID. // The struct 'itemRecord' holds the information of one item. Variety is an enum. // A linked list of structs called 'list' is declared 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 all string library functions. // You will have to write your functions from scratch by looking at what is expected to be passed into them in the pre-existing functions // WRITE COMMENTS FOR IMPORANT STEPS IN YOUR CODE. #include <stdio.h> #include <stdlib.h> #include <string.h> #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* next; // pointer to next node }; struct itemRecord* list = NULL; // declare linked list 'list' int count = 0; // the number of items currently stored in the list (initialized to 0) // functions already pre-implemented last homework void flushStdIn(); void executeAction(char); void save(char* fileName); void display(); // functions that need implementation: add, sort, delete, load // Implement your own headers.
  • 2. 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 a 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 itemId_input, add_result = 0; char itemtype_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);
  • 3. gameName_input[strlen(gameName_input) - 1] = '0'; // discard the trailing 'n' char printf("Enter item type (Health/Equip/Etc): "); fgets(itemtype_input, sizeof(itemtype_input), stdin); itemtype_input[strlen(itemtype_input) - 1] = '0'; // discard the trailing 'n' char printf("Please enter item ID number: "); scanf("%d", &itemId_input); flushStdIn(); // add the item to the list add_result = add(itemName_input, gameName_input, itemtype_input, itemId_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 the item. the Item list is full! nn"); break; case 'r': printf("Please enter ID number of item to be deleted: "); scanf("%d", &itemId_input); flushStdIn(); int delete_result = delete(itemId_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 item list with the details (struct elements) of each item. // Display all items. void display() {
  • 4. struct itemRecord* tempList = list; // work on a copy of 'list' char* itemTypeString = "NoType"; // dummy init while (tempList != NULL) { // traverse all items in the list printf("nItem Name: %s", tempList->itemName); // display the item name printf("nGame name: %s", tempList->gameName); // display the game name if (tempList->variety == Health) // find what to display for item type itemTypeString = "Health"; else if(tempList->variety == Equip) itemTypeString = "Equip"; else itemTypeString = "Etc"; printf("nItem Type: %s", itemTypeString); // display item type printf("nItem ID: %d", tempList->itemID); // display item id printf("n"); tempList = tempList->next; } } // save() is called at the end of main() // This function saves the linked list of structures to file. // 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. For VS, the default directory looks like this: // C:Users<username>DocumentsVisual Studio 20XXProjectsProject1Project1 // You can simply delete the file to 'reset the list' or to avoid loading from it. void save(char* fileName) { struct itemRecord* tempList = list; // work on a copy of 'list' FILE* file; int itemTypeValue = 0; file = fopen(fileName, "wb"); // open file for writing fwrite(&count, sizeof(count), 1, file); // First, store the number of items in the list // Parse the list and write item records to the file while (tempList != NULL) { fwrite(tempList->itemName, sizeof(tempList->itemName), 1, file); fwrite(tempList->gameName, sizeof(tempList->gameName), 1, file); // convert enum to a number for storing if (tempList->variety == Health) itemTypeValue = 0; // 0 for Health
  • 5. else if(tempList->variety == Equip) itemTypeValue = 1; // 1 for Equip else itemTypeValue = 2; // 2 for Etc fwrite(&itemTypeValue, sizeof(itemTypeValue), 1, file); fwrite(&tempList->itemID, sizeof(tempList->itemID), 1, file); tempList = tempList->next; } 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 (linked list 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 the item 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 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 executeAction() // NOTE: You will likely pass the variety attribute as a string. This must be converted to an enum type because itemType has enum type. // The list should be case sensitive. For instance, 'Poprocks' and 'popRocks' should be considered two different names. // Hint: 'count' holds the number of items currently in the list // Q2 : sort (10 points) // This function is used to sort the list (linked list of structs) numerically by item 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 node of structs having sorted items. // Please use this print statement to print after successfully sorting the list: // 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. // Return 0 if the specified ID was not found. Return 1 upon successful removal of a record.
  • 6. // 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 linked list 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 the expected output of add() in homework the 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 item 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. // You'll need to use the following two print statements in your code: // printf("Item record loaded from %s.n", fileName); // printf("%s not found.n", fileName);