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

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

Описание

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

Содержание

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

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

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

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

      Next=Next_tmp;

} 

request* request::GetNext(void)

{

      return Next;

} 

void request::SetRooms(int a1)

{

      rooms=a1;

} 

void request::SetFloor(int f1)

{

      floor=f1;

} 

void request::SetArea(float a1)

{

      area=a1;

} 

void request::Print(void)

{

      printf("\n_________________________________");

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

      printf("\n_________________________________");

}

Файл  – RequestList.cpp – полное описание функций списка заявок

#include "RequestList.h"

#include "request.h"

#include <stdlib.h>

#include <string.h>

#include <stdio.h> 

RequestList::RequestList(void)

{

      number=0;

      current=NULL;

      Start=NULL;

} 

RequestList::~RequestList(void)

{

} 
 

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

{

      request* temp;

      temp=new request;

      temp->SetRooms(rooms_tmp);

      temp->SetFloor(floor_tmp);

      temp->SetArea(area_tmp);

      temp->SetNext(Start);

      Start=temp;

      number++;

      return this;

} 

void RequestList::Print(void)

{

            request* current; 

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

                  {

                        current->Print();

                  }

} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Файл  – index.cpp – Главная функция 

#include "flat.h"

#include "RequestList.h"

#include "request.h"

#include "FlatList.h"

#include <stdlib.h>

#include <string.h>

#include <stdio.h>

#include <conio.h> 

void main(void){ 

      RequestList* RList=NULL;

      flat* A1;

      int num_of_flats;

      int r1,f1;

      float a1;

      int cmd;

      char buf[32];

      int sw=1,l; 

//Начальное заполнение  списка______________________________________________

printf("WELCOME!\n\n");

printf("Primary fill up of flat list:");

printf("\n==================================================================");

printf("\n\nEnter the number of flats in new FLATLIST: "); 

//Запрос количества  элементов (квартир) 

do{

      scanf("%d", &num_of_flats);  //Запрос количества элементов (квартир) 

     if(num_of_flats<=0)     //Проверка на правильность ввода

            {

            printf("\nNumber of flats is must be positive and don't equal zero\n");

            l=1;

            }

      else

            {

            l=0;

            }

      }while(l==1); 

FlatList list(num_of_flats); //Вызов конструктора с параметром(количество квартир) 

printf("\nDONE!\n");

printf("\n==================================================================");

//_________________________________________________________________________ 

//__________________Описание  комманд______________________________________

      printf("\n\nHELP!!!");

      printf("\n==============================================\n");

      printf("addnew\t\t Add new flat to the FLATLIST\n");

      printf("print\t\t Print the FLATLIST\n");

      printf("printR\t\t Print the REQUESTLIST\n");

      printf("find\t\t Find Flat\n");

      printf("help\t\t View HELP\n");

      printf("exit\t\t End the programm\n");

      printf("\n==============================================\n");

//_________________________________________________________________________ 

do{

            printf("\n\nEnter command: ");

            scanf("%s",buf); 

            if(stricmp("addnew",buf)==0) cmd=1;

            if(stricmp("find",buf)==0) cmd=2;

            if(stricmp("print",buf)==0) cmd=3;

            if(stricmp("printR",buf)==0) cmd=4;

            if(stricmp("help",buf)==0) cmd=5;

            if(stricmp("exit",buf)==0) cmd=6; 

    if(stricmp("addnew",buf)==0||stricmp("find",buf)==0||stricmp("print",buf)==0||stricmp("printR",buf)==0||stricmp("help",buf)==0||stricmp("exit",buf)==0)

                        {

                        }

     else

       {

            cmd=7;

    } 

     switch (cmd){ 

            case 1:list++;

                  break; 

            case 2:  

                  printf("\n===========================\n\nFIND A FLAT!\n");

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

                  scanf("%d",&r1);

                  printf("Enter the floor: ");

                  scanf("%d",&f1);

                  printf("Enter the area of flat: ");

                  scanf("%f", &a1);

                  printf("\n_____\n"); 

                  A1=list.Find(r1,f1,a1); 

                  if(A1==NULL)

                        {

                  printf("\nFLAT NOT FOUND!!!\n\nYou request entry to the RequestList!");

                  RList=new RequestList;

                  RList->AddNew(r1,f1,a1);

                        }

                  else

                        

                  printf("\nFound: \n");

                  A1->Print();

                          }            printf("\n===========================\n"); 

           break;

            case 3:

                  list.Print();

                  break; 

      //Печать  списка заявок. Если списко пуст  выдется сообщение

         case 4:

                  if(RList==NULL)

                        {       

                              printf("\n Request List is EMTY!\n");

                        }

                  else

                        {

                              RList->Print();

                        }

                        break;

            case 5:

                  printf("\n==============================================\n");

                  printf("addnew\t\t Add new flat to the FLATLIST\n");

                  printf("print\t\t Print the FLATLIST\n");

                  printf("printR \t\t Print the REQUESTLIST\n");

                  printf("find\t\t Find Flat\n");

                  printf("help\t\t View HELP\n");

                  printf("exit\t\t End the programm\n");

                  printf("\n==============================================\n"); 

           break; 

            case 6: return;  //Выход из программы 

            default:

            printf("\n\nWRONG COMMAND! ENTER THE COMMAND AGAIN, PLEASE!\n\n"); 

         break;

      } 

}while(sw==1); //Цикл повторяется бесконечно, так как нету функции изменяющей

                       //переменную sw. Выход реализуется через return. 
 

}  //последняя  скобка 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

В задании были поставлены следующие задачи:

-Начальное формирование  данных обо всех продаваемых  квартирах в виде списка.

-Добавление новой  квартиры

-Поиск подходящей квартиры по заданному количеству комнат, этажу и площади. Количество комнат и этаж найденной квартиры должны точно совпадать с требуемыми. Площадь найденной квартиры от требуемой площади должна отличаться не более чем на 10%. Если квартира найдена, сведения о ней должны печататься на экране, в противном случае выдается сообщение об отсутствии подходящего варианта, и заявка с количеством комнат, этажом и площадью включается в список заявок. 

1.  

Запрашивается количество элементов списка - n. Затем введен цикл, который повторяется n раз, внутри которого вызывается функция Input();

 
 

2.  

Создается новый  элемент типа flat. Затем пользователя приглашают ввести данные о квартире(количество комнат, этаж, площадь и адрес). Далее для нового элемента назначаем указатель на следующий элемент – на тот который стоял в начале. После этого в списке назначаем новый элемент как первый. 

  

     

3.

Пользователю предлагается ввести желаемые параметры для поиска подходящей квартиры. Затем проверяется каждый элемент списка квартир, и если находится подходящий вариант, то на экран выводится информация о квартире. Если же квартира не найдена, то создается новый элемент, и включается в список заявок RequestList.

Площадь квартиры отличается не более чем на 10 процентов от введенных данных. Реализуется при помощи умножения на 0.9 и на 1.1 и внедрения условия, проверяющего чтобы заданное значение попадало в промежуток между этими множителями. 
 
 
 
 

 
 
 
 
 
 
 
 
 

Программная реализация каждой задачи

1. Формирование списка

printf("\n\nEnter the number of flats in new FLATLIST: ")

      do{

      scanf("%d", &num_of_flats);  //Запрос количества элементов (квартир)

      if(num_of_flats<=0)   //Проверка на правильность ввода

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