Answer:
Explanation:
main.cpp file
/******************************
Name
Date
PA1_Starter.cpp
Description
********************************/
// Headers
#include <iostream>
#include <cstdlib>
#include <string>
#include <vector>
#include <fstream>
#include <algorithm>
using namespace std;
// Global variables
const int CREATURE_NAME_SIZE = 30; // Max length of a creature name
const int CREATURE_TYPE_SIZE = 26; // Max length of a creature type
const string FILENAME = "creatures.dat"; // Name of file that contains the data
// struct used to create records in file
struct Creature
{
char name[CREATURE_NAME_SIZE]; // Name of the creature
char creatureType[CREATURE_TYPE_SIZE]; // Type of creature
int hp; // Hit points for creature
int armor; // Armor class for creature
int speed; // Speed of creature
};
// This function returns true if the name of the left creature is less than the name of the right creature
// Use this function when running the sort function
bool sortByName(const Creature &lhs, const Creature &rhs)
{
string name1(lhs.name), name2(rhs.name);
return name1 < name2;
}
// Function declarations
// You will need to code the definitions for each of these functions
int getCreatureNumber(int numCreatures);
void displayCreature(fstream& file, int num);
void displaySorted(fstream& file);
int main()
{
char choice; // choice made by user for menu
fstream creatureFile; // file stream for input file
int numCreatures; // the number of creatures saved to the file
// Open the creatureFile for input and binary (one statement of code)
// Get the number of creatures in the file (two statements of code)
// The number of creatures should be assigned to numCreatures
do
{
cout << "Menu" << endl;
cout << "1. Display a specific creature\n";
cout << "2. Display all creatures sorted by name\n";
cout << "3. Quit\n";
cout << "Enter your choice (1, 2, 3): ";
cin >> choice;
while (cin.get() != '\n');
switch (choice)
{
case '1': // Display a specific creature
displayCreature(creatureFile, getCreatureNumber(numCreatures));
break;
case '2': // Display all the creatures in order
displaySorted(creatureFile);
break;
case '3': // Quit
break;
default:
cout << "Invalid option.\n";
break;
}
if (choice != '3')
{
system("PAUSE");
system("CLS");
}
} while (choice != '3');
creatureFile.close();
// Make sure we place the end message on a new line
cout << endl;
// The following is system dependent. It will only work on Windows
system("PAUSE");
/*
// A non-system dependent method is below
cout << "Press any key to continue";
cin.get();
*/
return 0;
}
/*******************************************************************
getCreatureNumber gets and returns the record number from the file that the user would like to be displayed
PARAM: numCreatures should be the value of the total number of records (creatures) in the file
PRE: numCreatures contains a value that is equal to the number of records in the file
POST: A value between 1 and numCreatures is returned as selected by the user
NOTE: Do not allow a value less than 1 or greater than numCreatures to be returned
********************************************************************/
int getCreatureNumber(int numCreatures)
{
}
/*******************************************************************
displayCreature displays record number num from file
PARAM: file is a fstream that should be open for input and binary
num contains the record number that is to be read in file
PRE: file is a fstream that is open for input and binary
num is a value between 1 and the number of records in file
POST: The record number num is displayed to the monitor
********************************************************************/
void displayCreature(fstream& file, int num)
{
}
/*******************************************************************
displaySorted should read file into a vector. It should then sort the vector by
the name of the creature. Last it should display the vector
PARAM: file is a fstream that should be open for input and binary
PRE: file is open for input and binary
POST: Each record is displayed sorted by the name of the creature
********************************************************************/
void displaySorted(fstream& file)
{
}