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

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

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

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

Содержание

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

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

Курсовая.docx

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

  then Key:=#0;

end;

 

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

begin

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

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

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

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

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

  then Key:=#0;

end;

 

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

begin

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

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

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

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

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

  then Key:=#0;

end;

 

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

procedure TForm3.BitBtn2Click(Sender: TObject);

begin

  Form3.LabeledEdit1.Clear;

  Form3.LabeledEdit2.Clear;

  Form3.LabeledEdit3.Clear;

  Form3.LabeledEdit4.Clear;

  Form3.LabeledEdit5.Clear;

  Form3.LabeledEdit6.Clear;

  Form3.LabeledEdit7.Clear;

  Form3.ComboBox1.ItemIndex:=0;

end;

 

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

procedure TForm3.BitBtn1Click(Sender: TObject);

var

  str: String;

begin

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

 

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

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

 

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

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

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

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

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

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

  if Form3.LabeledEdit7.Text <> '' then str:= str + ' AND price <='+ Form3.LabeledEdit7.Text;

 

  str:=str+';';

 

  Unit5.DataModule5.ADOQuery1.SQL.Clear;

  Unit5.DataModule5.ADOQuery1.SQL.Add(str);

  Unit5.DataModule5.ADOQuery1.Active:=True;

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

end;

 

//Сортировка gred

procedure TForm3.DBGridEh1TitleClick(Column: TColumnEh);

var

  i:integer;

begin

  if Unit5.DataModule5.ADOQuery1.Active=False then exit;

  if Unit5.DataModule5.ADOQuery1.RecordCount=0 then exit;

  if Column.Title.SortMarker=smNoneEh then

    begin

      Unit5.DataModule5.ADOQuery1.Sort:=Column.FieldName+'';

      Column.Title.SortMarker:=smUpEh;

    end

  else

    if Column.Title.SortMarker=smUpEh then

      begin

        Unit5.DataModule5.ADOQuery1.Sort:=Column.FieldName+' DESC' ;

        Column.Title.SortMarker:=smDownEh;

      end

    else

      if Column.Title.SortMarker=smDownEh then

        begin

          Unit5.DataModule5.ADOQuery1.Sort:='';

          Column.Title.SortMarker:=smNoneEh;

        end;

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

  if DBGridEh1.Columns[i]<>Column then

  DBGridEh1.Columns[i].Title.SortMarker:=smNoneEh;

end;

 

procedure TForm3.FormCreate(Sender: TObject);

begin

  Form3.LabeledEdit1.MaxLength:=20;

  Form3.LabeledEdit2.MaxLength:=30;

  Form3.LabeledEdit3.MaxLength:=30;

  Form3.LabeledEdit4.MaxLength:=6;

  Form3.LabeledEdit5.MaxLength:=6;

  Form3.LabeledEdit6.MaxLength:=6;

  Form3.LabeledEdit7.MaxLength:=6;

end;

 

//Поиск меню

procedure TForm3.N8Click(Sender: TObject);

var

  str: String;

begin

  if Form6.ShowModal = mrOk then

    begin

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

 

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

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

 

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

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

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

        if Form6.Edit4.Text <> '' then str:= str + ' AND price >='+ Form6.Edit4.Text;

        if Form6.Edit5.Text <> '' then str:= str + ' AND price <='+ Form6.Edit5.Text;

        if Form6.Edit6.Text <> '' then str:= str + ' AND price >='+ Form6.Edit6.Text;

        if Form6.Edit7.Text <> '' then str:= str + ' AND price <='+ Form6.Edit7.Text;

 

        str:=str+';';

 

        Unit5.DataModule5.ADOQuery1.SQL.Clear;

        Unit5.DataModule5.ADOQuery1.SQL.Add(str);

        Unit5.DataModule5.ADOQuery1.Active:=True;

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

    end;

end;

 

//Одобрить заявку

procedure TForm3.ListBox1Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Edit;

  Unit5.DataModule5.ADOQuery1.FieldByName('kol').AsInteger:=k2;

  Unit5.DataModule5.ADOQuery1.Active:=True;

  Unit5.DataModule5.ADOQuery1.Post;

  Form3.ListBox1.DeleteSelected;

  ShowMessage('Было куплено: '+IntToStr(n)+'шт. Осталось в наличии: '+IntToStr(k2)+'шт.');

end;

 

//О программе

procedure TForm3.N14Click(Sender: TObject);

begin

  Form12.Show;

end;

 

//Справка

procedure TForm3.N13Click(Sender: TObject);

begin

  Form13.Show;

end;

 

//Сортировка автор ASC

procedure TForm3.RadioButton1Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[author] ASC';

end;

 

//Сортировка автор DESC

procedure TForm3.RadioButton2Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[author] DESC';

end;

 

//Сортировка название ASC

procedure TForm3.RadioButton3Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[title] ASC';

end;

 

//Сортировка название DESC

procedure TForm3.RadioButton4Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[title] DESC';

end;

 

//Сортировка категория ASC

procedure TForm3.RadioButton5Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[kateg] ASC';

end;

 

//Сортировка категория DESC

procedure TForm3.RadioButton6Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[kateg] DESC';

end;

 

//Сортировка цена ASC

procedure TForm3.RadioButton7Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[price] ASC';

end;

 

//Сортировка цена DESC

procedure TForm3.RadioButton8Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[price] DESC';

end;

 

//Сортировка наличие ASC

procedure TForm3.RadioButton9Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[nal] ASC';

end;

 

//Сортировка наличие DESC

procedure TForm3.RadioButton10Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[nal] DESC';

end;

 

//Сортировка количество ASC

procedure TForm3.RadioButton11Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[kol] ASC';

end;

 

//Сортировка количество DESC

procedure TForm3.RadioButton12Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[kol] DESC';

end;

 

procedure TForm3.Timer3Timer(Sender: TObject);

begin

  Form3.ListBox1.Refresh;

end;

 

end.

 

Форма пользователя «Покупатель»

 

unit Unit4;

 

var

  Form4: TForm4;

  s: String;

  n, k1, k2: Integer;

 

implementation

 

uses Unit1, Unit2, Unit3, Unit5, Unit6, Unit7, Unit11, Unit12, Unit13,

  Unit14, Unit15;

 

{$R *.dfm}

 

//Выход

procedure TForm4.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 TForm4.N5Click(Sender: TObject);

begin

  Form4.Close;

  Form1.Show;

  Form1.Width:=220;

  Form1.Height:=225;

  Form1.BitBtn2.Height:=41;

  Form1.BitBtn2.Width:=161;

  Form1.BitBtn2.Top:=72;

  Form1.BitBtn2.Left:=216;

  Form1.LabeledEdit1.Visible:=False;

  Form1.BitBtn2.Visible:=False;

  Form1.RadioButton3.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 TForm4.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 TForm4.N3Click(Sender: TObject);

begin

  PrintDBGridEh1.Preview;

end;

 

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

procedure TForm4.Timer1Timer(Sender: TObject);

begin

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

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

  Application.ProcessMessages;

end;

 

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

procedure TForm4.Timer2Timer(Sender: TObject);

begin

  try

    Unit5.DataModule5.ADOQuery1.Refresh;

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

    Unit5.DataModule5.ADOQuery1.Refresh;

  except

  on e:Exception do

  end;

 

end;

 

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

procedure TForm4.N12Click(Sender: TObject);

begin

  try

    Unit5.DataModule5.ADOQuery1.Refresh;

  except

  on e:Exception do

  end;

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

end;

 

//Все записи

procedure TForm4.N11Click(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;

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

end;

 

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

begin

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

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

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

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

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

  then Key:=#0;

end;

 

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

begin

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

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

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

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

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

  then Key:=#0;

end;

 

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

begin

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

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

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

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

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

  then Key:=#0;

end;

 

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

begin

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

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

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

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

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

  then Key:=#0;

end;

 

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

procedure TForm4.BitBtn2Click(Sender: TObject);

begin

  Form4.LabeledEdit1.Clear;

  Form4.LabeledEdit2.Clear;

  Form4.LabeledEdit3.Clear;

  Form4.LabeledEdit4.Clear;

  Form4.LabeledEdit5.Clear;

  Form4.LabeledEdit6.Clear;

  Form4.LabeledEdit7.Clear;

  Form4.ComboBox1.ItemIndex:=0;

end;

 

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

procedure TForm4.BitBtn1Click(Sender: TObject);

var

  str: String;

begin

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

 

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

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

 

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

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

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

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

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

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

  if Form4.LabeledEdit7.Text <> '' then str:= str + ' AND price <='+ Form4.LabeledEdit7.Text;

 

  str:=str+';';

 

  Unit5.DataModule5.ADOQuery1.SQL.Clear;

  Unit5.DataModule5.ADOQuery1.SQL.Add(str);

  Unit5.DataModule5.ADOQuery1.Active:=True;

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

end;

 

//Сортировка gred

procedure TForm4.DBGridEh1TitleClick(Column: TColumnEh);

var

  i:integer;

begin

  if Unit5.DataModule5.ADOQuery1.Active=False then exit;

  if Unit5.DataModule5.ADOQuery1.RecordCount=0 then exit;

  if Column.Title.SortMarker=smNoneEh then

    begin

      Unit5.DataModule5.ADOQuery1.Sort:=Column.FieldName+'';

      Column.Title.SortMarker:=smUpEh;

    end

  else

    if Column.Title.SortMarker=smUpEh then

      begin

        Unit5.DataModule5.ADOQuery1.Sort:=Column.FieldName+' DESC' ;

        Column.Title.SortMarker:=smDownEh;

      end

    else

      if Column.Title.SortMarker=smDownEh then

        begin

          Unit5.DataModule5.ADOQuery1.Sort:='';

          Column.Title.SortMarker:=smNoneEh;

        end;

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

  if DBGridEh1.Columns[i]<>Column then

  DBGridEh1.Columns[i].Title.SortMarker:=smNoneEh;

end;

 

procedure TForm4.FormCreate(Sender: TObject);

begin

  Form4.LabeledEdit1.MaxLength:=20;

  Form4.LabeledEdit2.MaxLength:=30;

  Form4.LabeledEdit3.MaxLength:=30;

  Form4.LabeledEdit4.MaxLength:=6;

  Form4.LabeledEdit5.MaxLength:=6;

  Form4.LabeledEdit6.MaxLength:=6;

  Form4.LabeledEdit7.MaxLength:=6;

end;

 

//Поиск меню

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