Compile-time function execution: Difference between revisions

Content deleted Content added
No edit summary
Line 61:
// 39_916_800, 479_001_600]
</source>
 
 
 
==Example 2
 
#include<iostream>
#include<string>
#include<conio.h>
#include<sstream>
#include<cmath>
#include<fstream>
#include "Movie.h"
using namespace std;
 
 
cin.get(); eller getch();
alternativt
system("PAUSE");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
//main
#include<iostream>
#include<string>
#include<conio.h>
#include<sstream>
#include<cmath>
#include<fstream>
using namespace std;
#include "Movie.h"
 
 
 
void counter()
{
string line;
ifstream infile;
int count=0;
infile.open("Filmer.txt");
if (infile.is_open())
{
while ( !infile.eof() )
{
getline( infile, line);
count = count+1;
}
count = count-1;
cout << count << "st filmer finns i filen";
}
infile.close();
}
 
void utfil()
{
string line;
ifstream infile;
infile.open("Filmer.txt");
if (infile.is_open())
{
while ( !infile.eof() )
{
getline( infile, line);
cout << line;
cout << endl;
}
}
else cout << "Unable to open file";
infile.close();
}
 
 
void infil()
{
Movie a;
a.read();
ofstream myfile;
myfile.open ("Filmer.txt", ios::app);
myfile << a << "\n";
myfile.close();
}
 
 
void testmovie()
{
Movie m, a, b("Fetfilmen" , "Tjockien" , 45);
 
if(b.gettitle() == "Fetfilmen")
{
cout << "getfunktioner funkar!\n";
}
 
a.settitle("Grizzlyfilmen");
 
if(a.gettitle() == "Grizzlyfilmen")
{
cout << "setfunktioner funkar!\n";
}
 
b.settitle("Grizzlyfilmen");
 
if(a == b)
cout << "Compareoperatorn == funkar!\n";
 
}
 
void main1()
{
 
Movie a, b("Glassfilm", "glassgubbe", 20);
 
a.settitle("Gubbfilm");
a.setactor("Gubben");
a.setduration(9000);
 
a.write();
 
 
}
 
 
void main2()
{
 
Movie a, b;
 
a.read();
b.read();
 
a.write();
b.write();
 
if(a == b)
cout << "a och b är samma film!";
else
cout << "a och b är ej samma film";
 
 
}
 
void main3()
{
 
Movie a("moviee", "apan", 2010);
 
cin>>a;
 
cout << a;
 
 
}
 
 
void main4()
{
 
Movie a("moviee", "apan", 2010);
 
Movie b("moviee", "gurkan", 1212);
 
 
}
 
int main()
{
bool menu = true;
int choice;
 
while(menu == true)
{
cout << "Vad vill du göra?\n" << "1.Add movie to archive 2.Read movies in archive 3.Test all functions 4.Count movies in archive 5.Exit 6.Delete all movies";
cin >> choice;
switch(choice)
{
case 1:
infil();
break;
 
case 2:
utfil();
break;
 
case 3:
testmovie();
break;
 
case 4:
counter();
break;
 
case 5:
menu = false;
break;
 
case 6:
remove("Filmer.txt");
ofstream output("Filmer.txt");
break;
 
 
 
 
}
}
 
 
 
getch();
 
return 0;
 
}
 
 
 
//hfil
#include <iostream>
#include <string>
#include <istream>
 
using namespace std;
 
 
class Movie
{
 
private:
string title;
string actor;
int duration;
 
public:
Movie() //constructor utan parametrar
{
title = "";
actor = "";
duration = 0;
}
 
Movie(string title, string actor, int duration) //constuctor med parametrar
{
this->title = title;
this->actor = actor;
this->duration = duration;
}
 
string gettitle() {return title;}
void settitle (string t) {title = t;}
string getactor(){return actor;}
void setactor(string a){actor = a;}
 
int getduration() {return duration;}
void setduration (int d){duration = d;}
 
friend ostream& operator<< (ostream& o, const Movie& Movie)
{
o << "(";
o << Movie.title;
o << ",";
o << Movie.actor;
o << ",";
o << Movie.duration;
o << ")";
 
return o;
}
 
 
friend istream& operator>> (istream &i, Movie& Movie)
{
char c;
i >> skipws >> c;
getline(cin, Movie.title, ',');
i >> skipws;
getline(cin, Movie.actor, ',');
i >> skipws;
i >> skipws >> Movie.duration;
i >> skipws >> c;
 
return i;
 
}
 
 
 
friend int operator== (const Movie m1, const Movie m2)
{
 
if ( m1.title == m2.title )
 
return 1;
else
return 0;
}
 
 
 
void read()
{ string c;
cout<< endl << "Enter movie name: ";
cin >> c;
getline(cin, this->title, '\n');
this->title = c + this->title;
cout << endl;
cout<< "Enter actor name: ";
getline(cin, this->actor, '\n');
cout << endl;
 
cout<< "Enter duration: ";
cin >> duration;
cout << endl;
 
}
 
void write()
{
cout << "Title: " << title << endl;
cout << "Actor: " << actor << endl;
cout << "Duration: " << duration << endl;
}
 
 
 
 
 
 
};
 
== References ==