Компьютерные системы

Автор работы: Пользователь скрыл имя, 21 Мая 2013 в 08:11, курсовая работа

Краткое описание

Подходя к современным требованиям нельзя не отметить, что эффективная работа всецело зависит от уровня оснащения электронным оборудованием, таким, как компьютеры, средства связи, копировальные устройства, а также соответствующего программного обеспечения. Ни одна современная организация не обходится без систем сбора и обработки информации. Чем больше стадий, тем этот процесс сложнее, чем больше и разнообразнее спектр информации, тем больше потребность в автоматизированном сборе, обработке и хранении информации в электронном виде. Поиск информации в бумажном виде занимает от минуты до нескольких дней, в зависимости от того, когда информация была собрана, поиск в электронном хранилище данных выполняется за доли и единицы секунд.

Содержание

Введение…………………………………………………………………………3
1 Интерфейсы компьютерных систем…………………………………………4
1.1 Эволюция пользовательских интерфейсов……………………………….4
1.2 Актуальность интерфейсов....……………………………………………....5
1.3 Понятие интерфейса пользователя………………………………………...6
1.4 Виды интерфейсов……………………………...…………………………...8
2 Разработка пользовательского интерфейса «Языковая школа»……..…...10
2.1 Подключение базы данных к проекту Delphi………….....……………10
2.2 Интерфейсное управление данными..……………..……………………11
2.3 Диалоги загрузки графических файлов…………….…………………..12
2.4 Главное и контекстное меню...……………………..……………………..14
2.5 Создание сортировки.……………………………..……………………….19
2.5 Создание фильтрации для записей таблицы…………….……………….21
2.7 Поиск и работа с записями набора данных……………..………………25
Заключение…………………………………………………………………...…29
Список использованной литературы...………………...…

Вложенные файлы: 1 файл

курсовая по ИКС.doc

— 1.52 Мб (Скачать файл)

Label da1; Label da2; Label da3; Label da4;

    var count : integer;

      i : integer;

      text : string;

begin

count := DataM.UchenikiTable.RecordCount;

text := LabeledEdit1.Text;

  if RadioButton1.Checked then

        if Length(LabeledEdit1.Text)<>0 then

    begin

    i:=0;

      if (DataM.UchenikiTable.RecNo = count) and

              (AnsiLowerCase(copy(DataM.UchenikiTableFamiliya.AsString,

        1,Length(text))) = AnsiLowerCase(text))then

          begin

            DataM.UchenikiTable.First;

            goto da1;

          end;

          while not DataM.UchenikiTable.Eof do

          begin

            DataM.UchenikiTable.Next;

      da1: //метка da1

        if AnsiLowerCase(copy(DataM.UchenikiTableFamiliya.AsString,

           1,Length(text))) = AnsiLowerCase(text)then

             break

       else inc(i);

        if i = count+1 then

           begin

             ShowMessage('Не найдено!');

             break;

           end;

        if DataM.UchenikiTable.Eof then

           begin

             DataM.UchenikiTable.First;

             goto da1;

           end;

        end;

    end

    else //если поле LabeledEdit1 пусто

      begin

        ShowMessage('Введите данные для поиска!');

        //установить фокус ввода в  поле LabeledEdit1

        LabeledEdit1.SetFocus;

      end;

 

Для поиска по справочнику  «Преподаватели» необходимо добавить к приложению новую форму FindPrepodaForm с тем же заголовком «Поиск». Сразу сохраним модуль формы, задав ему имя FindPrepodaUnit:

  • RadioButton1.Caption – «в поле “Фамилия”»;
  • RadioButton2.Caption – « в поле “Имя”»;
  • RadioButton3.Caption – « в поле “Отчество”»;
  • RadioButton4.Caption – « в поле “Предмет”»;

 

procedure TFindPrepodaForm.FindNextPrepodaBtnClick(Sender: TObject);

Label da1; Label da2; Label da3; Label da4;

  var count : integer;

      i : integer;

      text : string ;

begin

count := DataM.PrepodaTable.RecordCount;

text := LabeledEdit1.Text;

  if RadioButton1.Checked then

    //если поле LabeledEdit1 не пустое, то

    if Length(LabeledEdit1.Text)<>0 then

    begin

    i:=0;

      if (DataM.PrepodaTable.RecNo = count) and

        (AnsiLowerCase(copy(DataM.PrepodaTableFamiliya_P.AsString,

        1,Length(text))) = AnsiLowerCase(text))then

          begin

            DataM.PrepodaTable.First;

            goto da1;

          end;

        while not DataM.PrepodaTable.Eof do

          begin

            DataM.PrepodaTable.Next;

      da1: //метка da1

        if AnsiLowerCase(copy(DataM.PrepodaTableFamiliya_P.AsString,

           1,Length(text))) = AnsiLowerCase(text)then

             break

        else inc(i);

        if i = count+1 then

           begin

             ShowMessage('Не найдено!');

             break;

           end;

        if DataM.PrepodaTable.Eof then

           begin

             DataM.PrepodaTable.First;

             goto da1;

           end;

        end;

    end

    else

      begin

        ShowMessage('Введите данные для поиска!');

        LabeledEdit1.SetFocus;

      end;

 

Теперь вернемся в MainForm, где в главном меню создадим новый пункт, через который мы будем вызывать окно поиска. Дадим ему заголовок «Поиск», а в свойстве Name укажем Find_Menu.

В созданном обработчике напишем:

procedure TForm1.Find_MenuClick(Sender: TObject);

begin

  if DBGrid1.DataSource = DataM.UchenikiSource then

    begin

     FindAllForm := TFindAllForm.Create(Owner);

     FindAllForm.ShowModal;

    end;

  if DBGrid1.DataSource = DataM.PrepodaSource then

    begin

      FindPrepodaForm := TFindPrepodaForm.Create(Owner);

      FindPrepodaForm.ShowModal;

    end;

 

Заключение

 

В ходе выполнения данной курсовой работы мною были изучены новые теоретические основы о создании современного пользовательского интерфейса для языковой школы. В том числе с помощью Borland Delphi 7 создание фильтрации, поиска, сортировки, а также создание удобного интерфейса для пользователя с дополнительными функциями. Усвоил применение офисного пакета Microsoft Office Access для создания базы данных.

 

Список использованной литературы

 

  1. Андерсен В. Базы данных Microsoft Access. Издательство ЭКОМ, 2001.
  2. Васильев A. VBA в Office 2000. Васильев, А. Андреев. - СПб.: Питер, 2001.
  3. Вейскас Дж. Эффективная работа: Microsoft Office Access 2003. Издательский дом Питер, 2005.
  4. Архангельский А.Я. Программирование в Delphi 7. «Издательство БИНОМ», 2002г.
  5. Кандзюба С.П., Громов В.Н. Delphi 7. Базы данных и приложения. Лекции и упражнения. – К.: Издательство «ДинСофт», 2001.
  6. Фаронов В.В. Delphi 6. Учебный курс. Издательство Молгачев С.В., 2001.

 

Приложение А


База данных с помощью  MS Access:

 

 

Рисунок 11 –  Создание базы данных

 

 

 

Приложение Б

Листинг программы :

 

unit Unit1;

 

interface

 

uses

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

  Dialogs, Grids, DBGrids, DBCtrls, StdCtrls, Mask, ExtCtrls, Menus,

  Buttons, ExtDlgs, ComCtrls, ToolWin;

 

type

  TForm1 = class(TForm)

    TableBox: TGroupBox;

    AllInfoBox: TGroupBox;

    DBGrid1: TDBGrid;

    MainMenu1: TMainMenu;

    Books_Menu: TMenuItem;

    Prepod_Item: TMenuItem;

    Ucheniki_Item: TMenuItem;

    N4: TMenuItem;

    Exit_Item: TMenuItem;

    GroupBox3: TGroupBox;

    Label8: TLabel;

    Label9: TLabel;

    Label10: TLabel;

    DBEdit7: TDBEdit;

    DBEdit8: TDBEdit;

    DBEdit9: TDBEdit;

    GroupBox2: TGroupBox;

    Label5: TLabel;

    Label6: TLabel;

    DBEdit5: TDBEdit;

    DBEdit6: TDBEdit;

    GroupBox1: TGroupBox;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    DBEdit4: TDBEdit;

    DBEdit1: TDBEdit;

    DBEdit3: TDBEdit;

    DBEdit2: TDBEdit;

    GroupBox4: TGroupBox;

    Label11: TLabel;

    Label12: TLabel;

    Label13: TLabel;

    Label14: TLabel;

    DBNavigator1: TDBNavigator;

    DBLookupComboBox1: TDBLookupComboBox;

    DBLookupComboBox2: TDBLookupComboBox;

    DBLookupComboBox3: TDBLookupComboBox;

    DBLookupComboBox4: TDBLookupComboBox;

    Panel1: TPanel;

   OpenPictureDialog1: TOpenPictureDialog;

    Add_Item: TMenuItem;

    Edit_Item: TMenuItem;

    Save_Item: TMenuItem;

    CancelEdit_Item: TMenuItem;

    Del_Item: TMenuItem;

    Edit_Menu: TMenuItem;

    PopupMenu1: TPopupMenu;

    EditPop_Menu: TMenuItem;

    AddPop_Item: TMenuItem;

    EditPop_Item: TMenuItem;

    DelPop_Item: TMenuItem;

    N1: TMenuItem;

    LoadFotoPop_Item: TMenuItem;

    DelFotoPop_Item: TMenuItem;

    StatusBar1: TStatusBar;

    DBEdit21: TDBEdit;

    N2: TMenuItem;

    N3: TMenuItem;

    About_Item: TMenuItem;

    Sort_Menu: TMenuItem;

    SortBySur_Item: TMenuItem;

    SortByName_Item: TMenuItem;

    SortByPat_Item: TMenuItem;

    SortOrgsByNaz_Item: TMenuItem;

    SortByKlass_Item: TMenuItem;

    English_Item: TMenuItem;

    Italy_Item: TMenuItem;

    French_Item: TMenuItem;

    DBEdit10: TDBEdit;

    Label7: TLabel;

    Panel2: TPanel;

    GroupBox6: TGroupBox;

    Label18: TLabel;

    Label19: TLabel;

    DBEdit13: TDBEdit;

    DBEdit14: TDBEdit;

    GroupBox7: TGroupBox;

    Label20: TLabel;

    Label21: TLabel;

    DBEdit15: TDBEdit;

    DBEdit16: TDBEdit;

    GroupBox8: TGroupBox;

    Label22: TLabel;

    Label23: TLabel;

    Label24: TLabel;

    DBEdit19: TDBEdit;

    DBEdit18: TDBEdit;

    DBEdit17: TDBEdit;

    DBNavigator2: TDBNavigator;

    DBImage1: TDBImage;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    GroupBox5: TGroupBox;

    Label16: TLabel;

    Label15: TLabel;

    Label17: TLabel;

    DBEdit11: TDBEdit;

    DBEdit12: TDBEdit;

    DBEdit20: TDBEdit;

    DBEdit22: TDBEdit;

    FilterPanel: TPanel;

    FilterUchenikiBox: TGroupBox;

    FilterByFamiliya: TEdit;

    FilterByImya: TEdit;

    FilterByOtchestvo: TEdit;

    FilterByTelefon: TEdit;

    Label25: TLabel;

    Label26: TLabel;

    Label27: TLabel;

    Label28: TLabel;

    FilterUchenikiBtn: TBitBtn;

    FilterUchenikiCancel: TBitBtn;

    Filter_Menu: TMenuItem;

    BitBtn4: TBitBtn;

    FilterPrepodaBox: TGroupBox;

    Label29: TLabel;

    Label32: TLabel;

    Label31: TLabel;

    Label30: TLabel;

    FilterPrepodaBtn: TBitBtn;

    FilterPrepodaCancel: TBitBtn;

    FilterByFamiliya_P: TEdit;

    FilterByImya_P: TEdit;

    FilterByOtchestvo_P: TEdit;

    FilterByPredmet: TEdit;

    BitBtn3: TBitBtn;

    Find_Menu: TMenuItem;

    ToolBar1: TToolBar;

    AddSpBtn: TSpeedButton;

    DelSpBtn: TSpeedButton;

    FindSpBtn: TSpeedButton;

    FilterSpBtn: TSpeedButton;

    TreeSpBtn: TSpeedButton;

    HelpSpBtn: TSpeedButton;

    ToolButton1: TToolButton;

    ToolButton2: TToolButton;

    procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;

      Shift: TShiftState);

    procedure Prepod_ItemClick(Sender: TObject);

    procedure Ucheniki_ItemClick(Sender: TObject);

    procedure DBNavigator1BeforeAction(Sender: TObject;

      Button: TNavigateBtn);

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

    procedure Exit_ItemClick(Sender: TObject);

    procedure Add_ItemClick(Sender: TObject);

    procedure Edit_ItemClick(Sender: TObject);

    procedure Save_ItemClick(Sender: TObject);

    procedure CancelEdit_ItemClick(Sender: TObject);

    procedure Del_ItemClick(Sender: TObject);

    procedure DBNavigator2BeforeAction(Sender: TObject;

      Button: TNavigateBtn);

    procedure AddPop_ItemClick(Sender: TObject);

    procedure EditPop_ItemClick(Sender: TObject);

    procedure DelPop_ItemClick(Sender: TObject);

    procedure DBEdit20Change(Sender: TObject);

    procedure DelFotoPop_ItemClick(Sender: TObject);

    procedure LoadFotoPop_ItemClick(Sender: TObject);

    procedure FormShow(Sender: TObject);

    procedure DBEdit21Change(Sender: TObject);

    procedure About_ItemClick(Sender: TObject);

    procedure SortBySur_ItemClick(Sender: TObject);

    procedure SortByName_ItemClick(Sender: TObject);

    procedure SortByPat_ItemClick(Sender: TObject);

    procedure SortOrgsByNaz_ItemClick(Sender: TObject);

    procedure SortByKlass_ItemClick(Sender: TObject);

    procedure DBGrid1TitleClick(Column: TColumn);

    procedure English_ItemClick(Sender: TObject);

    procedure Italy_ItemClick(Sender: TObject);

    procedure French_ItemClick(Sender: TObject);

    procedure Filter_MenuClick(Sender: TObject);

    procedure FilterPrepodaBtnClick(Sender: TObject);

    procedure FilterPrepodaCancelClick(Sender: TObject);

    procedure CloseUchenikiBtnClick(Sender: TObject);

    procedure FilterUchenikiBtnClick(Sender: TObject);

    procedure FilterUchenikiCancelClick(Sender: TObject);

    procedure FilterByFamiliya_PChange(Sender: TObject);

    procedure FilterByImya_PChange(Sender: TObject);

    procedure FilterByOtchestvo_PChange(Sender: TObject);

    procedure FilterByPredmetChange(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure BitBtn3Click(Sender: TObject);

    procedure BitBtn4Click(Sender: TObject);

    procedure Find_MenuClick(Sender: TObject);

    procedure AddSpBtnClick(Sender: TObject);

    procedure DelSpBtnClick(Sender: TObject);

    procedure FindSpBtnClick(Sender: TObject);

    procedure FilterSpBtnClick(Sender: TObject);

  private

    { Private declarations }

    procedure ShowHint(Sender: TObject) ;

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

  TableKind: string;

 

implementation

 

uses DataUnit, AboutUnit, HelloUnit, FindAllUnit, FindOrgsUnit;

 

 

{$R *.dfm}

 

procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;

  Shift: TShiftState);

begin

//проверяем,  нажата ли клавиша "вниз"

  if (Key = VK_DOWN) then

  begin

    //приостанавливаем автоматическое обновление источника данных при

    DataM.UchenikiTable.DisableControls;

    //переходе  на следующую запись

    DataM.UchenikiTable.Next;

    //проверяем,  если конец таблицы, то

    if DataM.UchenikiTable.EOF then

      //блокируем действие клавиши

      Key := 0

    else

    //в  противном случае переходим на  предыдущую запись

      DataM.UchenikiTable.Prior;

    //разрешаем  обновление источника данных

    DataM.UchenikiTable.EnableControls;

  end;

end;

 

procedure TForm1.Prepod_ItemClick(Sender: TObject);

begin

DBGrid1.DataSource := DataM.PrepodaSource; //присваиваем нужный источник

GroupBox2.Visible := true;

    Panel1.Visible := false;

  Panel2.Visible := true;

  if DBGrid1.DataSource = DataM.PrepodaSource then

    begin

      Panel1.Visible := false;

      Panel2.Visible := true;

    end;

DBGrid1.DataSource := DataM.PrepodaSource;

LoadFotoPop_Item.Visible := true;

DelFotoPop_Item.Visible := true;

 

 

SortBySur_Item.Visible := true;

  SortByName_Item.Visible := true;

  SortByPat_Item.Visible := true;

  SortOrgsByNaz_Item.Visible := true;

  SortByKlass_Item.Visible := false;

end;

 

procedure TForm1.Ucheniki_ItemClick(Sender: TObject);

begin

DBGrid1.DataSource := DataM.UchenikiSource; //присваиваем нужный источник

GroupBox2.Visible := true;

  Panel1.Visible := true;

  Panel2.Visible := false;

  if DBGrid1.DataSource = DataM.UchenikiSource then

    begin

      Panel1.Visible := true;

      Panel2.Visible := false;

    end;

 

DBGrid1.DataSource := DataM.UchenikiSource;

LoadFotoPop_Item.Visible := false;

DelFotoPop_Item.Visible := false;

SortBySur_Item.Visible := true;

  SortByName_Item.Visible := true;

  SortByPat_Item.Visible := true;

  SortOrgsByNaz_Item.Visible := true;

  SortByKlass_Item.Visible := true;

end;

 

procedure TForm1.DBNavigator1BeforeAction(Sender: TObject;

  Button: TNavigateBtn);

begin

if Button = nbDelete then

begin

Del_ItemClick(Sender); //вызываем процедуру удаления

Abort;

end;

end;

 

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

if OpenPictureDialog1.Execute then //запускаем диалог

begin

DataM.PrepodaTable.Edit; //открываем  таблицу для редактирования

//загружаем фотографию

DataM.PrepodaTableFoto.LoadFromFile(OpenPictureDialog1.FileName);

DataM.PrepodaTable.Post; //сохраняем изменения

BitBtn2.Enabled := true; //деактивизируем кнопку

end;

end;

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

if MessageBox(0,PChar('Вы действительно хотите удалить фотографию записи "'+DataM.PrepodaTableFamiliya_P.AsString + ' ' + DataM.PrepodaTableImya_P.AsString + ' ' + DataM.PrepodaTableOtchestvo_P.AsString +'"?'), 'Внимание!',

MB_YESNOCANCEL + MB_ICONQUESTION) = id_YES then

begin

DataM.PrepodaTable.Edit;

DataM.PrepodaTableFoto.Clear; //очищаем поле Foto

DataM.PrepodaTable.Post;

BitBtn2.Enabled := false;

BitBtn1.SetFocus; //устанавливаем  фокус на кнопку загрузки

end;

end;

 

procedure TForm1.Exit_ItemClick(Sender: TObject);

begin

Close;

end;

 

procedure TForm1.Add_ItemClick(Sender: TObject);

begin

if DBGrid1.DataSource = DataM.UchenikiSource then

begin

DataM.UchenikiTable.Insert; //добавляем новую строку

DBEdit1.ReadOnly := false;

DBEdit1.SetFocus; //устанавливаем фокус ввода

end;

if DBGrid1.DataSource = DataM.PrepodaSource then

begin

DataM.PrepodaTable.Insert;

DBEdit10.ReadOnly := false; //снимаем режим только для чтения

DBEdit10.SetFocus;

end;

end;

 

procedure TForm1.Edit_ItemClick(Sender: TObject);

begin

if DBGrid1.DataSource = DataM.UchenikiSource then

begin

DBEdit1.ReadOnly := false;

DBEdit1.SetFocus;

end;

if DBGrid1.DataSource = DataM.PrepodaSource then

begin

DBEdit10.ReadOnly := false;

DBEdit10.SetFocus;

end;

end;

 

procedure TForm1.Save_ItemClick(Sender: TObject);

begin

if DBGrid1.DataSource = DataM.UchenikiSource then

if DataM.UchenikiTable.Modified then //проверяем наличие изменений

if Application.MessageBox(PChar('Вы желаете сохранить изменения  в справочнике?'), 'Внимание!', MB_YESNOCANCEL +MB_ICONQUESTION) = id_YES then

DataM.UchenikiTable.Post;

if DBGrid1.DataSource = DataM.PrepodaSource then

if DataM.PrepodaTable.Modified then

if Application.MessageBox(PChar('Вы желаете сохранить изменения в справочнике?'), 'Внимание!', MB_YESNOCANCEL +  MB_ICONQUESTION) = id_YES then

DataM.PrepodaTable.Post;

end;

 

procedure TForm1.CancelEdit_ItemClick(Sender: TObject);

begin

if DBGrid1.DataSource = DataM.UchenikiSource then

if DataM.UchenikiTable.Modified then

DataM.UchenikiTable.Cancel; //отменяем изменения, если они есть

if DBGrid1.DataSource = DataM.PrepodaSource then

if DataM.PrepodaTable.Modified then

Информация о работе Компьютерные системы