Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Разработка информационно-поисковой системы «Населенность» - файл курсовая_работа.doc


Разработка информационно-поисковой системы «Населенность»
скачать (146.7 kb.)

Доступные файлы (7):

Baza.CPP
BAZA.H
Baza.EXE
BAZA.TXT1kb.01.12.2007 18:59скачать
BAZA.TXT1kb.23.05.2006 21:05скачать
курсовая_работа.doc624kb.22.05.2006 21:11скачать
титул лист.doc27kb.21.05.2006 17:48скачать

Загрузка...

курсовая_работа.doc

Реклама MarketGid:
Загрузка...


520100 ДФ 220200 КР 11 ПЗ



Содержание

Введение…………………………………………………………………….…5

  1. Структура программного обеспечения…………………………………6

  2. Алгоритмы по созданию функций...........................................................7

2.1 Описание и назначение функций..........................................................7

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

  1. Отладка и компиляция. Протоколы тестирования................................10

  2. Руководство пользователя.......................................................................14

  3. Руководство программиста......................................................................15

Заключение........................................................................................................16

Литература........................................................................................................17

ПРИЛОЖЕНИЕ А Текст программы.............................................................18

ПРИЛОЖЕНИЕ Б Текст модуля.....................................................................19

Введение



Введение


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

В настоящее время почти вся современная научная деятельность человека связана с программированием. Но одной из наиболее неотрывно связанных с вычислительной техникой наук является ТРПО (технологии разработки программного обеспечения), нашедшая применение в современной вычислительной технике: в теоретическом программировании, при проектировании ЭВМ на ЭВМ и сетей ЭВМ, баз данных, систем логического управления.

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


Программное обеспечение работает в операционных системах Windows 95, Windows 98, Windows 2000 и Windows XP. Выбор операционных систем обу-словлен удобством, изученностью и доступностью для пользователей, наличием встроенного в систему интерфейса удобного для использования данного программного обеспечения.

Вся структура программного обеспечения представлена на рисунке 1. Её можно разделить на несколько уровней. Нижний уровень – основная программа. Второй уровень – программный модуль . Третий уровень – функции реализованные в данном модуле. Четвертый уровень - файл. Такая структура обусловлена требованиями, предъявляемыми к среде разработки: удобство использования, удобство редактирования программного кода, быстрота компилирования.


Файл


Функции




Программный модуль




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

Рисунок 1 – Структура программы
Программный модуль «Населенность». Предназначен для контроля основных операций данного программного обеспечения.

В приложении автоматизированы следующие функции:

1) dobav – добавление новых записей в базу данных

2) vivod – вывод на экран всех записей базы данных

3) poisk – поиск информации в базе данных

4) del – удаление записи в базе данных

5) sort – сортировка записей в базе данных

6) dell_enter – вспомогательная функция
2.Алгоритмы по созданию функций

2.1.Описание и назначение функций


Вся информация о назначении функций представлена в таблице 2.1.
Таблица 2.1 – Описание функций


Функция

Назначение

dobav

служит для добавления новых записей в базу данных (Город, область, население, год основания). Сначала введенные данные записываются в строковую переменную «buf», после этого происходит добавление новых строк в файл, то есть четыре строчки в файле это одна запись.

vivod

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

poisk

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

del

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

dell_enter

данная функция является вспомогательной и не является основной. Она служит для удаления в конце файла «13» кода символа.

sort

сортировка базы данных по году основания городов. Сначала данные из несортированного файла заносятся в массив записей «ms». Затем производится сортировка массива по году основания городов и данные из отсортированного массива заносятся в файл.



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


Вся информация о переменных представлена в таблице 2.2.

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


Имя

Назначение

Тип

Главная программа

y

выбор пунктов меню

int

функция dobav

buf

хранит введенную информацию

char

y

служит для завершения или продолжения добавления данных

int

fp

файловая переменная

FILE

fout

файловая переменная

FILE

функция vivod

str.. str4

строки для хранения считываемых полей с файла

char

i

служит для построчного считывания с файла

int

n

номер строки

int

kol

хранит количество строк

int

fp2

файловая переменная

FILE

функция poisk

str.. str4

строки для хранения считываемых полей с файла

char

poisk

хранит искомую информацию

char

i

служит для построчного считывания с файла

int

fp3

файловая переменная

FILE

функция del

str.. str4

строки для хранения считываемых полей с файла

char

s

структура для хранения полей БД

struct

n

номер удаляемой строчки

int

i

параметр цикла

int

j

параметр цикла

int

fp6

файловая переменная

FILE

kol

хранит количество строк файла

int

функция dell_enter

kol_s

хранит количество строк файла

int

_kol_s

текущее количество строк файла

int

fp

файловая переменная

FILE

fp1

файловая переменная

FILE

buf

служит для хранения строк файла

char


Продолжение таблицы 2.2


Имя

Назначение

Тип

функция del

str.. str4

строки для хранения считываемых полей с файла

char

i

параметр цикла

int

j

параметр цикла

int

fp6

файловая переменная

fp6

kol

хранит количество строк файла

int


3.Отладка и компиляция. Протоколы тестирования

В ходе компиляции и отладки были выявлены и исправлены следующие ошибки и недочеты, представленные в таблице 3.
Таблица 3 – Ошибки и недочеты


Ошибка или недочет

Способ исправления

1. В конце файла, после добавления, оставался тринадцатый код символа. Что и мешало правильной работе других функций.

Была написана специальная функция для удаления тринадцатого кода символа.

2. После использования функции удаления, не правильно работала функция поиска, то есть после запуска поиска не происходил ввод искомой информации.

Исправлен способ ввода информации, то есть теперь в функции поиска записывается искомая информация с помощью функции «scanf»

3. После вывода более 100 строчек сдвигается таблица.

Сделан форматный вывод информации.

4. Не во всех функциях использовалась отчистка экрана.

Доработана программа, путем использования функции отчистки экрана – «clrscr»


Тестирование производилось на компьютере следующей конфигурации:

- ОС Win XP;

- ЦП Intel Pentium 2600 Mhz;

- ОП 512 Mb;

- Video 128 Mb.
Протоколы тестирования представлены на рисунках 2 – 7.

THE PROGRAM (--Population--) VERSION 1.0
||-- YANIN ALEKSEY IS MADE THIS PROGRAM --||
-----------MENU-----------------

| 1 - ADD |

| 2 - PRINT |

| 3 - SEARCH |

| 4 - REMOVE |

| 5 - SORTING |

| 0 - EXIT |

------------------------------------



Рисунок 2 - Запуск программы


----------------------------------------------------------------------------

|# | City | Area | Population | Year |

----------------------------------------------------------------------------

|# 1 | Angarsk | Irkutskaja | 200000 | 1987|

|# 2 | Alzamai | Irkutskaja | 200000 | 1984|

|# 3 | Ust-Ilimsk | Irkutskaja | 200000 | 1976|

|# 4 | Bratsk | Irkutskaja | 300000 | 1956|

|# 5 | Sajansk | Irkutskaja | 140000 | 1955|

|# 6 | Shelehov | Irkutskaja | 300000 | 1955|

|# 7 | Ust-Kut | Irkutskaja | 120000 | 1944|

|# 8 | Tulun | Irkutskaja | 150000 | 1943|

|# 9 | Irkutsk | Irkutskaja | 1000000 | 867|

|# 10 | Belovo | Kemerovskaja | 300000 | 1956|

|# 11 | Kemerovo | Kemerovskaja | 400000 | 1920|

|# 12 | Kiselevsk | Kemerovskaja | 135000 | 1946|

|# 13 | Tashtagol | Kemerovskaja | 146000 | 1956|

|# 14 | Topki | Kemerovskaja | 137888 | 1959|

|# 15 | Mariinsk | Kemerovskaja | 150000 | 1971|

|# 16 | Borovoi | Kemerovskaja | 100000 | 1978|

|# 17 | Salair | Kemerovskaja | 121000 | 1967|

|# 18 | Tomsk | Tomskaja | 1000000 | 1912|



Рисунок 3 - Просмотр БД

----------------------------------------------------------------------------

|# | City | Area | Population | Year |

----------------------------------------------------------------------------

|# 1 | Angarsk | Irkutskaja | 200000 | 1987|

|# 2 | Alzamai | Irkutskaja | 200000 | 1984|

|# 3 | Ust-Ilimsk | Irkutskaja | 200000 | 1976|

|# 4 | Bratsk | Irkutskaja | 300000 | 1956|

|# 5 | Sajansk | Irkutskaja | 140000 | 1955|

|# 6 | Shelehov | Irkutskaja | 300000 | 1955|

|# 7 | Ust-Kut | Irkutskaja | 120000 | 1944|

|# 8 | Tulun | Irkutskaja | 150000 | 1943|

|# 9 | Irkutsk | Irkutskaja | 1000000 | 867|

|# 10 | Belovo | Kemerovskaja | 300000 | 1956|

|# 11 | Kemerovo | Kemerovskaja | 400000 | 1920|

|# 12 | Kiselevsk | Kemerovskaja | 135000 | 1946|

|# 13 | Tashtagol | Kemerovskaja | 146000 | 1956|

|# 14 | Topki | Kemerovskaja | 137888 | 1959|

|# 15 | Mariinsk | Kemerovskaja | 150000 | 1971|

|# 16 | Borovoi | Kemerovskaja | 100000 | 1978|

|# 17 | Salair | Kemerovskaja | 121000 | 1967|

|# 18 | Tomsk | Tomskaja | 1000000 | 1912|
Enter required city Tomsk

Tomsk Tomskaja 1000000 1912


Рисунок 4 - Поиск в БД

----------------------------------------------------------------------------

|# | City | Area | Population | Year |

----------------------------------------------------------------------------

|# 1 | Angarsk | Irkutskaja | 200000 | 1987|

|# 2 | Alzamai | Irkutskaja | 200000 | 1984|

|# 3 | Ust-Ilimsk | Irkutskaja | 200000 | 1976|

|# 4 | Bratsk | Irkutskaja | 300000 | 1956|

|# 5 | Sajansk | Irkutskaja | 140000 | 1955|

|# 6 | Shelehov | Irkutskaja | 300000 | 1955|

|# 7 | Ust-Kut | Irkutskaja | 120000 | 1944|

|# 8 | Tulun | Irkutskaja | 150000 | 1943|

|# 9 | Irkutsk | Irkutskaja | 1000000 | 867|

|# 10 | Belovo | Kemerovskaja | 300000 | 1956|

|# 11 | Kemerovo | Kemerovskaja | 400000 | 1920|

|# 12 | Kiselevsk | Kemerovskaja | 135000 | 1946|

|# 13 | Tashtagol | Kemerovskaja | 146000 | 1956|

|# 14 | Topki | Kemerovskaja | 137888 | 1959|

|# 15 | Mariinsk | Kemerovskaja | 150000 | 1971|

|# 16 | Borovoi | Kemerovskaja | 100000 | 1978|

|# 17 | Salair | Kemerovskaja | 121000 | 1967|

|# 18 | Tomsk | Tomskaja | 1000000 | 1912|
Enter numder of a line 18



Рисунок 5 - Удаление записей в БД

----------------------------------------------------------------------------

|# | City | Area | Population | Year |

----------------------------------------------------------------------------

|# 1 | Angarsk | Irkutskaja | 200000 | 1987|

|# 2 | Alzamai | Irkutskaja | 200000 | 1984|

|# 3 | Ust-Ilimsk | Irkutskaja | 200000 | 1976|

|# 4 | Bratsk | Irkutskaja | 300000 | 1956|

|# 5 | Sajansk | Irkutskaja | 140000 | 1955|

|# 6 | Shelehov | Irkutskaja | 300000 | 1955|

|# 7 | Ust-Kut | Irkutskaja | 120000 | 1944|

|# 8 | Tulun | Irkutskaja | 150000 | 1943|

|# 9 | Irkutsk | Irkutskaja | 1000000 | 867|

|# 10 | Belovo | Kemerovskaja | 300000 | 1956|

|# 11 | Kemerovo | Kemerovskaja | 400000 | 1920|

|# 12 | Kiselevsk | Kemerovskaja | 135000 | 1946|

|# 13 | Tashtagol | Kemerovskaja | 146000 | 1956|

|# 14 | Topki | Kemerovskaja | 137888 | 1959|

|# 15 | Mariinsk | Kemerovskaja | 150000 | 1971|

|# 16 | Borovoi | Kemerovskaja | 100000 | 1978|

|# 17 | Salair | Kemerovskaja | 121000 | 1967|



Рисунок 6 – БД после удаления записи


-------------------------------------------------------------------------

|# | City | Area | Population | Year |

-------------------------------------------------------------------------

|# 1 | Angarsk | Irkutskaja | 200000 | 1987|

|# 2 | Alzamai | Irkutskaja | 200000 | 1984|

|# 3 | Borovoi | Kemerovskaja | 100000 | 1978|

|# 4 | Ust-Ilimsk | Irkutskaja | 200000 | 1976|

|# 5 | Mariinsk | Kemerovskaja | 150000 | 1971|

|# 6 | Salair | Kemerovskaja | 121000 | 1967|

|# 7 | Topki | Kemerovskaja | 137888 | 1959|

|# 8 | Belovo | Kemerovskaja | 300000 | 1956|

|# 9 | Tashtagol | Kemerovskaja | 146000 | 1956|

|# 10 | Bratsk | Irkutskaja | 300000 | 1956|

|# 11 | Shelehov | Irkutskaja | 300000 | 1955|

|# 12 | Sajansk | Irkutskaja | 140000 | 1955|

|# 13 | Kiselevsk | Kemerovskaja | 135000 | 1946|

|# 14 | Ust-Kut | Irkutskaja | 120000 | 1944|

|# 15 | Tulun | Irkutskaja | 150000 | 1943|

|# 16 | Kemerovo | Kemerovskaja | 400000 | 1920|

|# 17 | Tomsk | Tomskaja | 1000000 | 1912|

|# 18 | Irkutsk | Irkutskaja | 1000000 | 867|



Рисунок 7 - Сортировка записей в БД

4.Руководство пользователя


Перед запуском программы «Baza» убедитесь что на диске D создана папка D:\DB или любая другая. Поместите в эту папку программу «Baza.exe» и саму бузу данных «Baza.txt».

Управление программой осуществляется при помощи стандартной клавиатуры. Выбор пункта меню осуществляется нажатием соответствующих клавиш (1 – добавление, 2 – вывод, 3 – поиск, 4 – удаление, 5 – сортировка, 0 - выход из программы). Ниже приводится описание всех пунктов меню:

1) «Add». Позволяет добавить записи в уже существующую БД. После выбора данного пункта меню система предложит ввести данные в соответствующие поля.

2) «Print». Позволяет просмотреть БД постранично (по 20 записей на странице). Чтобы перейти на следующую страницу достаточно нажать любую клавишу.

3) «Search». Осуществляет поиск в базе данных по городу. При выборе этого пункта система запросит город искомой записи. Введите город и нажмите Enter. Если запись будет найдена, то вы сможете её увидеть в этом же окне. Если же запись не найдена, то ничего выведено не будет.

4) «Remove». Позволяет удалить запись с выбранным номером. При выборе этого пункта система предложит ввести номер удаляемой записи. Введите его и нажмите Enter. Затем запись с заданным номером будет удалена и система выведется заново записи БД.

5) «Sorting». Позволяет отсортировать данные по году основания. При выборе этого пункта данные в файле будут отсортированы по году основания в порядке убывания.

6) «Exit». Выход из программы.


5.Руководство программиста

Перед запуском программы «Baza» убедитесь что на диске D создана папка D:\DB или любая другая. Поместите в эту папку программу «Baza» и саму бузу данных «Baza.txt».

Системные требования:

- ОС MS-DOS

- ЦП Intel, AMD – 75 Mhz

- ОП 8 Мb

- Video 1 Мb

- HDD 40 Кб

Управление программой осуществляется при помощи стандартной клавиатуры. Программа инсталляции не требует. При запуске программы рекомендуется закрыть все приложения Windows. База данных будет храниться на диске D:\ в папке DB с расширением .txt. Программа была написана на языке Turbo C++ 3.0. Код основной программы находится в файле Baza.cpp. Код модуля находится в файле «Baza.h». Для деинсталляции программы достаточно просто удалить файлы, связанные с данной программой (Baza.exe и базу данных, которая находятся в папке D:\DB). Есть возможность изменения имени программы без пагубных последствий. Программу рекомендуется запускать с жёсткого диска (для быстроты работы с данными). В программном коде имеется 6 подпрограмм. Ниже приводится вложенность подпрограмм:

dobav ()

vivod()

poisk() >> vivod()

del() >> vivod()

dell_enter()

sort() >> vivod()

Практически в каждой функции вызывается функция вывода полей базы данных.

Заключение


Руководствуясь собственными знаниями, литературой и встроенной в Turbo C++ помощью была проделана работа над написанием программы Baza.exe. В результате получилась полноценно - работающая программа, с помощью которой можно редактировать, удалять, просматривать и выполнять разные действия с базой данных типа «Населенность».

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

Мне кажется, что мой проект в будущем можно использовать для ведения БД, как крупным корпоративным организациям, так и обыкновенным пользователям. Для этого, не обязательно обладать какими – то специальными знаниями, а достаточно знать основы работы за компьютером, так как в моей программе реализован достаточно простой, «дружественный» интерфейс.
Литература


  1. Норенков И.П. Системы автоматизированного пректирования: Учебное пособие для ВТУЗов: в 9 кн/Кн. 3: Федорук В.Г. Черненький В.М. Информационное и пограмное обеспечение. - М.: Высшая школа, 1986.-159 с.

  2. Павловская Т.А. «С/С++ Программирование на языке высокого уровня» - СПб.: Питер, 2004

ПРИЛОЖЕНИЕ А Текст программы


#include <iostream.h>

#include <conio.h>

#include <fstream.h>

#include <stdlib.h>

#include <string.h>

#include <stdio.h>

#include <baza.h>

void main()

{

int y;

clrscr();

while (y!=48)

{

clrscr();

printf("THE PROGRAM (--Population--) VERSION 1.0 \n\n");

printf("||--YANIN ALEKSEY IS MADE THIS PROGRAM--||\n\n");

printf("-----------MENU-----------------\n");

printf("| 1 - ADD |\n");

printf("| 2 - PRINT |\n");

printf("| 3 - SEARCH |\n");

printf("| 4 - REMOVE |\n");

printf("| 5 - SORTING |\n");

printf("| 0 - EXIT |\n");

printf("--------------------------------\n\n");

y=getch();

switch(y)

{ case 49: dobav();break;

case 50: vivod();getch();break;

case 51: poisk();break;

case 52: del();dell_enter();break;

case 53: sort(); getch(); break;

}

}

}

ПРИЛОЖЕНИЕ Б Текст модуля

void dobav() //Добавление записей в БД

{

char buf[100];

int y=121,kol;

FILE *fp;

FILE *fout;

if((fout=fopen("Baza.txt","r"))==NULL)

{ puts("Error");

exit(1);

}

while (y==121)

{

if((fp=fopen("Baza.txt","a"))==NULL)

{ puts("Error");

exit(1);

}

kol=0;

while (fgetc(fout)!=EOF) kol++;

fseek(fout,0,SEEK_SET);

clrscr();

printf("\nEnter City ");

scanf("%s",&buf);

if (kol!=0) fprintf(fp,"\n%s\n",&buf);

else fprintf(fp,"%s\n",&buf);

stpcpy(buf,"\0");

printf("Enter Area ");

scanf("%s",&buf);

fprintf(fp,"%s\n",&buf);

stpcpy(buf,"\0");

printf("Enter The Population ");

scanf("%s",&buf);

fprintf(fp,"%s\n",&buf);

stpcpy(buf,"\0");

printf("Enter Year ");

scanf("%s",&buf);

fprintf(fp,"%s",&buf);

stpcpy(buf,"\0");

printf("To continue (Y|N)");

y=getch();

fclose(fp);

}

fclose(fout);

clrscr();
}

void vivod() //Вывод записей БД

{ char str[200],str2[200],str3[200],str4[200];

int i=1,n=1,kol=0;

FILE *fp2;

if((fp2=fopen("Baza.txt","r"))==NULL)

{ puts("Error");

exit(1);

}

clrscr();

printf("--------------------------------------------------------------------\n");

printf("|# | City | Area | Population | Year |\n");

printf("--------------------------------------------------------------------\n");

while (!feof(fp2))

{

switch(i)

{ case 1: fscanf(fp2,"%s",&str); break;

case 2: fscanf(fp2,"%s",&str2);break;

case 3: fscanf(fp2,"%s",&str3);break;

case 4: fscanf(fp2,"%s",&str4);break;

}

if (i==4)

{

kol++;

printf("|#%4d | %10s | %15s| %10s | %10s|\n",n/4,str,str2,str3,str4);

i=0;

strcat(str,"\0");

strcat(str2,"\0");

strcat(str3,"\0");

strcat(str4,"\0");

}

if (kol==20)

{

kol=0;

printf("Press a key for continuation...");getch();

clrscr();

printf("--------------------------------------------------------------------\n");

printf("|# | City | Area | Population | Year |\n");

printf("--------------------------------------------------------------------\n");

}

i++;

n++;

}

fclose(fp2);

}

void poisk() //Поиск записей БД по городу

{ char str[200],str2[200],str3[200],str4[200],poisk[100];

int i=1;

FILE *fp3;

if((fp3=fopen("Baza.txt","r"))==NULL)

{ puts("Error");

exit(1);

}

vivod();

printf("\nEnter required city ");

scanf("%s",&poisk);

while(!feof(fp3))

{

switch(i)

{ case 1: fscanf(fp3,"%s",&str); break;

case 2: fscanf(fp3,"%s",&str2);break;

case 3: fscanf(fp3,"%s",&str3);break;

case 4: fscanf(fp3,"%s",&str4);break;

}

if (i==4)

{

if (strstr(str,poisk)!=NULL)

printf("%10s %10s %10s %10s\n",str,str2,str3,str4);

i=0;

strcpy(str,"\0");

strcpy(str2,"\0");

strcpy(str3,"\0");

strcpy(str4,"\0");

}

i++;

}

fclose(fp3);

}

void del() //Удаление записей БД

{

struct s

{

char gorod[200];

char obl[200];

char nas[200];

char god[200];

};

char str[200],str2[200],str3[200],str4[200];

int n,i,j;

FILE *fp6;

if((fp6=fopen("Baza.txt","r"))==NULL)

{ puts("Error");

exit(1);

}

clrscr();

vivod();

int kol=1,_kol=4;

while (!feof(fp6)) if(getc(fp6)==10) kol++;

s *ms = new s[kol/4];

fseek(fp6, 0, SEEK_SET);

i=0;

while(!feof(fp6))

{

fscanf(fp6,"%s",&str);

fscanf(fp6,"%s",&str2);

fscanf(fp6,"%s",&str3);

fscanf(fp6,"%s",&str4);

strcpy(ms[i].gorod,str);

strcpy(ms[i].obl,str2);

strcpy(ms[i].nas,str3);

strcpy(ms[i].god,str4);

i++;

}

printf("\nEnter numder of a line ");

scanf("%d",&n);

fclose(fp6);

if((fp6=fopen("Baza.txt","w"))==NULL)

{ puts("Error");

exit(1);

}

for(j=0;j<kol/4;j++,_kol+=4)

if(j+1!=n) fprintf(fp6,"%s\n%s\n%s\n%s\n",ms[j].gorod,ms[j].obl,ms[j].nas,ms[j].god);

fclose(fp6);

delete [] ms;

}

void dell_enter() //Удаление 13 кода символа

{

int kol_s=0,_kol_s=0;

char buf[100];

FILE *fp;

FILE *fp1;

if((fp=fopen("Baza.txt","r"))==NULL)

{ puts("Error");

exit(1);

}

if((fp1=fopen("Baza_buf.txt","w"))==NULL)

{ puts("Error");

exit(1);

}

while (!feof(fp)) { strcpy(buf,"\0");fscanf(fp,"%s",&buf); kol_s++;}

fseek(fp, 0, SEEK_SET);

if (atoi(buf)==0)

{

while (!feof(fp))

{

fscanf(fp,"%s",&buf);

if(_kol_s==kol_s-2) fprintf(fp1,"%s",buf);

if(_kol_s<kol_s-2) fprintf(fp1,"%s\n",buf);

_kol_s++;

}

fclose(fp);

fclose(fp1);

remove("Baza.txt");

rename("Baza_buf.txt","Baza.txt");

}

}

void sort() //Сортировка полей БД

{ struct s

{

char gorod[200];

char obl[200];

char nas[200];

char god[200];

};

char str[200],str2[200],str3[200],str4[200];

int n,i,j;

FILE *fp6;

if((fp6=fopen("Baza.txt","r"))==NULL)

{ puts("Error");

exit(1);

}

clrscr();

vivod();

int kol=0,_kol=4;

while (!feof(fp6)) if(getc(fp6)==10) kol++;

s *ms = new s[1+kol/4];

fseek(fp6, 0, SEEK_SET);

i=0;

while(!feof(fp6))

{

fscanf(fp6,"%s",&str);

fscanf(fp6,"%s",&str2);

fscanf(fp6,"%s",&str3);

fscanf(fp6,"%s",&str4);

strcpy(ms[i].gorod,str);

strcpy(ms[i].obl,str2);

strcpy(ms[i].nas,str3);

strcpy(ms[i].god,str4);

i++;

}

s temp;

for(j=0;j<1+kol/4;j++)

for (i=0;i<1+kol/4;i++)

if (atoi(ms[i].god)<atoi(ms[j].god))

{

strcpy(temp.gorod,ms[i].gorod);

strcpy(temp.obl,ms[i].obl);

strcpy(temp.nas,ms[i].nas);

strcpy(temp.god,ms[i].god);

strcpy(ms[i].gorod,ms[j].gorod);

strcpy(ms[i].obl,ms[j].obl);

strcpy(ms[i].nas,ms[j].nas);

strcpy(ms[i].god,ms[j].god);

strcpy(ms[j].gorod,temp.gorod);

strcpy(ms[j].obl,temp.obl);

strcpy(ms[j].nas,temp.nas);

strcpy(ms[j].god,temp.god);

}

fclose(fp6);

if((fp6=fopen("Baza.txt","w"))==NULL)

{ puts("Error");

exit(1);

}

for(j=0;j<1+kol/4;j++,_kol+=4)

{

if (_kol==kol+1) fprintf(fp6,"%s\n%s\n%s\n%s",ms[j].gorod,ms[j].obl,ms[j].nas,ms[j].god);

if (_kol!=kol+1) fprintf(fp6,"%s\n%s\n%s\n%s\n",ms[j].gorod,ms[j].obl,ms[j].nas,ms[j].god);

}

fclose(fp6);

delete [] ms;

}






Скачать файл (146.7 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru