Разработка программы для автоматизации работы книжного каталога

Автор работы: Пользователь скрыл имя, 02 Декабря 2012 в 19:04, курсовая работа

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

Целю данной курсовой работы является разработка эффективного программного обеспечения для автоматизации работы книжного каталога.
Для достижения этой цели нужно выполнить две задачи: спроектировать базу данных и разработать дружественный интерфейс.

Содержание

ВВЕДЕНИЕ 4
1 Постановка задачи 6
2 Проектирование структуры базы данных 7
3 Обоснование выбора среды программирования 9
4 Описание методов решения задач, алгоритмов, структуры программы 11
5 Руководство программиста 13
6 Руководство пользователя 14
ЗАКЛЮЧЕНИЕ 32
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 33
ПРИЛОЖЕНИЕ 34

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

Курсовая.docx

— 2.00 Мб (Скачать файл)
  • либо через меню программы: «Меню», «Свойства», «Функции», «Справка» (Рисунок 45);

Рисунок 45 - Меню программы пользователя «Покупатель»

  • либо через различные вкладки программы: «Поиск», «Сортировка», «Покупка» (Рисунок 46);

Рисунок 46 – Вкладки управления пользователя «Покупатель»

  • либо контекстным меню таблицы базы данных: «Купить» (Рисунок 47).

Рисунок 47 – Контекстное меню пользователя «Покупатель»

Также на форме в режиме покупатель предусмотрен показ следующей информации:

даты и  времени дня (Рисунок 48);

Рисунок 48 – Дата и время

количество  записей в базе данных «Книжный каталог» (Рисунок 49), это количество изменяется в зависимости от манипулирования данными, а именно поиске записей.

Рисунок 49 – Количество записей

Функции пользователя «Покупатель» практически  все совпадают с функциями  пользователя «Продавец», но существует отличие, это отличие в функции «Покупка».

С помощью  вкладки «Покупка» (Рисунок 50) может подать заявку на приобретение того или иного экземпляра из книжного каталога. Для этого необходимо:

Рисунок 50 – Вкладка «Покупка»

  • выбрать книгу, нажатием левой кнопки мыши по данному экземпляру;
  • указать количество книг данного экземпляра (Рисунок 51);

Рисунок 51 – Указание количество желаемых книг экземпляра

  • нажать кнопку «Добавить в корзину» (Рисунок 52), если вы хотите заказать другие книги (помимо уже заказанных), то повторяете предыдущие операции необходимое количество раз (по итогам данных операций должен сформироваться список книг в корзине);

Рисунок 52 – Кнопка «Добавить в корзину»

  • после того, как список книг в корзине сформировался, выделите заявку и нажмите кнопку «Отправить заявку» (Рисунок 53), появится уведомление «Ваша заявка отправлена продавцу».

Рисунок 53 – Сформированный список заявок, кнопка «Отправить заявку»

Также в  корзине управлять заявками можно  с помощью контекстного меню корзины, а именно:

  • Отправить заявку: аналогична кнопке «Отправить заявку»;
  • Удалить заявку: удаляется только та заявка, которая выделена;
  • Удалить все: удаляются все заявки, которые были в корзине.

 

 

 

Для каждого пользователя имеется своя собственная справочная система. Она находится в элементе меню «Справка», в элементе «Помощь» (Рисунок 54).

Рисунок 54 – меню «Помощь»

Информация в  справочной системе представлена в виде тестовой справки (Рисунок 55) и видео справки (Рисунок 56).

Рисунок 55 – Форма видео справки

Рисунок 56 – Форма текстовой справки

ЗАКЛЮЧЕНИЕ

В ходе выполнения курсовой работы была достигнута цель работы по разработке эффективного программного обеспечения для автоматизации работы книжного каталога. Успешно реализованы все поставленные задачи, а именно:

  • Спроектирована база данных книжного каталога;
  • Разработан дружественный интерфейс для работы с БД.

Также были изучены новые компоненты среды разработки программного обеспечения Borland Delphi 7 и библиотека компонентов Ehlib. База данных программного продукта спроектирована с учётом современных требований, устойчива к ошибкам.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. http://ru.wikipedia.org/wiki/Разработка_программного_обеспечения
  2. http://www.delphisources.ru/forum/showthread.php?t=3748
  3. http://ru.wikipedia.org/wiki/База _данных
  4. http://office.microsoft.com/ru-ru/training/RZ006118141.aspx?section=3
  5. http://www.rugost.com/index.php?option=com_content&task=view&id=64&Itemid=50
  6. Орлов С. А.Технологии разработки программного  обеспечения: разработка сложных программных систем : учеб. для вузов / С. А. Орлов- СПб.: Питер, 2004
  7. Брауде Э. Дж. Технология разработки программного обеспечения, Питер, 2004
  8. Маркс. С.Р. Технология разработки программного обеспечения, Екатеринбург, 2011

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРИЛОЖЕНИЕ

Форма авторизации  пользователей

 

unit Unit1;

 

var

  Form1: TForm1;

 

implementation

 

uses Unit2, Unit3, Unit4;

 

{$R *.dfm}

 

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

  CanClose:=MessageDlg('Вы действитеьно хотите выйти?',mtConfirmation,[mbYes,mbNo],0)=mrYes;

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

  Form1.Width:=220;

  Form1.Height:=225;

end;

 

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

  if RadioButton1.Checked=True then

    begin

      Form1.Height:=225;

      Form1.Width:=400;

      Form1.LabeledEdit1.Visible:=True;

      Form1.BitBtn2.Visible:=True;

      Form1.LabeledEdit1.Clear;

    end;

 

  if RadioButton2.Checked=True then

    begin

      Form1.Height:=225;

      Form1.Width:=400;

      Form1.LabeledEdit1.Visible:=True;

      Form1.BitBtn2.Visible:=True;

      Form1.LabeledEdit1.Clear;

    end;

 

  if RadioButton3.Checked=True then

    begin

      Form1.Height:=270;

      Form1.Width:=220;

      Form1.BitBtn2.Visible:=True;

      Form1.BitBtn2.Width:=177;

      Form1.BitBtn2.Left:=16;

      Form1.BitBtn2.Top:=184;

    end;

 

  if (RadioButton1.Checked=False) and (RadioButton2.Checked=False) and (RadioButton3.Checked=False) then

    begin

      Application.MessageBox('Выберите пожалуйста  пользователя!','Предупреждение!');

    end;

end;

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

  if Form1.RadioButton1.Checked=True then

    begin

      if (Length(Form1.LabeledEdit1.Text)>0) then

        begin

          if (Form1.LabeledEdit1.Text='admin') then

            begin

              Form2.Show;

              Form1.Hide;

              Form1.LabeledEdit1.Clear;

              Form2.Label3.Caption:='Количество записей : ' + InTtoStr(Form2.DBGridEh1.DataSource.DataSet.RecordCount);

            end

          else

            Application.MessageBox('Неверный пароль!','Предупреждение!');

            Form1.LabeledEdit1.Clear;

        end

      else

        Application.MessageBox('Пароль не введен!','Предупреждение!');

        Form1.LabeledEdit1.Clear;

    end;

 

  if Form1.RadioButton2.Checked=True then

    begin

      if (Length(Form1.LabeledEdit1.Text)>0) then

        begin

          if (Form1.LabeledEdit1.Text='pro') then

            begin

              Form3.Show;

              Form1.Hide;

              Form1.LabeledEdit1.Clear;

              Form3.Label3.Caption:='Количество записей : ' + InTtoStr(Form3.DBGridEh1.DataSource.DataSet.RecordCount);

            end

          else

            Application.MessageBox('Неверный пароль!','Предупреждение!');

            Form1.LabeledEdit1.Clear;

        end

      else

        Application.MessageBox('Пароль не введен!','Предупреждение!');

        Form1.LabeledEdit1.Clear;

    end;

 

  if Form1.RadioButton3.Checked=True then

    begin

      Form4.Show;

      Form1.Hide;

      Form4.Label3.Caption:='Количество записей : ' + InTtoStr(Form4.DBGridEh1.DataSource.DataSet.RecordCount);

    end;

 

end;

 

end.

 

Форма Администратора

 

unit Unit2;

 

var

  Form2: TForm2;

 

implementation

 

uses Unit1, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9, Unit10,

  Unit12, Unit13, Unit14, Unit15;

 

{$R *.dfm}

 

//Выход

procedure TForm2.N7Click(Sender: TObject);

var

  R: Word; // переменная, в которой хранится результат

begin

  R:=MessageDlg('Вы действитеьно  хотите выйти?',mtConfirmation,[mbYes,mbNo],0);

  if R=mrYes then // если нажата кнопка Yes

    begin

      Application.Terminate

    end;

  if R=mrNo then // если нажата кнопка No

    begin

      // завершаем работу программы без  сохранения

    end;

end;

 

//Смена пользователя

procedure TForm2.N5Click(Sender: TObject);

begin

  Form2.Close;

  Form1.Show;

  Form1.Width:=220;

  Form1.Height:=225;

  Form1.LabeledEdit1.Visible:=False;

  Form1.BitBtn2.Visible:=False;

  Form1.RadioButton1.Checked:=False;

  if Form15.Showing then

    begin

      Form15.Close;

    end;

  if Form14.Showing then

    begin

      Form14.Close;

    end;

  if Form13.Showing then

    begin

      Form13.Close;

    end;

  if Form12.Showing then

    begin

      Form12.Close;

    end;

end;

 

//Excel

procedure TForm2.Excel1Click(Sender: TObject);

var

  Ex: Variant;

  row, col: Integer;

begin

  DBGridEh1.DataSource.DataSet.First;

  Ex:=CreateOleObject('Excel.Application');

  Ex.Workbooks.Add;

  Ex.WorkBooks[1].WorkSheets[1].Name := 'Отчет';

  for row :=0 to DBGridEh1.DataSource.DataSet.RecordCount-1 do

    begin

      if row=0 then DBGridEh1.DataSource.DataSet.First else DBGridEh1.DataSource.DataSet.Next;

      for col :=0 to DBGridEh1.Columns.Count-1 do

        begin

          Ex.WorkBooks[1].WorkSheets[1].Cells[2,col+1] := DBGridEh1.Columns[col].Title.Caption;

          Ex.WorkBooks[1].WorkSheets[1].Cells[row+3,col+1] := DBGridEh1.DataSource.DataSet.Fields[col].AsString;

          Ex.WorkBooks[1].WorkSheets[1].Cells[row+3,1] := row+1;

        end ;

    end;

  Ex.Visible := True;

  Unit5.DataModule5.ADOQuery1.First;

end;

 

//Печать

procedure TForm2.N3Click(Sender: TObject);

begin

  PrintDBGridEh1.Preview;

end;

 

//Дата и время

procedure TForm2.Timer1Timer(Sender: TObject);

begin

  Label1.Caption:='Время : ' + TimeToStr(time);

  Label2.Caption:='Дата : '+ DateToStr(date);

  Application.ProcessMessages;

end;

 

//Обновить автомат

procedure TForm2.Timer2Timer(Sender: TObject);

begin

  try

    Unit5.DataModule5.ADOQuery1.Refresh;

    Form2.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

    Unit5.DataModule5.ADOQuery1.Refresh;

  except

  on e:Exception do

  end;

end;

 

//Обновить меню

procedure TForm2.N11Click(Sender: TObject);

begin

  try

    Unit5.DataModule5.ADOQuery1.Refresh;

  except

  on e:Exception do

  end;

  Form2.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

end;

 

//Все записи

procedure TForm2.N10Click(Sender: TObject);

begin

  try

    Unit5.DataModule5.ADOQuery1.SQL.Clear;

    Unit5.DataModule5.ADOQuery1.SQL.Add('SELECT * FROM books');

    Unit5.DataModule5.ADOQuery1.Active:=True;

  except

  on e:Exception do

  end;

  Form2.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

end;

 

procedure TForm2.LabeledEdit4KeyPress(Sender: TObject; var Key: Char);

begin

  if Key in ['А'..'Я']+['а'..'я']+['a'..'z']+['A'..'Z']+

  ['`']+['~']+['!']+['@']+['"']+['#']+['№']+[';']+['$']+

  ['%']+['^']+[':']+['&']+['?']+['(']+[')']+['-']+['_']+

  ['=']+['+']+['/']+[',']+['.']+['Ё']+['ё']+['|']+['*']+

  ['{']+['}']+['[']+[']']+['<']+['>']+[' ']

  then Key:=#0;

end;

 

procedure TForm2.LabeledEdit5KeyPress(Sender: TObject; var Key: Char);

begin

  if Key in ['А'..'Я']+['а'..'я']+['a'..'z']+['A'..'Z']+

  ['`']+['~']+['!']+['@']+['"']+['#']+['№']+[';']+['$']+

  ['%']+['^']+[':']+['&']+['?']+['(']+[')']+['-']+['_']+

  ['=']+['+']+['/']+[',']+['.']+['Ё']+['ё']+['|']+['*']+

  ['{']+['}']+['[']+[']']+['<']+['>']+[' ']

  then Key:=#0;

end;

 

procedure TForm2.LabeledEdit6KeyPress(Sender: TObject; var Key: Char);

begin

  if Key in ['А'..'Я']+['а'..'я']+['a'..'z']+['A'..'Z']+

  ['`']+['~']+['!']+['@']+['"']+['#']+['№']+[';']+['$']+

  ['%']+['^']+[':']+['&']+['?']+['(']+[')']+['-']+['_']+

  ['=']+['+']+['/']+[',']+['.']+['Ё']+['ё']+['|']+['*']+

  ['{']+['}']+['[']+[']']+['<']+['>']+[' ']

  then Key:=#0;

end;

 

procedure TForm2.LabeledEdit7KeyPress(Sender: TObject; var Key: Char);

begin

  if Key in ['А'..'Я']+['а'..'я']+['a'..'z']+['A'..'Z']+

  ['`']+['~']+['!']+['@']+['"']+['#']+['№']+[';']+['$']+

  ['%']+['^']+[':']+['&']+['?']+['(']+[')']+['-']+['_']+

  ['=']+['+']+['/']+[',']+['.']+['Ё']+['ё']+['|']+['*']+

  ['{']+['}']+['[']+[']']+['<']+['>']+[' ']

  then Key:=#0;

end;

 

//Очистить поиск

procedure TForm2.BitBtn2Click(Sender: TObject);

begin

  Form2.LabeledEdit1.Clear;

  Form2.LabeledEdit2.Clear;

  Form2.LabeledEdit3.Clear;

  Form2.LabeledEdit4.Clear;

  Form2.LabeledEdit5.Clear;

  Form2.LabeledEdit6.Clear;

  Form2.LabeledEdit7.Clear;

  Form2.ComboBox1.ItemIndex:=0;

end;

 

//Поиск форма

procedure TForm2.BitBtn1Click(Sender: TObject);

var

  str: String;

begin

  str:= 'SELECT * FROM books WHERE 1=1 ' ;

 

  if Form2.ComboBox1.Itemindex = 1 then str:= str + ' AND nal Like ''%Имеется%''';

  if Form2.ComboBox1.Itemindex = 2 then str:= str + ' AND nal Like ''%Нет в наличии%''';

 

  if Form2.LabeledEdit1.Text <> '' then str:= str + ' AND author LIKE "%'+ Form2.LabeledEdit1.Text+'%" ';

  if Form2.LabeledEdit2.Text <> '' then str:= str + ' AND title LIKE "%'+ Form2.LabeledEdit2.Text+'%" ';

  if Form2.LabeledEdit3.Text <> '' then str:= str + ' AND kateg LIKE "%'+ Form2.LabeledEdit3.Text+'%" ';

  if Form2.LabeledEdit4.Text <> '' then str:= str + ' AND price >='+ Form2.LabeledEdit4.Text;

  if Form2.LabeledEdit5.Text <> '' then str:= str + ' AND price <='+ Form2.LabeledEdit5.Text;

  if Form2.LabeledEdit6.Text <> '' then str:= str + ' AND price >='+ Form2.LabeledEdit6.Text;

Информация о работе Разработка программы для автоматизации работы книжного каталога