10.1

Write a program to read a list containing item name, item code, and cost interactively and produce a three column output as shown below.

Name Code Cost
Turbo C++ 1001 250.95
C Primer 905 95.70
    … … … …    … … … …    … … … …

Note that the name and code are left-justified and the cost is right justified with a precision of two digits. Trailing zeros are shown.

Answer
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
class item
{
           char name[40];
            int code;
            float cost;
            public:
            void get_data(char *n,int c,float co)
            {
                    strcpy(name,n);
                     code=c;
                      cost=co;
            }
            void display();
 
 };
 
void item:: display()
{
             cout.precision(2);
             cout.setf(ios::fixed,ios::floatfield);
             cout.setf(ios::showpoint);
             cout.setf(ios::left,ios::adjustfield);
             cout<<setw(40)<<name<<code;
             cout.setf(ios::right,ios::adjustfield);
             cout<<setw(15)<<cost<<endl;
 }
 
 int main()
 {
             item a[5];
             a[0].get_data("Tarbo C++",1001,250.95);
             a[1].get_data("C primer",905,95.7);
             a[2].get_data("algorithm",1111,120.5);
             a[3].get_data("principle of electronics",2220,150.85);
             a[4].get_data("solution of balagurusamy",6666,145.00);
        cout<<setw(10)<<"name"<<setw(34)<<"code"<<setw(15)<<"cost"<<endl;
         for(int i=0;i<60;i++)
          cout<<"-";
          cout<<endl;
          for(i=0;i<5;i++)
          a[i].display();
          return 0;
}

OUTPUT

name                                         code                  cost

——————————————————————————

Tarbo C++                             1001                     250.95

C Primer                                 905                      95.70

algorithm                               1111                      120.50

Principle of electronics      2220                    150.85

Solution of balaguruswamy 6666                  145.00

10.2

Modify the above program to fill the unused spaces with hyphens.

Answer
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
class item
{
         char name[40];
         int code;
         float cost;
         public:
         void get_data(char *n,int c,float co)
         {
                   strcpy(name,n);
                   code=c;
                   cost=co;
        }
     void display();
 
};
void item:: display()
{
 
          cout.precision(2);
           cout.fill('-');
          cout.setf(ios::fixed,ios::floatfield);
           cout.setf(ios::showpoint);
           cout.setf(ios::left,ios::adjustfield);
           cout<<setw(40)<<name<<code;
          cout.setf(ios::right,ios::adjustfield);
          cout<<setw(15)<<cost<<endl;
 }
 
 int main()
 {
         item a[5];
          a[0].get_data("Tarbo C++",1001,250.95);
          a[1].get_data("C primer",905,95.7);
      a[2].get_data("algorithm",1111,120.5);
          a[3].get_data("principle of electronics",2220,150.85);
          a[4].get_data("solution of balagurusamy",6666,145.00);
         cout<<setw(10)<<"name"<<setw(34)<<"code"<<setw(15)<<"cost"<<endl;
          for(int i=0;i<60;i++)
           cout<<"-";
            cout<<endl;
            for(i=0;i<5;i++)
             a[i].display();
        return 0;
}

OUTPUT

name                                         code                  cost

—————————————————————————————-

Tarbo C++ ——————– 1001———–250.95

C Primer ———————-905————-95.70

algorithm———————-1111————120.50

Principle of electronics——2220———–150.85

Solution of balaguruswamy–6666——— 145.00

10.3

Write a program which reads a text from the keyboard and displays the following information on the screen in two columns:

  • (a) Number of lines
  • (b) Number of words
  • (c) Number of characters
    Strings should be left-justified and numbers should be right-justified in a suitable field width.
Answer
#include<iostream>
#include<iomanip>
#include<string>
#include<stdio>
using namespace std;
int main()
{
                   char line[1000];
                   char ch;
                    int c;
                    int word,lines,chr;
                    word=0;
                    lines=0;
                    chr=0;
                    int end=0;
                   cout<<" Enter text : \n";
                   while(end==0)
                    {
                          c=0;
                                      while((ch=getchar())!='\n')
                     line1=ch;
                     line1='\0';
                     if(line[0]=='\0')
                              break;
                              else
                              {
                                          word++;
                                          for(int i=0;line[i]!='\0';i++)
                                   if(line[i]==' ' || line[i]=='\t' || line[i]=='\n')
                                                      word++;
                               }
                               lines++;
                     chr+=strlen(line);
                  }
 
          cout.setf(ios::left,ios::adjustfield);
       cout<<setw(25)<<"Number of lines"<<setw(25)
        <<"Number of words "<<"Number of characters "<<endl;
        cout.setf(ios::right,ios::adjustfield);
        cout<<setw(10)<<lines<<setw(24)<<word<<setw(25)<<chr<<endl<<endl;
    return 0;
}

OUTPUT

Enter text :

santo reads in class five.

He always speak the truth.

He respects his teachers.

He feels shy when I admire him.

I like his morality.
Number of lines       Number of words         Number of characters

5                                        25                                         128

Note: If you press the Enter button two times, the program will terminate.


Next Previous