Отчет по лабораторной работе №14 по дисциплине "Программирование на языке высокого уровня"
Национальный исследовательский
Томский политехнический университет
Факультет АВТ
Кафедра ИПС
Работа со структурами и файлами
Отчет по лабораторной работе № 14
по дисциплине "Программирование на языке высокого уровня"
вариант № 9
Выполнил: | студент группы 8В83Колчанов А.В. |
Проверил: | преподаватель |
Томск 2010
Условие задачи
Читая данные из файла и используя массив структур решить следующую задачу. Имеется список учета нуждающихся в улучшении жилищных условий. Каждая запись этого списка содержит фамилию, имя, отчество и дату постановки на учет. Список упорядочен по дате постановки на учет. Известно число квартир, выделяемых по данному списку в течение года. Рассчитать, какое количество лет в среднем необходимо ожидать получения квартиры, и вывести на экран весь список с указанием ожидаемого года получения квартиры.
Алгоритм решения
Считываем данные из файла в массив.
Вычисляем количество лет до выдачи квартир (частное от деления порядкового номера на количество квартир в год).
Выводим результат.
Листинг
/* Andrey Kolchanov, 2010 Tomsk Polytechnic University [email protected] */ #include "stdafx.h" #include "iostream" #include "conio.h" #include "string" #include "string.h" #include "fstream" using namespace std; #define CountByYear 2;//количество квартир в год struct Year { int day, mounth, year; }; struct field { string firstname,lastname; Year year; }; int _tmain(int argc, _TCHAR* argv[]) { //getting info from datafile ifstream data("data.txt"); if (!data) { cout << "File could not be opened."; getch(); return -1; } char a[81]; int count; data>>count; field *p; p=new field[count]; for (int i=0;i { data>>p[i].firstname; data>>p[i].lastname; data>>p[i].year.day; data>>p[i].year.mounth; data>>p[i].year.year; } data.close();//закрываем файл //шапка таблицы cout.width(12);cout << "First name"; cout.width(12);cout << "Last name"; cout.width(5);cout << "Day"; cout.width(7);cout << "Mounth"; cout.width(6);cout << "Year"; cout.width(11);cout << "Time left"; cout.width(8);cout << "Answer"; cout< { cout.width(12); cout << p[i].firstname; cout.width(12); cout << p[i].lastname; cout.width(5); cout << p[i].year.day; cout.width(7); cout << p[i].year.mounth; cout.width(6); cout << p[i].year.year; cout.width(11); cout << i/CountByYear; cout.width(8); cout << p[i].year.year+i/CountByYear; cout< } getch(); return 0; } |
Результат работы программы
First name Last name Day Mounth Year Time left Answer
Borodin Maxim 1 1 2008 0 2008
Kireev Andrey 2 3 2008 0 2008
Makarov Maxim 10 1 2009 1 2010
Mileshin Alexandr 16 1 2009 1 2010
Kostirin Anton 28 3 2009 2 2011
Laykom Dmitriy 30 12 2009 2 2011
Вывод
Повторили работу с файлами и строками, научились создавать структуры данных и находить оставшееся время до какого-либо события.
страница 1
скачать
Другие похожие работы: