NetNado
  Найти на сайте:

Учащимся

Учителям



Отчет по лабораторной работе №14 по дисциплине "Программирование на языке высокого уровня"


Национальный исследовательский

Томский политехнический университет

Факультет АВТ

Кафедра ИПС

Работа со структурами и файлами

Отчет по лабораторной работе № 14

по дисциплине "Программирование на языке высокого уровня"

вариант № 9



Выполнил:


студент группы 8В83

Колчанов А.В.


Проверил:


преподаватель
Погребная Т.А.




Томск 2010

Условие задачи

Читая данные из файла и используя массив структур решить следующую задачу. Имеется список учета нуждающихся в улучшении жилищных условий. Каждая запись этого списка содержит фамилию, имя, отчество и дату постановки на учет. Список упорядочен по дате постановки на учет. Известно число квартир, выделяемых по данному списку в течение года. Рассчитать, какое количество лет в среднем необходимо ожидать получения квартиры, и вывести на экран весь список с указанием ожидаемого года получения квартиры.



Алгоритм решения

  1. Считываем данные из файла в массив.

  2. Вычисляем количество лет до выдачи квартир (частное от деления порядкового номера на количество квартир в год).

  3. Выводим результат.



Листинг




/*

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< for (int i=0; i
{

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


скачать

Другие похожие работы: