поля: имя фамилия группа крови дата рождения пол
методы: ввод вывод операция по перемене пола вычисление возраста
кто может черкните как...
 
 предмет POO
язык Си
Модератор: Злобный
 
 Код: Выделить всё
struct Passport
{
...
};
Код: Выделить всё
...
char Gender;
...
Код: Выделить всё
...
void Show( string S );
...
};// окончание объявления структуры
void Passport::Show( string S )
{...}
 
 
Код: Выделить всё
#include <iostream>
using namespace std;
// все остается как есть, но данные считываем так:
cout << endl << "Введите следующие данные: имя, фамилию, пол (М/Ж), группу крови, дату рождения";
cin >> passport[i].name >> passport[i].sec_name >> passport[i].pol >> passport[i].gruppa_krovi >> passport[i].date;
// ну или по порядку:
// cout << "Введите следующие данные:" 
// cout << endl << "имя: ";
// cin >> passport[i].name;
// cout << endl << "фамилию: ";
// cin >> passport[i].sec_name;
// ну и так далее
Ну это я провокационно заявил, конечно. Но.sadman писал(а):а вот отсюда по-подробнейprintf() и getch() сотоварищи - это зло
Код: Выделить всё
// Консоль:
int i;
float fl;
char temp[100];
std::cin.getline(temp, 100);
fl=strtof(temp,0);
std::cin.getline(temp, 100);
i=strtol(temp,0,10);
// Файл:
std::ifstream someVarName("data.txt");
float fl;
char temp[100];
someVarName.getline(temp, 100);
fl=strtof(temp);
int i;
someVarName >> i;
Код: Выделить всё
#include <iostream>
using namespace std;
class Passport
{
	friend ostream& operator<<(ostream& output, const Passport& p);
	friend ostream& operator>>(istream& input, Passport& p);
private:
	char _name[100], 
	     _surname[100];
	int _birthday;       // в формате 19802910 для 29.10.1980
	char _bloodType[3];  //чтобы включить и резус, то есть максимум "AB+"
};
ostream& operator<<(ostream& output, const Passport& p)
{
	output << "Name-surname: " << p._name << p._surname << endl;
	output << "Birthday: " << p._birthday << endl;
	output << "Blood type: " << p._bloodType << endl << endl;
	
	return output;
}
istream& operator>>(istream& input, Passport& p)
{
	// Ввод по порядку: имя, фамилия, дата рождения, группа крови
	
	input >> p._name >> p._surname >> p._birthday >> p._bloodType;
	
	return input;
}
void main()
{
	personCount = 10;
	
	Passport data[personCount];
	
	for(int i = 0; i < personCount; i++)
	{
		cout << "Введите имя, фамилию, дату рождения в формате yyyymmdd, групу крови: "
		cin >> data[i];
		cout << endl << endl;
	}
	
	cout << "Вы ввели следующие данные: " << endl << endl;
	for(int i = 0; i < personCount; i++)
	{
		cout << data[i];
	}
}
По идее, этого достаточно, потому что С++ автоматом генерит конструктор, конструктор копирования и деструктор для класса. Но! В данном случае надо сделать, как минимум, конструктор, который будет выделять память для массиово символов (char _name[100], _surname[100]; и т.п.), насколько я помню.[geniuz] писал(а):dmitriid,
это вся прога??? а конструкторы и диструкторы тут есть?
 Мог чего-нибудь напутать
 Мог чего-нибудь напутать  