DOC PREVIEW
UVa-Wise COSC 181 - Foundations of Computer Programming

This preview shows page 1-2-3-4-5 out of 15 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Slide 1Slide 2Slide 36.8 Case Study: Game of Chance and Introducing enumSlide 5Slide 5Slide 6Slide 7In-Class ExerciseGood Programming Practice 6.1 Good Programming Practice 6.2 Good Programming Practice 6.3 Common Programming Error 6.9 Common Programming Error 6.10 Slide 15COSC 181 – Foundations of Computer ProgrammingClass 2226.7 Case Study: Random Number Generation (Cont.)Scaling and shifting random numbersTo obtain random numbers in a desired range, use a statement likenumber = shifting Value + rand() % scalingF actor;shif tingValue is equal to the first number in the desired range of consecutive integersscalingFactor is equal to the width of the desired range of consecutive integersnumber of consecutive integers in the range3In-Class ExerciseUse a loop to read in a series of numbers from the user.Each time the user enters a number, your program should generate a random number chosen from the range x to x+10 where x is the current user entered numberThe program should print out the randomly selected number before asking for the next user entered number.46.8 Case Study: Game of Chance and Introducing e n u mEnumerationA set of integer constants represented by identifiersThe values of enumeration constants start at 0, unless specified otherwise, and increment by 1The identifiers in an enum must be unique, but separate enumeration constants can have the same integer valueDefining an enumerationKeyword enum A type nameComma-separated list of identifier names enclosed in bracesExample•enum Months { JAN = 1, FEB, MAR, APR };51 // Fig. 6.11: f ig06_11.cpp2 / / Craps s imulat ion.3 #include <iostream>4 us ing std::cout;5 us ing std::endl;67 #include <cstdlib> // contains prototypes for functions srand and rand8 us ing std::rand;9 us ing std::srand;1011 #inc lude <ctime> // contains prototype for function time12 us ing std::time; 1314 int rollDice(); // rolls dice, calculates amd displays sum1516 int main()17 {18 // enumeration with constants that represent the game status 19 enum Status { CONTINUE, WON, LOST }; // all caps in constants2021 int myPoint; // point if no win or loss on first roll22 Status gameStatus; // can contain CONTINUE, WON or LOST2324 // randomize random number generator using current time25 srand( time( 0 ) ); 2627 int sumOfDice = rollDice(); // first roll of the diceOutlinefig06_11.cpp (1 of 4)#include and using for function timeEnumeration to keep track of the game statusDeclaring a variable of the user-defined enumeration typeSeeding the random number generator with the current time62829 / / determine game status and point ( if needed) based on f ir s t ro l l30 switch ( sumOfDice ) 31 {32 case 7: // win with 7 on first roll33 case 11: // win with 11 on first roll 34 gameStatus = WON ;35 break;36 case 2: // lose with 2 on first roll37 case 3: // lose with 3 on first roll38 case 12: // lose with 12 on first roll 39 gameStatus = LOST;40 break;41 default: // did not win or lose, so remember point42 gameStatus = CONTINUE ; // game is not over43 myPoint = sumOfDice; // remember the point44 cout << "Po int is " << myPoint << endl;45 break; // optional at end of switch 46 } // end switch 4748 // while game is not complete49 while ( gameStatus == CONTINUE ) // not WON or LOST50 { 51 sumOfDice = rollDice(); // roll dice again52Outlinefig06_11.cpp (2 of 4)Assigning an enumeration constant to gameStatusComparing a variable of an enumeration type to an enumeration constant753 / / determine game status54 if ( sumOfDice == myPoint ) // win by making point55 gameStatus = WON ;56 else57 if ( sumOfDice == 7 ) // lose by rolling 7 before point58 gameStatus = LOST;59 } // end while 6061 // display won or lost message62 if ( gameStatus == WON )63 cout << "P layer wins" << endl;64 else65 cout << "P layer loses " << endl;6667 return 0; // indicates successful termination68 } // end main6970 // roll dice, calculate sum and display results71 int rollDice()72 {73 // pick random die values74 int die1 = 1 + rand() % 6; // first die roll75 int die2 = 1 + rand() % 6; // second die roll76 77 int sum = die1 + die2; // compute sum of die valuesOutlinefig06_11.cpp (3 of 4)Function that performs the task of rolling the dice87879 / / disp lay result s of th is ro l l80 cout << "Player rolled " << die1 << " + " << die281 << " = " << sum << endl;82 return sum; // end function rollDice83 } // end function rollD icePlayer rolled 2 + 5 = 7Player winsPlayer rolled 6 + 6 = 12Player losesPlayer rolled 3 + 3 = 6Point is 6Player rolled 5 + 3 = 8Player rolled 4 + 5 = 9Player rolled 2 + 1 = 3Player rolled 1 + 5 = 6Player winsPlayer rolled 1 + 3 = 4Point is 4Player rolled 4 + 6 = 10Player rolled 2 + 4 = 6Player rolled 6 + 4 = 10Player rolled 2 + 3 = 5Player rolled 2 + 4 = 6Player rolled 1 + 1 = 2Player rolled 4 + 4 = 8Player rolled 4 + 3 = 7Player losesOutlinefig06_11.cpp (4 of 4)9In-Class ExerciseWrite a “Hello World” program.The main function should call a function called “printHello”.printHello should return no value and accept no parameters. Its job is to output the text, “Hello World” and then return control to main()10Good Programming Practice 6.1 Capitalize the first letter of an identifier used as a user-defined type name.11Good Programming Practice 6.2 Use only uppercase letters in the names of enumeration constants. This makes these constants stand out in a program and reminds the programmer that enumeration constants are not variables.12Good Programming Practice 6.3 Using enumerations rather than integer constants can make programs clearer and more maintainable. You can set the value of an enumeration constant once in the enumeration declaration.13Common Programming Error 6.9 Assigning the integer equivalent of an enumeration constant to a variable of the enumeration type is a compilation error.14Common Programming Error 6.10 After an enumeration constant has been defined, attempting to assign another value to the enumeration constant is a compilation error.15Review


View Full Document

UVa-Wise COSC 181 - Foundations of Computer Programming

Download Foundations of Computer Programming
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Foundations of Computer Programming and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Foundations of Computer Programming 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?