Разработка подсистемы генерации учебно-тренировочных заданий

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

?а данных.

 

 

 

Заключение

 

В ходе выполнение данного курсового проекта была создана подсистема генерации учебно-тренировочных заданий. Данная подсистема выполняет создание различных вариантов текста учебно-тренировочного задания различного вида и типа.

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

 

 

 

Приложение А

 

Листинг

подсистема информационная программа

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>