Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++ for DOS] Работа с массивом классов


Автор: SandyProgrammer 26.3.2008, 17:50
   Здравствуйте, уважаемые Программисты!
Обращаюсь к вам с большой просьбой. Мне необходимо написать программу на С++. Дело в том, что с этим языком у меня туго и я просто не успеваю. Всё необходимое сделал, осталась одна единственная задача, помогите пожалуйста кодом. F1.
   Задание:
1) Определить класс с именем NOTE, содержащий следующие поля:
   - фамилия, имя;
   - номер телефона
   - день рождения (массив из 3х чисел)
2) Написать методы, выполняющие следующие действия:
   - ввод с клавиатуры данных в массив, состоящий из 8 объектов типа NOTE;
   - вывод на экран информации о человеке, номер телефона которого введён с клавиатуры, если такого нет, выдать соответствующее сообщение.

 smile 
Это задание по классам. Есть точно такое задание, но по структурам. Я по структурам сделал (код прилагается), а вот с классами никак не могу разобраться, скоро голова взорвётся...  smile 

Задание по структурам (точно такое же, которое я сделал):
1) Определить структуру с именем NOTE, содержащий следующие поля:
   - фамилия, имя;
   - номер телефона
   - день рождения (массив из 3х чисел)
2) Написать методы, выполняющие следующие действия:
   - ввод с клавиатуры данных в массив, состоящий из 8 объектов типа NOTE;
   - вывод на экран информации о человеке, номер телефона которого введён с клавиатуры, если такого нет, выдать соответствующее сообщение.


Код задания по структурам:

Код

#include <stdio.h>
#include <iostream.h>
#include <conio.h>
void main(){
const int n=2;
struct {char fio[50];
int phone;
int date[3];}
note[n];
int i, temp;
char flag=0;
for(i=0;i<n;i++)
{
clrscr();
cout<<"Zapis'"<<i<<"\n";
cout<<"FI\n";
cin>>note[i].fio;
cout<<"Telefon:\n";
cin>>note[i].phone;
cout<<"Den':\n";
cin>>note[i].date[0];
cout<<"Mesyac:\n";
cin>>note[i].date[1];
cout<<"God:\n";
cin>>note[i].date[2];
}
cout<<"Vvedite nomer telefona: ";
cin>>temp;
for (i=0;i<n;i++)
if (note[i].phone==temp)
{
flag=1;
cout<<"Zapis'"<<i<<"\n";
cout<<"FI:"<<note[i].fio<<"\n";
cout<<"Telefon:"<<note[i].phone<<"\n";
cout<<"Den':"<<note[i].date[0]<<"\n";
cout<<"Mesyac:"<<note[i].date[1]<<"\n";
cout<<"God:"<<note[i].date[2]<<"\n";
}
if (flag==0)
cout<<"Zapisei ne naideno";
getche();
}

Автор: Evjeny 27.3.2008, 01:03
Код

#include <iostream>

using namespace std;

class note
{
private:
    char name[80];
    int date[3];
public:
    int phone;
    void getdata();
    void putdata() const;
};

void note::getdata()
{
    char ch;

    cout << "Name: ";
    cin >> name;
    cout << "Phone: ";
    cin >> phone;
    cout << "Date (12/02/1985): ";
    cin >> date[0] >> ch >> date[1] >> ch >> date[2];
}

void note::putdata() const
{
    cout << "Name - " << name
        << "\nPhone - " << phone
        << "\nDate - " << date[0] << '/'
        << date[1] << '/' << date[2] << endl;
}

int main()
{
    note mas[8];

    cout << "Enter info about 8 people's:\n";

    for(int i = 0; i<8; i++)
        mas[i].getdata();

    char choise;
    int phone;

    cout << endl;

    do
    {
        cout << "Enter phone number: ";
        cin >> phone;

        for(int i = 0; i<8; i++)
        {
            if(phone == mas[8].phone)
                mas[i].putdata();
            else
                cout << "No records" << endl;
        }

        cout << "Repeat? (y/n): ";
        cin >> choise;
    }while(choise!='n');

    return 0;
}

Автор: SandyProgrammer 27.3.2008, 05:14
Evjeny, низкий поклон Вам! Благодарю! Вы мне очень и очень помогли.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)