Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
МИНОБРНАУКИ РОССИИ |
||
Федеральное государственное бюджетное образовательное учреждениевысшего профессионального образования"Московский государственный технический университет радиотехники,электроники и автоматики"МГТУМИРЭА |
||
Факультет радиотехнических_и_телекоммуникацонных систем ________________________________________________________________________ |
||
Кафедра “Радиосистем передачи информации” |
КУРСОВАЯ РАБОТА |
|
по дисциплине |
|
«_____________________Информатика____________________________» |
|
Тема курсовой работы «__________Экология рабочей зоны__________»
|
|
Студент группы _____РРБ-2-12_______ |
Морозов М.И. |
Руководитель курсовой работы доцент, к.т.н. |
Петрова Н.Я. |
Работа представлена к защите |
«__»_______2013 г. |
(подпись студента) |
«Допущен к защите» |
«__»_______2013 г. |
(подпись руководителя) |
Москва 2013
МИНОБРНАУКИ РОССИИ |
|||
Федеральное государственное бюджетное образовательное учреждениевысшего профессионального образования"Московский государственный технический университет радиотехники,электроники и автоматики"МГТУМИРЭА |
|||
Факультет радиотехнических и телекоммуникационных систем |
|||
Кафедра радиосистем передачи информации |
|||
Утверждаю |
|||
Заведующий кафедрой______________А.А.Парамонов |
|||
«____» __________2013 г. |
|||
ЗАДАНИЕ |
|||
на выполнение курсовой работы |
|||
подисциплине «Информатика» |
|||
Студент ___________Морозов_М.И.____________________________Группа__РРБ-2-12___ |
|||
|
|||
Исходные данные:Используемая мощность предприятия (%). Изменения можно рассматривать на диапазоне 60:20:100.Время суток (1:24),ПДК (~1 вещества). |
|||
1. Постановка задачи (подробное описание и примеры исходных данных) 2. Декомпозиция поставленной задачи и описание алгоритма ее поэтапного решения 3. Описание каждой подпрограммы с указанием ее входных, выходных переменных. 4. Текст программы на языке С++. 5. Визуализация результатов с помощью интерфейсапользователя, выполненного в Matlab. |
|||
|
|||
Задание на курсовую работу выдал |
«___»______2013г. |
____________________ |
Петрова Н.Я. |
Задание на курсовую работу получил |
«___»______2013г. |
__________________ |
Морозов М.И. |
СОДЕРЖАНИЕ
Содержание 6
ФОРМУЛИРОВКА ЗАДАНИЯ…………………………………………………………………7
1.Функции С++ используемые В РЕШЕНИИ ЗАДАЧе 8
1.1 Функция main 8
1.2 Функция FREAD 9
1.3 Функция MENU 10
1.4 ФункцияDdob 12
1.5 ФункцияDvod 13
1.7 Функция FWRTE 14
1.8 Функция IzmPDK 15
ФУНКЦИЯ MATLAB, ИСПОЛЬЗУЕМАЯ В РЕШЕНИИ ЗАДАЧИ 16
ПОЛНЫЙ КОДпрограммы 17
ВЫВОД…………………………………………………………………………………….……21
Список литературы 22
Эта функция, запускаемая при старте программы, работает с вводом и выводом данных на экран, а так же запускает алгоритм FREAD и MENU.
int main()
{
int PDK1;
system ("cls");
setlocale (LC_ALL, "rus");
data* D= new data[24];
for (inti=0;i<24;i++)
{
D[i].v1=-1;
}
FREAD (D,&PDK1);
MENU (D,&PDK1);
return 0;
}
Функция FREAD.
Эта функция выполняет чтение файла и заполнение массива D.
void FREAD(data D[],int* PDK1)
{
System ("cls");
int v1,h;
ifstream F("Kurs.txt");
cout<<"Чтениефайла"<<endl;
F>>*PDK1;
cout<<".";
for (inti=0;i<24;i++)
{
h=-1;
v1=-1;
F>>h;
F>>v1;
If (h!=-1)
{
D[h].v1=v1;
}
}
cout<<endl;
F.close();
Функция MENU.
Эта функция выполняет вывод меню на экран и запуск нужного алгоритма.
int MENU(data D[],int* PDK1)
{
int A;
while (1)
{
system("cls");
cout<<"Выберитедействие:"<<endl<<endl;
cout<<"1.Вывестиданные."<<endl;
cout<<"2.Добавиить запись."<<endl;
cout<<"3.Изменить значения ПДК."<<endl;
cout<<"4.Выход."<<endl<<endl;
cout<<"Ваш выбор:";
cin>>A;
switch(A)
{
case 1:
Dvod (D,*PDK1);
break;
case 2:
Ddob (D,*PDK1)
break;
case 3:
IzmPDK (D,PDK1);
break;
case 4:
cout<<"Выход"<<endl;
return 0;
break;
}
}
}
Функция Ddob.
Эта функция выполняет заполнение, замену и вывод концентрации вещества за отдельный час.
Void Ddob(data D[],int PDK1)
{
System ("cls");
cout<<"Добавиитьзапись"<<endl;
int nh,nv1;
cout<<"Введите час(от 0 до 23):";
cin>>nh;
cout<<"Текущее значение:"<<endl<<endl;
cout<<"Час Кол.в-ва1"<<endl;
if (D[nh].v1!=-1)
{
cout<<nh<<"\t"<<D[nh].v1<<"\t\t";
}
else
{
cout<<nh<<"\tНетданных"<<"\t";
}
cout<<endl<<"Введите новые значения(при вводе -1 результат - 'нет данных')"<<endl;
cout<<"Кол.в-ва 1:";
cin>>nv1;
D[nh].v1=nv1;
FWRTE (D,PDK1);
}
Функция Dvod.
Эта функция выполняет вывод на экран концентраций за каждый час, расчёт снижения мощности для исключения вредных выбросов по нормам ПДК.
Void Dvod(data D[],int PDK1)
{
System ("cls");
cout<<"Вывестиданные"<<endl;
cout<<"ПДКдляв-ва 1:"<<PDK1<<endl;
cout<<"Час Кол.в-ва1"<<endl;
for (inti=0;i<24;i++)
{
double B,C;
if (D[i].v1!=-1)
{
cout<<i<<"\t"<<D[i].v1<<"\t\t";
}
else
{
cout<<i<<"\tНетданных\t";
}
If (D[i].v1>PDK1)
B=100*PDK1/D[i].v1;
If (B>60)
{
cout<<"\tРекомендуемая мощность 60%";
}
else
{
cout<<"\tРекомендуемая мощность 20%";
}
}
}
Функция FWRTE.
Эта функциявыполняет ввод данных в файл.
Void FWRTE(data D[],int PDK1)
{
System ("cls");
cout<<"Записьвфайл"<<endl;
ofstream Fo("Kurs.txt");
Fo<<PDK1<<"\t"<<endl;
cout<<"..";
for (inti=0;i<24;i++)
{
if((D[i].v1!=-1)
{
Fo<<i<<"\t"<<D[i].v1<<"\t"<<endl;
}
cout<<".";
}
Fo.close();
cout<<endl;
}
Функция IzmPDK.
Эта функция запускает алгоритм FWRTE и выводит указания на экран.
Void IzmPDK(data D[],int* PDK1,int* PDK2)
{
System ("cls");
cout<<"ИзменениеПДК"<<endl;
cout<<"Текущее значение:"<<endl;
cout<<"ПДК для в-ва 1:"<<*PDK1<<endl;
cout<<"Введите новые значения:"<<endl;
cout<<"Для в-ва 1: ";
cin>>*PDK1;
FWRTE (D,*PDK1);
}
Функция grafik.
Эта функция, используемая в MATLAB, строит график зависимости концентрации от времени.
Function grafik
load ('C:\Users\Downloads\MATLAB R2009a Portable\Kurs.txt');
x=[];
y=[];
d=[];
for v=2:1:length(Kurs)
y=[y,Kurs(v,2)];
end
%y
%d
holdon;
plot(x,y,'b')
plot(x,y,'r')
plot(x,y,'g')
plot(x,y,'y')
Рис.1
ПОЛНЫЙ КОД ПРОГРАММЫ С++
#include<fstream.h> - описания и разрешения для всех буферных и потоковых классов.
#include<iostream.h> - основной фаил - библиотека, отвечает за все классы, макросы, тома и библиотеки, которые используют программы.
#include<stdlib.h> - библиотека, который содержит в себе функции, занимающиеся выделением памяти, контроль процесса выполнения программы.
#include<fstream>
#include<iostream>
#include<stdlib.h>
using namespace std;
struct data
{
int v1;
};
int MENU(data D[],int* PDK1);
void Ddob(data D[],int PDK1);
void Dvod(data D[],int PDK1);
void FREAD(data D[],int* PDK1);
void FWRTE(data D[],int PDK1);
void IzmPDK(data D[],int* PDK1);
int main()
{
int PDK1;
system ("cls");
setlocale (LC_ALL, "rus");
data* D= new data[24];
for (inti=0;i<24;i++)
{
D[i].v1=-1;
}
FREAD (D,&PDK1);
MENU (D,&PDK1);
return 0;
}
void FREAD (data D[],int* PDK1)
{
System ("cls");
int v1,h;
ifstream F("Kurs.txt");
cout<<"Чтениефайла"<<endl;
F>>*PDK1;
cout<<".";
for (inti=0;i<24;i++)
{
h=-1;
v1=-1;
F>>h;
F>>v1;
If (h!=-1)
{
D[h].v1=v1;
}
}
cout<<endl;
F.close();
}
int MENU(data D[],int* PDK1)
{
int A;
while
{
System ("cls");
cout<<"Выберитедействие:"<<endl<<endl;
cout<<"1.Вывестиданные."<<endl;
cout<<"2.Добавиить запись."<<endl;
cout<<"3.Изменить значения ПДК."<<endl;
cout<<"4.Выход."<<endl<<endl;
cout<<"Ваш выбор:";
cin>>A;
switch (A)
{
case 1:
Dvod (D,*PDK1);
break;
case 2:
Ddob (D,*PDK1);
break;
case 3:
IzmPDK (D,PDK1);
break;
case 4:
cout<<"Выход"<<endl;
return 0;
break;
}
}
}
Void Dvod (data D[],int PDK1)
{
System ("cls");
cout<<"Вывестиданные"<<endl;
cout<<"ПДКдляв-ва 1:"<<PDK1<<endl;
cout<<"Час Кол.в-ва1"<<endl;
for (inti=0;i<24;i++)
{
double B,C;
if(D[i].v1!=-1)
{
cout<<i<<"\t"<<D[i].v1<<"\t\t";
}
else
{
cout<<i<<"\tНетданных\t";
}
If (D[i].v1>PDK1)
{
B=100*PDK1/D[i].v1;
If (B>60)
{
cout<<"\tРекомендуемая мощность 60%";
}
else
{
cout<<"\tРекомендуемая мощность 20%";
}
}
}
cout<<endl;
}
System ("pause");
}
Void Ddob(data D[],int PDK1)
{
System ("cls");
cout<<"Добавиитьзапись"<<endl;
int nh,nv1,nv2;
cout<<"Введите час(от 0 до 23):";
cin>>nh;
cout<<"Текущее значение:"<<endl<<endl;
cout<<"Час Кол.в-ва1"<<endl;
if(D[nh].v1!=-1)
{
cout<<nh<<"\t"<<D[nh].v1<<"\t\t";
}
else
{
cout<<nh<<"\tНетданных"<<"\t";
}
cout<<endl<<"Введите новые значения(при вводе -1 результат - 'нет данных')"<<endl;
cout<<"Кол.в-ва 1:";
cin>>nv1;
D[nh].v1=nv1;
FWRTE (D,PDK1);
}
void FWRTE (data D[],int PDK1)
{
System ("cls");
cout<<"Записьвфайл"<<endl;
ofstream Fo("Kurs.txt");
Fo<<PDK1<<"\t"<<endl;
cout<<"..";
for (inti=0;i<24;i++)
{
If ((D[i].v1!=-1)
{
Fo<<i<<"\t"<<D[i].v1<<"\t"<<endl;
}
cout<<".";
}
Fo.close();
cout<<endl;
}
Void IzmPDK(data D[],int* PDK1,int* PDK2)
{
System ("cls");
cout<<"ИзменениеПДК"<<endl;
cout<<"Текущее значение:"<<endl;
cout<<"ПДК для в-ва 1:"<<*PDK1<<endl;
cout<<"Введите новые значения:"<<endl;
cout<<"Для в-ва 1: ";
cin>>*PDK1;
FWRTE (D,*PDK1);
}
ВЫВОД:
исходя из проведенной мною работы, на рисунке 1 наглядно видно что при мощности 20% нормы ПДК не превышаются. При мощности в 60% завод, в соответствии с нормами ПДК, обязан работать с 22:00-4:00, с 9:00- 10:00, с 16:00-19:00. При мощности в 100% завод обязан работать с 23:00-3:00 и с17:00-18:00.
Исходя из этого работа завода для максимальной выгоды должна выглядеть следующим образом:
0:00-3:00 100%
3:00-4:00 60%
4:00-9:00 20%
9:00-10:00 60%
10:00-16:00 20%
16:00-17:00 60%
17:00-18:00 - 100%
18:00-19:00 60%
19:00-22:00 20%
22:00-23:00 60%
23:00-0:00 100%
Данная программа будет востребована на предприятиях, путем анализа атмосферы рабочей зоны, для обеспечения предприятию наиболее оптимальное использование мощности. Программа позволит увеличить производительность изготавливаемых продуктов, путем рационального использования мощности.
СПИСОК ЛИТЕРАТУРЫ
1. Лекции и семинары преподаватель Петрова Н.Я.
2. Интернет руководства по созданию программ на языке С++ и Mathlab.
3. Форум программистов и сисадминов CyberForum.ru. Раздел помощи.
4. С++ для начинающих ci-plus-plus-snachala.ru