Mooc File

Download as pdf or txt
Download as pdf or txt
You are on page 1of 38

MOOC based seminar report

On
INTRODUCTION TO MODERN DATABASE
SYSTEM (CS403)

BY : MAYANK JOSHI
ROLL NO: 1961101
COURSE: B.TECH
BRANCH : CSE

UNDER THE GUIDANCE OF


DR. MEHUL MANU
ASSISTANT PROFESSOR

DURING THE YEAR 2019-2020


ACKNOWLEDGEMENT

I would like to give a special thanks to several people who made this all possible.
It is because of their tremendous support that I was able to finish this project with immense success .
I would like to thank each and everyone who helped me in the completion of this project, but firstly
and fore mostly I would like to pour my heart out in gratitude and humility towards our MOOC
coordinator Dr. Mehul Manu who ostensibly supported me in this project whole heartedly.
I consider myself very fortunate and gratified that I was given an opportunity and once again would
like to show my appreciation whole heartedly to everyone to make this possible.

mayankjan2002@gmail.com MAYANK JOSHI


BHIMTAL CAMPUS

THIS IS TO CERTIFY THAT MR MAYANK JOSHI HAS SATISFACTORILY PRESENTED

MOOC BASED SEMINAR. THE COURSE OF THE MOOC REGISTRATION CS107 : C++

PROGRAMMING IN PARTIAL FULFILMENT OF THE SEMINAR PRESENTATION

REQUIREMENT IN SECOND SEMESTER OF B.TECH (  ) / M.TECH ( ) / BCA / MCA / BBA

/ MBA DEGREE COURSE PRESCRIBED BY GRAPHIC ERA HILL UNIVERSITY BHIMTAL

CAMPUS DURING THE YEAR 2019-2020.

MOOC – Coordinator HOD

Name : DR. MEHUL MANU Name : DR. NAVNEET JOSHI

Signature : Signature :
INTRODUCTION TO C++

In the 1990s , C++ was one of the most popular programming languages, and now it is the third
most popular programming language, according to the Tiobe Rankings (November 2017).
C++ language was initially designed with a focus mainly on systems programming, it is an
attractive language if someone is creating end user applications because of its features like
resource constraints. C++ is extensively used in developing games, web clients / server side,
robotic and back office of financial applications.

HISTORY OF C++ AND STANDARDIZATION

Bjarne Stroustrup was the designer of C++ language and original implementer. C++ language
was originally named as C with Classes as it was derived or inherited from C language having a
new concept of classes.
This language was developed during 1979 in Bell Labs for the purpose of implementing the
Unix Operating System , by Dennis Ritchie . It gave great control to users over hardware at a
higher conceptual level than assembly language.
It is a standard recognized by American National Standard Institute (ANSI), British Standards
Institute (BSI), The German National Standards Bodies and other National Standard Bodies and
was also ratified by The International Standard Organization.

C++ Source Code Example:

// Program to print ‘Hello World’

#include<iostream>
int main()
{
std::cout<<“Hello World”<<std::endl;
return 0;

}
HOW TO INSTALL ECLIPSE:
We need an IDLE/IDE software to run the program and to implement the code written in C++
language. For this we install the compiler in which interpret the code and convert it into binary
code and also make an executable file which can be easily understood by the computer . There
are different types of compiler which can be used to run the program , some of them are
TurboC++ , DevC++ ,Eclipse, GNU C++ Compiler(in case of MAC or Linux) , etc.
The common step to install the compiler is as follows:
Go to official websites of compiler.
Click on Download c++ compiler
An Idle software along with the compiler will be downloaded
Open the compiler and start programming

MY FIRST PROGRAM:
Steps to create our first C++ file:
1. Open Codeblocks .
2. Go to file > New > Empty File.
3. Write the following snippet and save the file as “MyFirstProgram.cpp”
4. For saving a file go to File>Save File as.
#include<iostream>
using namespace std;
int main()
{
cout<<”Hello World!”;
return 0;
}
Output of the above code
C++ Comments :
Comment are used to explain C++ code to make it more readable. These can also be used to
prevent execution when testing alternative codes. Comments are of two types in C++ :
1. Single line Comments
Single line comments are used to comment a single line.
It starts with double forward slash (//).
Any text between // and EOL(end of line) is ignored by the compiler and will not be
executed.
Example –
cout<<“Mayank Joshi”;// Single line comment

2. Multi line Comments.


A multi line comments are used to comment multiple lines.
This can be done by writing any text between /* and */ . The text written in between
these symbols will be simply ignored by the compiler
Example :
/* This is the example of multiline comment
the compiler will ignore this fragment of code
*/
cout<<“MAYANK JOSHI”;l
and we will get output as :
MAYANK JOSHI

C++ Variables:
Variables are used to store data , like number , text etc.
According to the type of data , in C ++ , variables are of mainly 5 types :
int : it stores integers [whole numbers] , without the decimals , like 0, 100 , 18
double : it stores floating point numbers, with decimals , like 1.56 , 11.11
char : it stores single character , like ‘m’, ‘2’. Character values are surrounded by single
quotes
string : it stores text , like “Mayank Joshi”. String values are surrounded by double quotes.
bool – it stores the values with two states – true or false.
To insert a new line or to break lines we can use \n or endl

Example :

#include<iostream>
using namespace std;
int main()
{
cout<<“MAYANK JOSHI”<<endl;
cout<<“MOOC REPORT\n”;
cout<<“C++”;
return 0;
}

The output of the code will be:

DECLARING/CREATING A VARIABLE:

To create a variable , we must specify the data type of variable and then assign a value to it.
Syntax : datatype variable_name = value
where datatype is the type of value to be assigned (like int) , variable_name is the name of
the variable which is also called identifier , = denotes assignment operator which assigns
value to variable_name and the value will be stored.
Example :

#include <iostream>
using namespace std;
int main()
{
int Num = 18; // Integer (whole number without decimals)
double Float = 18.5; // Floating point number (with decimals)
char ch = 'M'; // Character
string str = "Mayank"; // String (text)
bool Boolean = true; // Boolean (true or false)
return 0;
}
To display a variable we use cout object with << this operator. We can also combine a
variable and a text by separating them with << operator
For example : cout << “The value =“ << value;

To add variables we use + addition operator


Example :
int a = 10;
int b = 20;
int c= a+b;
cout<<c;
The output of the above code is 30.

We can declare more than one variable of the same type using comma separated list as
follows:
int a = 10 , b = 20 , c = 30;
cout<< a + b + c;

It will produce output as 60.


C++ Identifiers:
The variables must be assigned with unique names.
These unique names are called as identifier.
Identifiers can be descriptive names (MyValue, Total_salary_per_month) or small names
(x, y , ans)

RULES FOR NAMING VARIABLES:

 Reserved words (like C++ keywords, such as char) cannot be used as names
 Name must begin with a letter or an underscore (_)
example : answer , _answer
 Names are case sensitive (ans and aNs are different variables)
 Name cannot contain whitespaces or special characters like !, #, %, etc.
 Name can contain letters, digits and underscores
example : sec_D_student70

CONSTANTS:

When we do not want to alter the value of a variable, then we use const keyword , then the
variable will be treated as a constant and we can not change the value stored in the variable ,
and it will be read only variable.

Syntax :
const datatype variable_name = value;

Example :

const float pi = 3.14;


const int zero = 0;
pi=3;
This code will give error as you cannot change the value of variable pi.
TAKING INPUT:
For taking input cin object is used with >> operator.
>> operator is known as extraction operator.
cin in predefined keyword that reads the data from the keyboard with extraction operator

Example :
#include<iostream>
using namespace std;
int main()
{
int I;
cout << “Enter a number : ” ;
cin >> I ;
cout<<“The entered value is ”b<< I ;
return 0;
}

The output of the aforesaid code is :

In the above example we have asked user to input an integer number then we have printed the
number that was entered by the user.
When the user have entered the number the number is stored into the variable I and then we
have printed the value stored in the variable I .
SIMPLE CALCULATOR :

We can make simple calculator as follows :

//The code to add two numbers and print the output as the sum of the two numbers.
#include<iostream>
using namespace std;
int main()
{
int x,y;
cout<<“Enter two numbers\n”;
cin>>x;
cin>>y;
cout<<“SUM = ”<<x+y;
return 0;
}

The output of the aforesaid code is –

In the above code we have taken two numbers from the user and stored them in x and y
variables.
Then we have added those numbers using + operator .
At last we have given the sum as the output of the code.
BASIC DATA TYPES :
Data type specifies the size of the data to be stored and the type of the data to be stored.
There are mainly 5 datatypes in c++ :

Data Type Size Description


int 4 bytes Stores whole numbers, without decimals

float 4 bytes Stores fractional numbers, containing one or more decimals.


Sufficient for storing 7 decimal digits
double 8 bytes Stores fractional numbers, containing one or more decimals.
Sufficient for storing 15 decimal digits
boolean 1 bytes Stores true or false values

char 1 bytes Stores a single character/letter/number, or ASCII values

C++ OPERATORS :
Operators are used to perform operations in C++ variables.
In C++ there are 5 types of operators:
• Arithmetic Operators
• Assignment Operators
• Logical Operators
• Comparison Operators and
• Bitwise Operators

Assignment Operators :
These are used to perform common mathematical operations .

Operator Name Description Example


+ Addition Adds together two values a+b

- Substraction Subtracts one value from another a–b

* Multiplication Multiplies two values a*b


Operator Name Description Example
/ Division Divides one value by another a/b

% Modulus Returns the division remainder a%b

++ Increment Increases the value of a variable by 1 ++a, a++

-- Decrement Decreases the value of a variable by 1 --a, a--

ASSIGNMENT OPERATORS :
Assignment operators are used to assign values to the variables.

We can use the combination of different operators with assignment operators.

Operator Example Meaning


= a = 10 a = 10

+= a += 10 a = a + 10

-= a -= 10 a = a – 10

*= a *= 10 a = a * 10

/= a /= 10 a = a / 10

%= a %= 10 a = a % 10

&= a &= 10 a = a & 10

|= a |= 10 a = a | 10

^= a ^= 10 a = a ^ 10

>> = a >>= 10 a = a >> 10

<< = a <<= 10 a = a << 10


COMPARISON OPERATORS :
These operators are used for comparing two values.
The return value of these operators is either 1 (True) or 0 (False).

Operator Name Example


== Equal to a==b

!= Not equal a!=b

> Greater than a>b

< Less than a<b

>= Greater than or equal to a>=b

<= Less than or equal to a<=b

Example:
#include<iostream>
using namespace std;
int main()
{
int a, b;
a=10;
b=20;
cout<<(a==b)<<endl;
cout<<(a!=b)<<endl;
cout<<(a>b)<<endl;
cout<<(a<b)<<endl;
return 0;
}
The Output of the code will be :

Here the zero means false and 1 means true .

LOGICAL OPERATORS :
The logical operators are used to determine the logic between variables and values and also
to solve logical expressions.

These are of 3 types :

Operator Name Description Example


&& Logical and Returns true if both statements are true a&&b

|| Logical or Returns true if one of the statements is a||b


true

! Logical not Reverse the result, returns false if the !(a&&b)


result is true
C++ STRINGS :
Strings are used for storing text.
The variable of string type contains a collection of characters surrounded by double quotes.

Example:
string Name = “Mayank Joshi” ;
For using string we have to include string header file.

Snippet Example :
#include<iostream>
#include<string>
using namespace std;
int main()
{
string FirstName = “Mayank”, LastName = “Joshi” ;
cout<<FirstName<<“ ”<<LastName;
return 0;
}

The output of the aforesaid code is :

In the above code we have stored the list of characters in the variable and then printed the
values stored in the variables.
STRING CONCATENATION :
We can append one string at the end of another string using + operator .
This is known as concatenation.

Snippet Example :

#include<iostream>
#include<string>
using namespace std;
int main()
{
string FirstName = “Mayank”, LastName = “Joshi” ;
cout << FirstName + “ ” + LastName;
return 0;
}

The output of the code is :

In the above example we have stored the string values in the string variables FirstName and
LastName and then add then using + operator . + operator combined or concatenated the
string and we printed concatenated string which is Mayank Joshi. Please note that we can
also add space or concatenate space at the end of the string.
So we get desired concatenated output by using + operator.
Append:
We can concatenate two strings using append. As string is an object in C++ so it also contains
function to append that is append() function.

Snippet Example :

#include<iostream>
#include<string>
using namespace std;
int main()
{
string FirstName = “Mayank ”, LastName = “Joshi” ;
cout << FirstName.append(LastName);
return 0;
}

The output of the above code is :

we can use both + operator and append function , separately or simultaneously to perorm
concatenation or to add two strings together.
The difference between the two is that the append() function is much faster than the +
operator .
However for testing and in small programs + operator is generally preferred to append()
function.
We cannot add a number with string . This will produce an error in the program.

int a = 10;
string b = “20”;
int c = a + b;
The above code will give an error as 20 is treated as string and not as a number.

int a = 10;
string b = 20;
string c = a + b;
The above code will also produce an error as we cannot add or concatenate a string with a
number.

int a = 10;
int b = 20;
int c = a+b;
In this code the value 30 will be stored in c.

string a = “10”;
string b = “20”;
string c = a + b;
The value stored in string will be of type string and will be “1020” not “30” as the + operator
works to concatenate but not to add algebraically the two values stored in a and b.

Length of string:
To find out length of string we can use either length(), strlen(), or size() function.
size() function is an alias of length() function. We may use any of the 3 aforesaid method.
Example :
string name = “Mayank Joshi’;
name.length();
ASSESSING A STRING :
We can access any character of the string using their index values. The indices starts from 0
and goes to length -1.
So to access the first value we will write :

string str = “Mayank Joshi”;


cout << str[0];

This will print M as the character stored at 0 index is M.

TAKING INPUT FOM THE USER :


We can take input from the users by using cin object with insertion operator.
like cin>>name;
but we cin consider space and newline as a terminator character that is , it will
take only single word as input . So if you want to enter a full sentence having
spaces you should not use cin .
Snippet example:

string name ;
cout << “Enter your name ”;
cin>>name;
cout <<name;
// Enter your name Mayank Joshi
// Mayank

This happened because cin stored only the characters before space and hence
Mayank is stored in the name variable.
So we will use getline function while dealing with the strings .
Example :
string name ;
cout << “Enter your name ”;
getline (cin, name);
cout <<name;
// Enter your name Mayank Joshi
// Mayank Joshi

We can omit namespace from our code but for this we have to print the variables as follows :
std::cout<<name;

MATHEMATICS IN C++ :
C++ offers many functions to perform mathematical operations on variables and numbers.

MAX AND MIN FUNCTIONS:


The max and min functions are used to find maximum or minimum of the two numbers.
Example 1 :
int a=10,b=20;
cout<<max(a,b);
//it will print 20

Example 2 :
int a=10,b=20;
cout<<min(a,b);
//it will print a

C++ <cmath> Header File :


This header file consist of many library function such as sqrt , round , etc.
Function Description
abs(x) Returns the absolute value of x

acos(x) Returns the arccosine of x, in radians

asin(x) Returns the arcsine of x, in radians

atan(x) Returns the arctangent of x, in radians

cbrt(x) Returns the cube root of x

ceil(x) Returns the value of x rounded up to its nearest integer

cos(x) Returns the cosine of x, in radians

cosh(x) Returns the hyperbolic cosine of x, in radians

exp(x) Returns the value of ex

expm1(x) Returns ex -1

fabs(x) Returns the absolute value of a floating x

fdim(x,y) Returns the positive difference between x and y

floor(x) Returns the value of x rounded down to its nearest integer

hypot(x,y) Returns sqrt(x2 +y2) without intermediate overflow or underflow

fma(x,y,z) Returns x*y+z without losing precision

fmax(x,y) Returns the highest value of a floating x and y

fmin(x,y) Returns the lowest value of a floating x and y

fmod(x,y) Returns the floating point remainder of x/y

pow(x,y) Returns the value of x to the power of y

sin(x) Returns the sine of x (x is in radians)

sinh(x) Returns the hyperbolic sine of a double value

tan(x) Returns the tangent of an angle

tanh(x) Returns the hyperbolic tangent of a double value


C++ Booleans :
In C++ programming, we will need a data type that can have only one of two values, like:
TRUE / FALSE
YES / NO
ON / OFF

For the same purpose C++ has bool data type , that can take the values false (0) or true (1).

BOOLEAN VALUES :

A boolean variable can take only two values that are True or False and are declared using
bool keyword.

Example snippet :

bool ans1= True;


bool ans2= False;
cout<<ans1;
cout<<ans2;

The output of the above code fragment will be 10 as the bool variables returns 1 for true and
0 for false.

BOOLEAN EXPRESSION IN C++ :

A Boolean Expression in C++ is an expression that returns boolean value : 1 for True and 0
for False.

C++ Conditions

C++ supports the usual logical conditions from mathematics:

Equal to a == b
Not Equal to : a != b
Less than : a < b
Less than or equal to : a <= b
Greater than : a > b
Greater than or equal to : a >= b

we can use the above conditions to perform different actions for different tasks.

C++ has the following conditional statements:

if , else , elseif , switch.


IF STATEMENT :
The if statement is used to specify a block of C++ code to be executed if the test condition is
true else the part will be skipped.

SYNTAX :
if (test condition)
{
//block of code to execute when the test condition is true.
}
Example :
if(3>2)
{
cout<< “three is greater than two”;
}
ELSE STATEMENT :
The else statement is used to execute the code fragment if the given test condition is false.
Example :
int a = 10
if(x==10)
{
cout<< “X = 10”;
}
else
{
cout<< “X != 10”;
}

THE ELSE IF STATEMENT :


Else if statement is used to specify new condition when the previous condition/s
is false.
TERNARY OPERATOR:
A ternary operator also called conditional operator is a short-hand if else statement as it
consists of only 3 operands.
It is used to replace multiple lines of code with a single line statement . It is often used to
replace the simple if else conditions.
Syntax :
variable = (test condition) ? statement1 : statement2;
Here if the test condition results to true then the statement1 will be executed and if the test
condition is false then the statement2 will be executed.

Example :
#include<iostream>
using namespace std;
int main()
{
int x=-1;
if (x>0)
{
cout<<“POSITIVE”;
}
else
{
cout<<“NEGATIVE”;
}
return 0;
}
The above code will give :
The above code can be written as :
#include<iostream>
using namespace std;
int main ()
{
int i=-1;
i > 0 ? cout << “Positive” : cout << “Negative” ;
return 0;
}

SWITCH STATEMENT :
The switch statement is to select one of the many code blocks .
Syntax :
switch(expression)
{
case a : //code fragment
break;
case b : //code fragment
break;
default : //code fragment
}

It works as follows :

First the expression is evaluated.


Then the value in the expression is compared with the values in each case.
If there will be a match then the corresponding code fragment is executed
If no case is matched then the code corresponding to default will be executed.
As the compiler encounter the break statement it skips the following code in that particular
scope.
Example snippet

#include <iostream>
using namespace std;
int main()
{
int day = 7;
switch (day)
{
case 1:
cout << "Monday";
break;
case 2:
cout << "Tuesday";
break;
case 3:
cout << "Wednesday";
break;
case 4:
cout << "Thursday";
break;
case 5:
cout << "Friday";
break;
case 6:
cout << "Saturday";
break;
case 7:
cout << "Sunday";
break;
}
The output of the above code is

While Loop :

Syntax :

While(condition)
{
//code block to be executed
}

Example :

int i=0;
while(i<5)
{
cout<<“i”;
i++;
}
// The output will be 01234
DO WHILE LOOP:

Syntax :

do
{
//code to be executed
}while(test condition);

Example :

do
{
cout<<i;
i++;
}while(i<5);

This will print :

01234

Please note that the body is executed first and then the test condition

FOR LOOP:
When we know how many times we have to loop , then we prefer for loop to while loop
Syntax :

for (initialization ; test condition ; update expression)


{
//body
}

Example :

for(int i=0 ; i<5 ; i++)


{
cout<<i;
}

//Output of the above code will be 01234

CONTINUE STATEMENT:

The continue statement skips the code fragment following the continue statement for only
one iteration of the loop and then continues with the next iteration in the loop.

Example :

for (int i = 0; i<5; i++)


{
if(i==3)
continue;
cout<<i;
}
The output of the above code will be 0124.
Please note that the value 3 is not printed as the continue statement is executed.

ARRAYS :

Arrays are used to store multiple values in a single variable, instead of declaring separate
variables for each value.

To declare an array, define the variable type, specify the name of the array followed
by square brackets [] and specify the number of elements it should store:

Example :

int arr[10];
string names[4] = {“Mayank”, ”Joshi”, “Manya” , “Dhyani”};

To print a single element :


cout<<names[2]<<names[1];

we can change elements as follows :


names[3]=“Joshi”;
cout<<names[2]<<names[3];

REFERENCES :
A reference variable is a "reference" to an existing variable, and it is created with
the & operator:
Example :
string name=“Mayank Joshi”;
string &me = name;
cout<<me; // it will produce Mayank Joshi as output.
POINTERS :
The pointers are the variables that stores the memory address of other variables.
syntax
datatype * nameofpointer = &nameofvarable;
Example :
int i = 10
int *I = & i;

FUNCTIONS :
Functions are blocks of code which only run when they are called.
We can pass data into functions which are called as parameters.
Functions are used to simplify the program by writing long part once and then using it
multiple times by calling the function containing long code fragments.

C++ have predefined functions and allows users to make their own functions as per the use
called as user defined functions:

Syntax :
datatype function_name( arguments )
{
// code fragment
}

The functions can be called by passing reference values called as call by reference method.
C++ also have concept of Function Overloading.
In functions the parameters can be assigned default values as per the requirements.
The parameter are the variables that are present in the variable definition of the program,
where as the arguments are the values passed to the function
OOPs CONCEPT :
OOP stands for Object Oriented Programming.
In procedural programming we write only procedures or functions that perform operations on
data.
Advantages of OOP over PP :
 OOP provides a clear structure for programs.
 OOP is faster and easier to execute.
 Reusability of code.
 OOP help to keep the c++ code DRY , that is Don’t Repeat Yourself.
 It is easier to modify or debug the program.

CLASSES AND OBJECTS :


A class is a template for objects and an object is an instance of class.
Example:
class – CAR
objects – MARUTI SUZUKI , BMW , TOYOTA.

To create a class we use class keywords


Example:
class Student
{
int crn;
string Name;
};
Attributes are the data variables declared inside a class and methods are the functions on that
attributes.
The class definition ends with a semicolon
The variables of class are called objects that are used to access the attributes and methods of
the class.
To create object of class Student :
Student S1,S2;

To access the elements of class we use . dot operator


like cin>>S1.crn;
cout<<S1.name;

We can define methods or functions inside the class as well as outside the class .
class Numbers
{
int n1,n2,n3,n4, add , avg;
void sum()
{
sum= n1+ n2 + n3 + n4;
}
void average();
};
void Numbers :: average()
{
avg = sum/4;
}
We can also add parameters to the class functions.

Constructor is special method that is automatically called when a new object is formed.
To create constructor we have to use the same name as the class name followed by
parenthesis.
It is always public and does not have any return value.
Constructors may have parameters and default parameters too as in case of functions.\
The Constructor can also be defined outside the class..
In C++ , there are three access specifiers to control what we want to show to the outer world
and what we don’t :
1. public : The members can be accessed from outside the class.
2. private : The members can not be accessed from outside the class.
3. protected : The members cannot be accessed from outside the class but they can be
accessed through inherited class .

Encapsulation :
The meaning of Encapsulation, is to make sure that "sensitive" data is hidden from users. To
achieve this, you must declare class variables/attributes as private (cannot be accessed from
outside the class). If you want others to read or modify the value of a private member, you
can provide public get and set methods.
Encapsulation ensures better control of data and also increases security.

Example :
class Student
{
private:
int rno;
public:
void enter(int crn)
{ rno = crn;
}
int ret()
{ return rno;
}
};
Now the data can be retrieved or modify by indirect access and our data is safe and
encapsulated from the outside world.
INHERITANCE :
In C++ we can inherit one or more class from another or parent class. Attributes and Methods
both can be inherited from parent class to sub class.
Derived class is the class that is derived from the another class
Base class is the class from which derived class is inherited.
Example :
class base : public inherited{
}
There are different types of inheritance

MULTILEVEL INHERITANCE
A class can be derived from a class that is also derived from another class . This type of
inheritance is called Multilevel inheritance.

MULTIPLE INHERITANCE
A class can be derived from more than one class is called Multiple inheritance.

Example:
class derived : public baseclass1 , public baseclass2{
}

Polymorphism
Polymorphism means "many forms", it occurs whenawe have many classes that are related to
each other by inheritance.
Inheritance lets us inheritdattributes and methodsifrom another class. Polymorphism uses
those methods to performjdifferent tasks. This allows us to perform absingle action in
different ways.
For example, think of a basedclass called Animal that has a method called animalSound().
Derived classes ofkAnimals could be Pigs, Cats,fDogs, Birds - And they alsophave their own
implementation of an animal sound (the pigdoinks, and the cat meows, etc.):

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy