Автор работы: Пользователь скрыл имя, 21 Ноября 2010 в 18:16, Не определен
Программа позволяет вести учет абитуриентов в Делфи
Справа
от навигатора 2, находятся две метки,
которые служат для вывода отчетов.
«Отчет» выводит детальную
Далее расположена кнопка «Количество по специальностям», нажатие на которую приводит к выводу в сетке3 двух столбцов s_code и total. В первом столбце выводится код специальности, а во втором – количество абитуриентов.
Нажав метку «О программе…» можно посмотреть информацию о разработчике.
Нажатие
метки «Выход» завершает работу
программу с сохранением
Если были пропущены обязательные данные (в данном случае за этим следит BDE автоматически), то программа остановит свою работу и запись не будет добавлена до тех пор, пока не будут введены правильные.
Все элементы формы снабжены поясняющими надписями и всплывающими подсказками, и с ней очень просто работать.
Данная программа разрабатывалась с использованием системы быстрой разработки программ (IDE) Delphi 5. Минимальные требования для работы: 256 Мб оперативной памяти, частота процессора 666 МГц, операционная система Windows 9x,Me,XP. Для работы программы требуется поддержка BDE, в связи с этим можно рекомендовать увеличение оперативной памяти.
Таблица 3. Сообщения программы
Сообщение программы | Тип сообщения | Действия оператора |
Не указано условие фильтрации! | Предупреждение | Ввести условие или оставить по умолчанию. Во втором случае выведутся все записи. |
Неправильное использование фильтра! | Ошибка | Правильно ввести условие фильтрации. |
Не получилось выполнить SQL запрос! | Ошибка | Ввести правильный запрос. |
Оценка допустима только от 2 до 5! | Перехват ошибки. | Ввести правильную оценку. |
Заключение
В данном курсовом проекте были выполнены все поставленные задачи в соответствии с техническим заданием.
Определены состав и структура данных в виде 2-х связанных таблиц. Определены методы решения задач, разработаны SQL-запросы для выборки данных из БД, разработана программа в средстве разработки Borland Delphi. Описаны компоненты, использовавшиеся для разработки программы.
Документированы возможности программы, разработано руководство пользователя.
Приложение А
Схема данных
Приложение Б
Схема работы
программы
Приложение В
Текст программы
a.pas
unit a;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, ExtCtrls,
Db, DBTables, DBCtrls, StdCtrls;
type
Ta_f = class(TForm)
Panel2: TPanel;
Panel3: TPanel;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
DBNavigator1: TDBNavigator;
Label1: TLabel;
Panel1: TPanel;
DBNavigator2: TDBNavigator;
DBLookupComboBox1: TDBLookupComboBox;
RadioGroup1: TRadioGroup;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
Label4: TLabel;
DBGrid3: TDBGrid;
Label5: TLabel;
Label6: TLabel;
Label8: TLabel;
Label9: TLabel;
Button1: TButton;
Label7: TLabel;
procedure DBLookupComboBox1Enter(Sender: TObject);
procedure
DBLookupComboBox1CloseUp(
procedure Label4Click(Sender: TObject);
procedure DBGrid2TitleClick(Column: TColumn);
procedure Label3Click(Sender: TObject);
procedure Label6Click(Sender: TObject);
procedure Label8Click(Sender: TObject);
procedure Label9Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Label7Click(Sender: TObject);
procedure FormPaint(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
a_f: Ta_f;
implementation
uses a_r, dm_u, a_r2, a_about;
{$R *.DFM}
procedure Ta_f.DBLookupComboBox1Enter(
begin
dm.Table2.MasterSource:=Nil;
dm.Table2.MasterFields:='';
dm.Table2.IndexName:='';
end;
procedure Ta_f.DBLookupComboBox1CloseUp(
begin
dm.Table2.MasterSource:=dm.
dm.Table2.MasterFields:='S_id'
dm.Table2.IndexName:='a_index'
end;
procedure Ta_f.Label4Click(Sender: TObject);
var
filter: string;
begin
if Edit1.Text=''
then
begin
ShowMessage('Не указано условие фильтрации!');
dm.Table2.Filtered:=False;
Edit1.SetFocus;
Exit;
end;
if RadioGroup1.ItemIndex=0
then
filter:='A_surname';
if RadioGroup1.ItemIndex=1
then
filter:='A_physic';
try
dm.Table2.Filter:=filter+
dm.Table2.Filtered:=True;
except
ShowMessage('Неправильное использование фильтра!');
Edit1.SetFocus;
Edit1.Text:='';
Exit;
end;
end;
procedure Ta_f.DBGrid2TitleClick(Column: TColumn);
begin
try
if column.FieldName='A_surname'
then
begin
dm.Query1.Close;
dm.Query1.SQL.Clear;
dm.Query1.SQL.add('select A_surname,A_math,A_physic,A_
dm.Query1.Open;
end;
if column.FieldName='A_math'
then
begin
dm.Query1.Close;
dm.Query1.SQL.Clear;
dm.Query1.SQL.add('select A_math,A_surname,A_physic,A_
dm.Query1.Open;
end;
if column.FieldName='A_physic'
then
begin
dm.Query1.Close;
dm.Query1.SQL.Clear;
dm.Query1.SQL.add('select A_physic,A_surname,A_math,A_
dm.Query1.Open;
end;
if column.FieldName='A_
then
begin
dm.Query1.Close;
dm.Query1.SQL.Clear;
dm.Query1.SQL.add('select A_composition,A_surname,A_
dm.Query1.Open;
end;
except
ShowMessage('Не получилось выполнить SQL запрос!');
end;
end;
procedure Ta_f.Label3Click(Sender: TObject);
begin
try
dm.Query1.Close;
dm.Query1.SQL.Clear;
dm.Query1.SQL.Add(Edit2.Text);
dm.Query1.Open;
except
ShowMessage('Не получилось выполнить SQL запрос!');
end;
end;
procedure Ta_f.Label6Click(Sender: TObject);
begin
a_r_f.Query1.Active:=False;
a_r_f.Query1.Active:=True;
a_r_f.report1.Preview;
end;
procedure Ta_f.Label8Click(Sender: TObject);
begin
if dm.Table1.Modified
then
dm.Table1.Post;
if dm.Table2.Modified
then
dm.Table2.Post;
Close;
end;
procedure Ta_f.Label9Click(Sender: TObject);
begin
a_r2_f.Query1.Active:=False;
a_r2_f.Query1.Active:=True;
a_r2_f.QuickRep1.Preview;
end;
procedure Ta_f.Button1Click(Sender: TObject);
begin
try
dm.Query1.Close;
dm.Query1.SQL.Clear;
dm.Query1.SQL.Add('select s.s_code, count (a.a_id) total from abiturients a, specialities s where a.a_s_id=s.s_id group by s.s_id,s_code');
dm.Query1.Open;
except
ShowMessage('Не получилось выполнить SQL запрос!');
end;
end;
procedure Ta_f.Label7Click(Sender: TObject);
begin
AboutBox.ShowModal;
end;
procedure Ta_f.FormPaint(Sender: TObject);
begin
dm.Table2.MasterSource:=dm.
dm.Table2.MasterFields:='S_id'
dm.Table2.IndexName:='a_index'
end;
end.