REACH CECS 130 Final Exam Test Review

Download Report

Transcript REACH CECS 130 Final Exam Test Review

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”);
}
Mode
Meaning
Already Exists
Does Not Exist
“r”
Open a file for reading
read from start
error
“w”
Create a file for writing
destroy contents
create new
“a”
Append to a file
write to end
create new
“r+“
Open a file for read/write
read from start
error
“w+“
Create a file for read/write
destroy contents
create new
“a+“
Open a file for read/write
write to end
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
SIZE
VALUES
bool
1 byte
true (1) or false (0)
char
1 byte
‘a’ to‘z’ , ‘A’ to ‘Z’, ‘0’ to ‘9’, space, tab, and so on
int
4 bytes
-2,147,483,648 to 2,147,483,647
short
2 bytes
-32,768 to 32,767
long
4 bytes
-2,147,483,648 to 2,147,483,647
float
4 bytes
+ - (1.2 x 10^-38 to 3.4 x 10^38)
double
8 bytes
+- (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
Purpose
break
Exits the nearest enclosing “switch”
statement or iteration statement
continue
Starts the next loop of the nearest
enclosing iteration statement
goto
Jumps to a particular place in your code
return
Ends a function and returns a value

Can you write a program that prints out the
following?
0123456789
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)