Need a project done?

C++ Programming Developer

Search This Blog

Showing posts with label program. Show all posts
Showing posts with label program. Show all posts

Convert Url to IP address in C++.

Convert Url to IP address in C++.


//Convert Url to IP address in C++.
#include <iostream>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdlib.h>
//#include<<errno.h>
#include <string.h>
#include <unistd.h>
#include <netdb.h>
#include <unistd.h>
#include <stdio.h>

using namespace std;

int hostname_to_ip(char * hostname , char* ip); // url to ip

int main(){
    char hn[] = "www.google.com";
    char *hostname = hn;
    char ip[100];
    hostname_to_ip(hostname, ip);
    printf("%s resolved to %s" , hostname , ip);
    return 0;
}

int hostname_to_ip(char * hostname , char* ip)
{
struct hostent *he;
struct in_addr **addr_list;
int i;

if ( (he = gethostbyname( hostname ) ) == NULL)
{
// get the host info
herror("gethostbyname");
return 1;
}

addr_list = (struct in_addr **) he->h_addr_list;

for(i = 0; addr_list[i] != NULL; i++)
{
//Return the first one;
strcpy(ip , inet_ntoa(*addr_list[i]) );
return 0;
}

return 1;
}

Get Desktop Path Dynamically in C++

This program automatically finds the path of desktop in C++.
#include <iostream>
#include <windows.h>
#include <tchar.h>
#include <shlobj.h> // for SHGetKnownFolderPath
using namespace std;

int _tmain() {
    PWSTR pPath = NULL; // this is always a wchar_t*

    // There is no Ansi (char*) version of this function so the TCHAR trick
    // doesn't work here
    HRESULT hr = SHGetKnownFolderPath( FOLDERID_Desktop,
                                       0,    // no flags
                                       NULL, // no tokens
                                       &pPath ); // note we're passing the address here

    if(SUCCEEDED(hr)) {
        wcout << L"Desktop path = " << pPath << endl;
        CoTaskMemFree(pPath); // free memory with correct deallocator function
    }

    return 0;
}

Get Desktop Path Dynamically in C++

This program automatically finds the path of desktop in C++.
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <tchar.h>
#include <shlobj.h> // for SHGetFolderPath

using namespace std;

int main(int argc, _TCHAR* argv[])
{
TCHAR path[_MAX_PATH] = _T(""); // must be _MAX_PATH in size

HRESULT hr = SHGetFolderPath(NULL, // no parent window
CSIDL_DESKTOP,
0,    // no flags
NULL, // no tokens
path);

if (SUCCEEDED(hr)) {
#ifdef _UNICODE
wcout << L"Desktop path = " << path << endl;
#else
cout << "Desktop path = " << path << endl;
#endif
}
}

How to Convert Int to String in C++

I've created my own function to convert an integer (int) to String in C++.

#include "stdafx.h"
#include <string>
#include <iostream>
#include <stack>

using namespace std;

string intToString(int no);

int main(int argc, _TCHAR* argv[])
{
cout << "These are all strings numbers" << endl;
for (int i = 0; i < 20; i++)
cout << intToString(i) << endl;
}

string intToString(int no){
string s = "";
string s2 = "";
if (no <= 9 && no >= 0){
char c = no + 48;
s += c;
return s;
}
else{
do{
char c = no % 10;
s += c + 48;
no /= 10;
} while (no != 0);
//Reverse string
for (int i = s.length() - 1; i >= 0; i--)
{
s2 += s[i];
}
return s2;
}
}

Built in Stack in C++ - STL

#include "stdafx.h"
#include <iostream>
#include <stack>

using namespace std;

int main(int argc, _TCHAR* argv[])
{
stack<int> st;
st.push(1);
cout << "Pushed: " << st.top() << endl;
st.push(2);
cout << "Pushed: " << st.top() << endl;
st.push(3);
cout << "Pushed: " << st.top() << endl << endl;
while (!st.empty())
{
cout << "Emptying..." << endl;
st.pop();
}
//cout << "Stack top now: " << st.top() << endl;
}

GCM - Greatest Common Multiple Program in C++

Program to calculate GCM ( Greatest Commmon Multiple ) in C++ is given below:

// GCM - Greateset Common Multiple program in C++
#include "stdafx.h" //COMMENT THIS LINE IF IT CAUSES ERROR
#include <iostream>

Typecasting in C++

Typecasting in C++ is shown below by typecasting an integer to a character.

//integer to character typecasting
#include <iostream>
using namespace std;

Mouse Handling in C++

Following is the program for mouse handling in C++ when user left clicks.

#include <iostream>
using namespace std;

Binary Tree in C++


Binary Tree program in C++ is given below:

See First: Binary Tree in C++ (A relatively easier Binary Tree program)

// Binary Tree in C++
// Binary Tree program to insert generically in the binary tree.

#include "stdafx.h" //Comment This line if it creates error.
#include <iostream>
using namespace std;

Printing Linked List Recursively in C++

Printing Linked List Recursively in C++ Program is given below:


// Printing Linked List Recursively in C++
// Linked List is created by inserting at head and then printing recursively.
#include <iostream>
using namespace std;

Operator Overloading: Overload << and >> operator


Overload << and >> operator program is given below:

// operator overloading
// overloading << and >> operator
#include "stdafx.h" //Delete this line if it creates error
#include <iostream>
using namespace std;
const int LEN = 80;           //maximum length of names
////////////////////////////////////////////////////////////////
class employee                        //employee class
{
private:
char name[LEN];                 //employee name
unsigned long number;
public:
friend istream& operator >> (istream& s, employee& e);
friend ostream& operator << (ostream& s, employee& e);
};
//-------------------------------------------------------------
istream& operator >> (istream& s, employee& e){
cout << "Name: "; s.getline(e.name,LEN,'\n');
cout << "Number: "; s >> e.number;
return s;
}
//-------------------------------------------------------------
ostream& operator << (ostream& s, employee& e){
cout << "Name: " << e.name << endl
<< "Number: " << e.number << endl;
return s;
}
///////////////////////////////////////////////////////////////
int main(){
employee oe; // oe => object of class employee.
cin >> oe;
cout << oe;
return 0;
}

Printing Linked List in Reverse Order Recursively in C++


Printing Linked List in Reverse Order Recursively in C++ Program is given below:

// Printing Linked List in Reverse Order Recursively in C++
// Insertion at head is done in the following program
#include <iostream>
using namespace std;

////////////////////////////////////////////////////////////////
struct link                           //one element of list
{
int data;                          //data item
link* next;                        //pointer to next link
};
////////////////////////////////////////////////////////////////
class linklist                        //a list of links
{
private:
link* first;                    //pointer to first link also known as head.
public:
linklist()                      //no-argument constructor
{ first = NULL; }            //no first link
link* getHead(){ return first; }
void additem(int d);            //add data item (one link)
void displayRecursivelyReversed(link* current);                 //display all links in REVERSE ORDER.
};
//-------------------------------------------------------------void
void linklist::additem(int d)         //add data item
{
link *newLink = new link;
newLink->data = d;
//insert at head
newLink->next = first;
first = newLink;
}
//-------------------------------------------------------------void
void linklist::displayRecursivelyReversed(link* current)              //display all links
{
if (current != NULL){
//move to next node.
displayRecursively(current->next);
cout << current->data << endl;
}

}
////////////////////////////////////////////////////////////////
int main()
{
linklist li;       //make linked list
li.additem(25);    //add four items to list
li.additem(36);
li.additem(49);
li.additem(64);
li.displayRecursivelyReversed(li.getHead());      //display entire list
return 0;
}

Linked List using Templates in C++


Linked List using Templates in C++ program is given below:


// linkedlist.cpp
// linked list using templates
// See also: Link List program in C++

#include "stdafx.h" //Remove this line if you see any error.
#include <iostream>
using namespace std;

////////////////////////////////////////////////////////////////
template <typename T>
struct link                           //one element of list
{
T data;                          //data item
link* next;                        //pointer to next link
};
////////////////////////////////////////////////////////////////
template <class T>
class linklist                        //a list of links
{
private:
link<T>* first;                    //pointer to first link
public:
linklist()                      //no-argument constructor
{ first = NULL; }            //no first link
void additem(T d);            //add data item (one link)
void display();                 //display all links
};
//-------------------------------------------------------------void
template <class T>
void linklist<T>::additem(T d)         //add data item
{
link<T> *newLink = new link<T>;
newLink->data = d;
//insert at head of link list
newLink->next = first;
first = newLink;
}
//-------------------------------------------------------------void
template <class T>
void linklist<T>::display()              //display all links
{
link<T>* current = first;             //set ptr to first link
while( current != NULL )           //quit on last link
{
cout << current->data << endl;  //print data
current = current->next;        //move to next link
}
}
////////////////////////////////////////////////////////////////

int main()
{
linklist<int> li;       //make linked list
li.additem(25);    //add four items to list
li.additem(36);
li.additem(49);
li.display();      //display entire list

linklist<char> lch;      //make linked list
lch.additem('a');    //add four items to list
lch.additem('b');
lch.additem('c');
lch.display();      //display entire list

return 0;
}

Binary Tree in C++

Binary Tree in C++ Program is given below:
// Binary Tree in C++
// A very basic Binary Tree program in C++

#include "stdafx.h" //Comment this line if it creates any error.
#include <iostream>
using namespace std;
//////////////////////////////////////////////////////////////
struct nodeType{
nodeType();
int info;
nodeType* father;
nodeType* left;
nodeType* right;
};
nodeType::nodeType(){
father = left = right = NULL;
}
//////////////////////////////////////////////////////////////
class binaryTree{
public:
binaryTree(){  root = NULL; }
//------------------------------------------------------------
nodeType* makeTree(int x){
nodeType* p = new nodeType;
p->info = x;
p->father = NULL;
p->right = NULL;
p->left = NULL;
root = p;
return p;
}
//------------------------------------------------------------
void setLeft(nodeType* p, int x){
if (p == NULL){
cout << "Void Insertion!" << endl;
}
else if (p->left != NULL){
cout << "Invalid Insertion" << endl;
}
else{
p->left = new nodeType;
p->left->info = x;
p->left->right = NULL;
p->left->left = NULL;
p->left->father = p;
}
}
//------------------------------------------------------------
void setRight(nodeType* p, int x){
if (p==NULL){
cout << "Void Insertion" <<endl;
}
else if (p->right != NULL){
cout << "Invalid Insertion" << endl;
}
else{
p->right = new nodeType;
p->right->info = x;
p->right->left = NULL;
p->right->right = NULL;
p->right->father = p;
}
}
//------------------------------------------------------------
nodeType* getRoot(){
return root;
}
//------------------------------------------------------------
void print(nodeType* p){
cout << p->info << endl;

if (p!=NULL && p->left == NULL && p->right == NULL)
return ;
if (p!=NULL && p->left != NULL && p->right == NULL)
print (p->left);
if (p!=NULL && p->left == NULL && p->right != NULL)
print (p->right);
if (p!=NULL && p->left != NULL && p->right != NULL){
print (p->left);
print (p->right);
}
}

//----------------------------------------------------------------
//----------------------------------------------------------------
private:
nodeType* root;
};
//////////////////////////////////////////////////////////////
int main(){
binaryTree obj;
        // We insert 3 nodes in Binary Tree. You can try inserting more
obj.makeTree(5);
obj.setLeft(obj.getRoot(),4);
obj.setRight(obj.getRoot(),6);
obj.print(obj.getRoot());
return 0;
}


Now see Generic Binary Tree in C++ Program to insert at the correct position in the binary tree.

Link List program in C++

Link List Program in C++ is given below:

// linklist.cpp
// linked list program in C++
// Compiler: Microsoft Visual Studio 2012

#include "stdafx.h"
#include <iostream>
using namespace std;

////////////////////////////////////////////////////////////////
struct link                           //one element of list
{
int data;                          //data item
link* next;                        //pointer to next link
};
////////////////////////////////////////////////////////////////
class linklist                        //a list of links
{
private:
link* first;                    //pointer to first link
public:
linklist()                      //no-argument constructor
{ first = NULL; }            //no first link
void additem(int d);            //add data item (one link)
void display();                 //display all links
};
//-------------------------------------------------------------void
void linklist::additem(int d)         //add data item
{
link *newLink = new link;
newLink->data = d;
//insert at head
newLink->next = first;
first = newLink;
}
//-------------------------------------------------------------void
void linklist::display()              //display all links
{
link* current = first;             //set ptr to first link
while( current != NULL )           //quit on last link
{
cout << current->data << endl;  //print data
current = current->next;        //move to next link
}
}
////////////////////////////////////////////////////////////////
int main()
{
linklist li;       //make linked list
li.additem(25);    //add four items to list
li.additem(36);
li.additem(49);
li.additem(64);
li.display();      //display entire list
return 0;
}

See also: Link list using Templates

Basic program Classes C++

Basic program Classes C++.

#include <iostream>
using namespace std;

class a{
public:
void set(int x){num = x;}
int get(){return num;}
private:
int num;
};

int main(){
a b;
b.set(45);
cout << b.get();
return 0;
}

C++ basic percentage program

/*
WRITE A PROGRAM THAT WILL ASK SOMEONE HOW THEY SPEND THEIR DAY. aT LEAST 5 QUESTIONS:
HOW MANY HOUR DO YOU SPEND SLEEPING,
HOW MANY HOURS FO SPEND EATING,
DRINKING,
WALKING,
WORKING,.
CALCULATE PERCENTAGES
THE OUTPUT SHOULD LOOK SOMETHING LIKE THIS.
SLEEPING EATING DRINKING WALKING WORKING
40.00% 40.00% 7.00% 4.00% 9.00%
*/



#include <iostream>
using namespace std;

int main()
{
cout << "You spend time (in hours) in 1 day: " <<endl;
cout << "In Playing: "; int play; cin >> play;
cout << "In Sleeping: "; int sleep; cin >> sleep;
cout << "In Eating: "; int eat; cin >> eat;
cout << "In Working: "; int work; cin >> work;

cout << "In percentage: " << endl;
cout << "Playing: " << play/24.0 * 100 << "%" << endl;
cout << "Sleeping: " << sleep/24.0 * 100 << "%" << endl;
cout << "Eating: " << eat/24.0 * 100 << "%" << endl;
cout << "Working: " << work/24.0 * 100 << "%" << endl;

return 0;
}
"Don't let anyone ever make you feel like you don't deserve what you want."