Answer to Question #302328 in C++ for Maneo

Question #302328

i need assistance with this question on this link:

https://drive.google.com/file/d/1kWwKJJqmG4iihg5pYOfF8H0W8eCvZRi7/view?usp=sharing


so far i have done the following, and don't know where to go anymore, the following is a cpp file of what i have done so far:

https://drive.google.com/file/d/1CTwjUsu6JIsnLmdE0YYJE4LH-HGIEsXs/view?usp=sharing


1
Expert's answer
2022-02-25T03:40:03-0500
#include <iostream>
#include<string>
#include <fstream>
using namespace std;

//structer declaration
struct property{
	int property_code;
	string description;////either house or site
	string type;//residential or commercial , if house, family ,mansion or apartment
	int price;
};
struct broker{
	string Brcode, Brname;
	int maxsale;
	property sales[20];
	int number_sales;//should not be more than hundred
	
	
};
struct seller{
	int regnumber;
	string name;
	property sales[20];
	int number_sales;
	int accumulative_m_sale;
	
};
struct buyer {
	int reg_number;
	string name ;
	property purchases[20];
	int accumulative_m_purchases;
	int number;//number of purchases
	int accumulative_m_discounts;
};

//prototype
buyer buyers[20];
seller sellers[20];
broker brokers[20];
int num_brokers=0;//keeps a the number of brokers
int num_sellers=0;
int num_buyers=0;

//report function
void tabulate(){
	fstream copy;
		copy.open("brokers.txt", fstream::app);
			if(copy.is_open()){
				for(int i=0;i<num_brokers;i++){
					copy<<"BROKER : ";
					copy<<brokers[i].Brcode;
					copy<<" | ";
					for(int j=0;i<brokers[i].number_sales;j++){
					
						copy<<brokers[i].sales[j].description;
						copy<<" ";
						copy<<brokers[i].sales[j].type;
						copy<<" ";
						copy<<brokers[i].sales[j].price;
						
						copy<<" | ";
					
					}
					copy<<"\n ";
				}
			}	
}

//acummulation function for seller
int accumulative_msales(seller name){
	
	int sum=0;
	for (int i=0;i<name.number_sales;i++){
		sum=sum+name.sales[i].price;
	}
	return sum;
}

//accumulation function for buyer
int accumulative_mpurchases(buyer name){
	
	int sum=0;
	for (int i=0;i<name.number;i++){
		sum=sum+name.purchases[i].price;
	}
	return sum;
}

//discount function
int accumulative_mdiscount(buyer name){
	
	int sum=0;
	for (int i=0;i<name.number;i++){
		sum=sum+name.purchases[i].price;
	}
	int discount=(sum*(1.2/100));
	return discount;
}


void add(broker name1, seller name2, buyer name3){
	//store each in their individual respective lists
	if (num_brokers<20){
		brokers[num_brokers].Brcode=name1.Brcode;
		brokers[num_brokers].Brname=name1.Brname;
		brokers[num_brokers].maxsale=name1.maxsale;
		brokers[num_brokers].number_sales=name1.number_sales;
		for(int i=0;i<brokers[num_brokers].number_sales;i++){
			brokers[num_brokers].sales[i]=name1.sales[i];
		}
		
		num_brokers++;
	}
	else{
		cout<<"list of brokers is full\n";  //must be less than 20
	}
	if (num_sellers<20){
		sellers[num_sellers].accumulative_m_sale=name2.accumulative_m_sale;
		sellers[num_sellers].name=name2.name;
		sellers[num_sellers].number_sales=name2.number_sales;
		sellers[num_sellers].regnumber=name2.regnumber;
		for(int i=0;i<sellers[num_sellers].number_sales;i++){
		
			sellers[num_sellers].sales[i]=name2.sales[i];
		}
		
		num_sellers++;
	}
	else{
		cout<<"list of sellers is full\n";
	}
	if (num_buyers<20){
		buyers[num_buyers].accumulative_m_discounts=name3.accumulative_m_discounts;
		buyers[num_buyers].accumulative_m_purchases=name3.accumulative_m_purchases;
		buyers[num_buyers].name=name3.name;
		buyers[num_buyers].number=name3.number;
		for(int i=0;i<buyers[num_buyers].number;i++){
		
		
			buyers[num_buyers].purchases[i]=name3.purchases[i];
		}
		
		buyers[num_buyers].reg_number=name3.reg_number;
		num_buyers++;
	}
	else{
		cout<<"list of buyers is full\n";
	}
	
}


void transaction(){//this transaction may be a transaction for a house or site 
	property name;
	num_brokers++;
	if (brokers[num_brokers].number_sales<brokers[num_brokers].maxsale){
		cout<<"ENTER THE PROPETY DESCRIPTION , HOUSE or SITE : \n";
		cin>>name.description;
		cout<<"ENTER THE PROPERTY TYPE e.g whether apartment or mansion or family if house or use for the site i.e commercial \n";
		cin>>name.type;
		cout<<"ENTER THE PRICE :] \n";
		cin>>name.price;
		cout<<"ENTER THE PROPERTY CODE :\n";
		cin>>name.property_code;
		brokers[num_brokers].number_sales++;
		brokers[num_brokers].sales[num_sellers]=name;
		
	}
	
}
int max_sale(){
	int max=0;
	for(int k=0;k<num_brokers;k++){
		for(int i=0;i<brokers[k].number_sales;k++){
			if(brokers[k].sales[i].price>=max){
				max=brokers[k].sales[i].price;
			}
		}
	}
	
	return max;
}

//
void display_reg(){
	int index;
	int code ;
	cout<<"ENTER THE SITE OR HOUSE code name FOR SEELER AND BUYER \n";
	cin>>code ;//we will use the fact that  the index of the property sales in brokers matches that of sellers and buyers corresponding
	for(int i=0;i<num_brokers;i++){
		for(int j=0;j<brokers[i].number_sales;j++){
			if (brokers[i].sales[j].property_code==code){
				index=j;
			}
		}
	}
	cout<<"the sellers and buyer reg numbers for code "<<code<<"  are "<<sellers[index].regnumber<<"seller "<<buyers[index].reg_number<<"buyer\n";
}
//swap function
void swap(property name1, property name2){
	string temporary ;
	temporary =name1.description;
	name1.description=name2.description;
	name2.description=temporary;
	
}
void list_properties(){
	string temp;
	int t;
	for(int i=0;i<num_brokers;i++){
		for (int k=0;brokers[i].number_sales;k++){
			for(int j=k+1;j<brokers[i].number_sales;j++){
				if(brokers[i].sales[k].price<brokers[i].sales[j].price){
					temp=brokers[i].sales[k].description;
					brokers[i].sales[k].description=brokers[i].sales[j].description;
					brokers[i].sales[j].description=temp;
					t=brokers[i].sales[k].price;
					brokers[i].sales[k].price=brokers[i].sales[j].price;
					brokers[i].sales[j].price=t;
					t=brokers[i].sales[k].property_code;
					brokers[i].sales[k].property_code=brokers[i].sales[j].property_code;
					brokers[i].sales[j].property_code=t;
					temp=brokers[i].sales[k].type;
					brokers[i].sales[k].type=brokers[i].sales[j].type;
					brokers[i].sales[j].type=temp;
				}
			}
		}
	}
	for(int i=0;i<num_brokers;i++){
		for (int k=0;k<brokers[i].number_sales;k++){
			cout<<"the sorted list in descending order is  :\n";
			cout<<brokers[i].sales[k].property_code<<"code  ";
			cout<<brokers[i].sales[k].type<<"type "; 
			cout<<brokers[i].sales[k].price<<"price \n";
		}
	}
}


//monthly report function to txt file
void monthly_report(){
	fstream copy;
		copy.open("report.txt", fstream::app);
			if(copy.is_open()){
				for(int i=0;i<num_brokers;i++){
					copy<<"BROKER : ";
					copy<<brokers[i].Brcode;
					copy<<" | ";
					
					copy<<"seller :";
					copy<<sellers[i].name;
					copy<<" | ";
					copy<<"buyer :";
					copy<<buyers[i].name;
					copy<<"   |  ";
					for(int j=0;i<brokers[i].number_sales;j++){
						
						copy<<brokers[i].sales[j].description;
						copy<<" ";
						copy<<brokers[i].sales[j].type;
						copy<<" ";
						copy<<brokers[i].sales[j].price;
						
						copy<<" | ";
					
					}
					copy<<"\n ";
				}
			}	
}
int drive(){  //drive menu
	property name1, name2;
	broker name3;
	seller name4;
	buyer name5;
	int n, choice;
	
	cout<<"*************************************************\n";
	cout<<"\t\t  MENU \t\t\t\n";
	cout<<"*************************************************\n\n";
	    
	
		cout << "1. Insert Data of brokers,sellers and buyers \n";   //adddata
		cout << "2. Insert Data of sites and houses \n";     //siteshouses
		cout << "3. Search for highest maximum sale of broker \n";    //maximum
		cout << "4. Search a certain house's registration of seller and buyer \n";    //registration
		cout << "5. Swap description of two properties\n";       //swap
		cout << "6. List all properties in descending order of price\n";   //descendingorder
		cout << "7. Generate monthly reports of broker, sellers, buyers, sites and houses \n";     //report
		cout << "8. Exit \n";     //exit
	
		cout << "\n\nWhat would you like to do from the above menu: ";
		
		cin >> choice;

  				  switch (choice){

        			case 1:
                		 add(name3, name4,name5);
               			 break;

       			    case 2:
         	         	  	transaction();
               			 break;
        
       				case 3:
                  		 max_sale();
                  		 break;

                    case 4:
                  		 display_reg();
                  		 break;
               
                   case 5:
                  		swap(name1, name2);
                 		 break;
                 		 
                 	case 6:
                  		list_properties();
                 		 break;
                 		 
                 	 case 7:
                  		monthly_report();
                 		 break;

    	}
        	while(choice !=8);
    		cout<<"Exiting...Blessed day!";
    		
}
	
int main()
{
	system("color 1F");
    
	cout<<"\tLesotho House of Brokers (LHB)\n";
	cout<<"\ttrack of all brokers nationwide\n\n";
	   
    drive();
    return 0;
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog