Программа, которая управляет картотекой агентства недвижимости

Автор работы: Пользователь скрыл имя, 19 Декабря 2011 в 19:27, курсовая работа

Описание

Начальное формирование данных обо всех продаваемых квартирах в виде списка. Описание классов, находящихся в составе программы. Описание алгоритмов для каждой задачи относящиейся к данному варианту (словесное и в виде блок схемы).

Содержание

Формулировка задания……………………………………………………………………………………………..…3
ИТ в риэлторском бизнесе…………………………………………………………………………….………..…...4
Описание классов…………………………………………………………………………………………………..….…8
Программная реализация классов …………………………………………………………………………….12
Описание алгоритмов……………………………………………………………………………...……………..….19
Программная реализация задач………..……………………………………………………………………….21
Демонстрационная программа………………………………………………………………………………....24
Список литературы………………………………………………………………………………………………………

Работа состоит из  1 файл

Курсовая работа.doc

— 405.50 Кб (Скачать документ)

      void Print(void);

      int GetRooms(void);

      int GetFloor(void);

      float GetArea(void);

      char* GetAdress(void);

private:

      // Количество комнат

      int rooms;

      // Этаж

      int floor;

      // Площадь квартиры

      float area;

      // Адрес

      char* address;

      // Указатель на следующий элемент

      flat* Next;

}; 

Файл: FlatList.h – класс списка квартир

#pragma once

#include "flat.h"

class FlatList

{

public:

      FlatList(void);        // Конструктор с параметрами - количество элементов в списке

      ~FlatList(void);

private:

      flat* Start;         // Указатель на начало списка

      flat* current;        // Текущий элемент

      int number;        // Количество элементов в списке

public:

      FlatList(int n1);

      FlatList* operator++(int a);   // Добавление нового элемента в начало списка

      void Print(void);       // Печать списка

    flat* Find(int r1, int f1, float a1); // Поиск квартиры по заданным параметрам

      void Print(flat* a1);  

};

Файл  – request.h – класс описания элементов списка заявок  

#pragma once

class request

{

public:

      request(void);

      ~request(void);

      request(int rooms_tmp, int floor_tmp, float area_tmp);

      void SetNext(request* Next_tmp);

      request* GetNext(void);

      void SetRooms(int a1);

      void SetFloor(int f1);

      void SetArea(float a1);

      request* Next;

      void Print(void);

private:

      int rooms;

      int floor;

      float area;

}; 
 

Файл  – RequestList.h – Класс списка заявок 

#pragma once

#include "request.h" 

class RequestList

{

public:

      RequestList(void);

      ~RequestList(void);

      RequestList* AddNew(int rooms_tmp, int floor_tmp, float area_tmp);

      void Print(void);

private:

      int number;

      request* current;

      request* Start;

}; 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Файл  – flat.cpp – Полное описание

#include "flat.h"

#include <stdlib.h>

#include <string.h>

#include <stdio.h> 

flat::flat(void){    //Конструктор по умолчанию

rooms=0;

floor=0;

area=0;

address=NULL;

Next=NULL;

} 

flat::~flat(void) //Деструктор по умолчанию

{

} 

flat::flat(int r1, int f1, float a1, char* ad) // Конструктор с параметрами

{

      rooms=r1;

      floor=f1;

      area=a1;

      address=new char[strlen(ad)];

      strcpy(address,ad);

} 

flat::flat(flat& A1)      //Конструктор копирования

{

      rooms=A1.rooms;

      floor=A1.floor;

      area=A1.area;

      address=new char[strlen(A1.address)];

      strcpy(address,A1.address);

} 

void flat::SetNext(flat* Next1) //Назначение адреса следующего элемента

{

      Next=Next1;

} 

flat* flat::GetNext(void)    //Извлечение адреса следующего элемента

{

      return Next;

} 

void flat::Input(void) //Ввод с клавиатуры

{

      char buf[128];

      printf("\n___________________________________________________");

      printf("\nEnter the number of rooms: ");

      scanf("%d",&rooms);

      printf("\nEnter the number of floor: ");

      scanf("%d",&floor);

      printf("\nEnter the area of this appartment: ");

      scanf("%f",&area);

      printf("\nEnter the street, where appartment situated: " );

      scanf("%s",buf);

      printf("\n___________________________________________________");

      address=new char[strlen(buf)];

      strcpy(address,buf);

} 

void flat::Print(void) //Печать данных элемента

{

      printf("\n_________________________________");

      printf("\nRooms: %d\nFloor: %d\nArea: %.2f\nAddres: %s", rooms, floor, area, address );

      printf("\n_________________________________");

} 

int flat::GetRooms(void)  // Извлечение переменной rooms

{

      return rooms;

} 

int flat::GetFloor(void) // Извлечение переменной floor

{

      return floor;

} 

float flat::GetArea(void) // Извлечение переменной area

{

      return area;

} 

char* flat::GetAdress(void) // Извлечение переменной address

{

      return address;

} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Файл  FlatList.cpp – полное описнаие класса списка квартир 

#include "FlatList.h"

#include "flat.h"

#include "request.h"

#include "RequestList.h"

#include <stdlib.h>

#include <string.h>

#include <stdio.h> 

FlatList::FlatList(void)

{

current=NULL;

Start=NULL;

number=0;

}

FlatList::~FlatList(void)

{

}

FlatList::FlatList(int n1)

{

      flat* current;

      flat* temp;

      number=n1;

            for(int i=0;i<number;i++)

            {

                  temp=new flat;

                  temp->Input(); 

                        if(i==0)

                              {

                                    Start=current=temp;

                                    Start->SetNext(NULL);

                              }

                        else

                              {

                                    temp->SetNext(Start);

                                    Start=temp;

                              }

            } 

} 

// Добавление нового  элемента в начало списка

FlatList* FlatList::operator++(int a)

{

      flat* temp;    //Новый элемент типа PersonElem

      temp=new flat;   //Выделение памяти

      temp->Input();   //Ввод данных

    temp->SetNext(Start);  //Назначаем для текущего элемента адрес

                                  // следующего - Start

      Start=temp;    //Устанавливаем начало списка

      number++;    //Счётчик количества элементов

      return this;

} 

// Печать списка

void FlatList::Print(void)

{

      flat* current; 

            for(current=Start;current!=NULL;current=current->GetNext())

                  {

                              current->Print();

                  }

} 

// Поиск квартиры  по заданным параметрам

flat* FlatList::Find(int r1, int f1, float a1)

{ 

flat* temp;

int r,f;

float a;

temp=Start;

//Ниже реализован цикл, проверяющий каждый элемент списка, и возвращающий //указатель на нужный элемент.

//Если элемент с заданными параметрами не найден, то возвращается значение - NULL

      for(temp=Start;temp!=NULL;temp=temp->GetNext())

            {

                  r=temp->GetRooms();

                  f=temp->GetFloor();

                  a=temp->GetArea(); 

            if(a1<1.1*a&&a1>0.9*a&&f1==f&&r1==r)

                        {

                              return temp;

                        } 

            } 
 

      return NULL; 
 

}

//_______________________________________________________ 

void FlatList::Print(flat* a1)

{

      flat* current;

      current=a1;

      current->Print();

} 
 
 
 
 
 
 

Файл  – request.cpp – Полное описание элемента списка элементов

#include "request.h"

#include <stdlib.h>

#include <string.h>

#include <stdio.h> 

request::request(void)

{

     Next=NULL;

      rooms=0;

      floor=0;

      area=0;

} 

request::~request(void)

{

} 

request::request(int rooms_tmp, int floor_tmp, float area_tmp)

{

      rooms=rooms_tmp;

      floor=floor_tmp;

      area=area_tmp;

} 

void request::SetNext(request* Next_tmp)

{

Информация о работе Программа, которая управляет картотекой агентства недвижимости