⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ticketinformation.cpp

📁 C++大学简明教程,解压就行没有密码。希望对大家有用
💻 CPP
字号:
// Tutorial 18: TicketInformation.cpp
// This application reads information about events on different
// dates from a file.
#include <iostream> // required to perform C++ stream I/O
#include <fstream>  // required to perform C++ file I/O
#include <string>   // required to access string functions
#include <cstdlib>  // required for the exit function

using namespace std; // for accessing C++ Standard Library members

// function prototypes
int getDate();
void displayEvent( int );

// function main begins program execution
int main()
{
   int date; // event day

   // prompt user for and input the day for an event
   date = getDate();

   // display events (if any) and prompt user for new date
   while ( date != 0 )
   {
      displayEvent( date ); // display event for specified day
      date = getDate(); // prompt user for next event date
   } // end while

   cout << "\n"; // insert newline for readability
   
   return 0; // indicate that program ended successfully

} // end function main

// prompt user for and input date, then return the date if valid
int getDate()
{
   int date; // user input

   // prompt user for and input the requested date
   cout << "\nSelect date (1-31) or 0 to exit: ";
   cin >> date;

   // ensure that the date is valid before proceeding
   while ( date < 0 || date > 31 )
   {
      cout << "\nError: Enter a date between 1 and 31, inclusive\n"
           << endl;

      // prompt user for and input the requested date
      cout << "\nSelect date (1-31) or 0 to exit: ";
      cin >> date;
   } // end while

   return date; // return the date

} // end function getDate

// display event information
void displayEvent( int date )
{
   // define variables
   string time; // event start time
   string price; // event price
   string name; // event name
   string description; // event description
   string contents; // line of text from calendarFile
   int day; // day of the month for an event

   // open file for input
   ifstream calendarFile( "calendar.txt" );

   // exit program if ifstream could not open the file
   if ( !calendarFile )
   {
      cout << "Error: File could not be opened." << endl;
      exit( 1 ); // return an error code to the system
   } // end if

   // read an event date from the file
   calendarFile >> day;
   calendarFile.ignore(); // remove newline from input

   // repeat while there are more lines in the file
   while ( !calendarFile.eof() )
   {
      // if selected day is equal to the date read from the file
      if ( day == date )
      {
         getline( calendarFile, time ); // event time
         getline( calendarFile, price ); // event price
         getline( calendarFile, name ); // event name
         getline( calendarFile, description ); // event descripion

         // display event information
         cout << "\nEvent: " << name << endl;
         cout << "Time: " << time << endl;
         cout << "Price: " << price << endl;
         cout << "Description: " << description << endl;
      
         return;
      
      } // end if

      else // if date was not equal
      {
         // move to next date in file by skipping 4 lines of text
         for ( int x = 0; x < 4; x++ )
         {
            getline( calendarFile, contents );
         } // end for

      } // end else

      // read the date of the next event from the file
      calendarFile >> day;
      calendarFile.ignore(); // remove newline
   } // end while

   cout << "\nNo event for selected day." << endl;

} // end function displayEvent


/**************************************************************************
 * (C) Copyright 1992-2005 by Deitel & Associates, Inc. and               *
 * Pearson Education, Inc. All Rights Reserved.                           *
 * DISCLAIMER: The authors and publisher of this book have used their     *
 * best efforts in preparing the book. These efforts include the          *
 * development, research, and testing of the theories and programs        *
 * to determine their effectiveness. The authors and publisher make       *
 * no warranty of any kind, expressed or implied, with regard to these    *
 * programs or to the documentation contained in these books. The authors *
 * and publisher shall not be liable in any event for incidental or       *
 * consequential damages in connection with, or arising out of, the       *
 * furnishing, performance, or use of these programs.                     *
 **************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -