Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2011, 08:51   #1
D.176
 
Регистрация: 24.03.2011
Сообщений: 9
По умолчанию Не могу отредактировать структуру

задание
Читая данные из файла и используя массив структур решить следующую задачу. Файл содержит анкетные сведения о студентах :

ФИО пол национальность семейное положение год рожд. примечания

Требуется подготовить выдачу информации по запросу по любому из 5-ти первых полей. Предусмотреть возможность корректировки отдельных элементов файла по требованию

Код:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <clocale>
using namespace std;

struct data{
	char fio[25], sex[10], nazi[10], family[10], note[30]; 
	int year;
	void out(){
			cout
			<<" 1. ФИО: "<<fio
			<<" 2. Пол: "<<sex
			<<" 3. Национальность: "<<nazi
			<<" 4. Семейное положение: "<<family
			<<" 5. Год рождения: "<<year
			<<" 6. Примечания: "<<note<<endl<<endl;
	}
	void match (char f, char ff){
		if (f == ff)
			out();
	}

};


void main(){
	setlocale(LC_CTYPE, "");
	int k;
	ifstream file("sourse.txt"); 
	if (!file) {
		cout << "Файл не открыт.2\n";
	} 
	int i, j;
	
	data name[3];
	while (!file.eof()){
		file >> name[i].fio >> name[i].sex >> name[i].nazi >>name[i].family >> name[i].year >> name[i].note;
		i++;
	}
	for (j=0; j<i; j++){
		cout<<j+1<<" ";
		name[j].out();
	}
	cout<<"Хотите отфильтровать список? (y/n) "<<endl;
	char answer;
	cin>>answer;
	if (answer=='y'){
		cout<<"Выбирете поле: "<<endl;
		char filter;
		int filter1;
		cin>>k;
		cout<<"Введите фильтр: "<<endl;
		if (k < 5)
			cin>>filter;
		else
			cin>>filter1;
		for (j=0; j<i; j++){
			switch (k){
			case 1: 
				name[j].match(filter,*name[j].fio);
				break;
			case 2: 
				name[j].match(filter,*name[j].sex);
				break;
			case 3: 
				name[j].match(filter,*name[j].nazi);
				break;
			case 4: 
				name[j].match(filter,*name[j].family);
				break;
			case 5: 
				if (filter1==name[j].year)
					name[j].out();
				break;
			}
		}
	}
	answer=0;
	k=0;
	cout<<"Хотите отредактировать данные? (y/n) "<<endl;
	cin>>answer;
	if (answer=='y')
		cout<<"Введите номер: "<<endl;
	cin>>j;
	cout<<"Редактировать данные этого студента? "<<endl;
	name[j].out();
	cout<<"(y/n): ";
	cin>>answer;
	if (answer=='y')
		cout<<"Введите номер изменяемого поля: "<<endl;
	cin>>k;
	cout<<"Введите новые данные: "<<endl;
	char data;
	int data1;
	cin>>data;
	switch (k){
		case 1:
			name[j].fio=data;
			break;
		case 5:
			name[j].year=data1;
			break;
	}
	name[j].out();
    system ("pause");
}
Написал выдачу информации и возможность изменения года, имя не могу изменить, подскажите как сделать
D.176 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу открыть и отредактировать ехе!!! qpanunahqp Помощь студентам 4 02.11.2010 17:56
Отредактировать партнерку yalegenda567 JavaScript, Ajax 2 02.07.2010 11:49
Не получается отсортировать структуру. В чем проблема понять никак не могу AlEnanechker Помощь студентам 1 25.12.2009 17:02
Отредактировать макрос Romuald Microsoft Office Excel 3 11.02.2009 16:13
Не могу понять как отредактировать программу asale Microsoft Office Excel 1 31.01.2007 20:57