Автоматизация контроля обучения студентов

 

Оглавление


Введение

Глава 1. Общая часть

1.1 Сущность поставленной задачи

1.2 Постановка задачи

1.2.1 Первичные документы

1.2.2 Требования, предъявляемые к системе

1.2.3 Требования предъявляемые к ПО

1.3 Характеристика используемой ПЭВМ, ОС и языка программирования

2. Разработка программного обеспечения

2.1 Технологический процесс машинной реализации задачи

2.2 Алгоритм задачи его описание

2.3 Описание переменных, процедур и функций

2.3.1 Функциональная модель

2.3.2 Модель потоков данных

2.4 Программы и их описание

2.4.1 Алгоритм и текст программы меню

2.4.2 Алгоритм и тексты программ ввода данных

2.5 Результаты работы программ

2.6 Инструкция пользователю

Заключение

Список общепринятых сокращений

Список литературы

Приложения


Введение


Тема разработки программного модуля «Учет успеваемости студентов» актуальна в связи с тем, что в настоящее время в образовании большое внимание уделяется информационным технологиям. Информационные технологии позволяют сделать обучение более наглядным и понятным, а также производить контроль результатов обучения студентов на разных уровнях. Автоматизация контроля обучения студентов позволяет освободить персонал от рутинной работы и снизить количество ошибок в отчетности.

В связи со значимостью рассматриваемого вопроса, целью работы является разработка программного модуля «Учет успеваемости студентов».

Для выполнения поставленной цели необходимо решить следующие задачи:

Рассмотреть теоретические аспекты выбранной темы.

Определить все возможные требования заказчика.

Предусмотреть и проработать все возможные варианты поведения программы.

Текст работы расположен на 38 страницf[, состоит из введения, двух глав, заключения, списка общепринятых сокращений, списка литературы и приложения. Первая глава - теоретическая, содержит в себе теоретическое содержание выбранной темы. Вторая глава - практическая, содержит алгоритм решения задачи и его описание. Обобщенные выводы по всей курсовой работе приведены в заключении.


Глава 1. Общая часть


.1 Сущность поставленной задачи


Сущность поставленной задачи заключается в разработке программного модуля «Учет успеваемости студентов». Программный модуль предназначен для оперативного учета успеваемости студентов в сессию деканом, заместителями декана и сотрудниками деканата. Сведения об успеваемости студентов должны храниться в течение всего срока их обучения и использоваться при составлении справок о прослушанных курсах и приложений к диплому.

Программа должна обладать простым и дружественным интерфейсом, понятным и легким для освоения потенциальным пользователем.


.2 Постановка задачи


.2.1 Первичные документы

Первичными документами в данной задаче будут являться учебные планы специальностей, личные дела студентов и классный журнал. Журнал будет содержать сведения об успеваемости студента, из учебных планов специальностей будут браться названия предмета и длительность курса, из личных дел - информация о студентах.


.2.2 Требования, предъявляемые к системе

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


1.2.3 Требования предъявляемые к ПО

Программный модуль поддерживает платформы Windows XP- Windows7.


.3 Характеристика используемой ПЭВМ, ОС и языка программирования


При разработке данного модуля использовался ноутбук марки Asus серии X54С.

Компьютер:

Тип компьютера- ACPI компьютер на базе x86

Операционная система- Microsoft Windows 7 Ultimate

Пакет обновления ОС- Service Pack 1

Internet Explorer - 9.0.8112.16421- DirectX 11.0

Системная плата:

Тип ЦП- DualCore , 2900 MHz (29 x 100)

Системная плата - Intel HM65 Express

Системная память-3017 Мб

DIMM1: Ramaxel Tech. RMT3020EC58E9F1333 4 Гб DDR3-1333 DDR3 SDRAM (8-8-8-22 @ 609 МГц) (7-7-7-20 @ 533 МГц) (6-6-6-17 @ 457 МГц) (5-5-5-14 @ 380 МГц)

Тип BIOS-Insyde (10/07/11)

Отображение:

Видеоадаптер- Mobile Intel(R) HD Graphics (1315768 Кб)

Видеоадаптер- Mobile Intel(R) HD Graphics (1315768 Кб)

3D-акселератор- ATI Robson CE

Монитор- Универсальный монитор PnP [NoDB]

Мультимедиа:

Звуковой адаптер- Conexant Unknown @ Intel Cougar Point PCH - High Definition Audio Controller

Звуковой адаптер- Intel Unknown @ Intel Cougar Point PCH - High Definition Audio Controller

Хранение данных:

Контроллер IDE- Intel(R) Mobile Express Chipset SATA AHCI Controller

Дисковый накопитель- SD Card (1848 Мб, USB)

Дисковый накопитель- USB FLASH DRIVE USB Device (7 Гб, USB)

Дисковый накопитель- WDC WD7500BPVT-24HXZT3 (698 Гб, IDE)

Оптический накопитель- MATSHITA DVD-RAM UJ8B1AS

Статус SMART жёстких дисков- OK

Разделы:: (NTFS) 565.6 Гб (319.2 Гб свободно)

Общий объём 565.6 Гб (319.2 Гб свободно)

Ввод:

Клавиатура Стандартная клавиатура PS/2

Мышь HID-совместимая мышь

Мышь Synaptics PS/2 Port TouchPad

Сеть:

Первичный адрес IP 192.168.1.30

Первичный адрес MAC **-**-**-**-**-**

Сетевой адаптер Atheros AR8152/8158 PCI-E Fast Ethernet Controller (NDIS 6.20) (192.168.1.30)

Сетевой адаптер Atheros AR9285 Wireless Network Adapter

Сетевой адаптер Microsoft Virtual WiFi Miniport Adapter

Так же при разработке данного модуля использовалась Windows 7 Максимальная, операционная система семейства Windows NT.

Программа реализована в среде разработки Delphi 7. Delphi 7 - это инструмент от компании Borland, позволяющий осуществлять быструю разработку приложений на языке Delphi и имеющий богатые возможности работы для с БД. IDE Delphi это стабильная богатая возможностями среда разработки для создания самостоятельных графических и консольных приложений.


2. Разработка программного обеспечения


.1 Технологический процесс машинной реализации задачи


Технологический процесс машинной реализации задачи изображен на рисунке 1.


Рисунок 1- Процесс машинной реализации.


2.2 Алгоритм задачи его описание


Работа с программной начинается с заполнения таблицы «Успеваемость». При получении студентом оценки, добавляется соответствующая ей запись в таблицу «Успеваемость». В этой записи отражается дата оценки, собственно оценка, код студента и код предмета.

При необходимости добавляются студенты и предметы в таблицы «Студент» и «Предмет» соответственно.

Для подведения итогов успеваемости студентов существует отчет «Ведомость успеваемости», в котором отражается средняя оценка каждого студента выбранной группы по каждому предмету и средний балл по всем предметам.

Для функционирования программы была разработана база данных. Разработка происходила в следующем порядке:

Разработка концептуальной модели (Рисунок 2).


Рисунок 2- Концептуальная модель.


. На основании составленной концептуальной модели была составлена логическая (Рисунок 3).


Рисунок 3 - Логическая модель.


. После формирования логической модели была сформирована физическая модель (Рисунки 4-7).


Рисунок 4 - Таблица «Успеваемость».Рисунок 5 - Таблица «Студент».


Рисунок 6 - Таблица «Предмет».Рисунок 7 - Таблица «Группа».


.3 Описание переменных, процедур и функций


При разработке программы были использованы стандартные компоненты и процедуры:

Переменные:- включает в себя данные, по которым фильтруются поля основного запроса.

Процедуры:.UpdateCombo - обновляет компонент ComboBox1 данными из таблицы при изменении выбранного в ComboBox2 пункта из списка..FormShow инициализирует компоненты типа TComboBox.FormShow инициализирует компонент ComboBox1.Button1Click - формирует приложение к диплому..Button1Click - формирует ведомость успеваемости..FormShow - заносит данные в ListBox1 для фильтрации таблицы «Успеваемость» по группам..ListBox1Click - включает фильтр по группам..tbUspevFilterRecord- фильтрует записи главной таблицы..FormCreate - инициализирует компоненты.BitBtn1Click - заполняет поля записи фильтра.


.3.1 Функциональная модельмодель первого уровня изображена на рисунке 8, второго - на рисунке 9.


Рисунок 8 - SADT модель первого уровня.


Рисунок 9 - SADT модель второго уровня


.3.2 Модель потоков данныхмодель первого уровня изображена на рисунке 10, второго - на рисунке 11.


Рисунок 10. DFD модель первого уровня.


Рисунок 11. DFD модель второго уровня


.4 Программы и их описание


.4.1 Алгоритм и текст программы меню

Меню реализовано с помощью стандартного компонента TMainMenu. Алгоритм изображен на рисунке 12, пункты меню - на рисунках 13-15;


Рисунок 12 - Алгоритм меню.


Рисунок 13 - Пункт меню «Таблицы».


Рисунок 14 - Пункт меню «Данные».


Рисунок 15- Пункт меню «Отчеты».


.4.2 Алгоритм и тексты программ ввода данных

Ввод данных осуществляется с помощью компонентов типа TDBGrid с использованием компонентов типа TDBNavigator для управления позицией курсора. Компоненты типа TDBGrid связываются с таблицами и запросами с помощью компонента TDataSource.

Форма ввода в главную таблицу изображена на рисунке 16. Как видно на изображении, предусмотрена фильтрация по группам, что безусловно помогает в навигации пользователю.


Рисунок 16 - Ввод данных об успеваемости студентов.


На рисунке 17 представлена форма редактирования таблицы «Предметы». С ее помощью можно добавлять новые дисциплины и редактировать существующие. Для изменения информации о студентах предусмотрена соответствующая форма (рисунок 18).


Рисунок 17 - Ввод данных о предметах.


Рисунок 18 - Ввод данных о студентах.


.5 Результаты работы программ


Результатом работы данного модуля, будут являться приложение к диплому студента и ведомость успеваемости. Документы будут формироваться в программе Microsoft Office Excel. Приложение к диплому изображено на рисунке 19, Ведомость успеваемости - на рисунке 20.


Рисунок 19 - Приложение к диплому.


Рисунок 20 - Ведомость успеваемости.


.6 Инструкция пользователю

программирование успеваемость алгоритм

При запуске программы появляется главное окно, которое содержит таблицу успеваемости и главное меню. В данную таблицу осуществляется ввод оценок.

Если нужно ввести нового студента или новую дисциплину, то можно использовать формы ввода студентов и дисциплин, которые вызываются с помощью соответствующих пунктов из подменю «Таблицы».

Фильтрация данных может быть осуществлена с помощью команды «Фильтр» подменю «Данные».

Подменю «Отчеты» содержит формы, создающие отчеты. Форма «Приложение к диплому» (Рисунок 21) служит для создания приложений к диплому, а форма «Ведомость успеваемости» (Рисунок 22) используется для создания ведомостей успеваемости для групп. Данные формы генерируют соответствующие ведомости (рисунки 19-20).


Рисунок 21 - Форма «Приложение к диплому».


Рисунок 22 - Форма «Ведомость успеваемости».


Заключение


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

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


Список общепринятых сокращений


БД - база данных.

ПЭВМ - персональная электронная вычислительная машина.

ОС - операционная система.

ПК - персональный компьютер.

ПО - программное обеспечение.

СуБД - система управления баз данных.

АС- автоматизированная система.


Список литературы


1. Л.Г. Гагарина, Е.В. Кокорева, Б.Д. Виснадул Технология разработки программного обеспечения, учебное пособие -М.; "ФОРУМ": ИНФРА-М, 2008.- 400 с.

. Фленов М.Е. Программирование в Delphi глазами хакера. - СПб.: БХВ-Петербург, 2003.

. Фленов М.Е. Библия Delphi . - СПб.: БХВ-Петербург, 2004.


Приложение А


- Техническое задание.

.Введение.

Работа выполняется в рамках проекта разработки программного модуля «Учет успеваемости студентов»

. Основание для разработки.

.1 Основанием для разработки является задание по курсовому проекту по дисциплине «теория разработки программного продукта».

.2 Наименование работы: «Учет успеваемости студентов»

.3 Исполнитель: Студент группы АЛ-ДЛП-901 Алейников Дмитрий Витальевич.

.4 Соисполнители: нет.

. Назначение разработки.

Создание модуля для оперативного учета успеваемости студентов.

. Технические требования.

.1 Требования к функциональным характеристикам.

.1.1 Состав выполняемых функций:

Учет успеваемости студентов.

Составление приложения к диплому.

Составление ведомости успеваемости.

.1.2 Организация входных и выходных данных:

Входные данные получаются из журнала успеваемости.

Выходными данными являются ведомость успеваемости и приложение к диплому.

.2 Требования надежности.

Для обеспечения надежности работы программного модуля, необходимо проверять корректность исходных данных и корректность ввода данных.

.3 Условия эксплуатации и требования к составу и параметрам технических средств.

Для работы модуля необходимо выделить ответственного оператора, отвечающего за корректность и достоверность вводимых данных.

.4 Требования к информационной и программной совместимости.

Программный модуль поддерживает платформы Windows ХР- Windows7.

.5 Требования к транспортировке и хранению.

Программа предоставляется на лазерном носителе. Документация представлена как в печатном так и электронном варианте.

.6 Специальные требования.

Рассчитанный на пользователя, дружественный интерфейс.

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

. Требования к программной документации.

Основными документами, регламентирующими работу ПП, являются документы ЕСПД: руководство администратора, руководства пользователя, описание применения.

. Технико-экономические показатели.

Эффективность системы определяется удобством использования ПП для учета успеваемости студентов.

. Порядок контроля и приемки.

После передачи исполнителем ПП заказчику, последний имеет право тестировать его 7 дней. После чего заказчик либо отказывается от ПП и оформляет причину отказа в письменном виде, либо оплачивает работу заказчику.


8. Календарный план работ.

№ ЭтапаНаименование этапаСроки этапаЧем заканчивается этап1Изучение предметной области. Разработка предложений по реализации ПП01.09.2012 01.10.2012Предложения по разработке программного продукта. Акт сдачи-приемки.2Разработка ПП «Автостоянка»01.10.2012 30.11.2012Программный комплекс, решающий поставленные задачи.3Тестирование и отладка программного продукта01.12.2012 30.12.2012Готовый программный продукт «Учет успеваемости студентов». Акт сдачи-приемки работы.

Приложение Б


- Эскизный проект.

Ведомость эскизного проекта

Документы по разработанному продукту:

Техническое задание на создание информационной системы СуБД «Учет успеваемости студентов».

Пояснительная записка к эскизному проекту.

Общие положения:

Данный документ является эскизным проектом на создание Системы Управления Базой Данных для образовательных учреждений (СуБД «Учет успеваемости студентов»).

Основные технические решения:

Решения по структуре системы СуБД «Учет успеваемости студентов» будет представлять собой персональную систему управления локальной базой данных, работающей на одном компьютере.

Система будет управлять реляционной базой данных, представляющей собой набор связанных между собой таблиц, доступ к которым осуществляется с помощью ключей или/и индексов. Сведения в одной таблице могут отражать сведения из другой, и при изменении сведений в первой таблице эти изменения немедленно отображаются во второй.

Таким образом будет достигнута непротиворечивость данных.

Общая структура базы данных:

Хранение информации о студентах и дисциплинах осуществляется с сохранением целостности данных при изменении или удалении записей таблицы.

Информация об успеваемости отражается в таблице с указанием кода студента, кода предмета, даты и оценки.

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

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

Сделать запись о полученной студентом оценке;

Рассчитывать итоговую оценку по дисциплине;

Формировать итоговые ведомости;

Решения по составу программных средств, языкам деятельности, алгоритмам процедур и операций и методам их реализации.

Для реализации АС будет использоваться среда

программирования Delphi и одноименный язык программирования.

Источники разработки:

Данный документ разрабатывался на основании ГОСТ 34.698-90 на написание ТЗ на автоматизированные системы управления от 01.01.1992 г.


Приложение В


- Исходный код программы.


unit Unit1;

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGrids, StdCtrls, DBCtrls, Menus, ExtCtrls, XPMan;

TForm1 = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Bevel1: TBevel;

XPManifest1: TXPManifest;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

ListBox1: TListBox;

Label1: TLabel;

Label2: TLabel;

procedure N3Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure ListBox1Click(Sender: TObject);

end;Form1: TForm1;Unit2, Unit3, DB, Unit4, Unit5, Unit6, Unit7;

{$R *.dfm}TForm1.N3Click(Sender: TObject);

if Form3.ShowModal = mrOK then begin

DBGrid1.DataSource.DataSet.Filtered := false;

DBGrid1.DataSource.DataSet.Filtered := true;

end;;TForm1.N5Click(Sender: TObject);

Form4.ShowModal;;TForm1.N6Click(Sender: TObject);

Form5.ShowModal;;TForm1.N10Click(Sender: TObject);

Application.MessageBox('Программный модуль "Учет успеваемости '+ 'студентов". Разработан студентом группы АЛ-ДЛП-901 Алейниковым'+ 'Д.В.','О программе', MB_ICONINFORMATION);

end;TForm1.N9Click(Sender: TObject);

Form6.ShowModal;;TForm1.N11Click(Sender: TObject);

Form7.ShowModal;;TForm1.FormShow(Sender: TObject);

DataModule2.tbStudent.Sort := 'ФИО';

with DataModule2.tbGruppa do begin

First;

while not eof do begin

ListBox1.Items.Add(FieldByName('НГ').AsString);

Next;

end;

end;

with DataModule2.qFirstDate do begin

Active := true;

First;

Unit2.Filter.fDate := Fields[0].AsDateTime;

Active := false;

end;

Filter.ldate := date();

ListBox1.ItemIndex := 0;

ListBox1Click(nil);;TForm1.ListBox1Click(Sender: TObject);

Filter.Group := ListBox1.Items[ListBox1.ItemIndex];

DBGrid1.DataSource.DataSet.Filtered := false;

DBGrid1.DataSource.DataSet.Filtered := true;;.Unit2;

SysUtils, Classes, DB, ADODB;

TDataModule2 = class(TDataModule)

dsUspev: TDataSource;

ADOConnection1: TADOConnection;

tbPredm: TADOTable;

tbGruppa: TADOTable;

tbStudent: TADOTable;

qFirstDate: TADOQuery;

dsStudent: TDataSource;

dsPredm: TDataSource;

qPrilDipl: TADOQuery;

qAvgMark: TADOQuery;

qVed: TADOQuery;

tbUspev: TADOQuery;

tbUspevDSDesigner: TIntegerField;

tbUspevDSDesigner2: TIntegerField;

tbUspevDSDesigner3: TDateTimeField;

tbUspevDSDesigner4: TIntegerField;

tbUspevDSDesigner5: TWideStringField;

tbUspevDSDesigner6: TWideStringField;

tbUspevStringField: TStringField;

tbUspevField: TStringField;

procedure DataModuleCreate(Sender: TObject);

procedure tbUspevFilterRecord(DataSet: TDataSet; var Accept: Boolean);

end;

TFilterRec = record

Group,

FIO,

Subject: String;

fDate,

lDate: TDateTime ;

end;DataModule2: TDataModule2;

Filter : TFilterRec;

{$R *.dfm}TDataModule2.DataModuleCreate(Sender: TObject);

tbStudent.Sort := 'ФИО';;TDataModule2.tbUspevFilterRecord(DataSet: TDataSet;

var Accept: Boolean);

ns : string;

Accept := true;

with Filter do begin

if Group <> '' then

Accept := Accept and (tbStudent.Lookup('НС', tbUspev.FieldByName('НС').AsString, 'НГ') = Group);

if FIO <> '' then

Accept := Accept and (tbUspev.FieldByName('НС').AsString =

tbStudent.Lookup('ФИО',FIO,'НС'));

if Subject <> '' then

Accept := Accept and (tbUspev.FieldByName('КП').AsString =

tbPredm.Lookup('НП',Subject,'КП'));

Accept := Accept and (tbUspev.FieldByName('ДАТАС').AsDateTime >= fDate);

Accept := Accept and (tbUspev.FieldByName('ДАТАС').AsDateTime <= lDate);

end;;.Unit3;

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, ComCtrls;

TForm3 = class(TForm)

GroupBox1: TGroupBox;

Edit2: TEdit;

DateTimePicker1: TDateTimePicker;

Edit3: TEdit;

BitBtn1: TBitBtn;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

DateTimePicker2: TDateTimePicker;

Label5: TLabel;

Button1: TButton;

procedure BitBtn1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

FirstDate: TDateTime;

end;

Form3: TForm3;Unit2;

{$R *.dfm}TForm3.BitBtn1Click(Sender: TObject);

with Filter do begin

FIO := Edit2.Text;

Subject := Edit3.Text;

fDate := DateTimePicker1.DateTime;

lDate := DateTimePicker2.DateTime;

end;;TForm3.FormCreate(Sender: TObject);

with DataModule2.qFirstDate do begin

Active := true;

First;

FirstDate := Fields[0].AsDateTime;

Active := false;

end;

DateTimePicker1.DateTime := FirstDate;

DateTimePicker2.DateTime := date();;TForm3.Button1Click(Sender: TObject);

edit2.Clear;

edit3.Clear;

DateTimePicker1.DateTime := FirstDate;

DateTimePicker2.DateTime := date();;.Unit6;

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComObj;

TForm6 = class(TForm)

Label1: TLabel;

Button1: TButton;

ComboBox1: TComboBox;

Label2: TLabel;

ComboBox2: TComboBox;

procedure FormShow(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure ComboBox2Select(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

procedure UpdateCombo;

end;

Form6: TForm6;Unit2, DB, ADODB;

{$R *.dfm}TForm6.UpdateCombo;

DataModule2.tbStudent.Filtered := false;

DataModule2.tbStudent.Filter := 'НГ = ' + ComboBox2.Text;

DataModule2.tbStudent.Filtered := true;

ComboBox1.Clear;

with DataModule2.tbStudent do begin

First;

while not (eof) do begin

ComboBox1.Items.Add(FieldByName('ФИО').AsString);

Next;

end;

end;

ComboBox1.ItemIndex := 0;;TForm6.FormShow(Sender: TObject);

ComboBox2.Clear;

with DataModule2.tbGruppa do begin

First;

while not (eof) do begin

ComboBox2.Items.Add(FieldByName('НГ').AsString);

Next;

end;

end;

ComboBox2.ItemIndex := 0;

UpdateCombo;;TForm6.Button1Click(Sender: TObject);

var XL, Sheet: variant;

i: integer;

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

XL.WorkBooks.Add;

Sheet := XL.WorkBooks[1].WorkSheets[1];

Sheet.Columns[1].ColumnWidth := 10;

Sheet.Columns[2].ColumnWidth := 40;

Sheet.Columns[3].ColumnWidth := 40;

Sheet.Cells[3, 1] := 'Дисциплина';

Sheet.Cells[3, 2] := 'Количество часов';

Sheet.Cells[3, 3] := 'Оценка';

Sheet.Range['A1:C1'].Merge;

Sheet.Range['A1:C1'].Style.HorizontalAlignment := -4108;

Sheet.Range['A1:C1'].Font.Bold := true;

Sheet.Range['A1:C1'].Value := 'Приложение к диплому';

Sheet.Range['A2:C2'].Merge;

Sheet.Range['A2:C2'].Value := ComboBox1.Text;

with DataModule2.qPrilDipl do begin

Parameters.ParamByName('ФИО').Value := ComboBox1.Text;

Active := true;

First;

for i:= 4 to RecordCount+4-1 do begin

Sheet.Cells[i, 1] := Fields[0].AsString;

Sheet.Cells[i, 2] := Fields[1].AsString;

Sheet.Cells[i, 3] := inttostr(round(Fields[2].AsFloat));

Next;

end;

Active := false;

end;

XL.Visible := true;;TForm6.ComboBox2Select(Sender: TObject);

UpdateCombo;;TForm6.FormClose(Sender: TObject; var Action: TCloseAction);

DataModule2.tbStudent.Filtered := false;;.Unit7;

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComObj, ExcelXP;

TForm7 = class(TForm)

Label1: TLabel;

ComboBox1: TComboBox;

Button1: TButton;

procedure FormShow(Sender: TObject);

procedure Button1Click(Sender: TObject);

end;

Form7: TForm7;Unit2, DB, ADODB;

{$R *.dfm}TForm7.FormShow(Sender: TObject);

ComboBox1.Clear;

with DataModule2.tbGruppa do begin

First;

while not (eof) do begin

ComboBox1.Items.Add(FieldByName('НГ').AsString);

Next;

end;

end;

ComboBox1.ItemIndex := 0;;TForm7.Button1Click(Sender: TObject);

var XL, Sheet, x: variant;

i, j: integer;

a: array of integer;

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

XL.WorkBooks.Add;

Sheet := XL.WorkBooks[1].WorkSheets[1];

Sheet.Columns[1].ColumnWidth := 10;

Sheet.Columns[2].ColumnWidth := 40;

Sheet.Columns[3].ColumnWidth := 40;

Sheet.Cells[4, 1] := 'Фамилия';

Sheet.Columns[1].ColumnWidth := 33.43 ;

Sheet.Cells[3, 2] := 'дисциплины';

Sheet.Range['A1:C1'].Merge;

Sheet.Range['A1:C1'].Style.HorizontalAlignment := -4108;

Sheet.Range['A1:C1'].Font.Bold := true;

Sheet.Range['A1:C1'].Value := 'Ведомость успеваемости';

Sheet.Range['A2:C2'].Merge;

Sheet.Range['A2:C2'].Value := ComboBox1.Text;

i := 0;

with DataModule2.tbStudent do begin

Filter := 'НГ=' + ComboBox1.Text;

Filtered := true;

First;

SetLength(a, RecordCount);

while not eof do begin

Sheet.Cells[i+5, 1] := FieldByName('ФИО').AsString;

a[i] := FieldByName('НС').AsInteger;

inc(i);

Next;

end;

Filtered := false;

end;

i:=1;

with DataModule2.tbPredm do begin

First;

while not eof do begin

inc(i);

Sheet.Cells[4, i] := FieldByName('НП').AsString;

Sheet.Columns[i].ColumnWidth := 10.43 ;

with DataModule2.qVed do begin

Parameters.ParamByName('subject').Value :=

DataModule2.tbPredm.FieldByName('КП').Value;

Parameters.ParamByName('group').Value := ComboBox1.Text;

Active := true;

First;

for j:=0 to length(a)-1 do begin

x := Lookup('НC',a[j],'ОЦЕНКА');

if not(VarIsNull(x)) then

Sheet.Cells[j+5,i] := round(double(x))

else

Sheet.Cells[j+5,i] := '-';

end;

Active := false;

end;

Next;

end;

end;

inc(i);

Sheet.Cells[4, i] := 'Средний балл';

Sheet.Columns[i].ColumnWidth := 23.43 ;

for j:= 5 to length(a)+4 do begin

Sheet.cells[j,i].FormulaR1C1 := '=round(AVERAGE(RC[-5]:RC[-1]),1)';

end;

XL.Visible := true;;

end.



Оглавление Введение Глава 1. Общая часть 1.1 Сущность поставленной задачи 1.2 Постановка задачи 1.2.1 Первичные документы 1.2.2 Требования

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ