Решения прикладных задач с реализацией автоматизированной обработки экономической информации
Введение
Целью работы является разработка программы на языке Си++ для осуществления постановки и выбора алгоритмов решения задач обработки экономической информации, разработка алгоритмов и программ для их решения (требования к программе изложены в аннотации), моя программа должна корректно обрабатывать данные в виде следующей таблицы:
МагазинТоварКоличество Стоимость
Разработанная программа позволяет выполнять следующие задачи:
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 | Пользовательское соглашение
ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ