Разработка подсистемы генерации учебно-тренировочных заданий
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
?а данных.
Заключение
В ходе выполнение данного курсового проекта была создана подсистема генерации учебно-тренировочных заданий. Данная подсистема выполняет создание различных вариантов текста учебно-тренировочного задания различного вида и типа.
Благодаря данной подсистеме процесс создания учебно-тренировочных заданий преподавателем для студентов очень сильно упростился. Теперь для того чтобы проверить знания студента или подготовить его к определенной теме предмета, не надо тратить много времени на поиск и разработку заданий Необходимо всего лишь запустить данную подсистему и выбрать из списка то задание, которое необходимо. И еще одно важное положительное качество подсистемы то что можно сгенерировать сколь угодно много заданий одного типа но разного по содержанию, для большого количества студентов.
Приложение А
Листинг
подсистема информационная программа
static void Main()
{.Run(new Form1());
}void button2_Click(object sender, System.EventArgs e) //- обработчик событий который при нажатие на элемент загружает форму с именем FormEditor.
{fe=new FormEditor();.ShowDialog();.Dispose();
}void Form1_Load(object sender, System.EventArgs e)
{
}void button1_Click(object sender, System.EventArgs e) //обработчик событий который при нажатие на элемент загружает форму с именем FormGen.
{fe=new FormGen();.ShowDialog();.Dispose();
}
}
}
-----------------------param
{int тип; //0 - текст 1 - число 2 - словоstring неизменяемыйТекст;string[] варианты;double min;double max;double шаг;
}[] параметр=new param[100];// массив для хранения параметровчислоПараметров=0;void FormEditor_Load(object sender, System.EventArgs e)
{
}void СчитатьДанныеИзЭлементов() // функция для считывания данных из элементов
{(int i=0;i<числоПараметров;i++)
{(параметр[i].тип==0).параметр[i].неизменяемыйТекст=((this.panel1.Controls[i]as Panel).Controls[0] as TextBox).Text;(параметр[i].тип==1)
{.параметр[i].min=Convert.ToDouble(((this.panel1.Controls[i] as Panel).Controls[0] as TextBox).Text);.параметр[i].max=Convert.ToDouble(((this.panel1.Controls[i]as Panel).Controls[1] as TextBox).Text);.параметр[i].шаг=Convert.ToDouble(((this.panel1.Controls[i]as Panel).Controls[2] as TextBox).Text);
}(параметр[i].тип==2)
{(int k=0;k<100;k++)
this.параметр[i].варианты[k]=null;
for(int k=0;k<((this.panel1.Controls[i] as Panel).Controls[1]as ListBox).Items.Count;k++).параметр[i].варианты[k]=((this.panel1.Controls[i] as Panel).Controls[1] as ListBox).Items[k].ToString();
}
}
}void Построение()// функция для создания динамически панели с элементами наней
{.textBox1.Text="";(int i=0;i<числоПараметров;i++)
{(параметр[i].тип==0).textBox1.Text+=параметр[i].неизменяемыйТекст+" ";(параметр[i].тип==1).textBox1.Text+=параметр[i].min.ToString()+" ";
if(параметр[i].тип==2)
{(параметр[i].варианты[0]!=null).textBox1.Text+=параметр[i].варианты[0]+" ";
else.textBox1.Text+="НЕТ_ЗНАЧЕНИЯ ";
}
}.panel1.Controls.Clear();(int i=0;i<числоПараметров;i++)
{(параметр[i].тип==0)
{p=new Panel();.SetBounds(25,i*100,this.panel1.Width-50,90);.BorderStyle=System.Windows.Forms.BorderStyle.FixedSingle;tb1=new TextBox();.SetBounds(10,5,p.Width-20,50);.Multiline=true;.Text=параметр[i].неизменяемыйТекст;.Controls.Add(tb1);b=new Button();
b.SetBounds(10,60,150,25);.Text="Удалить параметр";
b.Click += new System.EventHandler(this.buttonDeleteParam_Click);.Controls.Add(b);.panel1.Controls.Add(p);
}(параметр[i].тип==1)
{p=new Panel();.SetBounds(25,i*100,this.panel1.Width-50,90);.BorderStyle=System.Windows.Forms.BorderStyle.FixedSingle;tb1=new TextBox();.SetBounds(50,10,50,32);.Text=параметр[i].min.ToString();.Controls.Add(tb1);tb2=new TextBox();.SetBounds(150,10,50,32);.Text=параметр[i].max.ToString();.Controls.Add(tb2);tb3=new TextBox();.SetBounds(250,10,50,32);.Text=параметр[i].шаг.ToString();.Controls.Add(tb3);l1=new Label();.SetBounds(5,10,40,32);.Text=" Min:";.Controls.Add(l1);l2=new Label();.SetBounds(105,10,40,32);.Text=" Max:";.Controls.Add(l2);l3=new Label();.SetBounds(205,10,40,32);.Text=" Шаг:";.Controls.Add(l3);b=new Button();
b.SetBounds(10,60,150,25);.Text="Удалить параметр";
b.Click += new System.EventHandler(this.buttonDeleteParam_Click);.Controls.Add(b);.panel1.Controls.Add(p);
}(параметр[i].тип==2)
>";.Click+=newSystem.EventHandler(this.buttonAddVar_Click);.Controls.Add(b);b2=newButton();">{p=new Panel();.SetBounds(25,i*100,this.panel1.Width-50,90);.BorderStyle=System.Windows.Forms.BorderStyle.FixedSingle;tb1=new TextBox();.SetBounds(100,10,100,32);.Text="";.Controls.Add(tb1);lb=new ListBox();.SetBounds(320,10,100,75);(int k=0;k";.Click += new System.EventHandler(this.buttonAddVar_Click);.Controls.Add(b);b2=new Button();
b2.SetBounds(430,10,100,32);.Text="Удалить вариант";
b2.Click += new System.EventHandler(this.buttonDelVar_Click);.Controls.Add(b2);b1=new Button();
b1.SetBounds(10,60,150,25);.Text="Удалить параметр";
b1.Click += new System.EventHandler(this.buttonDeleteParam_Click);.Controls.Add(b1);.panel1.Controls.Add(p);
}
}
}void button1_Click(object sender, System.EventArgs e) //обработчик событий который при нажатие на элемент button1 загружает панель для ввода не генерируемого текста.
{.параметр[this.числоПараметров].тип=0;
СчитатьДанныеИзЭлементов();.числоПараметров++;
Построение();
}void button2_Click(object sender, System.EventArgs e) //обработчик событий который при нажатие на элемент button1 загружает панель для ввода генерируемого текста.
{.параметр[this.числоПараметров].тип=2;.параметр[this.числоПараметров].варианты=new string[100];
СчитатьДанныеИзЭлементов();.числоПараметров++;
Построение();
}void button3_Click(object sender, System.EventArgs e) //обработчик событий который при нажатие на элемент button1 загружает панель для ввода не генерируемых чисел.
{.параметр[this.числоПараметров].тип=1;
СчитатьДанныеИзЭлементов();.числоПараметров++;
Построение();
}void buttonDeleteParam_Click(object sender, System.EventArgs e) //обработчик событий который при нажатие на элемент button удаляет введенный текст.
{x=Cursor.Position.X-this.Location.X-this.panel1.Location.X;y=Cursor.Position.Y-this.Location.Y-this.panel1.Location.Y-(this.panel1.Controls[0]as Panel).Bounds.Y;
//MessageBox.Show("x="+x.ToString()+" y="+y.ToString());(int i=0;i<числоПараметров;i++)
if(x>43 & xi*100+93 & y<i*100+93+25)
{
СчитатьДанныеИзЭлементов();
for(int k=i;k<числоПараметров;k++).параметр[k]=this.параметр[k+1];
this.параметр[this.числоПараметров].тип=3;
this.чис?/p>