Wrox Programmer Forums
|
C++ Programming General discussions for the C++ language. For questions specific to Microsoft's Visual C++ variant, see the Visual C++ forum instead.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the C++ Programming section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
  #1 (permalink)  
Old December 15th, 2004, 12:15 PM
Registered User
 
Join Date: Dec 2004
Posts: 2
Thanks: 0
Thanked 0 Times in 0 Posts
Default help needed

Hi i am trying to create a program that does the following in the c++ language.

•Define appropriate user-defined data types (enumerations and/or structs) to model the data of the application.

•Read the client data from the data file and store it in a convenient form.

•Enrol new clients.

•Renew membership of clients.

•Perform a search through the data for clients whose membership is about to run out and generate a reminder letter.

•Save the client data to a data file.

If anyone laready has a proram similar to this please can you post t to me thanks.
Reply With Quote
  #2 (permalink)  
Old December 18th, 2004, 02:53 PM
Registered User
 
Join Date: Dec 2004
Posts: 2
Thanks: 0
Thanked 0 Times in 0 Posts
Default

Seems like know one is interested in helping me.
I have managed to do the 1st and the second one fro the previous post.
I have saved a file from which the program is ment to read the client details but it only reads 3 of the clients when in the file their are 4 clients saved. pls will someone have a look at my code and try help me solve the tasks. Thanks.

#include <iostream>
#include <fstream>
#include <assert.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <string>
using namespace std;

const int ACC_MAX = 1000 ;

enum MemberType { Annual, Quarterly } ;

//enum Month { Jan, Feb, Mar, Apr, May, Jun,
// Jul, Aug, Sep, Oct, Nov, Dec } ;

struct Date
{
   int day;
   int month;
   int year;
};

struct Name
{
    string first_name;
    string surname;
};


struct Address
{
    string house_no;
    string streetname;
    string streettype;
    string town;
};

struct GymMember
{
    Name name;
    Address address;
    MemberType member;
    Date date;
};


void process( GymMember a )
{
   switch( a.member )
   {
      case Quarterly:
         a.date.month += 1;
         break ;
      case Annual:
         a.date.year += 1;
         break ;
   }
}

void main1()// int argc, char* argv[] )
{
   // assert( argc >= 2 ) ;
   ifstream clientfile( "clients.dat" ) ;

   GymMember member[ACC_MAX] ;
   int nRead = 0 ;
    string text;
    int nMember;
    int MembershipNo;

    clientfile >> nMember >> text >> text >> text;

   // read data from file and store in the array 'member'
   do
   {
      clientfile >> member[nRead].name.first_name
                    >> member[nRead].name.surname
                    >> member[nRead].address.house_no
                    >> member[nRead].address.streetname
                    >> member[nRead].address.streettype
                    >> member[nRead].address.town
                    >> MembershipNo >> text >> text
                    >> member[nRead].date.day
                    >> member[nRead].date.month
                    >> member[nRead].date.year;

    if ( MembershipNo == 12)
        member[nRead].member = Quarterly;
    else
        member[nRead].member = Annual;

      if ( clientfile )
      {
         cout << member[nRead].name.first_name << " "
                    << member[nRead].name.surname << " "
                    << member[nRead].address.house_no << " "
                    << member[nRead].address.streetname << " "
                    << member[nRead].address.streettype << " "
                    << member[nRead].address.town << " "
                    << member[nRead].member << ". "
                    << member[nRead].date.day << " "
                    << member[nRead].date.month << " "
                    << member[nRead].date.year << " \n";
         nRead++ ;
      }
   } while ( clientfile && nRead < ACC_MAX ) ;

   cout << nRead << " accounts read\n" ;
   // printf("dfdasf");
   clientfile.close() ;


};

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

{
    int menu_selection;

    cout << "\n"
            << "================================================= ================\n"
            << " Welcome to Joe's Gym filing system\n"
            << " Bellow is the main menu for Joe's filing system\n"
            << " Thank you for choosing Alparsla associates\n"
            << "================================================= ================\n"
            << " \n"
            << " \n"
            << "Select 1: To view current clients\n"
            << "Select 2: To enrol new clients\n"
            << "Select 3: To perform a search through the data for\n"
            << " clients whose membership is about to run out\n"
            << "Select 4: Exit this program\n\n";
    {
        int c;

        while ((c = getchar()) != EOF)
            putchar(c);
    }
{
    /*decalare a pointer*/
    FILE *fp;
    /* open a file and point clients to it */
    fp = fopen(clients,r);
}


    cin >> menu_selection;

    switch (menu_selection)
    {
    case 1:
        cout << "\n";
        clients = fopen(clients,r);
        cout << "\n";
        main();
    case 2:
        break;
    case 3:
        break;
    case 4:
        cout << "Thank you for choosing Alparsla associates\n";
        cout << " \n";
        cout << "This program was written by\n";
        cout << "Samet Alparslan\n";
        //exit(1);
        break;
    }
}
Reply With Quote
  #3 (permalink)  
Old January 6th, 2005, 09:49 PM
Authorized User
 
Join Date: Dec 2004
Posts: 11
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via MSN to abelconde
Default

Hi,

I sent you an e-mail but you didn't reply to me!

So, Hero go again!!!!
-----------------------------------------------
Hello!

Please, forgive me for the delay.

I was working a lot this week and the last one too.

I 've got to say to you that I tried to keep the same structure you used in your
code. So don't worry about it!

I want you know next time you 've got a doubt in your code, please,
tell which line is working bad or wrong, OK?. Because It sometimes takes me a lot of
time!. Do you understand?

But, no problem. I liked so much to do your little programme!
So, tell me if you could understand your exercise now.

Regards,

Abel Conde

#include <iostream>
#include <fstream>
#include <assert.h>
#include <stdlib.h>
#include <time.h>
#include <string>
using namespace std;

const int ACC_MAX = 1000 ;

enum MemberType { Annual, Quarterly = 12} ;

//enum Month { Jan, Feb, Mar, Apr, May, Jun,
// Jul, Aug, Sep, Oct, Nov, Dec } ;

struct Date
{
   int day;
   int month;
   int year;
};

struct Name
{
    string first_name;
    string surname;
};


struct Address
{
    string house_no;
    string streetname;
    string streettype;
    string town;
};

struct GymMember
{
    Name name;
    Address address;
    MemberType member;
    Date date;
};


void process( GymMember a )
{
   switch( a.member )
   {
      case Quarterly:
         a.date.month += 1;
         break ;
      case Annual:
         a.date.year += 1;
         break ;
   }
}

void read_clients()
{
    ifstream clientfile( "clients.dat" ) ;

    GymMember member[ACC_MAX] ;
    int nRead = 0 ;
    //string text;
    int nMember;
    int MembershipNo;

    // read data from file and store in the array 'member'
    do
    {
        clientfile >> member[nRead].name.first_name;
        clientfile >> member[nRead].name.surname;
        clientfile >> member[nRead].address.house_no;
        clientfile >> member[nRead].address.streetname;
        clientfile >> member[nRead].address.streettype;
        clientfile >> member[nRead].address.town;
        clientfile >> MembershipNo;
        clientfile >> member[nRead].date.day;
        clientfile >> member[nRead].date.month;
        clientfile >> member[nRead].date.year;

        if ( MembershipNo == 12 )
            member[nRead].member = Quarterly;
        else
            member[nRead].member = Annual;

        nMember = nRead + 1; //identifies the record number

        if ( clientfile )
        {
            cout << nMember << " "
                    << member[nRead].name.first_name << " "
                    << member[nRead].name.surname << " "
                    << member[nRead].address.house_no << " "
                    << member[nRead].address.streetname << " "
                    << member[nRead].address.streettype << " "
                    << member[nRead].address.town << " "
                    << member[nRead].member << ". "
                    << member[nRead].date.day << " "
                    << member[nRead].date.month << " "
                    << member[nRead].date.year << " \n";
            nRead++ ;
        }
    } while ( clientfile && nRead < ACC_MAX ) ;

    cout << "\n";
    cout << nRead << " accounts read\n" ;

    clientfile.close() ;
};

void add_new_clients()
{
    ofstream clientfile( "clients.dat", ios::app ) ;

    GymMember member;
    int nRead = 0 ;
    //string text;
    string delimiter = "\t";
    //int nMember;
    int MembershipNo;

    cout << "Input new data client:\n\n";

    cout << "First Name: ";
    cin >> member.name.first_name;

    cout << "Surname: ";
    cin >> member.name.surname;

    cout << "House Number: ";
    cin >> member.address.house_no;

    cout << "Street Name: ";
    cin >> member.address.streetname;

    cout << "Street Type: ";
    cin >> member.address.streettype;

    cout << "Town: ";
    cin >> member.address.town;

    cout << "Member(0:Annual/12:Quarterly): ";
    cin >> MembershipNo; //i use MembershipNo instead of member.member

    cout << "Day: ";
    cin >> member.date.day;

    cout << "Month: ";
    cin >> member.date.month;

    cout << "Year: ";
    cin >> member.date.year;

    // append new data in clients.dat
    clientfile << member.name.first_name << delimiter
                    << member.name.surname << delimiter
                    << member.address.house_no << delimiter
                    << member.address.streetname << delimiter
                    << member.address.streettype << delimiter
                    << member.address.town << delimiter
                    << MembershipNo << delimiter
                    << member.date.day << delimiter
                    << member.date.month << delimiter
                    << member.date.year;

   clientfile.close() ;
};

void search_clients()
{
    GymMember member[ACC_MAX] ;
    int nRead = 0 ;
    int nFound = 0 ;
    int nMember;
    int MembershipNo;
    string name;

    cout << "Input client's first name or client's surname: ";
    cin >> name;

    cout << "\n";

    ifstream clientfile( "clients.dat" ) ;

    // read data from file and store in the array 'member'
    do
    {
        clientfile >> member[nRead].name.first_name;
        clientfile >> member[nRead].name.surname;
        clientfile >> member[nRead].address.house_no;
        clientfile >> member[nRead].address.streetname;
        clientfile >> member[nRead].address.streettype;
        clientfile >> member[nRead].address.town;
        clientfile >> MembershipNo;
        clientfile >> member[nRead].date.day;
        clientfile >> member[nRead].date.month;
        clientfile >> member[nRead].date.year;

        if ( MembershipNo == 12 )
            member[nRead].member = Quarterly;
        else
            member[nRead].member = Annual;

        nMember = nRead + 1; //identifies the record number

        if ( clientfile )
        {
            if ( name == member[nRead].name.first_name || name == member[nRead].name.surname)
            {
                cout << nMember << " "
                        << member[nRead].name.first_name << " "
                        << member[nRead].name.surname << " "
                        << member[nRead].address.house_no << " "
                        << member[nRead].address.streetname << " "
                        << member[nRead].address.streettype << " "
                        << member[nRead].address.town << " "
                        << member[nRead].member << ". "
                        << member[nRead].date.day << " "
                        << member[nRead].date.month << " "
                        << member[nRead].date.year << " \n";
                nFound++;
            }
            nRead++ ;
        }
    } while ( clientfile && nRead < ACC_MAX ) ;

    cout << "\n";
    cout << nFound << " records found\n" ;

    clientfile.close() ;
}

void main()
{
    int menu_selection;

    cout << "\n"
            << "================================================= ================\n"
            << " Welcome to Joe's Gym filing system\n"
            << " Bellow is the main menu for Joe's filing system\n"
            << "================================================= ================\n"
            << " \n"
            << " \n"
            << "Select 1: To view current clients\n"
            << "Select 2: To enrol new clients\n"
            << "Select 3: To perform a search through the data for\n"
            << " clients whose membership is about to run out\n"
            << "Select 4: Exit this program\n\n";


    cin >> menu_selection;

    switch (menu_selection)
    {
    case 1:
        cout << "\n";
        read_clients();
        cout << "\n";
        main();
        break;
    case 2:
        cout << "\n";
        add_new_clients();
        cout << "\n";
        main();
        break;
    case 3:
        cout << "\n";
        search_clients();
        cout << "\n";
        main();
        break;
    case 4:
        break;
    }
}

Reply With Quote





Similar Threads
Thread Thread Starter Forum Replies Last Post
Help needed ramabharti Javascript How-To 1 December 7th, 2006 06:42 AM
Help needed rrvinod ADO.NET 0 October 5th, 2006 09:44 AM
help needed! paquito Beginning PHP 2 November 16th, 2005 11:51 AM
A Little help needed matthew01 ASP.NET 1.0 and 1.1 Basics 3 November 9th, 2005 11:29 AM
help needed kfarooq Java Databases 1 June 27th, 2003 05:20 AM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.