# Polymorphic TVs

Questions on C++

Question 1:

Solution 1:

#include<bits/stdc++.h>

#include <math.h>

using namespace std;

#define MOD 1000000007

#define ll long long

#define slld(t) scanf(“%lld”,&t)

#define sd(t) scanf(“%d”,&t)

#define sld(t) scanf(“%ld”,&t)

#define pd(t) printf(“%d\n”,t)

#define plld(t) printf(“%lld\n”,t)

#define pcc pair<char,char>

#define pp pair<int,int>

#define pll pair<ll,ll>

#define tr(container,it) for(typeof(container.begin()) it=container.begin();it!=container.end();it++)

#define mp(a,b) make_pair(a,b)

#define F first

#define S second

#define pb(x) push_back(x)

struct TV

{

charscreenType; intscreenSize; string resolution; double price; bool standard;

TV()

{

screenType = ‘L’; screenSize = 50;resolution = “HD”; price = 600; standard = 1;

}

TV setOrder()

{

TV tt = TV();

cout<<“Enter screenType”<<endl;

char p;

cin>>p;

cout<<“Enter screenSize”<<endl;

intss;

cin>>ss;

cout<<“Enter resolution”<<endl;

string x;

cin>>x;

tt.screenSize = ss;

tt.screenType = p;

tt.resolution = x;

returntt;

}

void display()

{

if(standard==1)

{

cout<<“Standard TV”<<endl;

}

else

{

cout<<“Customized TV”<<endl;

}

}

doublegetPrice()

{

return price;

}

boolgetStandard()

{

return standard;

}

};

int foo(TV t)

{

intans = 600;

if(t.screenType==’O’)

{

ans += 300;

}

if(t.screenSize>50)

{

int ans1 = (t.screenSize-50)*20;

if(t.screenType==’O’)

{

ans1 *= 2;

}

ans += ans1;

}

if(t.resolution==”UHD”)

{

ans += 200;

if(t.screenType==’O’)

{

ans += 200;

}

}

returnans;

}

void display(TV t)

{

cout<<t.resolution<<” “<<t.price<<” “<<t.screenSize<<” “<<t.screenType<<” “<<t.standard<<endl;

cout<<“Thanking for using this program”<<endl;

}

int main()

{

TV t = TV();

//    cout<<t.resolution<<” “<<t.price<<” “<<t.screenSize<<” “<<t.screenType<<endl;

t = t.setOrder();

//    cout<<t.resolution<<” “<<t.price<<” “<<t.screenSize<<” “<<t.screenType<<endl;

intans = foo(t);

cout<<“This will cost you “<<ans<<endl;

}

Question 2:

Solution 2:

#include<bits/stdc++.h>

#include <math.h>

using namespace std;

#define MOD 1000000007

#define ll long long

#define slld(t) scanf(“%lld”,&t)

#define sd(t) scanf(“%d”,&t)

#define sld(t) scanf(“%ld”,&t)

#define pd(t) printf(“%d\n”,t)

#define plld(t) printf(“%lld\n”,t)

#define pcc pair<char,char>

#define pp pair<int,int>

#define pll pair<ll,ll>

#define tr(container,it) for(typeof(container.begin()) it=container.begin();it!=container.end();it++)

#define mp(a,b) make_pair(a,b)

#define F first

#define S second

#define pb(x) push_back(x)

class Rental

{

private:

stringshopId; //s1, s2, s3 ….. s10

stringmallId; //m1, m2, m3

int month;

double amount;

public:

Rental(string=” “, string=” “, int = 0, double= 0);

voidsetRental(string x, string y, int a, double b)

{

shopId=x;

mallId=y;

month=a;

amount = b;

}

stringgetShopId()

{

returnshopId;

}

stringgetMallID()

{

returnmallId;

}

intgetMonth()

{

return month;

}

doublegetAmount()

{

return amount;

}

};

class Consolidation

{

private:

Rental r[50];

intrcount=0;

public:

{

// take file input here

// use this method

fstreamdatafile;

while(!datafile.empty())

{

// take inputs here

datafile>>value;

rcount += value;

// r count is rent for that month

}

}

voidwriteFile(int month)

{

// this will write file to the output location

fstreamdatafile;

datafile.open(“output file name”);

while(!datafile.empty())

{

// write output here

datafile<<“variables”<<endl;

datafile<<rcount<<endl;

}

}

};

int main()

{

Consolidation s;