Название функции
|
Параметры
|
Назначение
|
void main
|
()
|
основная функция программы
|
void create
|
()
|
создание файла новой базы данных
|
void load
|
(char *base)
|
загрузка данных из файла в массив структур, base - имя файла
базы данных
|
void save
|
(char *base)
|
запись содержания структур в файл, base - имя файла базы данных
|
void add
|
(char *base)
|
добавление записи в массив структур, base - имя файла базы
данных
|
void view
|
(char *base)
|
просмотр содержания массива, base - имя файла базы данных
|
void delet
|
(char *base)
|
удаление записи, base - имя файла базы данных
|
void sort
|
(char *base)
|
работа с базой данных, base - имя файла базы данных
|
void sort1
|
()
|
сортировка по алфавиту
|
void stoimtovara
|
(char *base)
|
поиск стоимости по товару
|
void tovarpokolvo
|
(char *base)
|
поиск товара по количеству
|
void magazintovar
|
(char *base)
|
поиск магазина по товару
|
void replace
|
(int x)
|
меняет местами значения в массиве, элемент[x] меняется значением
с элементом[x+1]
|
1.2 Описание переменных
В программе используются следующие
основные переменные (табл. 2)
Таблица №2
Название переменной
|
Тип
|
Кол-во символов
|
ch
|
char
|
хранит текущий пункт меню
|
1
|
err
|
int
|
код ошибки
|
1
|
*file
|
char
|
имя файла
|
1
|
size
|
int
|
кол-во записей в БД
|
1
|
*f
|
FILE
|
указатель на файл
|
1
|
*name
|
char
|
имя файла
|
1
|
list[]
|
kyrs
|
массив, в котором хранится БД
|
300
|
fin[]
|
kyrs
|
массив, хранящий результаты поиска
|
300
|
tmp
|
kyrs
|
временное хранилище записи БД
|
1
|
j
|
int
|
счётчик цикла или элемент массива
|
1
|
i
|
int
|
счётчик цикла или элемент массива
|
1
|
vv
|
int
|
счётчик цикла
|
1
|
2. Блок-схемы
.1 Общий принцип работы
программы
2.2 Блок-схемы основных
функции программы
Рис 2. - Блок-схема
главной функции - main():
Рис 3. - Функция
create(), создает файл базы данных
Рис 4. - Функция open(),
открывает файл базы данных
Рис 5. - Функция load(),
загружает данные из файла в базу данных
Рис 6. - Функция save(),
сохраняет изменения в файле базы данных
Рис 7. - Функция add(),
добавляет запись в базу данных
Рис 8. - Функции view(),
осуществляет просмотр базы данных
Рис 10. - Функция
delet(), удаляет запись из базы данных
ch=’1’
ch=’3’
ch=’4’
ch=’5’
Рис 12. - Функция
sort(), работа с базой данных
Нет
Да
нет
Рис 13. - Функция
sort1() осуществляет сортировку базы данных по алфавиту
Рис. 14. - Функция stoimtovara(char*base) осуществляет поиск
стоимости товаров
Рис 15. - Функция magazintovar(char*base) осуществляет поиск
товаров по первой букве магазина, в котором они есть
Рис 16. - Функция tovarpokolvo(char*base) осуществляет поиск
названия товара по его количеству
Рис 17. - Функция
replace(int x) меняет местами значения элементов массива
Листинг программы:
//9.cpp
#include
<stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <io.h>
#include <dos.h>
#include <windows.h>
#include
<function.cpp>namespace std;ch, *file;err=0, size=0;char
*file;create();main()
{("cls");<<"Viberite
deistvie:"<<endl;<<"1. Otkrit'
bazu"<<endl;<<"2. Sozdat'
bazu"<<endl;<<"3.
Vihod"<<endl;ch=getch();((ch!='1')&&(ch!='2')&&(ch!='3'));(ch=='3')
exit(0);(ch=='2') create();(ch=='1') {(err==0){<<"Please enter name
file:
"<<endl;*name;*f;>>name;((f=fopen(name,"r"))==NULL){<<"File
not found!"<<endl;
}{=1;=new
char(strlen(name));(file,name);(f);(file);
}
}
}file;
}create(){<<"Vvedite imya
novogo faila:
";*name;>>name;<<"\r\nSozdanie...\r\n";*f;((f=fopen(name,"w"))==NULL){<<"Oshibka!!!";();(1);
}=new
char(strlen(name));(file,name);(f);(file);
}
//function.cpp
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <io.h>
#include <dos.h>
#include <windows.h>namespace
std;char ch;int size;fs=0;PRICE {magazin[30],tovar[30];kolvo,cena,id;
} list[300],tmp, fin[300];load(char
*base);save(char *base);add(char *base);view(char *base);delet(char *base);sort(char
*base);sort1();stoimtovara(char *base);tovarpokolvo(char
*base);magazintovar(char *base);replace(int);open(char
*base){(base);<<"Vibirite
deistvie:"<<endl;<<"1.
Prosmotr"<<endl;<<"2. Dobavlenie
"<<endl;<<"3. Udalenie
zapisi"<<endl;<<"4. Poisk i sortirovka"<<endl;<<"5.
Vihod"<<endl;ch=getch();((ch!='1')&&(ch!='2')&&(ch!='3')&&(ch!='4')&&(ch!='5'));(ch){'1':
view(base);break;'2': add(base);break;'3': delet(base);break;'4': sort(base);break;'5':
exit(0); break;: exit(0);
}}sort(char
*base){("cls");<<"Please select field:\r\n1.Po alfavity
2.Stoimostb tovara 3.Tovar po kolichestvy 4.Tovari po magaziny \n5.Back to
menu"<<endl;ch=getch();((ch!='1')&&(ch!='2')&&(ch!='3')&&(ch!='4')&&(ch!='5'));(ch){'1':
sort1();break;'2': stoimtovara(base);break;'3': tovarpokolvo(base);break;'4':
magazintovar(base);break;'5': open(base);break;:
exit(0);}(base);<<"\r\nSorting...OK! View
base";();(base);}sort1(){j;(j=0; j<size;
j++)(strcmp(list[j].tovar,list[j+1].tovar)>0) replace(j);
}stoimtovara(char*base){("cls");<<"Please
enter find record:\r\n";<<"Vvedite tovar: "<<endl;
cin>>tmp.tovar;j=0,i=0,vv=0;(;j<=size;j++)(strcmp(tmp.tovar,list[j].tovar)==0){[i].cena=list[j].cena;[i].id=list[j].id;i++;
vv=1;
}(vv==0)cout<<"Takogo
tovara net";=--i;(tmp.tovar, "");.cena=0;();z,l,p=0;<<"
ID ";<<" Stoimostb tovara";<<endl;(z=0; z<=fs;
z++){<<fin[z].id<<" ";<<fin[z].cena<<"
";<<endl;++;(p==10){=0;getch();}}();open(base);}magazintovar(char
*base)
{
system("cls");<<"Please enter find
record:\r\n";<<"Vvedite pervyu bykvy nazvania magazina:";t;>>
t;z=0;int p=0;j=0;( ;j<=size;j++)
{if (list[j].magazin[0]==t)
{z++;<<
list[j].tovar<<"\n";};
}(z==0){<<"net
sovpadenii";cout<<"\n";<<endl;
}();(base);
}tovarpokolvo(char
*base){("cls");<<"Please enter find
record:\r\n";<<"Vvedite kolichestvo tovara: "<<endl;
cin>>tmp.kolvo;j=0,i=0,vv=0;(;j<=size;j++)(tmp.kolvo==list[j].kolvo){(fin[i].tovar,list[j].tovar);[i].id=list[j].id;i++;
vv=1;
}(vv==0)cout<<"Takogo
kolichestva tovara net";=--i;(tmp.tovar,
"");.kolvo=0;();z,l,p=0;<<" ID ";<<" Tovar
opredelennogo kolichestva";<<endl;(z=0; z<=fs;
z++){<<fin[z].id<<" ";<<fin[z].tovar<<"
";<<endl;++;(p==10){=0;getch();}}();open(base);}replace(int
x){(tmp.magazin,list[x].magazin);(tmp.tovar,list[x].tovar);.kolvo=list[x].kolvo;.cena=list[x].cena;//1(list[x].magazin,list[x+1].magazin);(list[x].tovar,list[x+1].tovar);[x].kolvo=list[x+1].kolvo;[x].cena=list[x+1].cena;//2(list[x+1].magazin,tmp.magazin);(list[x+1].tovar,tmp.tovar);[x+1].kolvo=tmp.kolvo;[x+1].cena=tmp.cena;//3(tmp.magazin,
"");(tmp.tovar, "");.kolvo=0;.cena=0;
}delet (char
*base){("cls");i,j;<<"ID: ";>>i;
-i;(i==size) --size;
else{
for (j=i;j<size;j++){
strcpy(list[j].magazin,list[j+1].magazin);
strcpy(list[j].tovar,list[j+1].tovar);
list[j].kolvo=list[j+1].kolvo;
list[j].cena=list[j+1].cena;
}
--size;}<<"\r\nDelete
record"<<i+1<<"OK!\r\n";();(base);(base);}view(char
*base){z,l,p=0;("cls");<<" ID: ";<<"
Magazin: ";<<" Tovar: ";<<" Kolichestvo:
";<<" Cena: ";<<endl;(z=0; z<=size;
z++){<<list[z].id<<"
";<<list[z].magazin<<"
";<<list[z].tovar<<" ";<<list[z].kolvo<<"
";<<list[z].cena<<"
";<<endl;++;(p==10){=0;getch();}}();(base);
}add(char
*base){("cls");*f=fopen(base,"a");<<"Magazin:
"; cin>>tmp.magazin;<<"Tovar: ";
cin>>tmp.tovar;<<"Kolichestvo: ";
cin>>tmp.kolvo;<<"Cena: "; cin>>tmp.cena;*css;t=0;(;t<=strlen(tmp.magazin);t++){=strchr
(tmp.magazin,' '); if (css)
*(css)='_';}++;(list[size].magazin,tmp.magazin);(list[size].tovar,tmp.tovar);[size].kolvo=tmp.kolvo;[size].cena=tmp.cena;(tmp.magazin,
"");(tmp.tovar, "");.kolvo=0;.cena=0;(f);(base);(base);
}load(char
*base){j=0;*f=fopen(base,"r");(!feof(f)){(f,"%s %s %u %u",
&tmp.magazin , &tmp.tovar, &tmp.kolvo,
&tmp.cena);(strcmp(tmp.magazin,"")!=0){(list[j].magazin,tmp.magazin);(list[j].tovar,tmp.tovar);[j].kolvo=tmp.kolvo;[j].cena=tmp.cena;[j].id=j+1;++;}(tmp.magazin,
"");(tmp.tovar, "");.kolvo=0;.cena=0;}=--j;(f);}
автоматизация обработка
экономический информация
Заключение
В ходе выполнения курсовой работы
разработана программа на языке Си++ для обработки данных типа структура.
Обработка данных включает:
- создания новой БД
- просмотр существующей БД
- редактирование БД
- дополнение БД
- удаление записей из БД
- сортировка БД по
определённому полю
- поиск записи по
определённым критериям
При разработке программе
использовались функции, массивы, циклы, указатели.
Разработанная программа позволяет
повысить эффективность обработки данных и сократить время на поиск необходимых
записей.