All pastes #1774419 Raw Edit

ERMIK

public cpp v1 · immutable
#1774419 ·published 2010-02-01 15:58 UTC
rendered paste body
// -----------------------------------------------------------------------------------------------// Тестовая программа - Работа со структурами// // Среда разработки: Microsoft Visual C++ 2008 / 2010 (ОС Windows 7)// Даты последнего изменения: 01.02.2010// -----------------------------------------------------------------------------------------------#include <iostream>#include <fstream>#include <windows.h>#include <new>using namespace std;const int gnum = 4;const int ssize = 7;int mid(int []);struct Rec {// Структура для хранения данных об учащихся	char surname[20];	char name[15];	char secondname[25];	char group[10];	int gr[gnum];};int main() {	SetConsoleCP(1251);	SetConsoleOutputCP(1251);	Rec mass[ssize]; // Объявление массива структур	int *grades; 	const char *inputFileName = "c:\\temp\\input.txt"; //Путь к файлу для входного потока	const char *outputFileName = "c:\\temp\\output.txt"; //Путь к файлу выходного потока	cout << "Добро пожаловать!\n"; //Приветствие	ifstream finp(inputFileName); // Входной поток	if(!finp) //Проверка открытия файла	{		cout << "[х] Открытие файла не удалось.";		getchar();		exit(1);	}	else cout << "[о] Файл по адресу \"" << inputFileName << "\" успешно открыт.";	for (int i = 0; i < ssize; i++)	{		finp.getline(mass[i].surname, 20, '\n'); //Читаем их входного потока в массив структур		finp.getline(mass[i].name, 15, '\n');		finp.getline(mass[i].secondname, 25, '\n');		finp.getline(mass[i].group, 10, '\n');		for (int j = 0; j < gnum; j++)		{			finp >> mass[i].gr[j];		}		finp.ignore(100, '\n');	}	finp.close();	if (!finp.good())//Проверка закрытия файла	{		cout << "\n[х] Невозможно закрыть файл.";		getchar();		exit(1);	}	else cout << "\n[о] С файлом по адресу \"" << inputFileName << "\" завершены все операции";	for (int i = 0; i < ssize; i++)	{		cout << endl << mass[i].surname << ' ' << mass[i].name << ' ' << mass[i].secondname << ' ' << mass[i].group;		for (int j = 0; j < gnum; j++) cout << ' ' << mass[i].gr[j];	}	grades = new(nothrow) int[ssize]; //Размещаем в памяти динамический массив	for (int i = 0; i < ssize; i++)	{		grades[i] = mid(mass[i].gr); // Считаем среднюю оценку	}	cout << "\nСредняя оценка по учащимся: ";	for (int i = 0; i < ssize; i++)	{		cout << grades[i] << ' '; // Выводим среднюю оценку	}	ofstream fout(outputFileName); //Поток на выход	for (int i = 0; i < ssize; i++)	{		fout << mass[i].surname << ' ' << grades[i] << endl;// Пишем в файл	}		fout.close();	if (!fout.good())//Проверка закрытия файла	{		cout << "\n[х] Невозможно закрыть файл.";		getchar();		exit(1);	}	else cout << "\n[о] С файлом по адресу \"" << outputFileName << "\" завершены все операции";	delete grades;	getchar();	getchar();	return 0;}int mid(int arr[gnum]){	int g = 0;	for(int i = 0; i < gnum; i++)	{		g += arr[i];	}	g /= gnum;	return g;}