1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
serious [3.7K]
3 years ago
14

Write a function with two parameters, prefix (a string, using the string class from ) and levels (an unsigned integer). The func

tion prints the string prefix followed by "section numbers" of the form 1.1., 1.2., 1.3., and so on. The levels argument determines how many levels the section numbers have. For example, if levels is 2, then the section numbers have the form x.y. If levels is 3, then the section numbers have the form x.y.z. The digits permitted in each level are always '1' through '9'. As an example, if prefix is the string "BOX:" and levels is 2, then the function would start by printing:

Computers and Technology
1 answer:
Allisa [31]3 years ago
4 0

Answer:

Here is the program:

#include <iostream>  //to use input output functions

#include <string>  // to use functions to manipulate strings

using namespace std;  //to identify objects cin cout

void function(string prefix, unsigned int levels){  // function that takes two parameters, a string, using the string class and levels an unsigned integer

   if (levels == 0) {  //if number of levels is equal to 0

       cout << prefix << endl;  //displays the value of prefix

       return;    }  

  for (int i = 1; i <=9 ; i++){  //iterates 1 through 9 times

       string sections = (levels == 1 ? "" : ".");  //if the number of levels is equal to 1 then empty space in sections variable otherwise stores a dot

       string output = prefix +  std::to_string(i) + sections;   // displays the string prefix followed by the section numbers. Here to_string is used to convert integer to string

       function(output, levels - 1);   } }   //calls function by passing the resultant string and levels-1  recursively to print the string prefix followed by section numbers

int main() {  // start of main function

   int level = 2;  //determines the number of levels

   function("BOX", level);  } //calls function by passing the string prefix and level value

Explanation:

The program has a function named function() that takes two parameters, prefix (a string, using the string class from ) and levels (an unsigned integer). The function prints the string prefix followed by "section numbers" of the form 1.1., 1.2., 1.3., and so on. The levels argument determines how many levels the section numbers have. If the value of levels is 0 means there is 0 level then the value of prefix is printed. The for loop iterates '1' through '9' times for number of digits in each level. If the number of levels is 1 then space is printed otherwise a dot is printed. The function() calls itself recursively to print the prefix string followed by section numbers.

Let us suppose that prefix = "BOX" and level = 1

If level = 1 then the loop for (int i = 1; i <=9 ; i++) works as follows:

At first iteration:

i = 1

i <=9 is true because value of i is 1

string sections = (levels == 1 ? "" : "."); this statement checks if the levels is equal to 1. It is true so empty space is stored in sections variable so,

sections = ""

Next, string output = prefix +  std::to_string(i) + sections; statement has prefix i.e BOX plus value of i which is 1 and this int value is converted to string by to_string() method plus sections has an empty space. So this statement becomes

string output = BOX + 1  

So this concatenates BOX with 1 hence output becomes:

output = BOX1

At second iteration:

i = 2

i <=9 is true because value of i is 2

string sections = (levels == 1 ? "" : "."); is true so

sections = ""

Next, string output = prefix +  std::to_string(i) + sections; statement becomes

string output = BOX + 2  

So this concatenates BOX with 1 hence output becomes:

output = BOX2

At third iteration:

i = 3

i <=9 is true because value of i is 3

string sections = (levels == 1 ? "" : "."); is true so

sections = ""

Next, string output = prefix +  std::to_string(i) + sections; statement becomes

string output = BOX + 3  

So this concatenates BOX with 1 hence output becomes:

output = BOX3

Now at each iteration the prefix string BOX is concatenated and printed along with the value of i. So at last iteration:

At last iteration:

i = 9

i ==9 is true because value of i is 9

string sections = (levels == 1 ? "" : "."); is true so

sections = ""

Next, string output = prefix +  std::to_string(i) + sections; statement becomes

string output = BOX + 9  

So this concatenates BOX with 1 hence output becomes:

output = BOX9

After this the loop breaks at i = 10 because the condition i<=9 becomes false. So the output of the entire program is:

BOX1                                                                                                                                          BOX2                                                                                                                                          BOX3                                                                                                                                          BOX4                                                                                                                                          BOX5                                                                                                                                          BOX6                                                                                                                                          BOX7                                                                                                                                          BOX8                                                                                                                                          BOX9  

The program along with the output is attached.

You might be interested in
You have $5 and earn $1.75 for each roll of wrapping paper you sell. Write an equation in two variables that represents the tota
qaws [65]

Answer:

A = 5 + 1.75r

Explanation:

Amount you have = $5

Earning per roll of wrapping paper = $1.75

Let

r = number of rolls of wrapping paper

A = Total amount earned

A = 5 + 1.75r

Equation that represents the total amount A (in dollars) you have after selling r rolls of wrapping paper is

A = 5 + 1.75r

3 0
3 years ago
What is local area network​
otez555 [7]

Explanation:

local area network is a computer network that interconnects computers within a limited area such as a residence, school, laboratory, university campus or office building. By contrast, a wide area network not only covers a larger geographic distance, but also generally involves leased telecommunication circuits.

<em><u>hope</u></em><em><u> </u></em><em><u>it</u></em><em><u> </u></em><em><u>helps</u></em>

3 0
3 years ago
Read 2 more answers
Execute the command to know which tcp/ip and udp/ip ports are in use in a system whose ip address is 14.102.98.40.
ddd [48]
I think it is command and the key letter I at the same time
4 0
3 years ago
Within the manufacturing industry, there are fourteen subindustries. Which of the
inna [77]

Answer: A or B i done this before but my memorys quite blurry i rekon doing A

Explanation:

3 0
2 years ago
class llist { private: record * start; char filename[16]; int readfile(); int writefile(); record * reverse(record * ); void cle
Sophie [7]

Answer:

See Explaination

Explanation:

#include <cstdlib>

#include <iostream>

#include <iomanip>

#include <fstream>

#include <string>

#include <sstream>

using namespace std;

struct Person

{

string name;

string addr;

string phone;

string id;

};

const int MAX_SIZE = 8;

void addData(Person list[], int& size);

void dispData(const Person list[], int size);

void delData (const Person list[], int size);

void saveFile(const Person list[], int size);

void openFile(Person list[], int& size);

char getMenuResponse();

int main(int argc, char *argv[])

{

Person contactList[MAX_SIZE];

int numOfRecs = 0;

bool run = true;

do

{

cout << "Address Book - " << numOfRecs << " Number of Contacts" << endl;

switch ( getMenuResponse() )

{

case 'A': addData(contactList, numOfRecs); break;

case 'D': dispData(contactList, numOfRecs); break;

case 'T': delData(contactList, numOfRecs); break;

case 'O': openFile(contactList, numOfRecs); break;

case 'S': saveFile(contactList, numOfRecs); break;

case 'Q': run = false; break;

default : cout << "That is NOT a valid choice" << endl;

}

} while (run);

cout << endl << "Program Terminated" << endl;

return EXIT_SUCCESS;

}

void addData(Person list[], int& size)

{

Person tmp;

char response;

char str[256];

if (size < MAX_SIZE) {

system("cls");

cout << "Enter Contact Information" << endl << endl;

cout << "Name: ";

cin.getline(str, 256, '\n');

tmp.name = str;

cout << endl;

cout << "Address: ";

cin.getline(str, 256, '\n');

tmp.addr = str;

cout << endl;

cout << "Phone Number: ";

cin.getline(str, 256, '\n');

tmp.phone = str;

cout << endl;

cout << "E-mail id Address: ";

cin.getline(str, 256, '\n');

tmp.id = str;

cout << endl;

cout << "Add Contact to Address Book? (y/n) ";

cin >> response;

if (toupper(response) == 'Y')

list[size++] = tmp;

} else {

cout << "Sorry, Address Book is currently full." << endl;

system("pause");

}

system("cls");

}

void dispData(const Person list[], int size)

{

system("cls");

if(size < 1)

{

cout << "Nothing to display" << endl;

} else {

cout << "Contacts :" << endl << endl;

cout << fixed << setprecision(2);

cout << "Contact Name Address Phone No. ID" << endl;

cout << left;

for (int i = 0; i < size; i++)

{

cout << setw(10) << list[i].name << right

<< setw(10) << list[i].addr<<right

<< setw(10) << list[i].phone<<left

<< setw(15) << list[i].id<<left<<endl;

}

cout << right << setw(3) << size;

cout << " Contacts"<< endl;

}

system("PAUSE");

system("cls");

}

void delData(const Person list[],int size) {

vector<Person> :: iterator vItr = Contact.begin();

while (vItr != Contact.end() )

{

if (vItr->Name == Name)

{

vItr = Contact.erase (vItr);

break;

}

else

vItr++;

}

void saveFile(const Person list[], int size) {

string fileName;

ofstream outfi;

cout<<"Enter file name: ";

getline(cin,fileName);

outfi.open(fileName.c_str());

if (!outfi.fail()) {

system("cls");

cout << "Saving Address Book to the disc ";

for(int i = 0; i < size; i++) {

outfi << list[i].name << ';'

<< list[i].addr<< ';';

if (i < size-1) outfi << endl;

}

cout << endl << size << " Address Book in the disc." << endl;

outfi.close();

system("PAUSE");

system("cls");

}

else {

cout << "ERROR: problem with file" << endl;

system("PAUSE");

system("cls");

}

}

void openFile(Person list[], int& size)

{

ifstream infi("AddressBook.txt");

string str;

stringstream strstrm;

if (!infi.fail()) {

system("cls");

cout << "Reading Address Book from the disc ";

size = 0;

while(!infi.eof() && size < MAX_SIZE)

{

getline(infi, str, ';');

list[size].name = str;

getline(infi, str, ';');

strstrm.str(""); strstrm.clear();

strstrm << str;

strstrm >> list[size].addr;

}

cout << endl << size << " read contacts from the disc." << endl;

system("PAUSE");

system("cls");

}

else {

cout << "ERROR :file not accepted" << endl;

system("PAUSE");

system("cls");

}

}

char getMenuResponse()

{

char response;

cout << endl << "take chioce" << endl

<< "(A)dd contact, (D)isplay contact0, (O)pen File, (S)ave File, (Q)uit" << endl

<< "> ";

cin >> response;

cin.ignore(256, '\n');

return toupper(response);

}

8 0
3 years ago
Other questions:
  • 4. The same data source can be used multiple times in creating mail-merge documents.
    7·1 answer
  • Keep a log of the different types of communication activities in which you engage during the rest of the day. Categorize each ac
    14·1 answer
  • A formal log-on procedure is the operating system’s last line of defense against unauthorized access.
    10·1 answer
  • Which of the following is NOT a characteristic developed by New Journalism?
    6·1 answer
  • A(n) ____________________ is hardware or software that blocks or allows transmission of information packets based on criteria su
    13·1 answer
  • What is the output of the following function call? //function body int factorial(int n) { int product=0; while(n &gt; 0) { produ
    12·1 answer
  • Which Packet Tracer feature do you think will be most helpful for you in learning how to manage a network
    5·1 answer
  • You have a host device with an assigned IP address of 192.168.15.100 and a subnet mask of 255.255.255.192. To what network does
    13·1 answer
  • Working with text in presentation programs is very ____ using text in other applications.
    10·1 answer
  • Brainless is one the way if you help
    9·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!