Решения прикладных задач с реализацией автоматизированной обработки экономической информации - Контрольная работа

бесплатно 0
4.5 176
Разработка программы на языке Си и осуществление постановки и выбора алгоритмов решения задач обработки экономической информации, создание и редактирование базы данных, сортировка записей по определенному запросу, анализ эффективности обработки данных.


Аннотация к работе
Название функции Параметры Назначение 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] *name char имя файла 1 list[] kyrs массив, в котором хранится БД 300 fin[] kyrs массив, хранящий результаты поиска 300 tmp kyrs временное хранилище записи БД 1 j int счетчик цикла или элемент массива 1 i int счетчик цикла или элемент массива 1 vv int счетчик цикла 1 Функция stoimtovara(char*base) осуществляет поиск стоимости товаров Функция magazintovar(char*base) осуществляет поиск товаров по первой букве магазина, в котором они есть Функция tovarpokolvo(char*base) осуществляет поиск названия товара по его количествуВ ходе выполнения курсовой работы разработана программа на языке Си для обработки данных типа структура. Обработка данных включает: - создания новой БД При разработке программе использовались функции, массивы, циклы, указатели.

Введение
Целью работы является разработка программы на языке Си для осуществления постановки и выбора алгоритмов решения задач обработки экономической информации, разработка алгоритмов и программ для их решения (требования к программе изложены в аннотации), моя программа должна корректно обрабатывать данные в виде следующей таблицы: Магазин Товар Количество Стоимость

Разработанная программа позволяет выполнять следующие задачи: 1. Просмотр существующей базы данных

2. Создание новой базы данных

3. Редактирование базы данных (добавление и удаление записей)

4. Поиск в базе данных по определенным полям

5. Сортировка базы данных по определенному полю

Анализ и исследование задачи Для решения задачи из технических средств использовался компьютер на 32-битной аппаратной платформе x86. x86 (англ. Intel 80x86) - архитектура процессора c одноименным набором команд, впервые реализованная в процессорах компании Intel. Из программных средств для компилирования задачи была использована Dev C - свободная интегрированная среда разработки приложений для языков программирования C/C . В дистрибутив входит компилятор MINGW. Сам Dev-C написан на Delphi. Распространяется согласно GPL. Проект поддерживается SOURCEFORGE. Основатель проекта Колин Лаплас, компания Bloodshed Software.

Одно время был доступен Linux-порт, однако на настоящее время актуализирована только Windows-версия.

На настоящий момент не разрабатывается, вместо него активно разрабатывается порт интерфейса Dev-C на WXWIDGETS - WXDEV-C .

Для создания блок-схем , иллюстрирующих программу, на компьютере была использована программа Microsoft Word 2003.

Анализ сортировки в программе Сортировка по алфавиту в программе реализуется при помощи использования функции strcmp, которая сравнивает друг с другом две строки. Сравнение начинается с первых символов строк, если они равны друг другу, то дальше функция сравнивает следующую пару символов до тех пор, пока символы в паре будут различны или будет достигнут конец строки.

Если эта функция выдает значение ноль, то пара символов эквивалентна.

В моем случае я сравниваю первый и последующий элементы массива, если последующий больше предыдущего, то мы меняем их местами с помощью функции replace(меняет местами элементы массива при использовании временного), реализованной в моей программе(например, первый элемент-символ Б, второй А; А>Б, теперь первым элементом будет являться А, а вторым Б). Также заглавные буквы-символы имеют больший приоритет, чем строчные.

1. Описание основных переменных и функций

1.1 Описание функций

В программе используются следующие основные функции (табл. 1)

Таблица №1

Название функции Параметры Назначение 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. Блок-схемы

2.1 Общий принцип работы программы

2.2 Блок-схемы основных функции программы

Рис 2. - Блок-схема главной функции - main():

Рис 3. - Функция create(), создает файл базы данных

Рис 4. - Функция open(), открывает файл базы данных

Рис 5. - Функция load(), загружает данные из файла в базу данных

Рис 6. - Функция save(), сохраняет изменения в файле базы данных

Рис 7. - Функция add(), добавляет запись в базу данных

Рис 8. - Функции view(), осуществляет просмотр базы данных

Рис 10. - Функция delet(), удаляет запись из базы данных ch=’1’ ch=’2’ 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

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include using namespace std;

char ch, *file;

int err=0, size=0;

extern char *file;

void create();

int main()

{ system("cls");

cout<<"Viberite deistvie:"<<endl;

cout<<"1. Otkrit" bazu"<<endl;

cout<<"2. Sozdat" bazu"<<endl;

cout<<"3. Vihod"<<endl;

do ch=getch();

while((ch!="1")&&(ch!="2")&&(ch!="3"));

if (ch=="3") exit(0);

if (ch=="2") create();

if (ch=="1") { while (err==0){ cout<<"Please enter name file: "<<endl;

char *name;

FILE *f;

cin>>name;

if ((f=fopen(name,"r"))==NULL){ cout<<"File not found!"<<endl;

} else{ err=1;

file=new char(strlen(name));

strcpy(file,name);

fclose(f);

open(file);

}

}

} delete file;

} void create(){ cout<<"Vvedite imya novogo faila: ";

char *name;

cin>>name;

cout<<"

\NSOZDANIE...

";

FILE *f;

if ((f=fopen(name,"w"))==NULL){ cout<<"Oshibka!!!";

getch();

exit(1);

} file=new char(strlen(name));

strcpy(file,name);

fclose(f);

open(file);

}

//function.cpp

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include using namespace std;

extern char ch;

extern int size;

int fs=0;

struct PRICE { char magazin[30],tovar[30];

int kolvo,cena,id;

} list[300],tmp, fin[300];

void load(char *base);

void save(char *base);

void add(char *base);

void view(char *base);

void delet(char *base);

void sort(char *base);

void sort1();

void stoimtovara(char *base);

void tovarpokolvo(char *base);

void magazintovar(char *base);

void replace(int);

void open(char *base){ load(base);

cout<<"Vibirite deistvie:"<<endl;

cout<<"1. Prosmotr"<<endl;

cout<<"2. Dobavlenie "<<endl;

cout<<"3. Udalenie zapisi"<<endl;

cout<<"4. Poisk i sortirovka"<<endl;

cout<<"5. Vihod"<<endl;

do ch=getch();

while((ch!="1")&&(ch!="2")&&(ch!="3")&&(ch!="4")&&(ch!="5"));

switch (ch){ case "1": view(base);break;

case "2": add(base);break;

case "3": delet(base);break;

case "4": sort(base);break;

case "5": exit(0); break;

default: exit(0);

}} void sort(char *base){ system("cls");

cout<<"Please select field:

1.Po alfavity 2.Stoimostb tovara 3.Tovar po kolichestvy 4.Tovari po magaziny

5.Back to menu"<<endl;

do ch=getch();

while((ch!="1")&&(ch!="2")&&(ch!="3")&&(ch!="4")&&(ch!="5"));

switch (ch){ case "1": sort1();break;

case "2": stoimtovara(base);break;

case "3": tovarpokolvo(base);break;

case "4": magazintovar(base);break;

case "5": open(base);break;

default: exit(0);} save(base);

cout<<"

\NSORTING...OK! View base";

getch();

open(base);} void sort1(){ int j;

for (j=0; j<size; j ) if (strcmp(list[j].tovar,list[j 1].tovar)>0) replace(j);

} void stoimtovara(char*base){ system("cls");

cout<<"Please enter find record:

";

cout>tmp.tovar;

int j=0,i=0,vv=0;

for (;j<=size;j ) if (strcmp(tmp.tovar,list[j].tovar)==0){ fin[i].cena=list[j].cena;

fin[i].id=list[j].id;i ; vv=1;

} if (vv==0)cout<<"Takogo tovara net";

fs=-i;

strcpy(tmp.tovar, "");

tmp.cena=0;

getch();

int z,l,p=0;

cout<<" ID ";

cout<<" Stoimostb tovara";

cout<<endl;

for(z=0; z<=fs; z ){ cout<<fin[z].id<<" ";

cout<<fin[z].cena<<" ";

cout<<endl;

p ;

if (p==10){ p=0;getch();}} getch();open(base);} void magazintovar(char *base)

{ system("cls");

cout<<"Please enter find record:

";

cout<<"Vvedite pervyu bykvy nazvania magazina:";

char t;

cin >> t;

int z=0;int p=0;

int j=0;

for ( ;j<=size;j )

{if (list[j].magazin[0]==t)

{z ;

cout << list[j].tovar<<"

";};

} if (z==0){ cout<<"net sovpadenii";cout<<"

";

cout<<endl;

} getch();

open(base);

} void tovarpokolvo(char *base){ system("cls");

cout<<"Please enter find record:

";

cout>tmp.kolvo;

int j=0,i=0,vv=0;

for (;j<=size;j ) if (tmp.kolvo==list[j].kolvo){ strcpy(fin[i].tovar,list[j].tovar);

fin[i].id=list[j].id;i ; vv=1;

} if (vv==0)cout<<"Takogo kolichestva tovara net";

fs=-i;

strcpy(tmp.tovar, "");

tmp.kolvo=0;

getch();

int z,l,p=0;

cout<<" ID ";

cout<<" Tovar opredelennogo kolichestva";

cout<<endl;

for(z=0; z<=fs; z ){ cout<<fin[z].id<<" ";

cout<<fin[z].tovar<<" ";

cout<<endl;

p ;

if (p==10){ p=0;getch();}} getch();open(base);} void replace(int x){ strcpy(tmp.magazin,list[x].magazin);

strcpy(tmp.tovar,list[x].tovar);

tmp.kolvo=list[x].kolvo;

tmp.cena=list[x].cena;//1 strcpy(list[x].magazin,list[x 1].magazin);

strcpy(list[x].tovar,list[x 1].tovar);

list[x].kolvo=list[x 1].kolvo;

list[x].cena=list[x 1].cena;//2 strcpy(list[x 1].magazin,tmp.magazin);

strcpy(list[x 1].tovar,tmp.tovar);

list[x 1].kolvo=tmp.kolvo;

list[x 1].cena=tmp.cena;//3 strcpy(tmp.magazin, "");

strcpy(tmp.tovar, "");

tmp.kolvo=0;

tmp.cena=0;

} void delet (char *base){ system("cls");

int i,j;

cout<<"ID: ";

cin>>i;

-i;

if (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;} cout<<"

\NDELETE record"<<i 1<<"OK!

";

getch();

save(base);

open(base);} void view(char *base){ int z,l,p=0;

system("cls");

cout<<" ID: ";

cout<<" Magazin: ";

cout<<" Tovar: ";

cout<<" Kolichestvo: ";

cout<<" Cena: ";

cout<<endl;

for(z=0; z<=size; z ){ cout<<list[z].id<<" ";

cout<<list[z].magazin<<" ";

cout<<list[z].tovar<<" ";

cout<<list[z].kolvo<<" ";

cout<<list[z].cena<<" ";

cout<<endl;

p ;

if (p==10){ p=0;getch();}} getch();

open(base);

} void add(char *base){ system("cls");

FILE *f=fopen(base,"a");

cout>tmp.magazin;

cout>tmp.tovar;

cout>tmp.kolvo;

cout>tmp.cena;

char *css;

int t=0;

for (;t<=strlen(tmp.magazin);t ){ css=strchr (tmp.magazin," "); if (css) *(css)="_";} size ;

strcpy(list[size].magazin,tmp.magazin);

strcpy(list[size].tovar,tmp.tovar);

list[size].kolvo=tmp.kolvo;

list[size].cena=tmp.cena;

strcpy(tmp.magazin, "");

strcpy(tmp.tovar, "");

tmp.kolvo=0;

tmp.cena=0;

fclose(f);

save(base);

open(base);

} void save(char *base){ int j=0;

FILE *f=fopen(base,"w");

fprintf(f,"%s %s %u %u", list[j].magazin, list[j].tovar, list[j].kolvo, list[j].cena);

for (j=1;j<=size;j ) fprintf(f,"

%s %s %u %u", list[j].magazin, list[j].tovar, list[j].kolvo, list[j].cena);

fclose(f);

} void load(char *base){ int j=0;

FILE *f=fopen(base,"r");

while(!feof(f)){ fscanf(f,"%s %s %u %u", &tmp.magazin , &tmp.tovar, &tmp.kolvo, &tmp.cena);

if (strcmp(tmp.magazin,"")!=0){ strcpy(list[j].magazin,tmp.magazin);

strcpy(list[j].tovar,tmp.tovar);

list[j].kolvo=tmp.kolvo;

list[j].cena=tmp.cena;

list[j].id=j 1;

j ;} strcpy(tmp.magazin, "");

strcpy(tmp.tovar, "");

tmp.kolvo=0;

tmp.cena=0;} size=-j;

fclose(f);} автоматизация обработка экономический информация

Вывод
В ходе выполнения курсовой работы разработана программа на языке Си для обработки данных типа структура. Обработка данных включает: - создания новой БД

- просмотр существующей БД

- редактирование БД

- дополнение БД

- удаление записей из БД

- сортировка БД по определенному полю

- поиск записи по определенным критериям

При разработке программе использовались функции, массивы, циклы, указатели.

Разработанная программа позволяет повысить эффективность обработки данных и сократить время на поиск необходимых записей.

Размещено на .ru
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?