- •Введение
- •1 Постановка задачи
- •1.1 Описание предметной области
- •1.2 Сущность задачи
- •1.3 Входная и выходная информация
- •2 Проектирование задачи
- •2.1 Алгоритм решения задачи
- •2.2 Физическая модель данных
- •3 Описание программы
- •3.1 Среда разработки
- •3.2 Описание интерфейса
- •4 Тестирование
- •5 Описание применения
- •5.1 Назначение программы
- •5.2 Требования к программно-аппаратным ресурсам пк
- •5.3 Руководство пользователя
- •Заключение
- •Список использованных источников
- •Приложение а
- •Листинг программы
Заключение
В результате выполнения данной курсовой работы, было разработано, программное средство «Контроль знаний учащихся». Было проведено исследование компонентов программной среды Borland Delphi 7.0, которые использовались при создании программы, также было использовано множество процедур и функций.
При создании программы использовались следующие компоненты: TMainMenu, TSaveDialog, TOpenDialog, TStringGrid, TPageControl, TComboBox, TEdit, TButton.
В ходе разработки программы был также задействован следующий программный продукт, Microsoft Paint, который использовался для создания скриншотов к данному курсовому проекту.
Результатом разработки, проведенной в данном курсовом проекте, стала система, удовлетворяющая следующим требованиям:
написанное программное средство, полностью реализует возложенные на нее функции;
система оснащена простым интерфейсом;
программа имеет классический дизайн;
В целом, цель, поставленная в начале курсового проектирования, была достигнута. В программу вошли все необходимые требования для пользователя.
Список использованных источников
1 Богуславский, А.А. Основы программирования на языке Delphi Часть 4: Программирование для Microsoft Windows
2 Зубов, А. Программирование на Delphi. Трюки и эффекты / А. Зубов. – СПб: Питер, 2005. – 396 с.
3 Павловская, Т. А. Программирование на языке высокого уровня / Т. А. Павловская. – СПб.: Питер, 2010. – 461 с.
4 Прата, С. А. Язык программирования С++. Лекции и упражнения / С. Прата. М.: Вильямс, 2006. – 1184 с.
5 Фаронов, В.В. Delphi. Программирование на языке высокого уровня / В. Фаронов. – СПб: Питер, 2004. – 640 с.
6 Хомоненко А, В. Гофман, Е. Мещеряков, В. Никифоров. – СПб: БХВ, 2008. – 1216 с. Delphi 7. Наиболее полное руководство.
Приложение а
(обязательное)
Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, Grids, StdCtrls;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
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;
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
{ Private declarations }
public
{ Public declarations }
end;
type
info=record {тип записей}
fio,gr,faq,predmet,ocenka: string[20];
end;
var
//PagesDlg: TPagesDlg; {Строка есть в заголовке модуля}
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.FileName);
Reset(F);
N:=0;
while not eof(f) do
begin
read(F,r);
stringGrid1.Cells[0,N+1]:=r.fio;
stringGrid1.Cells[1,N+1]:=r.gr;
stringGrid1.Cells[2,N+1]:=r.faq;
stringGrid1.Cells[3,N+1]:=r.predmet;
stringGrid1.Cells[4,N+1]:=r.ocenka;
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.FileName);
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[3,i];
r.ocenka:=stringGrid1.Cells[4,i];
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]:='Оценка';
ComboBox1.Items.Add('<'); {Создаем пустую строку в комбинированном списке}
ComboBox1.ItemIndex:=0 {Активизируем эту строку на случай создания нового справочника}
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]=ComboBox1.Items[ComboBox1.ItemIndex]
then
begin
k:=k+1;
stringgrid2.Cells[0,k]:=stringgrid1.Cells[0,i];
stringgrid2.Cells[1,k]:=stringgrid1.Cells[1,i];
stringgrid2.Cells[2,k]:=stringgrid1.Cells[2,i];
stringgrid2.Cells[3,k]:=stringgrid1.Cells[3,i];
stringgrid2.Cells[4,k]:=stringgrid1.Cells[4,i];
end;
end;
i:=1; k:=0;
While Stringgrid2.Cells[0,i]<>'' do
begin
k:=k+strtoint(Stringgrid2.Cells[4,i]);
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]=StringGrid1.Cells[0,i] then
key:=false;
if key=true then ComboBox1.Items.Add(StringGrid1.Cells[0,i]);
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:=ComboBox1.ItemIndex-1;
NewEdit(ComboBox1) {Обновляем панель «Найдена запись»}
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if ComboBox1.ItemIndex=N-1
then ComboBox1.ItemIndex:=0
else ComboBox1.ItemIndex:=ComboBox1.ItemIndex+1;
NewEdit(ComboBox1) {Обновляем панель «Найдена запись»}
end;
procedure TForm1.Button3Click(Sender: TObject);
var i,j,k:integer; {номер строки данных в таблице}
begin
if Edit5.Text='' then begin showmessage('Введите строку для поиска');exit;end;
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]=Edit5.Text
then
begin
k:=k+1;
stringgrid2.Cells[0,k]:=stringgrid1.Cells[0,i];
stringgrid2.Cells[1,k]:=stringgrid1.Cells[1,i];
stringgrid2.Cells[2,k]:=stringgrid1.Cells[2,i];
stringgrid2.Cells[3,k]:=stringgrid1.Cells[3,i];
stringgrid2.Cells[4,k]:=stringgrid1.Cells[4,i];
combobox1.ItemIndex:=i-1;
end;
end;
i:=1; k:=0;
While Stringgrid2.Cells[0,i]<>'' do
begin
k:=k+strtoint(Stringgrid2.Cells[4,i]);
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;
end.
КП.2-40
01 01.T17.84.12.ПЗ