Скачать 0.76 Mb.
|
AppendParameter(command, "Answer", new TString(answer, 1000)); AppendParameter(command, "Id", new TInt(id), ParameterDirection.Output); Execute(command); return (int)command.Parameters["@Id"].Value; } } public bool EditTest(int id, int? documentId, string question, int? method, string answer) { TestsDataSet tests = new TestsDataSet(); int result = 0; using (SqlCommand command = new SqlCommand()) { command.CommandType = CommandType.StoredProcedure; command.CommandText = "dbo.ui_EditTest"; AppendParameter(command, "DocumentId", new TInt(documentId)); AppendParameter(command, "Question", new TString(question, 250)); AppendParameter(command, "Method", new TInt(method)); AppendParameter(command, "Answer", new TString(answer, 1000)); AppendParameter(command, "Id", new TInt(id)); AppendParameter(command, "Result", new TInt(result), ParameterDirection.ReturnValue); Execute(command); return ((int)command.Parameters["@Result"].Value) == 1; } } public int AddAnswerZone(int testId, string word, int location, int? leftZoneId, int? rightZoneId, int price, bool charCase) { int id = -1; using (SqlCommand command = new SqlCommand()) { command.CommandType = CommandType.StoredProcedure; command.CommandText = "dbo.ui_AddAnswerZone"; AppendParameter(command, "TestId", new TInt(testId)); AppendParameter(command, "Word", new TString(word, 250)); AppendParameter(command, "Location", new TInt(location)); AppendParameter(command, "LeftZoneId", new TInt(leftZoneId)); AppendParameter(command, "RightZoneId", new TInt(rightZoneId)); AppendParameter(command, "Price", new TInt(price)); AppendParameter(command, "CharCase", new TBool(charCase)); AppendParameter(command, "Id", new TInt(id), ParameterDirection.Output); Execute(command); return (int)command.Parameters["@Id"].Value; } } public bool DropTest(int id) { int result = 0; using (SqlCommand command = new SqlCommand()) { command.CommandType = CommandType.StoredProcedure; command.CommandText = "dbo.ui_DropTest"; AppendParameter(command, "Id", new TInt(id)); AppendParameter(command, "Result", new TInt(result), ParameterDirection.ReturnValue); Execute(command); return ((int)command.Parameters["@Result"].Value) == 1; } } public bool DropTestFull(int documentId) { int result = 0; using (SqlCommand command = new SqlCommand()) { command.CommandType = CommandType.StoredProcedure; command.CommandText = "dbo.ui_DropTestFull"; AppendParameter(command, "DocumentId", new TInt(documentId)); AppendParameter(command, "Result", new TInt(result), ParameterDirection.ReturnValue); Execute(command); return ((int)command.Parameters["@Result"].Value) == 1; } } public bool DropJournal(DateTime? testDate, string userName, string testName) { int result = 0; using (SqlCommand command = new SqlCommand()) { command.CommandType = CommandType.StoredProcedure; command.CommandText = "dbo.ui_DropJournal"; AppendParameter(command, "TestDate", new TDateTime(testDate)); AppendParameter(command, "UserName", new TString(userName, 300)); AppendParameter(command, "TestName", new TString(testName, 500)); AppendParameter(command, "Result", new TInt(result), ParameterDirection.ReturnValue); Execute(command); return ((int)command.Parameters["@Result"].Value) == 1; } } } public class TDateTime : TParamBase { public TDateTime(DateTime? value) { if (value == null) this.__value = DBNull.Value; else this.__value = value; this.precision = 0; this.type = DbType.DateTime; } } public class TBool : TParamBase { public TBool(bool? value) { if (value == null) this.__value = DBNull.Value; else this.__value = value; this.precision = 0; this.type = DbType.Boolean; } } public class TString : TParamBase { public TString(string value, int precision) { if (value == null) this.__value = DBNull.Value; else this.__value = value.Substring(0, Math.Min(value.Length, precision)); this.precision = precision; this.type = DbType.StringFixedLength; } } public class TInt : TParamBase { public TInt(int? value) { if (value == null) this.__value = DBNull.Value; else this.__value = value; this.precision = 0; this.type = DbType.Int32; } } public class TBinary : TParamBase { public TBinary(byte[] value) { this.__value = value; this.precision = 0; this.type = DbType.Binary; } } public abstract class TParamBase { protected object __value; public object Value { get { return __value; } set { __value = value; } } protected int precision; public int Precision { get { return precision; } set { precision = value; } } protected DbType type; public DbType Type { get { return type; } set { type = value; } } } }
using System; using System.Collections.Generic; using System.Text; namespace TestSystem { public class Distance { /// /// Compute Levenshtein distance /// /// String 1 /// String 2 /// /// The larger the number, the bigger the difference. /// public int LD(string s, string t) { int n = s.Length; //length of s int m = t.Length; //length of t int[,] d = new int[n + 1, m + 1]; // matrix int cost; // cost // Step 1 if (n == 0) return m; if (m == 0) return n; // Step 2 for (int i = 0; i <= n; d[i, 0] = i++) ; for (int j = 0; j <= m; d[0, j] = j++) ; // Step 3 for (int i = 1; i <= n; i++) { //Step 4 for (int j = 1; j <= m; j++) { // Step 5 cost = (t.Substring(j - 1, 1) == s.Substring(i - 1, 1) ? 0 : 1); // Step 6 d[i, j] = System.Math.Min(System.Math.Min(d[i - 1, j] + 1, d[i, j - 1] + 1), d[i - 1, j - 1] + cost); } } // Step 7 return d[n, m]; } public static int Percent(string s, string t) { Distance distance = new Distance(); double points = 1.0 / (1.0 + distance.LD(s, t)); return Convert.ToInt32(points * 100); } } }
using System; using System.Collections.Generic; using System.Text; using TestSystem.Data; namespace TestSystem { class ZoneChecking { DataAccess access = new DataAccess(Properties.Settings.Default.ConnectionString); public static int Percent(int questionId, string answer) { ZoneChecking checking = new ZoneChecking(); return checking.CalcPercent(questionId, answer); } private int CalcPercent(int questionId, string answer) { // вычитываем перечень допустимых смысловых зон AnswerZonesDataSet zones = access.LoadAnswerZones(questionId); // анализируем ответ и выделяем из него допустимые зоны AnswerZonesDataSet.AnswerZonesRow[] answerZones = AnswerAnalyzer(answer, zones); int result = 0; // определяем балл for (int i = 0; i < answerZones.Length; i++) { int indexZone = i+1; if (answerZones[i].Location == 0) { // эта зона должна иметь фиксированный индекс в ответе if (zones.AnswerZones.Rows.IndexOf(answerZones[i]) + 1 == indexZone) { result += answerZones[i].Price; } } else if (answerZones[i].Location == 1) { // зона должна находится в пределах if (indexZone > answerZones[i].LeftZoneId && indexZone < answerZones[i].RightZoneId) { result += answerZones[i].Price; } } } return result; } /// /// Находит вхождение зоны в строке отчета /// /// строка ответа пользователя /// смысловые зоны ответа /// индекс с которого начинать поиск зон в строке ответа /// найденая зона /// private int IndexOfAny(string s, AnswerZonesDataSet zones, int startIndex, out AnswerZonesDataSet.AnswerZonesRow findedZone) { int minIndex = int.MaxValue; AnswerZonesDataSet.AnswerZonesRow minZone = null; foreach (AnswerZonesDataSet.AnswerZonesRow zone in zones.AnswerZones) { int index = s.IndexOf(zone.Word, startIndex); if (index >= 0 && index < minIndex) { minIndex = index; minZone = zone; } } findedZone = minZone; return minIndex == int.MaxValue ? -1 : minIndex; } /// /// Представляет ответ пользователя ввиде массива допустимых для этого вопроса зон /// /// ответ пользователя /// допустимые для этого ответа зоны /// private AnswerZonesDataSet.AnswerZonesRow[] AnswerAnalyzer(string answer, AnswerZonesDataSet zones) { List AnswerZonesDataSet.AnswerZonesRow findedZone; int index = IndexOfAny(answer, zones, 0, out findedZone); while (index >= 0) { index += findedZone.Word.Length + 1; answerZones.Add(findedZone); index = IndexOfAny(answer, zones, index, out findedZone); } return answerZones.ToArray(); } } } |
Учебно-методический комплекс дисциплины сд. Ф. 18 Методика обучения изобразительной деятельности Целью его является изучение современного состояния эстетического образования дошкольников на основе ознакомления с искусствоведческими... | Анализ современного состояния Единой Энергетической Системы России,... В работе представлен анализ современного состояния Единой Энергетической Системы России, основных проблем в энергетике России, а... | ||
Русский народный костюм как источник вдохновения для создания современного костюма Образовательная: научить методам создания эскиза современного костюма на основе русского костюма | Анализ деяельности педагогического коллектива, направленой на обеспечение... Анализ деяельности педагогического коллектива, направленой на обеспечение базового образования, анализ состояния преподавания и процесса... | ||
Структура архитектуры ивс "атмосферные аэрозоли" Широкий класс задач, связанных с обеспечением контроля состояния атмосферы крупного промышленного центра требуют создания специализированных... | Знакомство с чудесной дымкой Целью его является изучение современного состояния эстетического образования дошкольников на основе ознакомления с искусствоведческими... | ||
Обзор систем дистанционного обучения (сдо) Персональный менеджмент: Учеб методический комплекс / Авт и сост.: М. Б. Дюжева. – Омск: Типография «с-принт», 2011. – 85 с | Работа представляет собой краткий обзор состояния дел в области разработки... Изложены базовые принципы построения ситемы управления на базе поведенческих реакций и архитектуры системы управления группой летательных... | ||
Конспект нод по образовательной деятельности Целью его является изучение современного состояния эстетического образования дошкольников на основе ознакомления с искусствоведческими... | Исследование современного состояния производства специальной одежды из огнезащитных тканей В статье представлены результаты исследования современного состояния производства специальной одежды из огнезащитных тканей | ||
Конспект занятия по развитию речи на тему Целью его является изучение современного состояния эстетического образования дошкольников на основе ознакомления с искусствоведческими... | Конспект занятия в старшей группе мбдоу д/с №8 Целью его является изучение современного состояния эстетического образования дошкольников на основе ознакомления с искусствоведческими... | ||
«Зима» Цель: способствовать развитию экспрессивной речи Целью его является изучение современного состояния эстетического образования дошкольников на основе ознакомления с искусствоведческими... | Занятие по лепке в младшей группе на тему: «Цыплята» Цель Целью его является изучение современного состояния эстетического образования дошкольников на основе ознакомления с искусствоведческими... | ||
Конспект открытого занятия по изобразительной деятельности в средней группе Целью его является изучение современного состояния эстетического образования дошкольников на основе ознакомления с искусствоведческими... | Конспект занятия по лепке (предметной) в средней группе Тема: "Кукла" Целью его является изучение современного состояния эстетического образования дошкольников на основе ознакомления с искусствоведческими... |