Автор работы: Пользователь скрыл имя, 05 Июня 2013 в 11:05, курсовая работа
Для автоматизации системы «Электронная ведомость» была выбрана систем управления базами данных на Delphi, который является общепризнанным лидером среди инструментов для создания приложений и систем, функционирующих на платформе Windows. Передовая объектно-ориентированная технология визуального проектирования позволяет отдельным программистам и коллективам разработчиков почувствовать уверенность в возможности полного удовлетворения запросов самых требовательных пользователей и устойчивость своего положения на рынке высоких технологий.
Введение 3
Техническое задание
1.1. Формулировка задачи 5
1.2. Описание входной и выходной информации 6
1.3. Требования к комплексу технических средств 7
1.4. Требования к интерфейсу конечного пользователя 9
Технический проект
2.1. Разработка форм представления входных данных 10
2.2. Разработка форм представления выходных данных 11
2.3. Проектирование программных модулей 12
Рабочий проект
3.1. Описание программы 13
3.2. Руководство пользователя 15
3.3. Руководство программиста 19
Заключение 20
Список использованных источников 21
Приложение А – Главный модуль программы 22
Данная программа
составлена из модулей,
Для запуска программы нужно запустить файл Project1.exe. Главным модулем является Unit1.pas, который отображает главное меню программы и осуществляет связь со следующими модулями.
После запуске программы появится форма БД Студентов. Чтобы заполнит форму данными необходимо в меня файл выбрать прочитать из файла, в открывшемся диалоговом окне выбрать необходимый файл База.txt
Рис.3.1.1. Заполнение базы
Из главного меню модуля можно запустить любую функцию программы. При выборе Список записей появиться полный список всех студентов, при выборе пункта просмотр по студентам появится список для одного выбранного студента и его средний балл. При нажатии на кнопку предыдущий появится предыдущая запись. При нажатии на кнопку следующий появиться следующая запись. При нажатии на кнопке удалить запись удалиться из списка.
При вводе
фамилии в поле Поиск по
фамилии и нажатии на кнопке
найти на экране появится инфор
При выборе
в меню Файл параметра Выход,
осуществиться выход из
3.2. Руководство пользователя
Для того чтобы начать работу в программе, необходимо запустить файл Project1.exe. После этого на экране появится заставка программы (рис.3.2.2).
Рис.3.2.2 Заставка программы «Экзаменационная ведомость»
В верхней части окна выбираем Файл ® Прочитать из файла. Затем выбираем текстовый документ База.txt и заполняем таблицу данными.( Рис.3.2.3)
Рис.3.2.3 Заполнение таблицы данными
Выбираем пункт меню Просмотр по студентам. В выпадающем меню выбираем нужного студента и в таблице Найденные записи появляется информация об успеваемости данного студента и его средний балл по дисциплинам.( Рис.3.2.4)
Рис.3.2.4 Просмотр по студентам
В поле
Поиск по фамилии вводим
Рис.3.2.5 Поиск по фамилии
Выбираем пункт меню Ведомость. В поля дисциплина из выпадающего списка выбираем нужную дисциплину. В таблице выводиться список студентов и оценки по данной дисциплине.
Пункт меня Файл ® Выход позволяет выйти из программы.
3.3. Руководство программиста
Программа написана на объектно-ориентированном языке Pascal 4.0 в среде Delphi. В программе создана 1 форма, соответственно 1 исполняемый юнит. Модули состоят из множества мелких процедур и функций объединяя которые без затрат большого количества времени возможно реализовывать дополнительные функции.
ЗАКЛЮЧЕНИЕ
Результатом данной курсовой работы является разработанная программа «Экзаменационная ведомость». Данная программа предназначена для использования в высших учебных заведениях.
Разработанная программа решает следующие задачи:
В результате выполнения курсовой работы были закреплены и углублены навыки, и практические умения работы в среде объектно-ориентированного программирования Delphi, а также получены навыки по оформлению и представлению технической документации к работе.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
2003. - 1118 с.: ил.
"БИНОМ", 2001.
БХВ-Петербург, 2003
БХВ-Петербург, 2005.
6. Истомин Е. П., Неклюдов С. Ю. Программирование на алгоритмических
языках высокого уровня: Учебник.- СПб.: Изд-во Михайлова В. А., 2003 г.-
ПРИЛОЖЕНИЕ А
Главный модуль программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, Grids, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
MainMenu1: TMainMenu;
N1: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
N2: TMenuItem;
N3: TMenuItem;
StringGrid1: TStringGrid;
ComboBox1: TComboBox;
GroupBox1: TGroupBox;
Edit5: TEdit;
Button1: TButton;
Button2: TButton;
StringGrid2: TStringGrid;
Button3: TButton;
N6: TMenuItem;
N7: TMenuItem;
Button4: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
tabSummary: TTabSheet;
StringGrid3: TStringGrid;
panTop: TPanel;
cbSubject: TComboBox;
Label4: TLabel;
procedure PageControl1Change(Sender: TObject);
procedure NewSubject(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Create_(Sender: TObject);
procedure NewEdit(Sender: TObject);
procedure NewComboBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
procedure ClearStringGrid(pGrid: TStringGrid);
{ Private declarations }
public
{ Public declarations }
end;
type
// Содержимое элемента файла
info=record {тип записей}
fio,gr,faq,predmet,ocenka: string[20];
end;
var
f: file of info; {Файл записей}
r: info; {Одна запись}
N: integer; {Количество записей}
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.N2Click(Sender: TObject);
{процедура чтения из файла}
var i: integer;
begin
if OpenDialog1.Execute then
begin
AssignFile(F,OpenDialog1.
Reset(F);
N:=0;
while not eof(f) do
begin
read(F,r);
stringGrid1.Cells[0,N+1]:=r.
stringGrid1.Cells[1,N+1]:=r.gr
stringGrid1.Cells[2,N+1]:=r.
stringGrid1.Cells[3,N+1]:=r.
stringGrid1.Cells[4,N+1]:=r.
N:=N+1 {увеличение числа записей на 1}
end;
closeFile(F);
NewCombobox {процедура заполняет комбинированный список второй страницы}
end
end;
procedure TForm1.N3Click(Sender: TObject);
var i:integer;
begin
if SaveDialog1.Execute then
begin
AssignFile(F,SaveDialog1.
Rewrite(F);
i:=1;
while stringGrid1.Cells[3,i]<>'' do
begin
r.fio:=stringGrid1.Cells[0,i];
r.gr:=stringGrid1.Cells[1,i];
r.faq:=stringGrid1.Cells[2,i];
r.predmet:=stringGrid1.Cells[
r.ocenka:=stringGrid1.Cells[4,
write(F,r);
i:=i+1
end;
closeFile(F)
end
end;
procedure TForm1.Create_(Sender: TObject);
begin
stringGrid1.Cells[0,0]:='ФИО';
stringGrid1.Cells[1,0]:='
stringGrid1.Cells[2,0]:='
stringGrid1.Cells[3,0]:='
stringGrid1.Cells[4,0]:='
stringGrid2.Cells[0,0]:='ФИО';
stringGrid2.Cells[1,0]:='
stringGrid2.Cells[2,0]:='
stringGrid2.Cells[3,0]:='
stringGrid2.Cells[4,0]:='
// заполняем заголовки третьей закладки
stringGrid3.Cells[0,0]:='ФИО';
stringGrid3.Cells[1,0]:='
stringGrid3.Cells[2,0]:='
stringGrid3.Cells[3,0]:='
ComboBox1.Items.Add(''); {Создаем
пустую строку в
ComboBox1.ItemIndex:=0; {Активизируем эту строку на случай создания нового справочника}
cbSubject.Items.Clear;
end;
procedure TForm1.NewEdit(Sender: TObject);
var i,j,k:integer; {номер строки данных в таблице}
begin
k:=0;
for i:=0 to stringgrid2.RowCount-1 do
for j:=1 to stringgrid2.ColCount-1 do
stringgrid2.Cells[i,j]:='';
for i:=1 to N do
begin
if StringGrid1.Cells[0,i]=
then
begin
k:=k+1;
stringgrid2.Cells[0,k]:=
stringgrid2.Cells[1,k]:=
stringgrid2.Cells[2,k]:=
stringgrid2.Cells[3,k]:=
stringgrid2.Cells[4,k]:=
end;
end;
i:=1; k:=0;
While Stringgrid2.Cells[0,i]<>'' do
begin
k:=k+strtoint(Stringgrid2.
i:=i+1;
end;
if i<>1 then
i:=i-1;
label3.Caption:= floattostr(k/i);
end;
procedure Tform1.NewComboBox;
var i,j,k: integer; key:boolean;
begin
{Запоминаем активную
позицию комбинированного
j:=ComboBox1.ItemIndex;
ComboBox1.Clear; {очищаем список}
key:=true;
for i:=1 to n do
begin
for k:=0 to combobox1.Items.Count-1 do
if ComboBox1.Items[k]=
key:=false;
if key=true then ComboBox1.Items.Add(StringGrid
key:=true;
end;
ComboBox1.ItemIndex:=j {Переходим на позицию j}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if ComboBox1.ItemIndex=0
then ComboBox1.ItemIndex:=N-1
else ComboBox1.ItemIndex:=
NewEdit(ComboBox1) {Обновляем панель «Найдена запись»}
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if ComboBox1.ItemIndex=N-1
then ComboBox1.ItemIndex:=0
else ComboBox1.ItemIndex:=
NewEdit(ComboBox1) {Обновляем панель «Найдена запись»}
end;
procedure TForm1.ClearStringGrid(pGrid: TStringGrid);
var
ii,jj:integer; {номер строки данных в таблице}
Begin
for ii:=0 to pGrid.RowCount-1 do
for jj:=1 to pGrid.ColCount-1 do
pGrid.Cells[ii,jj]:='';
End;
procedure TForm1.Button3Click(Sender: TObject);
var i,j,k:integer; {номер строки данных в таблице}
begin
if Edit5.Text='' then begin showmessage('Введите строку для поиска');exit;end;
k:=0;
ClearStringGrid( stringgrid2);
for i:=1 to N do
begin
if StringGrid1.Cells[0,i]=Edit5.
then
begin
k:=k+1;
stringgrid2.Cells[0,k]:=
stringgrid2.Cells[1,k]:=
stringgrid2.Cells[2,k]:=
stringgrid2.Cells[3,k]:=
stringgrid2.Cells[4,k]:=
combobox1.ItemIndex:=i-1;
end;
end;
i:=1; k:=0;
While Stringgrid2.Cells[0,i]<>'' do
begin
k:=k+strtoint(Stringgrid2.
i:=i+1;
end;
if i<>1 then
i:=i-1;
label3.Caption:= floattostr(k/(i));
if stringgrid2.Cells[0,1]='' then
Showmessage('Ничего не
end;
procedure TForm1.N7Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button4Click(Sender: TObject);
var i,j:integer; s:string;
begin
s:=combobox1.Text;
for i:=0 to stringgrid2.RowCount-1 do
for j:=1 to stringgrid2.ColCount-1 do
stringgrid2.Cells[i,j]:='';
for i:=0 to Combobox1.Items.Count do
begin
if Combobox1.Items[i]=s then Combobox1.DeleteSelected;
end;
Button2Click(Sender);
end;
// на изменение предмета на закладке Ведомость
procedure TForm1.NewSubject(Sender: TObject);
var
ii, kk: integer;
begin
ClearStringGrid(stringgrid3);
kk := 0;
for ii:=1 to N+1 do
begin
// в третьей
колонке предмет если
if AnsiLowerCase(Trim(
then
begin
kk:=kk+1;
stringgrid3.Cells[0,kk]:=
stringgrid3.Cells[1,kk]:=
stringgrid3.Cells[2,kk]:=
stringgrid3.Cells[3,kk]:=
end;
end;
end;
procedure TForm1.PageControl1Change(
var
ii: integer;
sSubject: string;
begin
// Каждый раз обновляем число записей N
// (подсчитываем, сколько
непустых ФИО на первой
N := 1;
while(StringGrid1.Cells[0,N] <> '') do N := N + 1;
// если выбрана вторая закладка
if (PageControl1.ActivePage = TabSheet2) then
NewComboBox;
// если выбрана закладка "Ведомость"
if (PageControl1.ActivePage = tabSummary) then
Begin
cbSubject.Items.Clear;
// заполняем список дисциплин
for ii := 1 to StringGrid1.RowCount do
Begin
// строка без пробелов в начале и конце
sSubject := Trim(StringGrid1.Cells[3, ii]);
if (sSubject = '') then Continue;
// если еще нет такого предмета в списке
if (cbSubject.Items.IndexOf(
Begin
cbSubject.Items.Add(sSubject);
End;
End;
End;
end;
end.
Информация о работе Разработка программы«Экзаменационная ведомость»