Автор: Пользователь скрыл имя, 07 Октября 2012 в 11:56, курсовая работа
Предметной областью курсовой являются экономические показатели, а точнее капитальные вложения при разработке нефтяных месторождений, строительстве скважин и оснащение производства необходимым оборудованием.
1 Постановка задачи…………………………………………………………….3
1.1 Спецификация……………………………………………………………….3
1.2 Определение входных, выходных и промежуточных значений и форма
их представления………………..………………………………………………3
2 Определение типа алгоритма и возможности его реализации……………..5
2.1 Теоретическое обоснование проблемы……………………………............5
2.2 Определение типа алгоритма……………………………………………….5
2.3 Математическая модель…………………………………………………….5
3 Функциональная схема наполнения………………………………………….6
3.1 Блок-схема……………………………………………………………………6
3.2 Интерфейс……………………………………………………………………7
4 Программный код……………………………………………………………...8
5 Тестирование…………………….…………………………………………….14
5.1 Корректность ввода………….………….…….…………………………….14
5.2 Контрольный пример…………………….………………………………….15
6 Список использованных источников…….…………………………………..16
Содержание
1 Постановка задачи…………………………………………………………….
1.1 Спецификация………………………………………………
1.2 Определение входных,
выходных и промежуточных
их представления………………..………………
2 Определение типа алгоритма и возможности его реализации……………..5
2.1 Теоретическое обоснование
проблемы……………………………...........
2.2 Определение типа алгоритма…………
2.3 Математическая модель………………………
3 Функциональная схема наполнения………………………………………….6
3.1 Блок-схема……………………………………………………
3.2 Интерфейс………………………………………………………
4 Программный код………………………………………
5 Тестирование…………………….………………………
5.1 Корректность ввода………….………….……
5.2 Контрольный пример…………………….………
6 Список использованных источников…….…………………………………..16
1 Постановка задачи
Разработать проект расчета экономических показателей разработки нефтяных месторождений с применением методов увеличения нефтеотдачи пластов.
1.1 Спецификация
Предметной областью курсовой являются экономические показатели, а точнее капитальные вложения при разработке нефтяных месторождений, строительстве скважин и оснащение производства необходимым оборудованием.
1.2 Определение входных, выходных и промежуточных значений и форма их представления
В курсовой был использован ряд источников, с помощью которых определились требуемые данные. При расчёте капитальных вложений в разработку учитывались затраты на сами скважины, их эксплуатацию, сбор и хранение продукции, а также дополнительные затраты на водоснабжение, электроснабжение, связь и прочее обустройство. Далее представлен перечень параметров, которые использовались для решения этой задачи:
Входные:
n1 – количество вводимых добывающих скважин (штук);
n2 – количество вводимых нагнетательных скважин (штук);
x1 – стоимость одной добывающей скважины;
x2 – стоимость одной нагнетательной скважины;
y – стоимость одного комплекта штангового скважинного насоса;
m – стоимость одной компрессорной установки, предназначенной для нагнетания воздуха в пласт;
k1 – нормативный коэффициент, учитывающий капитальные вложения в сбор, транспорт и хранение продукции добывающих скважин;
k2 – нормативный коэффициент, учитывающий капитальные вложения в закачку воды и промыслового водоснабжения;
k3 – нормативный коэффициент, учитывающий капитальные вложения в электроснабжение, связь и прочее обустройство;
Промежуточные:
t – число компрессорных установок, вводимых в эксплуатацию (штук);
v – число лет разработки месторождения;
i – номер года разработки месторождения;
Выходные:
S1 – капитальные вложения в бурение добывающих скважин ;
S2 – капитальные вложения в бурение нагнетательных скважин;
S3 – капитальные вложения в оборудование добывающих скважин;
S4 – капитальные вложения в систему сбора, транспорта и хранения продукции добывающих скважин;
S5 – капитальные вложения в электроснабжение, связь и прочее обустройство;
S6 – капитальные вложения в систему заводнения;
S7 – капитальные вложения в компрессорные установки;
S8 – капитальные вложения в оборудование, не входящее в смету;
S – общие капитальные вложения в разработку месторождения за год;
So – общие капитальные вложения в разработку месторождения за всё время эксплуатации.
Входные и выходные параметры измеряются в денежном эквиваленте – в рублях.
2 Определение типа алгоритма и возможности его реализации
2.1 Теоретическое обоснование проблемы
При разработке нефтяных месторождений с увеличением нефтеотдачи пластов необходимо определить экономическую эффективность данного метода. Вычисления проводят по специальной методике с расчетом капитальных вложений в разработку за все года эксплуатации.
2.2 Определение типа алгоритма
Используется циклический
2.3 Математическая модель
S1=x1*n1
S2=x2*n2
S3=y*n1
S4=k1*n1
S5=k3*n1
S6=k2*n2
S7=m*t
S8=0.1*(S3+S4+S5+S6+S7)
S=S1+S2+S3+S4+S5+S6+S7+S8
So=S(1)+S(2)+...+S(v)
3 Функциональная схема наполнения
Следующим этапом создания курсовой было составление функциональной схемы этого задания, для чего была написана блок-схема и разработан интерфейс на базе программы Delphi v.7:
3.1 Блок-схема
3.2 Интерфейс
При разработке интерфейса были использованы следующие компоненты:
Label – текстовая информация для пользователя (название оборудования, название коэффициентов, описание действий, название искомой величины);
Edit – окна ввода и вывода информации (ввод заданных величин, вывод искомых величин);
Memo – окно дополнительной информации (расшифровка параметров);
StringGrid – таблицы для ввода и вывода информации (ввод заданных величин, вывод искомых величин);
Button – кнопки запуска программы (вычисление задачи, очистка окон и таблиц);
BitBtn – кнопка закрытия программы.
Компоненты преобразованы: изменены шрифт, размер, цвет, форма и другие свойства.
4 Программный код
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Buttons;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label4: TLabel;
Edit3: TEdit;
Label5: TLabel;
Edit4: TEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Label10: TLabel;
A: TStringGrid;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Memo1: TMemo;
B: TStringGrid;
Edit8: TEdit;
Button1: TButton;
Edit9: TEdit;
Label15: TLabel;
Button2: TButton;
BitBtn1: TBitBtn;
Edit10: TEdit;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit8KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure Edit6KeyPress(Sender: TObject; var Key: Char);
procedure Edit7KeyPress(Sender: TObject; var Key: Char);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Var v,i:integer; n1,n2,x1,x2,y,m,k1,k2,k3,S1,
begin
v:=strtoint(Edit1.text);
x1:=strtofloat(Edit8.text);
x2:=strtofloat(Edit2.text);
y:=strtofloat(Edit3.text);
m:=strtofloat(Edit4.text);
k1:=strtofloat(Edit5.text);
k2:=strtofloat(Edit6.text);
k3:=strtofloat(Edit7.text);
So:=0;
If (v<=0)or(x1<0)or(x2<0)or(y<0)
Edit10.Text:='Вы ввели
Else For i:=1 to v do begin
Edit10.Text:='Вы ввели все
n1:=strtofloat(A.cells[i,1]);
n2:=strtofloat(A.cells[i,2]);
t:=strtofloat(A.cells[i,3]);
S1:=x1*n1;
B.Cells[1,i]:=floattostr(S1);
S2:=x2*n2;
B.Cells[2,i]:=floattostr(S2);
S3:=y*n1;
B.Cells[3,i]:=floattostr(S3);
S4:=k1*n1;
B.Cells[4,i]:=floattostr(S4);
S5:=k3*n1;
B.Cells[5,i]:=floattostr(S5);
S6:=k2*n2;
B.Cells[6,i]:=floattostr(S6);
S7:=m*t;
B.Cells[7,i]:=floattostr(S7);
S8:=0.1*(S3+S4+S5+S6+S7);
B.Cells[8,i]:=floattostr(S8);
S:=S1+S2+S3+S4+S5+S6+S7+S8;
B.Cells[9,i]:=floattostr(S);
So:=So+S;
Edit9.Text:=floattostr(So);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
Var i,j:integer;
begin
Edit1.Text:=' ';
Edit2.Text:=' ';
Edit3.Text:=' ';
Edit4.Text:=' ';
Edit5.Text:=' ';
Edit6.Text:=' ';
Edit7.Text:=' ';
Edit8.Text:=' ';
Edit9.Text:=' ';
For j:=1 to 20 do
For i:=1 to 20 do begin
A.Cells[i,j]:=' ';
B.Cells[i,j]:=' ';
end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
Case key of
'0'..'9','-',chr(8): ;
'.': if pos ('.', edit1.text)<>0
then key:=chr(0);
chr(13):edit8.SetFocus;
end;
end;
procedure TForm1.Edit8KeyPress(Sender: TObject; var Key: Char);
begin
Case key of
'0'..'9','-', chr(8): ;
'.': if pos ('.', edit8.text)<>0
then key:=chr(0);
chr(13):edit2.SetFocus;
end;
end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
Case key of
'0'..'9','-', chr(8): ;
'.': if pos ('.', edit2.text)<>0
then key:=chr(0);
chr(13):edit3.SetFocus;
end;
end;
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
Case key of
'0'..'9','-', chr(8): ;
'.': if pos ('.', edit3.text)<>0
then key:=chr(0);
chr(13):edit4.SetFocus;
end;
end;
procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
Case key of
'0'..'9','-', chr(8): ;
'.': if pos ('.', edit4.text)<>0
then key:=chr(0);
chr(13):edit5.SetFocus;
end;
end;
procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
Case key of
'0'..'9','-', chr(8): ;
'.': if pos ('.', edit5.text)<>0
then key:=chr(0);
chr(13):edit6.SetFocus;
end;
end;
procedure TForm1.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
Case key of
'0'..'9','-', chr(8): ;
'.': if pos ('.', edit6.text)<>0
then key:=chr(0);
chr(13):edit7.SetFocus;
end;
end;
procedure TForm1.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
Case key of
'0'..'9','-', chr(8): ;
'.': if pos ('.', edit7.text)<>0
then key:=chr(0);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var i,v:integer;
begin With A do begin
Cells[0,0]:=' Год';
Cells[0,1]:=' n1 ,шт';