Thursday, November 10, 2011

Chap12.3 sample code

#include <fstream>
#include <iomanip>
#include <iostream>
#include <string>
using namespace std;

struct Student
{
  string name;
  int id;
  float gpa;
};
 
void printStudents(Student* student, int nStudents)
{
  int i;
  for (i = 0; i < nStudents; i++)
  {
    cout << "Name = " << left << setw(30) << student[i].name;
    cout.fill('0'); 
    cout << " ID = " << right << setw(7)
      << student[i].id << ", gpa = "
      << student[i].gpa << endl;
    cout.fill(' '); 
  }
}

int main()
{
  // open a file for input
  ifstream fin;
  fin.open("students.txt");
  if (!fin.good()) throw "I/O error";
 
  // create an empty list
  const int MAX_STUDENTS = 100; // capacity
  int nStudents = 0; // initially empty
  Student student[MAX_STUDENTS];
 
  // read and save the records
  while (fin.good())
  {
    // create a record and read it from file
    Student aStudent;
    getline(fin, aStudent.name);

    fin >> aStudent.id;
    fin.ignore(1000, 10);
 
    fin >> aStudent.gpa;
    fin.ignore(1000, 10);
 
    fin.ignore(1000, 10); // skip the ---------- separator

    // add record to list, if it's not full
    if (nStudents < MAX_STUDENTS)
      student[nStudents++] = aStudent;
  }
  fin.close();
 
  // sort the students by name
  for (int i = 0; i < nStudents; i++)
  {
    for (int j = i + 1; j < nStudents; j++)
    {
      if (student[i].name > student[j].name)
      {
        Student temp = student[i];
        student[i] = student[j];
        student[j] = temp;
      }
    }
  }

  printStudents(student, nStudents);
 
  return 0;
} // main

Thursday, November 3, 2011

Pointer Example 1

#include <iostream>
#include <string>
using namespace std;

int main()
{

  int andy = 25;
  int fred = andy;
  int* ted = &andy;
  cout << andy << endl;
  cout << fred << endl;
  cout << *ted << endl;
  cout << ted << endl;

    // declare the variables:

    int nNumber;
    int *pPointer;

    // now, give a value to them:

    nNumber = 15;
    pPointer = &nNumber;

    cout << "nNumber is equal to :" << nNumber << endl;
    *pPointer = 25;

    cout << "nNumber is equal to :" << nNumber << endl;
  return 0;
}

Array of Struct Initialization

#include <iostream>
#include <string>
using namespace std;


// A struct Definition
struct Student
{
  string name;
  int id;
  float gpa;
}; // Student

int main()
{
  Student a[2]={{"Tom",123455, 3.66},
                {"Tom",123455, 3.66}};
  a[0].name = "George Washington";
  a[0].gpa = 3.14;
  a[0].id = 123456;

  cout << "Name=" << a[0].name
       << ", ID=" << a[0].id
       << ", GPA=" << a[0].gpa << endl;

  cout << "Name=" << a[1].name
       << ", ID=" << a[1].id
       << ", GPA=" << a[1].gpa << endl;

  return 0;
}

Passing Struct to Function

#include <iostream>
#include <string>
using namespace std;

struct Student
{
  string name;
  int id;
  float gpa;
}; // Student

Student getGeorge()
{
  Student george;
  george.name = "George";
  george.id = 123456;
  george.gpa = 3.4;
  return george;
} // getGeorge

void printRecord(Student&amp; x)
{
  cout &lt;&lt; "Name=" &lt;&lt; x.name;
  cout &lt;&lt; ", ID=" &lt;&lt; x.id;
  cout &lt;&lt; ", GPA=" &lt;&lt; x.gpa;
} // printRecord

int main()
{
  Student s = getGeorge();
  printRecord(s);
  return 0;
} // main

Passing Array to Function

#include
#include
using namespace std;

double getAverage(int* score, int n)
{
  int sum = 0;
  int i = 0;
  for (i = 0; i &lt; n; i++)
    sum += score[i];
  double average = double(sum) / n;
  return average;
} // getAverage

int main()
{
  int daysPerMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  cout &lt;&lt; "Average = " &lt;&lt; getAverage(daysPerMonth, 12) &lt;&lt; endl;
  return 0;
} // main

Tuesday, November 1, 2011

Struct Sample Code

#include <string>
#include <iostream>
using namespace std;

  struct Course
  {
    string name;
    int session;
    float grade;
    string prereq;
    string teacher;
  }; // Student

int main()
{
/* how to demarc the structs and arrays
 * struc s[5] = { {s1, s2, s3, s4, s5},
 *                {s1, s2, s3, s4, s5},
 *                 ....}};
 */
  Course clist[5] = {
   {"COMSC110", 3131, 100.00, "COMSC100","Robert"},
   {"COMSC100", 1111, 100.00, "COMSC90","Tony"},
   {"COMSC110", 2131, 100.00, "COMSC100","Larry"},
   {"COMSC265", 3331, 100.00, "COMSC110","Joe"},
   {"COMSC110", 3431, 100.00, "COMSC100","Tom"}};
//  clist[0].session = 3131;
//  clist[0].teacher = "Tony";
//  clist[0].name = "COMSC110";

  string term;
  cout << "What Course are you looking for? ";
  getline(cin, term);

  // a way to querry the course, and print out only COMSC110
  for(int i =0; i <5; i++)
    if(clist[i].name == term)
    cout << clist[i].name << ": "
       << clist[i].session << " by "
       << clist[i].teacher << endl;

  return 0;
}