Хранимые процедуры
CREATE PROCEDURE [dbo].[GetAttendanceListByDiscipline]
@disciplineId int
AS
SELECT [Attendance].[AttendanceID],
[Attendance].[Name],
[Attendance].[Date]
FROM [Attendance]
WHERE [Attendance].[DisciplineID] = @disciplineId
CREATE PROCEDURE [dbo].[GetLabWorkListByDiscipline]
@disciplineId int
AS
SELECT [LabWork].[LabWorkID],
[LabWork].[Name],
[LabWork].[StartDate],
[LabWork].[EndDate],
[LabWork].[MaxBalls]
FROM [LabWork]
WHERE [LabWork].[DisciplineID] = @disciplineId
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetStudentAttendanceListByGroupAndDiscipline]
@groupId int,
@disciplineId int
AS
SELECT [Student].[StudentID],
[StudentAttendance].[AttendanceID],
[StudentAttendance].[IsPresent]
FROM [Attendance]
LEFT JOIN [StudentAttendance] ON [Attendance].[AttendanceID] = [StudentAttendance].[AttendanceID]
JOIN [Student] ON [Student].[StudentID] = [StudentAttendance].[StudentID]
JOIN [User] ON [User].[UserID] = [Student].[UserID]
WHERE [Attendance].[DisciplineId] = @disciplineId AND [User].[GroupId] = @groupId
ORDER BY [Student].[StudentID]
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetStudentBonusListByGroupAndDiscipline]
@groupId int,
@disciplineId int
AS
SELECT [Bonus].[Score],
[Student].[StudentID]
FROM [Bonus]
JOIN [Student] ON [Student].[StudentID] = [Bonus].[StudentID]
JOIN [User] ON [User].[UserID] = [Student].[UserID]
WHERE [Bonus].[DisciplineId] = @disciplineId AND [User].[GroupId] = @groupId
ORDER BY [Student].[StudentID]
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetStudentListByGroup]
@groupId int
AS
SELECT [Student].[StudentID],
[User].[Name],
[User].[Patronymic],
[User].[Family]
FROM [Student]
JOIN [User] ON [User].[UserID] = [Student].[UserID]
WHERE [User].[GroupId] = @groupId
ORDER BY [User].[Family], [User].[Name], [User].[Patronymic], [Student].[StudentID]
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetStudentScoreListByGroupAndDiscipline]
@groupId int,
@disciplineId int
AS
SELECT [Student].[StudentID],
[StudentLab].[LabWorkID],
[StudentLab].[PassedDate],
[StudentLab].[Score],
[StudentLab].[TeacherID],
[StudentLab].[Annotation]
FROM [LabWork]
LEFT JOIN [StudentLab] ON [LabWork].[LabWorkID] = [StudentLab].[LabWorkID]
JOIN [Student] ON [Student].[StudentID] = [StudentLab].[StudentID]
JOIN [User] ON [User].[UserID] = [Student].[UserID]
WHERE [LabWork].[DisciplineId] = @disciplineId AND [User].[GroupId] = @groupId
ORDER BY [Student].[StudentID]
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SaveGroup]
@name [varchar] (20),
@isTeacher bit = 0
AS
DECLARE @groupID int
IF (NOT EXISTS (SELECT 1 FROM [Group] WHERE [Group].[Name] = @name))
BEGIN
INSERT INTO [Group] (
[Name],
[IsTeacher]
)
VALUES (
@name,
@isTeacher
)
SELECT @groupID = SCOPE_IDENTITY()
END
ELSE
BEGIN
SELECT @groupID = (SELECT GroupID FROM [Group] WHERE [Group].[Name] = @name)
END
RETURN @groupID
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SaveStudentAttendance]
@attendanceID int,
@studentID int,
@userID int,
@isPresent bit
AS
IF EXISTS (SELECT * FROM [dbo].[StudentAttendance] WHERE [StudentID] = @studentID AND [StudentAttendance].[AttendanceID]=@attendanceID)
BEGIN
IF (@isPresent=0)
BEGIN
DELETE FROM [dbo].[StudentAttendance]
WHERE [StudentID] = @studentID AND [StudentAttendance].[AttendanceID]=@attendanceID
END
ELSE
BEGIN
UPDATE [dbo].[StudentAttendance]
SET [StudentAttendance].[IsPresent]=@attendanceID,[StudentAttendance].[UserID]=@userID
WHERE [StudentAttendance].[AttendanceID]=@attendanceID AND [StudentAttendance].[StudentID]=@studentID
END
END
ELSE
BEGIN
INSERT INTO dbo.[StudentAttendance] (AttendanceID, StudentID, UserID,IsPresent)
VALUES (@attendanceID, @studentID, @userID,@isPresent)
END
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SaveStudentBonus]
@disciplineID int,
@studentID int,
@teacherID int,
@score smallint
AS
IF EXISTS (SELECT * FROM [dbo].[Bonus] WHERE [Bonus].[StudentID] = @studentID AND [Bonus].[DisciplineID]=@disciplineID)
BEGIN
IF (@score=0)
BEGIN
DELETE FROM [dbo].[Bonus]
WHERE [Bonus].[StudentID] = @studentID AND [Bonus].[DisciplineID]=@disciplineID
END
ELSE
BEGIN
UPDATE [dbo].[Bonus]
SET [Bonus].[Score]=@score,[Bonus].[TeacherID]=@teacherID
WHERE [Bonus].[StudentID] = @studentID AND [Bonus].[DisciplineID]=@disciplineID
END
END
ELSE
BEGIN
IF (@score<>0)
BEGIN
INSERT INTO dbo.[Bonus] (DisciplineID, StudentID, TeacherID, Score)
VALUES (@disciplineID, @studentID, @teacherID, @score)
END
END
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SaveStudentScore]
@labWorkID int,
@studentID int,
@teacherID int,
@score smallint,
@passedDate datetime = NULL
AS
IF EXISTS (SELECT * FROM [dbo].[StudentLab] WHERE [StudentID] = @studentID AND [StudentLab].[LabWorkID]=@labWorkID)
BEGIN
IF (@score=0)
BEGIN
DELETE FROM [dbo].[StudentLab]
WHERE [StudentID] = @studentID AND [StudentLab].[LabWorkID]=@labWorkID
END
ELSE
BEGIN
UPDATE [dbo].[StudentLab]
SET [StudentLab].[PassedDate]=ISNULL(@passedDate, GetDate()), [StudentLab].[Score]=@score,[StudentLab].[TeacherID]=@teacherID
WHERE [StudentLab].[LabWorkID]=@labWorkID AND [StudentLab].[StudentID]=@studentID
END
END
ELSE
BEGIN
IF (@score<>0)
BEGIN
INSERT INTO dbo.[StudentLab] (LabWorkID, StudentID, TeacherID, PassedDate, Score, Annotation)
VALUES (@labWorkID, @studentID, @teacherID,ISNULL(@passedDate, GetDate()) , @score, '-')
END
END
ПРИЛОЖЕНИЕ 3
Техническое задание
Введение
Система «Распределенная система электронных рейтинговых ведомостей» создается с целью ускорить работу и повысить достоверность данных при работе с оценками студентов и их посещением занятий, а также повысить качество образовательного процесса
Назначение разработки
Основные задачи, которые должна решать разрабатываемая система:
Повышение эффективности обучения
Уменьшение времени, затрачиваемого на анализ текущей успеваемости студентов
Повышение достоверности данных
Проверка возможности дальнейшего процесса перехода на электронный документооборот
Требования к функциональным характеристикам
ИС должна представлять собой комплекс программных средств для решения поставленных задач и соответствовать следующим требованиям к функциональности:
Обеспечивать доступ к данным с любого компьютера локальной сети кафедры или удаленного компьютера за пределами университета.
добавлять, удалять и редактировать сведения об успеваемости студентов и их посещении занятий
хранить и редактировать данные о предметах (такие данные, как – список рекомендуемой литературы, ссылки на учебники и т.д.)
обеспечить возможность взаимодействия ИС с другими ИС университета
обеспечить возможность просмотра и редактирования информации о дополнительных и основных занятиях
обеспечить возможность экспорта данных в формат MS Office Excel
Требования к надежности
При выборе технических средств для реализации ИС и разработке ПО, необходимо учесть требования, предъявляемые к ИС:
Высокая степень защиты данных;
Обеспечение достоверности отображаемых данных;
Обеспечение минимального времени восстановления системы;
регистрация всей информации, циркулирующей в системе;
возможность выдачи информации на экран монитора в форме, обеспечивающей эффективную работу оператора;
обеспечение высокой надежности как технических средств, так и ПО.
Условия эксплуатации
ИС должна быть реализована на языке программирование высокого уровня, с использованием возможностей интерфейса веб-страниц.
Клиент:
процессор не хуже Pentium II 400 МГц
объем ОЗУ не менее 128 Мб;
монитор не хуже SVGA 0.26, 15 дюймов
Клавиатура IBM PC AT 101/102 клавиши
Манипулятор мышь.
Сервер:
процессор не хуже Pentium IV 1ГГц
объем ОЗУ не менее 512 Мб
объем жесткого диска не менее 10 Гб (свободно не менее 1ГБ)
Сетевая карта
Требования к информационной и программной совместимости
Вся клиентская часть ИС должна быть разработана на языке C# 3.5.
Часть приложения, обеспечивающая необходимую работу с СУБД, должна быть реализована на языке T-SQL, совместимым с MS SQL Server 2005
Системное программное обеспечение, требуемое для сервера ПО, включает в себя операционную систему Microsoft Windows NT или выше, сетевое программное обеспечение Microsoft, комплекс библиотек .NET Framework 3.5
Системное программное обеспечение для клиента - браузер с поддержкой технологии AJAX
Требования к программной документации
Документация на разрабатываемую систему должна включать:
руководство пользователя;
руководство системного программиста.
Стадии и этапы разработки
Период разработки разбивается на следующие стадии
Разработка концептуальной модели. Создается объектно-ориентированная модель проектируемой системы.
Разработка пользовательских интерфейсов
Разработка способов взаимодействия с БД
Кодирование алгоритмов
Отладка и тестирование
При завершении кодирования каждого модуля проводится его предварительное тестирование. После окончания этапа кодирования производится сборка и финальное тестирование системы.
Документирование
Завершающей стадией является разработка документации созданного программного продукта. В ней описывается функциональность и структура сохраняемых документов.
|