Решения прикладных задач с реализацией автоматизированной обработки экономической информации
Разработка программы на языке Си++ и осуществление постановки и выбора алгоритмов решения задач обработки экономической информации, создание и редактирование базы данных, сортировка записей по определенному запросу, анализ эффективности обработки данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 28.08.2012 |
Размер файла | 316,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Целью работы является разработка программы на языке Си++ для осуществления постановки и выбора алгоритмов решения задач обработки экономической информации, разработка алгоритмов и программ для их решения (требования к программе изложены в аннотации), моя программа должна корректно обрабатывать данные в виде следующей таблицы:
Магазин |
Товар |
Количество |
Стоимость |
Разработанная программа позволяет выполнять следующие задачи:
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 Общий принцип работы программы
Размещено на http://www.allbest.ru/
2.2 Блок-схемы основных функции программы
Размещено на http://www.allbest.ru/
Рис 2. - Блок-схема главной функции - main():
Рис 3. - Функция create(), создает файл базы данных
Рис 4. - Функция open(), открывает файл базы данных
Рис 5. - Функция load(), загружает данные из файла в базу данных
Рис 6. - Функция save(), сохраняет изменения в файле базы данных
Рис 7. - Функция add(), добавляет запись в базу данных
Размещено на http://www.allbest.ru/
Рис 8. - Функции view(), осуществляет просмотр базы данных
Размещено на http://www.allbest.ru/
Рис 10. - Функция delet(), удаляет запись из базы данных
ch='1'
ch='2'
ch='3'
ch='4'
ch='5'
Рис 12. - Функция sort(), работа с базой данных
Нет
Да
нет
Рис 13. - Функция sort1() осуществляет сортировку базы данных по алфавиту
Размещено на http://www.allbest.ru/
Рис. 14. - Функция stoimtovara(char*base) осуществляет поиск стоимости товаров
Размещено на http://www.allbest.ru/
Рис 15. - Функция magazintovar(char*base) осуществляет поиск товаров по первой букве магазина, в котором они есть
Размещено на http://www.allbest.ru/
Рис 16. - Функция tovarpokolvo(char*base) осуществляет поиск названия товара по его количеству
Размещено на http://www.allbest.ru/
Рис 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>
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<<"\r\nSozdanie...\r\n";
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 <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>
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:\r\n1.Po alfavity 2.Stoimostb tovara 3.Tovar po kolichestvy 4.Tovari po magaziny \n5.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<<"\r\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:\r\n";
cout<<"Vvedite tovar: "<<endl; cin>>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:\r\n";
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<<"\n";};
}
if (z==0){
cout<<"net sovpadenii";cout<<"\n";
cout<<endl;
}
getch();
open(base);
}
void tovarpokolvo(char *base){
system("cls");
cout<<"Please enter find record:\r\n";
cout<<"Vvedite kolichestvo tovara: "<<endl; cin>>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<<"\r\nDelete record"<<i+1<<"OK!\r\n";
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<<"Magazin: "; cin>>tmp.magazin;
cout<<"Tovar: "; cin>>tmp.tovar;
cout<<"Kolichestvo: "; cin>>tmp.kolvo;
cout<<"Cena: "; cin>>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,"\n%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);}
автоматизация обработка экономический информация
Заключение
В ходе выполнения курсовой работы разработана программа на языке Си++ для обработки данных типа структура. Обработка данных включает:
- создания новой БД
- просмотр существующей БД
- редактирование БД
- дополнение БД
- удаление записей из БД
- сортировка БД по определённому полю
- поиск записи по определённым критериям
При разработке программе использовались функции, массивы, циклы, указатели.
Разработанная программа позволяет повысить эффективность обработки данных и сократить время на поиск необходимых записей.
Размещено на Allbest.ru
Подобные документы
Осуществление постановки и выбор алгоритмов решения задач обработки экономической информации; разработка программы для работы с базой данных о маршруте: начало, конец, номер, суммарное количество мест. Поиск маршрутов по названиям конечного пункта.
курсовая работа [2,5 M], добавлен 17.01.2013Характеристика предприятия ТОО "Com Sales Group". Составление программ на языке программирования. Составление алгоритмов, разработка численных методов решения задач. Методы откладки программ. Анализ технологии машинной обработки экономической информации.
отчет по практике [1,3 M], добавлен 19.04.2016Роль и место комплекса задач в экономической информационной системе, технико-экономическое обоснование автоматизации обработки информации. Характеристика и анализ существующей организации обработки информации по комплексу задач на объекте управления.
дипломная работа [5,3 M], добавлен 29.06.2012Программа обработки экономической информации, осуществляющая ввод исходной информации из файла. Просмотр таблицы исходных данных и ее редактирование. Внутреннее представление данных. Хранение записей входного файла. Добавление и удаление строк из списка.
курсовая работа [131,8 K], добавлен 28.12.2012Обзор моделей анализа и синтеза модульных систем обработки данных. Модели и методы решения задач дискретного программирования при проектировании. Декомпозиция прикладных задач и документов систем обработки данных на этапе технического проектирования.
диссертация [423,1 K], добавлен 07.12.2010Разработка проекта автоматизированной системы обработки экономической информации для малого рекламного предприятия. Назначение и основные функции проектируемой системы, требования к ней. Технология обработки и защиты экономической информации предприятия.
контрольная работа [27,8 K], добавлен 10.07.2009Характеристика организации автоматизированной обработки. Схема данных и ее описание. Характеристика входной и выходной информации. Организация технологического процесса сбора, передачи, обработки и выдачи информации. Формализация автоматизируемых задач.
курсовая работа [941,7 K], добавлен 22.11.2013Структура записей входного массива. Описание основных типов данных. Алгоритм программы: присвоение начальных значений переменных, чтение списка из файла, вывод данных на экран, выполнение обработки данных, сохранение списка в файл. Листинг программы.
курсовая работа [325,2 K], добавлен 28.12.2012Требования и структура систем обработки экономической информации. Технология обработки информации и обслуживание системы, защита информации. Процесс создания запросов, форм, отчетов, макросов и модулей. Средства организации баз данных и работы с ними.
курсовая работа [2,7 M], добавлен 25.04.2012Разработка технологии обработки информации, а также структуры и формы представления данных. Подбор алгоритма и программы решения задачи. Определение конфигурации технических средств. Специфика процесса тестирования и оценки надежности программы.
курсовая работа [959,1 K], добавлен 12.12.2011