Описание программного комплекса. Модуль Description. Вид исходных файлов с данными, страница 5

4.  Тагин, М.А. Стандартная библиотека функций [Текст] : учеб. пособие / М. А. Тагин. – М. : Программирование, 2002. – 265 с.

Приложение А

#include "face.h"

#include "Description.cpp"

//Главная функция программы

int main ( ){

//Вызов функции реализации меню

menu ( );

return 0;

} ___________________________________________________________________________

#include <stdlib.h>

#include <stdio.h>

#include <string.h>

#include <iostream>

#include <fstream>

#include <iomanip>

//NUMBER хранит максимальный размер массива

#define NUMBER 100

//Установка области действия имен

using namespace std;

void showHeadTable ( );

void showSeparator ( );

void showEndTable ( );

void menu ( );

Приложение Б

#include "face.h"

//Описание класса множества данных – городов страны

class city{

private:

//количество жителей в тысячах

float population;

//название

char* name;

//главная достопримечательность

char* attraction;

public:

//Описание конструкторов

city ( );

city ( char* );

city ( float, char*, char* );

//Функция установки количества жителей

void setPopulation ( );

//Функция установки названия города

void setName ( );

//Функция установки главной достопримечательности

void setAttraction ( );

//Функция, возвращающая количество жителей

float getPopulation ( ) {return population;}

//Функция, возвращающая название города

char* getName ( ) {return name;}

//Функция, возвращающая главную достопримечательность

char* getAttraction ( ) {return attraction;}

//Функция вывода значения текужего элемента

void show ( const char* );

//Виртуальная функция, возвращающая строковое значение административного уровня города

//Из экземпляров данного функция ни разу вызваться не должна

virtual char* getLevel ( ){ return NULL; };

//Виртуальная функция, возвращающая числовое значение административного уровня города

//Из экземпляров данного функция ни разу вызваться не должна

virtual int   getIntLevel ( ){ return -1; };

};

//Инициализация конструктора без параметров

city::city ( ){

population = 0.0;

name = NULL;

attraction = NULL;

}

//Инициализация конструктора с параметром в виде строки значений, разделенных точкой с запятой

city::city ( char* tmpStr ){

char temp [ 50 ];

int i = 0, p = 0;

//Читаем количество жителей

while ( tmpStr [ p ] != ';'  &&  p < strlen ( tmpStr ) ){

temp [ i++ ] = tmpStr [ p++ ];

}

temp [ i ] = 0;

population = atof ( temp );

//Читаем название города

p++;

i = 0;

while ( tmpStr [ p ] != ';'  &&  p < strlen ( tmpStr ) ){

temp[ i++ ] = tmpStr [ p++ ];

}

temp [ i ] = 0;

name = new char [ strlen ( temp ) + 1 ];

strcpy( name, temp );

//Читаем главную достопримечательность

p++;

i = 0;

while ( tmpStr [ p ] != ';'  &&  p < strlen ( tmpStr ) ){

temp[ i++ ] = tmpStr [ p++ ];

}

temp [ i ] = 0;

attraction = new char [ strlen ( temp ) + 1 ];

strcpy( attraction, temp );

}

//Инициализация конструктора с тремя параметрами-значениями

city::city( float p, char* n, char* a ) : population ( p ){

name = new char [ strlen ( n ) + 1 ];

strcpy( name, n );

attraction = new char [ strlen ( a ) + 1 ];

strcpy( attraction, a );

};

//Функция вывода информации

void city::show ( const char* str ){

//Если параметром в функцию передана строка "element", то вывод в формате единичного элемента

if ( str == "element" ){

cout << name << ": " << endl;

cout << "Population: " << population << "thousand people." << endl;

cout << "Main attraction: " << attraction << endl;

cout << "Administrative level: " << getLevel ( ) << endl;

}