Анализ требований к автоматизированным информационным системам

Автор: k*******@mail.ru, 24 Ноября 2011 в 17:36, курсовая работа

Описание работы

Актуальность данной темы обусловлена тем, что прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов - языков программирования.
Информационной системой (ИС), либо автоматизированной ИС, АИС, называется программно-аппаратная система, предназначенная для автоматизации целенаправленной деятельности конечных пользователей, обеспечивающая, в соответствии с заложенной в нее логикой обработки, возможность получения, модификации и хранения информации.

Содержание

Введение
1Характеристика предприятия…………………………………………………...5
2 Языки программирования …………………………………………………….. 6
3 Анализ требований к автоматизированным информационным системам…. 7
3.1 Определение ИС.……………………………………………………………...8
3.2 Классификация по степени автоматизации…………………………………9
4 Системные требования и требования к программному обеспечению……..10
5 Общие описания языка Delfi…………………………………………………
6 Правила охраны труда и техники безопасности на предприятии…………

Работа содержит 1 файл

отчет аляли.doc

— 197.50 Кб (Скачать)

   Рисунок 1 Рабочая область программы 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

   Приложение  Б 

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, FileCtrl, ComCtrls, ShellCtrls, CheckLst, ExtCtrls;

  //uses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,

    // Dialogs,StdCtrls,ExtCtrls,ShellAPI,Buttons;

type

  TForm1 = class(TForm)

    ListBox1: TListBox;

    ListBox2: TListBox;

    Button2: TButton;

    Button3: TButton;

    Edit1: TEdit;

    Label1: TLabel;

    Button4: TButton;

    Button5: TButton;

    Edit2: TEdit;

    Label2: TLabel;

    CheckListBox1: TCheckListBox;

    Button1: TButton;

    CheckBox1: TCheckBox;

    CheckBox2: TCheckBox;

    ProgressBar1: TProgressBar;

    CheckBox3: TCheckBox;

    RadioGroup1: TRadioGroup;

    Label3: TLabel;

    ProgressBar2: TProgressBar;

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

   procedure ListBox2DblClick(Sender: TObject);

    procedure CheckListBox1DblClick(Sender: TObject);

    procedure CheckListBox1Click(Sender: TObject);

    procedure RadioGroup1Click(Sender: TObject);

  private

    { Private declarations }

    Procedure Param_file_Excel(name_f_excel: string);

    Procedure Param_list_Excel;

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

var p, s: string;

f_txt: TextFile; name_f_xls, name_f_txt, name_f_txt_list, str_excel, str_excel2, s_excel, str_excelP, str_excel2P, s_excelP: String;

i, n: Integer;

str, col, str_n, col_k, npcol: Integer;

Rows, Columns: Integer;

var XL: Variant; path_xls, path_txt: String;

kol_list_excel, nom_list: byte;

prz_vib_p: Boolean;

var mas_par_excel: array[1..5,1..2] of integer; //массив содержащий параметры листов Екселя

const p_defa_xls = 'c:\Excel_Txt\Excel\'; p_defa_txt = 'c:\Excel_Txt\Txt\';

implementation

uses ComObj, Unit2, ShellAPI, {ExtCtrls,} Buttons; 

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);

begin

//для  загрузки используется компонент CheckListBox1

{

Form2.ShellTreeView1.Path := p_defa_xls;

Form2.Caption := 'Укажите каталог файлов .XLS';

Form2.ShowModal;  //открытие окна определения пути

if not prz_vib_p then Exit; //выход из процед.,если путь  не выбран

path_xls := p;

//p := ExtractFileDir(Application.ExeName)+'\Excel\';

s := path_xls + '\*.xls'#0;

ListBox1.Clear;

ListBox1.Perform(LB_DIR, DDL_ReadWrite, Longint(@S[1]));  //заполняем список .xls

}

end;

procedure TForm1.Button3Click(Sender: TObject);

var st_e, sb_e: byte; str_pust: String;  prz_exit: Boolean;

begin

try

//проверка  наличия разделителя в едит1 и  кол.строк в екселе в едит2, если нет, то выход

//if (Edit1.Text = '')or(Edit2.Text = '') then

if (Edit1.Text = '') then //проверка наличия разделителя  в едит1

begin

  //ShowMessage('Укажите  знак разделителя в поле "Разделитель", а также количество строк в  файле Excel.');

  ShowMessage('Укажите  знак разделителя в поле "Разделитель".');

  prz_exit := true; Exit; //prz_exit переменная указыв. на  выход по Exit

end;

Form2.ShellTreeView1.Path := p_defa_txt;  //путь по умолчанию для .тхт

Form2.Caption := 'Укажите каталог файлов .TXT';

Form2.ShowModal;  //открытие окна определения пути

Form1.Refresh;

if not prz_vib_p then begin prz_exit := true; Exit; end;//выход из процед., если путь не выбран

//проверка  выбора файлов Екселя для преобразования

n := 0;

{for i:=0 to ListBox1.Items.Count - 1 do

  if (ListBox1.Selected[i]) then

    inc(n);}

//проверка  по выставленным флагам CheckListBox1 в  списке файлов Екселя

for i:=0 to CheckListBox1.Items.Count - 1 do

  if (CheckListBox1.Checked[i]) then

    inc(n);

if n = 0 then //если фалы не выбраны, то  выход из процедуры

begin

  //ShowMessage('Нет  выбранных файлов. Выберите файлы  указателем мыши, для множественного  выбора используете Shift и Ctrl.');

  ShowMessage('Нет  выбранных файлов. Выберите файлы  выставив флаги.');

  prz_exit := true; Exit;

end;

Screen.Cursor := crHourglass;

path_txt := p;

XL := CreateOleObject('Excel.Application'); //открытие Excel без документа

XL.Visible := false;

XL.DisplayAlerts := False;

//XL.Visible := True;

ProgressBar1.Min := 0;

ProgressBar1.Max := n;  //значение n из проверки на  наличие выбранных файлов

n := 0; //для  участия в подсчёте ProgressBar1

if CheckBox3.Checked then ListBox2.Clear; //предвар. очистка списка с ф.тхт для вывода только записанных ф.

//for i:=0 to ListBox1.Items.Count - 1 do //цикл по строкам  ListBox1 с названиями файлов екселя

for i:=0 to CheckListBox1.Items.Count - 1 do //цикл по строкам  CheckListBox1 с названиями файлов екселя

begin

  Application.ProcessMessages;

  //if (ListBox1.Selected[i]) then  //если файл выбран

  if (CheckListBox1.Checked[i]) then  //если файл выбран

  begin

    Label3.Caption := CheckListBox1.Items.Strings[i]; //запись в лабел3 имени обрабат. файла

    inc(n);

    //ProgressBar1.Position := n;

    Form1.Refresh;

    //name_f_xls := ListBox1.Items.Strings[i];

    name_f_xls := CheckListBox1.Items.Strings[i];

    name_f_txt := name_f_xls; //копир. имени ф-ла екселя ф-лу тхт

    Delete(name_f_txt, length(name_f_txt)-2-1, 3+1);  //удаление из назв.файла тхт симолов '.xls'

    //name_f_txt := name_f_txt + 'txt';

    //AssignFile(f_txt, path_txt + '\' + name_f_txt);

    //Rewrite(f_txt);

    xl.Workbooks.Open(path_xls + '\' + name_f_xls);

    //str_n := 1; col_k := 10;

    str_excel := ''; str_excel2 := '';

    kol_list_excel := XL.ActiveWorkBook.Sheets.Count; //кол-во листов книги Екселя, определяемая функцией активной книги Екселя

    //Param_file_Excel(name_f_xls); //процедура задания параметров файла Екселя (колво листов, начальная строка листа, последний столбец листа)

    ProgressBar2.Min := 0;

    ProgressBar2.Max := kol_list_excel;  //значение n из  проверки на наличие выбранных  файлов

    for nom_list := 1 to kol_list_excel do //цикл по количесву листов книги екселя

    begin

      Label3.Caption := CheckListBox1.Items.Strings[i] + '   Лист' + IntToStr(nom_list);

      ProgressBar2.Position := nom_list;

      Application.ProcessMessages;

      s := XL.Workbooks[1].Worksheets[nom_list].name; //имя листа

      name_f_txt_list := name_f_txt + '_' + IntToStr(nom_list) + '_' + s + '.txt'; //добавлен. к имени файла txt имени листа + расширение .тхт

      AssignFile(f_txt, path_txt + '\' + name_f_txt_list);  //создание файла тхт для записи каждого отдельно листа файла Екселя

      Rewrite(f_txt);

      //str_n := mas_par_excel[nom_list,1];

      //col_k := mas_par_excel[nom_list,2];

      Param_list_Excel; //процедура задания параметров листа Екселя (количества сток и столбцов, начальной строки)

      //for str := str_n to StrToInt(Edit2.Text) do //цикл по строкам от начальной по StrToInt(Edit2.Text) листа екселя, на которых предположительно могут быть данные

      for str := str_n to Rows do //цикл по строкам  от начальной по Rows листа екселя

      begin

        npcol := 0; //номер не пустого столбца

        str_excel := ''; str_excel2 := '';  //предварительная  очистка накопителых строк с  разделителем и без разделителя

        for col := 1 to col_k do  //цикл по столбцам  листа от 1 по col_k

        begin

          s_excel := XL.Workbooks[1].Worksheets[nom_list].Cells[str,col].value;

          if s_excel <> '' then //проверка на пустоту столбцов екселя

          begin

            str_excel := str_excel + s_excel + Edit1.Text;  //формирование  строки с разделителем

            str_excel2 := str_excel2 + s_excel; //формирование строки без разделителя

          end

          else  //if s_excel <> '' then //проверка на  пустоту столбцов екселя

//если  в ячейке столбца пусто, то  проверяем следующие 20 ячеек по  строке

          begin

            str_pust := '';

            str_excelP := '';

            str_excel2P := '';

            if npcol < col then

            begin

              for sb_e := col to 20 do

              begin

                s_excelP := XL.Workbooks[1].Worksheets[nom_list].Cells[str, sb_e].value;

                str_pust := str_pust + s_excelP;

                if s_excelP <> '' then  break;

                str_excelP := str_excelP + s_excelP + Edit1.Text;

                str_excel2P := str_excel2P + s_excelP;

              end;  //for sb_e := col to 20 do

              if str_pust <> '' then

//если  за пустой последующая какая-нибудь  ячейка по строке не пустая, то запоминаем её номер npcol, включаем педыдущие пустые ячейки  в суммарную строку

Информация о работе Анализ требований к автоматизированным информационным системам