Скачиваний:
42
Добавлен:
02.05.2014
Размер:
638.98 Кб
Скачать

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;

}

26