REACH CECS 130 Final Exam Test Review

advertisement

Do you know the syntax for each of these, used to read and write to data files?

 Pointers: think of it as the memory address of the file

 fopen()

 fclose()

 fscanf()

 fprintf()

 fopen() returns a FILE pointer back to the pRead variable

#include <cstdio>

}

{

Main()

FILE *pRead; pRead = fopen(“file1.dat”, “r”); if(pRead == NULL) printf(“\nFile cannot be opened\n”); else printf(“\nFile opened for reading\n”);

“r”

“w”

“a”

“r+“

Mode

“w+“

“a+“

Meaning

Open a file for reading

Create a file for writing

Append to a file

Open a file for read/write

Create a file for read/write

Open a file for read/write

Already Exists read from start destroy contents write to end read from start destroy contents write to end

Does Not Exist error create new create new error create new create new

 Pretty basic.

 Reads a single field from a data file

 “%s” will read a series of characters until a white space is found

 can do fscanf(pRead, “%s%s”, name, hobby);

#include <stdio.h>

{

Main()

FILE *pRead; char name[10]; pRead = fopen(“names.dat”, “r”); if( pRead == NULL ) printf( “\nFile cannot be opened\n”); else printf(“\nContents of names.dat\n”); fscanf( pRead, “%s”, name );

}

} while( !feof(pRead) ) { printf( “%s\n”, name ); fscanf( pRead, “%s”, name );

Kelly 11/12/86

Allen 04/05/77

Chelsea 03/30/90

6

49

12

Louisville

Atlanta

Charleston

Can you write a program that prints out the contents of this information.dat file?

#include <stdio.h>

{

Main()

FILE *pRead; char name[10]; char birthdate[9]; float number; char hometown[20]; pRead = fopen(“information.dat”, “r”);

} if( pRead == NULL ) printf( “\nFile cannot be opened\n”); else fscanf( pRead, “%s%s%f”, name, birthdate, &number, hometown ); while( !feof(pRead) ) { printf( “%s \t %s \t %f \t %s\n”, name, birthdate, &number, hometown ); fscanf( pRead, “%s%s%f”, name, birthdate, &number, hometown );

}

 The fprintf() function sends information (the arguments) according to the specified format to the file indicated by stream. fprintf() works just like printf() as far as the format goes.

}

#include <stdio.h>

{

Main()

FILE *pWrite; char fName[20]; char lName [20]; float gpa; pWrite = fopen(“students.dat”,”w”); if( pWrite == NULL ) printf(“\nFile not opened\n”); else printf(“\nEnter first name, last name, and GPA separated” printf(“Enter data separated by spaces:”); scanf(“%s%s%f”, fName, lName, &gpa); fprintf(pWrite, “%s \t %s \t % .2f \n”, fName, lName, gpa); fclose(pWrite);

 Can you write a program that asks the user for their

 Name

 Phone Number

 Bank account balance

And then prints this information to a data file called accounts.dat ?

 Summary

 Include #include <iostream> directive at beginning of program

 Use cin to take data from user

 Use cout to display data on screen

▪ Display multiple strings and integers in the same cout statement by separating items with <<

#include <iostream>

#include<string> using namespace std; string name = “”;

}

{ int main(void) cout<<“What is your name?”; cin>>name; cout<<endl<<“Hello”<<name.c_str(); return 0;

#include <iostream> using namespace std; int x = 25; string str2 = “This is a test”;

}

{ int main( void ) cout<<“Test”<<1<<2<<“3”; cout<<25 %7<<endl<<str2.c_str(); return 0;

Test 1234

This is a test

How a computer stores data in its internal memory

 RAM (Random-Access Memory) - temporary

 ROM (Read-Only Memory) – non volatile

 Store data in bytes

How you store data temporarily

 Create variables based on fundamental types

(bool, char, int, float) constants: #define CONSTNAME value sizeof()

TYPE bool char int short long float double

SIZE

1 byte

1 byte

4 bytes

2 bytes

4 bytes

4 bytes

8 bytes

VALUES true (1) or false (0)

‘a’ to‘z’ , ‘A’ to ‘Z’, ‘0’ to ‘9’, space, tab, and so on

-2,147,483,648 to 2,147,483,647

-32,768 to 32,767

-2,147,483,648 to 2,147,483,647

+ - (1.2 x 10^-38 to 3.4 x 10^38)

+- (2.3 x 10^-308 to -1.7 x 10^308)

 What do each of the following evaluate to?

1. long elves = 8; int dwarves = 8; if(elves==dwarves) //true or false?

if(elves!=0) //true or false?

2. int elves = 4; int dwarves = 5; if(dwarves > (2/3)) //true or false?

3. if(0 < x < 99) //true or false?

4. if(0<= (0<1))//true or false?

 What do each of the following evaluate to?

1. long elves = 8; int dwarves = 8; if(elves==dwarves) //true if(elves!=0) //true

2. int elves = 4; int dwarves = 5; if(dwarves > (2/3)) //true

3. if(0 < x < 99) //true …TRUE (1) and FALSE (0) < 99

4. if(0<= (0<1))//true

 if(condition) statement; else if (condition) statement;

 condition ? expr1 : expr2

 ex. z = ( x > y ) ? y : x ;

 cannot do

(x>y) ? count << “x is greater than y.” : cout << “x isn’t greater than y.”

switch(expression){ case expr1: statement; break; case expr2: statement; break; case expr3:

} statement; break; default: statements break;

}

{

 while (condition) statements;

 do

{ statements;

} while(condition);

 for (initialization; condition; expression)

{ statements;

}

 Incrementing: Prefix and Postfix int x = 5; int y = 6; int z = y++ //z=6, y=7 postfix operator int z = ++x //z=6, x=6 prefix operator

Keyword break continue goto return

Purpose

Exits the nearest enclosing “switch” statement or iteration statement

Starts the next loop of the nearest enclosing iteration statement

Jumps to a particular place in your code

Ends a function and returns a value

 Can you write a program that prints out the following?

0 1 2 3 4 5 6 7 8 9

}

{ for ( int count = 0; count < 10; count ++) cout <<count<<“”;

1.

Write a conditional statement that will assign x/y to x if y doesn’t equal 0.

2.

Write a while loop that calculates the summative of positive integers from 1 to some number n.

3.

Write a conditional statement that assigns x*y if x is even; otherwise , if x is odd and y doesn’t equal 0, assign x to x/y; if neither of the preceding cases is true, output to the screen that y is equal to 0.

Function declaration

Function definition

Function call

#include <iostream> using namespace std; int add(int a, int b);

{ int main(void) int number1, number2; cout << “Enter the first value to be summed:”’ cin >> number1; cout << “\nEnter the second:”;

} cin >> number2; cout << “\n The sum is: “ << add (number1, number2) <<endl;

}

{ int add(int a, int b) return a+b;

 Write a function, called multiply that multiplies two numbers and returns the result

Declare classes

Create objects

 3 MAIN PRINCIPLES OF OOP

 Data abstraction – hiding data members and implementation of a class behind an interface so that the user of the class corrupt that data

 Encapsulation – each class represents a specific thing or concept. Multiple classes combine to produce the whole

 Polymorphism-objects can be used in more than one program

Classes are general models from which you can create objects

Classes have data members either data types or methods

Classes should contain a constructor method and a destructor method

See handout for example of a program that utilizes a class

{ class ClassName memberList

}; memberList can be either data member declarations or method declarations

{

Class Bow

//data member declarations string color; bool drawn; int numOfArrows;

Bow(string aColor); //constructor

~Bow(); //destructor

};

//methods void draw(); int fire();

}

{

Return_type

ClassName::methodName(argumentList) methodImplementation

//draws the bow

}

{

Void Bow::draw() drawn = true; cout<< “The “<<color<<“bow has been drawn.”<<endl;

Arrays

Pointers

 data_type array_name [number-of-elements];

 Two Dimensional Array array_type array_name [number_ofelements1][number_of_elements2];

 type* pointer_name;

 ex.

int my_int; int* my_int_pointer = &my_int;

Assigns the address of my_int to the pointer

 Copying strings from one to another

 char* strcpy(char* p, const char* q);

 char s[6]; strcpy(s, “Hello”);

 To combine strings

 char* strcat(char* p, const char* q);

 char s[12] = “Hello” strcat(s, “World”);

To copy n characters from q to the of p.

char* strncpy(char* p, const char* q, int n);

 char s [7] = “Say “; char t[] = “Hi”; strncpy (s, t, 2)

 Can you write a program using C++ that uses a FOR loop to initialize a 2D array that looks like the following {0,5,10,15}{0,2,4,6}

#include<iostream> using namespace std; int main(void)

{ int array[4][4]; for( int i = 0; i< 5; i++)

{

Basic framework for a program

How to Comment

How to Print

How to store variables

How to Print stored variables

How to find the size of a variable

How to convert from one data type to another

How to Declare Constants

If statements

 Conventional

 Using conditional operator

Switch-case statements

Loops

 While

 Do-While

 For

Branching statements

How to declare and implement functions

How to create arrays

How to create pointers

Useful string functions

Classes

//this is how you comment

/*this is how you comment */ Use for Multiple lines

Used to create functions, classes, and variables of the same name

Ex.

}

{

Namespace combat void fire()

{

}

Namespace exploration void fire()

 To call a namespace combat::fire()

 Say (to avoid having to put combat:: every time using namespace combat; fire()

}

{ class aClass public: int anInt;

{ class aDerivedClass : public aClass protected: float aFloat;

};

 Used in place of a specific data type. For example, use a template to add data types together, whichever data type the user wishes (i.e integers, floats)

Download