Разработка информационно-справочной системы альтернативного поиска квартир

Обоснование выбора языка программирования. Описание разработки структуры программы. Спецификация переменных и процедур. Руководство оператора, словесный алгоритм. Состав информационной системы поиска квартир и характеристика её программных интерфейсов.

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 15.09.2014
Размер файла 2,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

1Содержание

Обоснование выбора языка программирования

Описание разработки структуры программы

Словесный алгоритм

Спецификация переменных

Спецификация процедур

Руководство оператора

Список использованных источников

Приложение А. Схемы алгоритмов

Приложение Б. Тестирование программы

Приложение В. Текст программы

информационная справочная алгоритм поиск

Обоснование выбора языка программирования

Delphi - язык и среда программирования, относящийся к классу RAD - (Rapid Application Development «Средство быстрой разработки приложений») средств CASE - технологий.

В основе Delphi лежит язык Object Pascal, который является расширением объектно-ориентированного языка Pascal. В Delphi также входят: локальный SQL-сервер, генераторы отчетов, библиотеки визуальных компонентов, и прочие элементы, необходимые для того, чтобы чувствовать себя совершенно уверенным при профессиональной разработке информационных систем или просто программ для Windows-среды.

Delphi позволяет разрабатывать приложения быстрым процессом лишь за счет средств визуализации, ибо визуальное программирование как бы добавляет новое измерение при создании приложений, давая возможность изображать эти объекты на экране монитора до выполнения самой программы. Без визуального программирования процесс отображения требует написания фрагмента кода, создающего и настраивающего объект «по месту». Увидеть закодированные объекты было возможно только в ходе исполнения программы. При таком подходе достижение того, чтобы объекты выглядели и вели себя заданным образом, становится утомительным процессом, который требует неоднократных исправлений программного кода с последующей прогонкой программы и наблюдения за тем, что в итоге получилось.

Благодаря средствам визуальной разработки можно работать с объектами, держа их перед глазами и получая результаты практически сразу. Способность видеть объекты такими, какими они появляются в ходе исполнения программы, снимает необходимость проведения множества операций вручную, что характерно для работы в среде, не обладающей визуальными средствами, вне зависимости от того, является она объектно-ориентированной или нет. После того, как объект помещен в форму среды визуального программирования, все его атрибуты сразу отображаются в виде кода, который соответствует объекту как единице, исполняемой в ходе работы программы.

Размещение объектов в Delphi связано с более тесными отношениями между объектами и реальным программным кодом. Объекты помещаются в вашу форму, при этом код, отвечающий объектам, автоматически записывается в исходный файл. Этот код компилируется, обеспечивая существенно более высокую производительность, чем визуальная среда, которая интерпретирует информацию лишь в ходе исполнения программы.

В частности, Borland Delphi позволяет добавлять к окнам поля ввода, меню, командные кнопки, переключатели, флажки, списки, линейки прокрутки, a также диалоговые окна для выбора файла или каталога. Программист может использовать сетку для обработки табличных данных, организовать взаимодействие с другими приложениями Windows и доступ к базам данных. Borland Delphi такие компоненты обычно называют элементами управления.

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

Для этой цели предусмотрено специальное окно, называемое Инспектором объектов, в котором перечислены все доступные в режиме проектирования свойства выделенного компонента и их текущие значения.

Изменение свойства какого-либо объекта незамедлительно отразится на внешнем виде и коде программы. Это позволяет, уже до запуска программы видеть как будет выглядеть проектируемая форма.

«Преимущества» Delphi по сравнению с аналогичными программными продуктами:

1. Быстрота разработки приложения;

2. Высокая производительность разработанного приложения;

3. Низкие требования разработанного приложения к ресурсам компьютера;

4. Наращиваемость за счет встраивания новых компонент и инструментов в среду Delphi;

5. Возможность разработки новых компонент и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходных кодах);

6. Удачная проработка иерархии объектов.

Описание разработки структуры программы

Для облегчения и наглядности работа с программой происходит через оператор choice, который позволяет пользователю выбрать необходимый ему пункт. Само консольное приложение разбито на подпрограммы при помощи процедур, что существенно «облегчает» главный код программы.

Все данные, внесенные в процессе работы, можно сохранить в нетипизированный файл. Также данные можно из него подгрузить и работать со списком по-новому. Графический режим не использовался.

Исходный код программы состоит из главного файла - Kartoteka.dpr. Для успешной компиляции необходимы стандартные библиотеки Delphi. Программа начинается с зарезервированного слова program. Строка {$APPTYPE CONSOLE} указывает на то, что данная программа представлена в виде консольного приложения.

Словесный алгоритм

Программа начинается с зарезервированного слова program. Первоначально на экране появляется DOS-окно, на котором можно увидеть список предлагаемых действий:

Добавить квартиру

Сохранить данные

Открыть данные

Поиск квартиры для обмена

Показать сохраненные данные

Закрыть программу

Выбор какого-либо пункта осуществляется путём нажатия на клавишу с необходимой цифрой с помощью функции case choice of соответственно.

При выборе первого пункта на экран выводится строка для заполнения «Количество комнат», далее после набранного значения нажимается кнопка ввода и пользователю представляется строка для заполнения «Этаж», далее строка «Площадь» и наконец, последняя строка «Адрес».

При выборе второго пункта пользователь может сохранить набранные им данные в файл типа list. Сохранение списка происходит при помощи оператора Assign(f,'list');.

При выборе третьего пункта пользователь может открыть набранный ранее список, где будут такие данные как количество комнат, этаж, площадь, адрес. Либо после открытия пользователь может начать добавлять новые элементы в конец списка.

При выборе четвертого пункта пользователь может произвести поиск квартиру для обмена по критериям задания.

При выборе пятого пункта пользователь может посмотреть весь список, сохраненный ранее. Для этого используется оператор ShowList(list1);.

Спецификация переменных

Таблица 1 - Спецификация переменных

Идентификатор

Тип

Описание

Link =;

Node =

^Node

record

Переменная типа запись

kol

Integer

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

it

Integer

Этаж

sq

Integer

Площадь

adr

String

Адрес

Next

Link

Переменная типа ссылка

choice

Выбор из списка

x1

Integer

Переменная количества комнат

х2

Integer

Переменная этажа

х3

Integer

Переменная площади

х4

String

Переменная адреса

list1

List

Переменная типа List

Спецификация процедур

Таблица 2 - Спецификация процедур

Название

Описание

procedure Prompt;

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

procedure FreeList(var L: List);

Процедура освобождения памяти списка

procedure ShowList(L: List);

Процедура просмотра списка

procedure InTail(var L: List; x1,x2,x3: Integer; x4:string);

Процедура добавления элемента в конец списка

procedure SaveList(L: List);

Процедура сохранения списка в файл

procedure OpenList(var L: List);

Процедура выгрузки списка из файла

Procedure Deletelist( var L:list; del : List);

Процедура очистки списка

Руководство оператора

Программа использует для хранения информации динамическую память компьютера. Первоначально на экране появляется DOS-окно, на котором можно увидеть список предлагаемых действий:

Рисунок 1 - Главное окно

Добавить квартиру

Сохранить данные

Открыть данные

Поиск квартиры для обмена

Показать сохраненные данные

Закрыть программу

Выбор какого-либо пункта осуществляется путем нажатия на клавишу с необходимой цифрой.

Рисунок 2 - Добавление квартиры

При выборе первого пункта на экран выводится строка для заполнения «Количество комнат», далее после набранного значения нажимается кнопка ввода и пользователю представляется строка для заполнения «Этаж», далее строка «Площадь» и наконец, последняя строка «Адрес».

Рисунок 3 - Сохранение данных

При выборе второго пункта пользователь может сохранить набранные им данные в файл типа list.

Рисунок 4 - Открытие данных

При выборе третьего пункта пользователь может открыть набранный ранее список, где будут такие данные как количество комнат, этаж, площадь, адрес. Либо после открытия пользователь может начать добавлять новые элементы в конец списка.

Рисунок 5 - Показ сохраненных данных

При выборе пятого пункта пользователь может посмотреть весь список, сохраненный ранее.

Рисунок 6 - Поиск квартиры для обмена

При выборе четвертого пункта пользователь может произвести поиск квартиру для обмена по критериям задания.

При выборе нулевого пункта происходит закрытие программы.

Список использованных источников

Сергиевский М.В., Шалашов А.В. Турбо Паскаль 7.0: Язык, среда программирования. -М.: Машиностроение. -1994. -254 с.: ил.

А.Епанешников, В.Епанешников. Программирование в среде Turbo Pascal 7.0. - 3-е изд., стер.- М.: "ДИАЛОГ-МИФИ", 1995.

Фаронов В.В. Турбо Паскаль. В 3-х кн. - М.: МВТУ, Фесто-Дидактик, 1993 г.

Заварыкин В.М. и др. Численные методы: Учеб. пособие для студентов физ.-мат. спец. пед. ин-тов/В.М. Заварыкин, В.Г. Житомирский, М.П. Лапчик. -М.: Просвещение, 1990. -176 с.: ил.

ГОСТ 19.701-90 "ЕСПД. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения"

ГОСТ 2.105-95 "Единая система конструкторской документации. Общие требования к текстовым документам"

Архангельский А.Я. Учебник по классическим версиям Delphi. - М.: - ООО «Бином - Пресс», 2006. - 1152 с.

Матчо Дж., Фолкнер Д. Р. Delphi: Пер. с англ. - М.: Изд. БИНОМ, 1995. - 524 с.

Приложение А

Схемы алгоритмов

Основная программа

Процедура InitList

Процедура Prompt

Процедура FreeList

Процедура ShowList

Процедура InTail

Процедура SaveList

Процедура OpenList

Процедура DeleteList

Процедура Poisk

Приложение Б

Тестирование программы

Рисунок 7 - Главное окно

Рисунок 8 - Добавление квартиры

Рисунок 9 - Сохранение данных

Рисунок 10 - Открытие данных

Рисунок 11 - Показ сохраненных данных

Рисунок 12 - Поиск квартиры для обмена

Приложение В

Текст программы

Основная программа

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <iostream.h>

 struct Bus{ //Структура

char name[15]; //имя водителя

char nombus[6]; //номер автобуса

int nomer; //номер маршрута

char marsh[6]; //признак нахождения автобуса

Bus *next;

} x; //буферная переменная

 Bus *add(Bus *beg,const Bus &x); //добавление

Bus writed(); //ввод с клавиатуры

void print(Bus *beg,char *marsh); //вывод на экран по признаку

void print(Bus *beg); //вывод на экран

bool writeBD(char *name, Bus *beg); //запись в файл

Bus *readBD(char *name); //чтение из файла

Bus *found(Bus *beg, char *nombus, char *marsh); //исправление

Bus *found(Bus *beg, char *nombus); //поиск

 void main(){

Bus *beg = NULL;

int i,nomer;

char y_n,name[80],nombus[6],marsh[6];

int data;

do{

 printf("\nMENU: New(n), Open(o)?\n"); //главное меню

 cin>>y_n;

 switch(y_n){

 case 'n':

 do{

 beg=add(beg,writed()); //ввод списка

 printf("\nDalshe? (y/n):");

 cin>>y_n;

 }while(y_n=='y'||y_n=='Y');

 printf("\nInput filename:");

 cin>>name;

 if(writeBD(name,beg))printf("\nError!\n"); //запись данных в файл

 break;

 case 'o':

 printf("\nInput filename:");

 cin>>name;

 beg=readBD(name); //чтение из файла

 break;

 default : exit;

 }

 printf("\nMENU: Naiti(n), Print(p), Zamenit(z)?\n"); //меню исправлений

 cin>>y_n;

switch(y_n){

case 'n':

printf("\nVvedite nomer bus:");

cin>>nombus;

beg=found(beg,nombus); //поиск по номеру автобуса

break;

case 'p':

printf("\nInput pologenie bus(park/route):");

scanf("%s",marsh);

for(i=strlen(marsh);i<6;i++)

marsh[i]=' ';

marsh[6]='\0';

print(beg,marsh);

break;

case 'z':

printf("\nVvedite nomer bus:");

cin>>nombus;

nombus[6]='\0';

printf("\nInput pologenie bus(park/route):");

 scanf("%s",marsh);

 for(i=strlen(marsh);i<6;i++)

marsh[i]=' ';

marsh[6]='\0';

beg=found(beg,nombus,marsh); //исправление

if(writeBD(name,beg))printf("\nError!\n"); //запись исправленных данных

default : exit;

}

printf("\nSnova? (y/n):");

 cin>>y_n;

}while(y_n=='y'||y_n=='Y');

 

 

}

 // FUNC add()

Bus *add(Bus *beg,const Bus &x){

  Bus *px = new Bus;

 Bus *dpx = beg;

 *px=x;

 if(beg){

while(dpx->next)dpx=dpx->next;

 dpx->next=px;

 px->next=0;

 }else{

 beg=px;

 beg->next=0;

 }

 return beg;

 }

 

// FUNC writed() - for inputs;

Bus writed(){

long i;

Bus dx;

char nombus[6];

 printf("\nInput name:");

 cin>>dx.name;

 for(i=strlen(dx.name);i<15;i++)

 dx.name[i]=' ';

  dx.name[14]='\0';

 printf("\nInput nomer marshruta:");

 cin>>dx.nomer;

 printf("\nInput nomer bus(x999xx):");

 cin>>dx.nombus;

 dx.nombus[6]='\0';

  printf("\nInput pologenie bus(park/route):");

 scanf("%s",dx.marsh);

 for(i=strlen(dx.marsh);i<6;i++)

 dx.marsh[i]=' ';

 dx.marsh[6]='\0';

 return dx;

}

 // FUNC print() - for prints;

void print(Bus *beg,char *marsh){

 Bus *px = beg;

 printf("\n|-NOMER-BUS-|NOMER|------NAME-----|-ROUTE-|");

 while(px){

 if(px->marsh[0]==marsh[0]){

 printf("\n|%11s|%5d|%15s|%7s|",px->nombus,px->nomer,px->name,px->marsh);

 }

 px=px->next;

 }

 printf("\n|-NOMER-BUS-|NOMER|------NAME-----|-ROUTE-|");

}

 

// FUNC print2() - for prints;

void print(Bus *beg){

 Bus *px = beg;

 printf("\n|-NOMER-BUS-|NOMER|------NAME-----|-ROUTE-|");

 while(px){

 printf("\n|%11s|%5d|%15s|%7s|",px->nombus,px->nomer,px->name,px->marsh);

 px=px->next;

 }

 printf("\n|-NOMER-BUS-|NOMER|------NAME-----|-ROUTE-|");

}

 // FUNC writeBD();

bool writeBD(char *name, Bus *beg){

Bus *dpx = beg;

FILE *fout;

if((fout = fopen(name, "w")) == NULL ) {

puts("Fail error!"); return 1;

}

while(dpx){

fprintf(fout,"%11s %5d %15s %7s\n",dpx->nombus,dpx->nomer,dpx->name,dpx->marsh);

dpx=dpx->next;

}

fclose(fout);

return 0;

}

 //FUNC readBD();

Bus *readBD(char *name){

 FILE *inf;

 Bus x;

 Bus *beg = 0;

 if ((inf = fopen(name, "r")) == 0 ) {

printf("Not file %s\n",name); return 0;

}

fseek(inf,0,0);

 while(!feof(inf)) {

fscanf(inf," %s ",&x.nombus);

fscanf(inf," %d ",&x.nomer);

fscanf(inf," %s ",&x.name);

fscanf(inf," %s ",&x.marsh);

clrscr();

beg = add(beg,x);

print(beg);

}

fclose(inf);

return beg;

}

 //FUNC found();

Bus *found(Bus *beg, char *nombus, char *marsh){

Bus *dpx=beg;

Bus *buf=beg;

Bus *px=new Bus;

char bufer[7];

int i=0;

px = beg;

while(dpx){

if(!strcmp(dpx->nombus,nombus)){

printf("\n|-NOMER-BUS-|NOMER|------NAME-----|-ROUTE-|");

printf("\n|%6s|%5d|%15s|%7s|",px->nombus,px->nomer,px->name,px->marsh);

printf("\n|-NOMER-BUS-|NOMER|------NAME-----|-ROUTE-|");

if(marsh[0]==dpx->marsh[0]){

printf("Bus -> %s",dpx->marsh);

}else{

strcpy(dpx->marsh,marsh);

}

return beg;

}

dpx=dpx->next;

}

beg=add(beg,x);

return beg;

}

 //FUNC found2();

Bus *found(Bus *beg, char *nombus){

Bus *dpx=beg;

Bus *buf=beg;

Bus *px=new Bus;

px = beg;

while(dpx){

if(!strcmp(dpx->nombus,nombus)){

printf("\n|-NOMER-BUS-|NOMER|------NAME-----|-ROUTE-|");

printf("\n|%6s|%5d|%15s|%7s|",px->nombus,px->nomer,px->name,px->marsh);

printf("\n|-NOMER-BUS-|NOMER|------NAME-----|-ROUTE-|");

return beg;

}

dpx=dpx->next;

}

beg=add(beg,x);

return beg;

}

 

Размещено на Allbest.ru


Подобные документы

  • Обзор существующих систем атоматизированного поиска. Мир электронных денег. Разработка структуры системы автоматизированного поиска отделений и терминалов банков. Обоснование выбора технологии разработки, программной среды и языка программирования.

    курсовая работа [1,2 M], добавлен 17.01.2011

  • Характеристика этапов разработки программных средств. Спецификация, алгоритм, кодирование, отладка и тестирование. Создание справочной системы и установочного диска. Назначение программы, язык программирования. Технические требования к программе.

    курсовая работа [1006,4 K], добавлен 19.12.2013

  • Описание процесса проектирования информационно–справочной системы с помощью среды разработки PascalABC.Net, ее использование для регистрации обращений в медицинское учреждение. Логическая структура программы, алгоритм ее работы, особенности интерфейса.

    курсовая работа [628,8 K], добавлен 07.06.2017

  • Реализация информационно-справочной системы на языке программирования C#. ее тестирование и отладка. Назначение, состав и структура программы "Адресная книга", описание операций. Программные и аппаратные требования к системе. Блок-схема и код программы.

    курсовая работа [709,5 K], добавлен 11.06.2019

  • Характеристика структурированного языка программирования С, его основных структурных компонентов, области памяти, библиотеки. Методы поиска в массивах данных. Описание программы, функции сортировки и меню выбора, последовательного и бинарного поиска.

    курсовая работа [1,7 M], добавлен 19.05.2014

  • Описание процесса проектирования информационно–справочной системы с помощью среды разработки Delphi 10 Lite, ее использование для регистрации сварочных работ. Функциональное назначение программы и ее логическая структура. Свойства информационной системы.

    курсовая работа [1,7 M], добавлен 10.01.2015

  • Использование хеширования для поиска данных. Хеширование и хеш-таблицы. Способы разрешения конфликтов. Использование средств языка программирования в работе с хеш-таблицами. Описание разработанного приложения. Структура программы. Инструкция пользователя.

    курсовая работа [1,1 M], добавлен 19.08.2016

  • Обоснование выбора языка и среды программирования. Обзор и анализ существующих программных решений. Разработка графического и пользовательского интерфейса. Алгоритм бинарного поиска. Методы добавления, удаления элемента из дерева и вывода на экран.

    курсовая работа [1,3 M], добавлен 31.05.2016

  • Обоснование выбора метода извлечения ключевых слов. Анализ предметной области, проектирование информационной системы поиска релевантных документов. Реализация запросов к электронным библиотекам. Реализация интерфейса системы поиска релевантных документов.

    дипломная работа [1,1 M], добавлен 21.09.2016

  • Организационно-экономическая сущность задачи автоматизации библиотечной информационной системы. Режимы работы и информационная модель решения задачи, описание входной и выходной информации. Обоснование выбора языка программирования, алгоритм решения.

    дипломная работа [448,5 K], добавлен 08.11.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.