Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Якименко__П.В.(готовый почти)На проверку.doc
Скачиваний:
252
Добавлен:
29.05.2015
Размер:
1.39 Mб
Скачать

3.1.2 Обоснование выбора операционной системы

Лидирующее место на рынке операционных систем занимают линейка операционных систем Windows от Microsoft. Именно большое распространение операционных систем Windows NT(2000), наложило большой отпечаток на выбор операционной среды под разрабатываемую в рамках дипломного проекта информационную систему. Основополагающим фактором становится степень подготовленности пользователя рабочей станции к использованию информационной системы в той или иной операционной среде. Проще создать программный продукт под «штатную» операционную систему, чем переучивать весь персонал под более «удобную» для программного продукта систему.

Разрабатываемая в дипломной работе система является относительно простой и не ресурсоёмкой и не задействует какие-нибудь специфические библиотеки операционной системы, оставаясь отчасти независимой от внутренней архитектуры ОС.

Таким образом, ОС Windows XP удовлетворяет требованиям информационной системы, разрабатываемой в дипломной работе.

3.2 Пользовательский интерфейс модуля и инструкция для пользователя

Главным требованием к графическому интерфейсу программного продукта является удобное обеспечение взаимодействия между системой и человеком. Чаще всего в последнее время используются диалоговые окна при работе человека с ЭВМ.

Вид окна модуля:

Рисунок 3.1- Начальный вид окна модуля

Главное окно программы можно разделить на две части: окно задания параметров, окно вывода расчетного графика.

В окне задания параметров мы указываем какие берутся сечения, интервалы между ними, отступ от береговой линии, а также общий расход воды. Код описывающий задание начальных параметров:

Sech(1).name=get(handles.sech1,'String');

Sech(2).name=get(handles.sech2,'String');

Sech(3).name=get(handles.sech3,'String');

Sech(4).name=get(handles.sech4,'String');

Sech(5).name=get(handles.sech5,'String');

Sech(6).name=get(handles.sech6,'String');

Sech(7).name=get(handles.sech7,'String');

S_MAX=7;

for n=1:S_MAX

Sech(n).name;

end

% Name_Uch= ['RES_' Sech(1).name '_' Sech(2).name '.txt'];

% % set(handles.txt_Name_Uch,'String',Name_Uch);

% Data_Uch =csvread(Name_Uch);

% SIZ_Uch= size(Data_Uch);

%

% Numm_elem_Uch=numel(Data_Uch);

% S1 = Data_Uch(1,:);

% S2 = Data_Uch(2,:);

% S3 = Data_Uch(3,:);

% B_H = S1(1,1); OMEGA_H =S1(1,2); T_SRED_H = S1(1,3);

% B_K = S2(1,1); OMEGA_K =S2(1,2); T_SRED_K = S2(1,3);

% SREZKA_H= S3(1,1); SREZKA_K = S3(1,2); SHEROX= S3(1,3);

% DISTANT =S3(1,4); F = S3(1,5);

% %set(handles.ed_MODULF,'String',num2str(F));

%___________ Чтение файлов линий тока ____________

for m=1:S_MAX-1

Name_Tok= ['TOK_' Sech(m).name '_' Sech(m+1).name '.txt'];

% Name_Tok= 'TOK_TeST1_TeST2.txt'

Data_Tok =csvread(Name_Tok);

SIZ_Tok= size(Data_Tok);

Numm_elem_Tok=numel(Data_Tok) ;

arBH(m).Tok = Data_Tok(1,:);

arBK(m).Tok = Data_Tok(3,:);

end

NQ= length(arBH(1).Tok)-1;

set(handles.ed_N,'String',num2str(NQ));

% arBH

% arBH.Tok

% arBK.Tok

Блок, расчитывающий формулу Шези:

Q = str2double(get(handles.ed_Q,'String'));

F = str2double(get(handles.ed_MODULF,'String'));

DZ = Q^2*F ;

set(handles.ed_DZ,'String',num2str(DZ ));

DISTANT = DIST(end);

UKLON = (DZ/DISTANT)*1000;

set(handles.ed_UKLON,'String',num2str(UKLON ));

DQ = Q/NQ;

set(handles.ed_DQ,'String',num2str(DQ ));

График можно представить в двух вариантах:

  1. Линейный вывод линий тока. В данном случае линии тока строятся путем соединения прямых линий отдельных участков.

Рисунок 3.1 - Линейный вывод тока

Код, описывающий линейный вывод тока:

if strcmp(interp_type, 'linear')

for k=1:S_MAX-1

for n=NN : NQ

if (n==1)|(n==NQ)

Col= 'black'; LW=3;

else Col= 'blue'; LW = 2;

end

line([DIST(k) DIST(k+1)],[arBH(k).Tok(n)+REL(k) ...

arBK(k).Tok(n)+REL(k+1)],...

'LineWidth',LW,'Color',Col)

end

end

line([DIST],[REL],'LineWidth',4,'Color','black')

end

% AA = [arBH.Tok] ;

% AA1 =[arBH(1).Tok];

2)Вывод линий тока сплайн. Это геометрическая конструкция, используемая во многих графических программах для создания сложных кривых и поверхностей из множества коротких сегментов, каждый из которых описывается кубическим полиномом. Кубический полином выбран потому, что, в отличие, например, от квадратного, обеспечивает идеально плавное сопряжение кривых, если они соединяются в точках перегиба, т. е. точках с нулевой кривизной.

Рисунок 3.2 - Вывод линий тока сплайн

Код, описывающий вывод линий тока сплайн:

LSS =LinTok+M_REL;

plt=0.01;% шаг plot

if strcmp(interp_type, 'cubic')

for m=NN:NQ

X=DIST;

Y= LSS(:,m);

XX=DIST(1):plt*DIST(end):DIST(end);

YY= spline(X,Y,XX) ;

if( m==1) | (m==NQ )

Col='black'; LW =4;

else Col='blue'; LW = 2;

end

%plot(X,Y,'o',XX,YY,'-','LineWidth',2,'Color',Col,'LineWidth',LW)

plot(XX,YY,'-','LineWidth',2,'Color',Col,'LineWidth',LW)

end

X=DIST;

Y= LSS(:,1);

XX=DIST(1):plt*DIST(end):DIST(end);

YY= spline(X,Y,XX) ;

plot(XX,YY,'-','LineWidth',2,'Color',Col,'LineWidth',LW)

В качестве дополнительной опции существует функция, которая выводит график без линий тока, а только границы русла реки:

Рисунок 3.3 - Вывод графика без линий тока