Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /******************************
- Cody Hesselgrave
- 2/16/2019
- PA2_Cody_Hesselgrave.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)
- {
- vector<string> vect;
- file.open(FILENAME);
- if (file.fail)
- {
- cout << "File not found.";
- }
- /*
- for (int i = 0; i < file.end; i++)
- {
- vect[i] = file.getline(file, line1[a], '\n');
- }
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement