
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. В результате получилась полноценно - работающая программа, с помощью которой можно редактировать, удалять, просматривать и выполнять разные действия с базой данных типа «Населенность».
Данная программа упрощает использование различной структурированной информации. Она делает возможным обработку данных гораздо эффективнее и проще.
Мне кажется, что мой проект в будущем можно использовать для ведения БД, как крупным корпоративным организациям, так и обыкновенным пользователям. Для этого, не обязательно обладать какими – то специальными знаниями, а достаточно знать основы работы за компьютером, так как в моей программе реализован достаточно простой, «дружественный» интерфейс.
Литература
-
Норенков И.П. Системы автоматизированного пректирования: Учебное пособие для ВТУЗов: в 9 кн/Кн. 3: Федорук В.Г. Черненький В.М. Информационное и пограмное обеспечение. - М.: Высшая школа, 1986.-159 с.
-
Павловская Т.А. «С/С++ Программирование на языке высокого уровня» - СПб.: Питер, 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;
}