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

 

Введение


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


МагазинТоварКоличество Стоимость

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

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

Название функции Параметры Назначение 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 vvintсчётчик цикла1


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 <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);

}save(char *base){j=0;*f=fopen(base,"w");(f,"%s %s %u %u", list[j].magazin, list[j].tovar, list[j].kolvo, list[j].cena);(j=1;j<=size;j++)(f,"\n%s %s %u %u", list[j].magazin, list[j].tovar, list[j].kolvo, list[j].cena);(f);

}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);}

автоматизация обработка экономический информация


Заключение


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

- создания новой БД

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

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

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

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

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

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

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

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


Введение Целью работы является разработка программы на языке Си++ для осуществления постановки и выбора алгоритмов решения задач обработки экономической

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ