SlideShare a Scribd company logo
1 of 6
Download to read offline
Written in C, requires linked lists. Please answer the 4 questions and show the output. 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 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);
expected output for add:

More Related Content

Similar to Written in C- requires linked lists- Please answer the 4 questions and.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.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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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.pdfformicreation
 

Similar to Written in C- requires linked lists- Please answer the 4 questions and.pdf (20)

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
 
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++ 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
 
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
 
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
 
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
 
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
 
C++ detyrat postim_slideshare
C++ detyrat postim_slideshareC++ detyrat postim_slideshare
C++ detyrat postim_slideshare
 
강의자료6
강의자료6강의자료6
강의자료6
 
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
 
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
 
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
 
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
 
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
 
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
 

More from sravi07

written in c- please answer the 4 questions and write the functions ba.pdf
written in c- please answer the 4 questions and write the functions ba.pdfwritten in c- please answer the 4 questions and write the functions ba.pdf
written in c- please answer the 4 questions and write the functions ba.pdfsravi07
 
Write the pathway of blood flow to and from your left foot.pdf
Write the pathway of blood flow to and from your left foot.pdfWrite the pathway of blood flow to and from your left foot.pdf
Write the pathway of blood flow to and from your left foot.pdfsravi07
 
Write the definition of the function search() as a member function of.pdf
Write the definition of the function search() as a member function of.pdfWrite the definition of the function search() as a member function of.pdf
Write the definition of the function search() as a member function of.pdfsravi07
 
Write the functions add( )- delete( )- build( )- heapify( ) -swim up--.pdf
Write the functions add( )- delete( )- build( )- heapify( ) -swim up--.pdfWrite the functions add( )- delete( )- build( )- heapify( ) -swim up--.pdf
Write the functions add( )- delete( )- build( )- heapify( ) -swim up--.pdfsravi07
 
Write the definition of the function insertBack() as a member function.pdf
Write the definition of the function insertBack() as a member function.pdfWrite the definition of the function insertBack() as a member function.pdf
Write the definition of the function insertBack() as a member function.pdfsravi07
 
Write the pathwy for the Hepatic Portal System.pdf
Write the pathwy for the Hepatic Portal System.pdfWrite the pathwy for the Hepatic Portal System.pdf
Write the pathwy for the Hepatic Portal System.pdfsravi07
 
Write functions or methods for adding an element to the queue (enqueue.pdf
Write functions or methods for adding an element to the queue (enqueue.pdfWrite functions or methods for adding an element to the queue (enqueue.pdf
Write functions or methods for adding an element to the queue (enqueue.pdfsravi07
 
Write a simple investigation about all type of mother board format mai.pdf
Write a simple investigation about all type of mother board format mai.pdfWrite a simple investigation about all type of mother board format mai.pdf
Write a simple investigation about all type of mother board format mai.pdfsravi07
 
Write a report describing the work performed which also include the gr.pdf
Write a report describing the work performed which also include the gr.pdfWrite a report describing the work performed which also include the gr.pdf
Write a report describing the work performed which also include the gr.pdfsravi07
 
Write a program that gets all the nodes at a relative height- public L (2).pdf
Write a program that gets all the nodes at a relative height- public L (2).pdfWrite a program that gets all the nodes at a relative height- public L (2).pdf
Write a program that gets all the nodes at a relative height- public L (2).pdfsravi07
 
Write a program that gets all the nodes at a relative height- public L (1).pdf
Write a program that gets all the nodes at a relative height- public L (1).pdfWrite a program that gets all the nodes at a relative height- public L (1).pdf
Write a program that gets all the nodes at a relative height- public L (1).pdfsravi07
 
Write a program in Assembly language using Irvine library (irvine32-in.pdf
Write a program in Assembly language using Irvine library (irvine32-in.pdfWrite a program in Assembly language using Irvine library (irvine32-in.pdf
Write a program in Assembly language using Irvine library (irvine32-in.pdfsravi07
 
Write a program that asks the user for the name of a file- The program.pdf
Write a program that asks the user for the name of a file- The program.pdfWrite a program that asks the user for the name of a file- The program.pdf
Write a program that asks the user for the name of a file- The program.pdfsravi07
 
Write a program that gets all the nodes at a relative height- public L.pdf
Write a program that gets all the nodes at a relative height- public L.pdfWrite a program that gets all the nodes at a relative height- public L.pdf
Write a program that gets all the nodes at a relative height- public L.pdfsravi07
 
Write a Python function in that computes the sample mean (average) of.pdf
Write a Python function in that computes the sample mean (average) of.pdfWrite a Python function in that computes the sample mean (average) of.pdf
Write a Python function in that computes the sample mean (average) of.pdfsravi07
 
Write a JavaScript program to create a meaningful & good alignment for.pdf
Write a JavaScript program to create a meaningful & good alignment for.pdfWrite a JavaScript program to create a meaningful & good alignment for.pdf
Write a JavaScript program to create a meaningful & good alignment for.pdfsravi07
 
write a Pseudcode of C++ tp present the scene below Let Q be a non-emp.pdf
write a Pseudcode of C++ tp present the scene below Let Q be a non-emp.pdfwrite a Pseudcode of C++ tp present the scene below Let Q be a non-emp.pdf
write a Pseudcode of C++ tp present the scene below Let Q be a non-emp.pdfsravi07
 
Write a program to count the number of vowels(A- E- I- O- and U) in an.pdf
Write a program to count the number of vowels(A- E- I- O- and U) in an.pdfWrite a program to count the number of vowels(A- E- I- O- and U) in an.pdf
Write a program to count the number of vowels(A- E- I- O- and U) in an.pdfsravi07
 
Write a program to implement the encryption and decryption of AES usin.pdf
Write a program to implement the encryption and decryption of AES usin.pdfWrite a program to implement the encryption and decryption of AES usin.pdf
Write a program to implement the encryption and decryption of AES usin.pdfsravi07
 
You discover a plant that gathers some energy from photosynthesis but.pdf
You discover a plant that gathers some energy from photosynthesis but.pdfYou discover a plant that gathers some energy from photosynthesis but.pdf
You discover a plant that gathers some energy from photosynthesis but.pdfsravi07
 

More from sravi07 (20)

written in c- please answer the 4 questions and write the functions ba.pdf
written in c- please answer the 4 questions and write the functions ba.pdfwritten in c- please answer the 4 questions and write the functions ba.pdf
written in c- please answer the 4 questions and write the functions ba.pdf
 
Write the pathway of blood flow to and from your left foot.pdf
Write the pathway of blood flow to and from your left foot.pdfWrite the pathway of blood flow to and from your left foot.pdf
Write the pathway of blood flow to and from your left foot.pdf
 
Write the definition of the function search() as a member function of.pdf
Write the definition of the function search() as a member function of.pdfWrite the definition of the function search() as a member function of.pdf
Write the definition of the function search() as a member function of.pdf
 
Write the functions add( )- delete( )- build( )- heapify( ) -swim up--.pdf
Write the functions add( )- delete( )- build( )- heapify( ) -swim up--.pdfWrite the functions add( )- delete( )- build( )- heapify( ) -swim up--.pdf
Write the functions add( )- delete( )- build( )- heapify( ) -swim up--.pdf
 
Write the definition of the function insertBack() as a member function.pdf
Write the definition of the function insertBack() as a member function.pdfWrite the definition of the function insertBack() as a member function.pdf
Write the definition of the function insertBack() as a member function.pdf
 
Write the pathwy for the Hepatic Portal System.pdf
Write the pathwy for the Hepatic Portal System.pdfWrite the pathwy for the Hepatic Portal System.pdf
Write the pathwy for the Hepatic Portal System.pdf
 
Write functions or methods for adding an element to the queue (enqueue.pdf
Write functions or methods for adding an element to the queue (enqueue.pdfWrite functions or methods for adding an element to the queue (enqueue.pdf
Write functions or methods for adding an element to the queue (enqueue.pdf
 
Write a simple investigation about all type of mother board format mai.pdf
Write a simple investigation about all type of mother board format mai.pdfWrite a simple investigation about all type of mother board format mai.pdf
Write a simple investigation about all type of mother board format mai.pdf
 
Write a report describing the work performed which also include the gr.pdf
Write a report describing the work performed which also include the gr.pdfWrite a report describing the work performed which also include the gr.pdf
Write a report describing the work performed which also include the gr.pdf
 
Write a program that gets all the nodes at a relative height- public L (2).pdf
Write a program that gets all the nodes at a relative height- public L (2).pdfWrite a program that gets all the nodes at a relative height- public L (2).pdf
Write a program that gets all the nodes at a relative height- public L (2).pdf
 
Write a program that gets all the nodes at a relative height- public L (1).pdf
Write a program that gets all the nodes at a relative height- public L (1).pdfWrite a program that gets all the nodes at a relative height- public L (1).pdf
Write a program that gets all the nodes at a relative height- public L (1).pdf
 
Write a program in Assembly language using Irvine library (irvine32-in.pdf
Write a program in Assembly language using Irvine library (irvine32-in.pdfWrite a program in Assembly language using Irvine library (irvine32-in.pdf
Write a program in Assembly language using Irvine library (irvine32-in.pdf
 
Write a program that asks the user for the name of a file- The program.pdf
Write a program that asks the user for the name of a file- The program.pdfWrite a program that asks the user for the name of a file- The program.pdf
Write a program that asks the user for the name of a file- The program.pdf
 
Write a program that gets all the nodes at a relative height- public L.pdf
Write a program that gets all the nodes at a relative height- public L.pdfWrite a program that gets all the nodes at a relative height- public L.pdf
Write a program that gets all the nodes at a relative height- public L.pdf
 
Write a Python function in that computes the sample mean (average) of.pdf
Write a Python function in that computes the sample mean (average) of.pdfWrite a Python function in that computes the sample mean (average) of.pdf
Write a Python function in that computes the sample mean (average) of.pdf
 
Write a JavaScript program to create a meaningful & good alignment for.pdf
Write a JavaScript program to create a meaningful & good alignment for.pdfWrite a JavaScript program to create a meaningful & good alignment for.pdf
Write a JavaScript program to create a meaningful & good alignment for.pdf
 
write a Pseudcode of C++ tp present the scene below Let Q be a non-emp.pdf
write a Pseudcode of C++ tp present the scene below Let Q be a non-emp.pdfwrite a Pseudcode of C++ tp present the scene below Let Q be a non-emp.pdf
write a Pseudcode of C++ tp present the scene below Let Q be a non-emp.pdf
 
Write a program to count the number of vowels(A- E- I- O- and U) in an.pdf
Write a program to count the number of vowels(A- E- I- O- and U) in an.pdfWrite a program to count the number of vowels(A- E- I- O- and U) in an.pdf
Write a program to count the number of vowels(A- E- I- O- and U) in an.pdf
 
Write a program to implement the encryption and decryption of AES usin.pdf
Write a program to implement the encryption and decryption of AES usin.pdfWrite a program to implement the encryption and decryption of AES usin.pdf
Write a program to implement the encryption and decryption of AES usin.pdf
 
You discover a plant that gathers some energy from photosynthesis but.pdf
You discover a plant that gathers some energy from photosynthesis but.pdfYou discover a plant that gathers some energy from photosynthesis but.pdf
You discover a plant that gathers some energy from photosynthesis but.pdf
 

Recently uploaded

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
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
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
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
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
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
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
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
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
 
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
 
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
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 

Recently uploaded (20)

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
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.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
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
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
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
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
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.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
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
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
 
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
 
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
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 

Written in C- requires linked lists- Please answer the 4 questions and.pdf

  • 1. Written in C, requires linked lists. Please answer the 4 questions and show the output. 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 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
  • 2. // 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: ");
  • 3. 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()
  • 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)
  • 5. 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
  • 6. 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); expected output for add: