Weather Report using array of objects (C++)
April 23, 2016
Categorised in: C++ Codes, OOMP Codes
/* Create a class named weather report that holds a daily weather report with data members day_of_month,hightemp,lowtemp,amount_rain and amount_snow. The constructor initializes the fields with default values: 99 for day_of_month, 999 for hightemp,-999 for low emp and 0 for amount_rain and amount_snow. Include a function that prompts the user and sets values for each field so that you can override the default values. Write a C++/Java/Python program that creates a monthly report. d) Menu driven program with options to Enter data and Display report e) Report Format */ #include<iostream> #include<iomanip> using namespace std; class weather_report { public: int day; float hightemp; float lowtemp; float amountrain; float amountsnow; void getdata(); void display(); weather_report() { day=99; hightemp=999; lowtemp=-999; amountrain=0; amountsnow=0; } }; void weather_report :: getdata() { cout<<"\nEnter all fields. "; cout<<"\n\tEnter day : "; cin>>day; cout<<"\n\tEnter High temp : "; cin>>hightemp; cout<<"\n\tEnter low temp : "; cin>>lowtemp; cout<<"\n\tEnter amount Rain : "; cin>>amountrain; cout<<"\n\tEnter amount snow : "; cin>>amountsnow; } void weather_report :: display() { cout<<setw(10)<<day<<setw(10)<<hightemp<<setw(10)<<lowtemp<<setw(10)<<amountrain<<setw(10)<<amountsnow<<"\n"; } int main() { float p; int ch; char ch1; weather_report w[31]; do { cout<<"\n\t1. Prompt data\n\t2. Display."; cout<<"\n\n\tEnter your choice : "; cin>>ch; cout<<"\nFor how many days you want to enter field : "; cin>>p; switch(ch) { case 1: for(int i=0;i<p;i++) { w[i].getdata(); } break; case 2: float avghightemp,avglowtemp,avgrain,avgsnow; int a=0,b=0,c=0,d=0; cout<<setw(10)<<"DAY "<<setw(10)<<"HIGH TEMP"<<setw(10)<<"LOW TEMP"<<setw(10)<<"AMOUNT RAIN"<<setw(10)<<"AMOUNT SNOW"<<"\n"; for(int i=0;i<p;i++) { w[i].display(); a=a+w[i].hightemp; b=b+w[i].lowtemp; c=c+w[i].amountrain; d=d+w[i].amountsnow; } avghightemp=(a/p),avglowtemp=(b/p),avgrain=c/p,avgsnow=(d/p); cout<<setw(10)<<"Avg"<<setw(10)<<avghightemp<<setw(10)<<avglowtemp<<setw(10)<<avgrain<<setw(10)<<avgsnow; break; }cout<<"\ndo u want to continue ?"; cin>>ch1; }while(ch1==’Y’ || ch1==’y’); return 0; }
Pratik Kataria is currently learning Springboot and Hibernate.
Technologies known and worked on: C/C++, Java, Python, JavaScript, HTML, CSS, WordPress, Angular, Ionic, MongoDB, SQL and Android.
Softwares known and worked on: Adobe Photoshop, Adobe Illustrator and Adobe After Effects.