
- •Перечень вопросов, подлежащих разработке в пояснительной записке
- •Отзыв руководителя на дипломную работу
- •Введение
- •1. Общая часть.
- •1.2.2.2. Элементы языка
- •1.2.2.3 Способы структурирования программы
- •1.2.2.4 Дополнительные средства языка
- •Настройка соединения с сервером базы данных
- •Отключение окна ввода пароля
- •Включение соединения с базой данных
- •Специальная часть
- •2.1 Постановка задачи
- •2.1.1 Назначение задачи
- •2.3. Описание программы
- •2.3.1. Описание структуры программы
- •2.3.2. Входные и выходные данные
- •2.3.3. Организация данных в программе
- •2.4. Инструкция пользователя
- •2.5. Оценка результатов решения задачи
- •Расчет предполагаемой прибыли от реализации созданного программного продукта
- •3.1 Расчет затрат на выполнение проекта
- •3.1.1 Расчет трудоёмкос ти
- •3.1.2 Расчет затрат на материалы
- •3.1.3 Расчет амортизации
- •3.1.4 Расчет затрат электроэнергии
- •3.2 Расчет предполагаемой прибыли
- •3.2.1 Преимущества созданного программного продукта
- •Заключение
- •Список используемой литературы
- •Список используемых internet-ресурсов
Заключение
В заключении хотелось бы сказать, что на ранних стадиях разработки (а это начало 2011 года), программа предусматривала собой он-лайн тестирование, в которую входил не только полигон для тестирования, а так же сервер и интернет-сайт. Сначала проектом занимались три человека. Но, после ряда обсуждений – решили, что каждый должен писать свою программу и свой диплом, а не свою часть/модуль и общий диплом. Тем не менее, я считаю, что программа получилась интересной и достойной внимания. Помимо всего прочего, для чего она создавалась, мне пришлось весьма глубоко углубиться в программирование, - познать ряд вещей, которые мы не изучали на предметах программирования/ТРПП, что-то, что упустил изучить, а что-то познать и придумать сам. В любом случае для меня это послужило хорошим и полезным времяпровождением. Это не только укрепило мои знания программирования, но и подтолкнуло меня к изучению чего-то нового, стремлению, а так же более тесных связей с педагогами колледжа. Несмотря на то, что тот период, что является преддипломным и большинство уже окончили свою практику и спокойно сидят за дипломом – у меня же продолжается практика и всевозможная общественная деятельность. Но это только улучшает процесс! В таких случаях, когда ни на что не хватает времени, ненужно сдаваться! Именно так можно и нужно добиваться всего и сразу. Во многом я благодарен этому периоду, в который писался этот диплом. Мне пришлось многое пройти и многое познать для достижения этой цели.
Список используемой литературы
Архангельский А. Я., Тагин М. А. Программирование в C++ Builder 6 и 2006
Список используемых internet-ресурсов
www.codenet.ru
www.ishodniki.ru
www.vingrad.ru
www.truez.ru
www.cyberforum.ru
www.dokakodm.ucoz.ru
www.programmersforum.ru
www.sources.ru
www.builder-c.narod.ru
ПРИЛОЖЕНИЕ 1
UnitVX2.cpp
#include <vcl.h>
#pragma hdrstop
#include "UnitVX2.h"
#include "UnitStu.h"
#include "UnitPrep.h"
#include "Unitabout.h"
//#include "UnitStud.h"
//#include "Unit2.h"
//#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormVX2 *FormVX2;
int pr=0;
int tekpolsov;
AnsiString prep;
//---------------------------------------------------------------------------
__fastcall TFormVX2::TFormVX2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormVX2::FormCreate(TObject *Sender)
{
//лишние на данный момент компоненты невидимы
Edit2->Visible=false;
Label2->Visible=false;
Label3->Visible=false;
ComboBox2->Visible=false;
ComboBox2->ItemIndex=0;
ComboBox2->Clear();
ComboBox2->Text="Выбор пользователя";
ADOTable1->Active=true;
while(!ADOTable1->Eof){
ComboBox2->Items->Add(ADOTable1->Fields->Fields[1]->Value);
ADOTable1->Next();
}
ComboBox2->ItemIndex=0;
}
//---------------------------------------------------------------------------
void __fastcall TFormVX2::Edit2Change(TObject *Sender)
{
//вход для преподавателя
int s,r,prizn=0;
AnsiString ss;
if (pr == 1){
ADOTable1->Active=true;
ADOTable1->First();
while(!ADOTable1->Eof){
Memo1->Lines->Add(ADOTable1->Fields->Fields[1]->Value);
if(ADOTable1->Fields->Fields[1]->Value==ComboBox2->Items->Strings[ComboBox2->ItemIndex])
{
if(ADOTable1->Fields->Fields[2]->Value == Edit2->Text)
prizn=1; Memo1->Lines->Add(IntToStr(prizn));
prep=ADOTable1->Fields->Fields[1]->Value;
break;
}
ADOTable1->Next();
} //while
} //if (pr == 1)
if(prizn==1){
tekpolsov=ADOTable1->Fields->Fields[0]->Value;
Memo1->Lines->Add(IntToStr(tekpolsov));
//ADOTable2->Active=false;
FormVX2->Hide();
FormPrep->Show();
/*Edit2->Text="";
ComboBox2->ItemIndex=0;
Label4->Caption="";
*/
//Form1->Show();
}
else Label4->Caption="Пароль неверен!";
}
//---------------------------------------------------------------------------
void __fastcall TFormVX2::ComboBox1Select(TObject *Sender)
{
//лишние на данный момент компоненты невидимы
Edit2->Visible=false;
Label2->Visible=false;
Label3->Visible=false;
ComboBox2->Visible=false;
//
pr=0;
if (ComboBox1->Items->Strings[ComboBox1->ItemIndex]=="Преподаватель")
{pr=1;
ComboBox2->Visible=true;
Edit2->Visible=true;
Label2->Visible=true;
Label3->Visible=true;
}
else // студент
{pr=2;
Edit2->Visible=false;
Label3->Visible=false;
Label2->Visible=true;
FormVX2->Hide();
FormStu->Show();
//FormStud->Show();
}
//Label4->Caption=IntToStr(pr);
}
//---------------------------------------------------------------------------
void __fastcall TFormVX2::FormClose(TObject *Sender, TCloseAction &Action)
{
exit(0);
}
//---------------------------------------------------------------------------
void __fastcall TFormVX2::Button1Click(TObject *Sender)
{
About->Show();
//FormVX2->Hide();
}
//---------------------------------------------------------------------------
UnitVX2.h
//---------------------------------------------------------------------------
#ifndef UnitVX2H
#define UnitVX2H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ADODB.hpp>
#include <DB.hpp>
#include <DBGrids.hpp>
#include <Grids.hpp>
#include <ExtCtrls.hpp>
#include <jpeg.hpp>
//---------------------------------------------------------------------------
class TFormVX2 : public TForm
{
__published: // IDE-managed Components
TLabel *Label1;
TComboBox *ComboBox1;
TLabel *Label2;
TLabel *Label3;
TEdit *Edit2;
TLabel *Label4;
TADOTable *ADOTable1;
TDataSource *DataSource1;
TDBGrid *DBGrid1;
TMemo *Memo1;
TComboBox *ComboBox2;
TADOConnection *ADOConnection1;
TButton *Button1;
TImage *Image1;
void __fastcall FormCreate(TObject *Sender);
void __fastcall Edit2Change(TObject *Sender);
void __fastcall ComboBox1Select(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TFormVX2(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TFormVX2 *FormVX2;
//---------------------------------------------------------------------------
#endif
TestCreate.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "testcreate.h"
#include "UnitPrep.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TTestCreateForm *TestCreateForm;
int fi,kol;
AnsiString a="",b="";
int tip=1,mas[7]={0},mas1[7]={0};
AnsiString testpath, filename, picpath="pic";
int z;
int prin=0; //логика принять тип вопроса не была нажата
//---------------------------------------------------------------------------
__fastcall TTestCreateForm::TTestCreateForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TTestCreateForm::Button1Click(TObject *Sender)
{
if(Edit2->Text=="" )//проверка введенных данных
{ShowMessage("Введите имя теста !");//вывод диалогового окна с сообщением
return;//выход из процедуры
}
Memo1->Lines->Add(Edit2->Text);
Button1->Visible=false;
Edit2->Visible=false;
Label2->Visible=false;
Panel1->Visible=true;
Edit4->Visible=false;
}
//---------------------------------------------------------------------------
void __fastcall TTestCreateForm::Button2Click(TObject *Sender)
{
prin=0;
int i;
//записать вопрос
//есть ли картинка
if(CheckBox6->Checked==true)
{
fi=1;
}
else fi=0;
//запись данных предыдущего вопроса в мемо-поле
Memo1->Lines->Add(Edit3->Text); //вопрос
if (tip!=3){
for(i=6;i>=0;i=i-1)if(Edit[i]->Text!=""){kol=i+1;break;}
if (kol!=z) {ShowMessage("Не все ответы введены!"); return;}
}
for(int i=0; i<kol; i++){ mas[i]=0; mas1[i]=0;}
if(tip==1) { // один ответ
for(int i=0; i<kol; i++)
if(RadioButton[i]->Checked==true) a=IntToStr(i+1);
}//if(tip==1)
if(tip==2){ //несколько ответов
for(int i=0; i<kol; i++)
if(CheckBox[i]->Checked==true) a=a+IntToStr(i+1);
} //if(tip==2)
if(tip==3){ // ответ текст
Label7->Visible=false;
Edit5->Visible=false;
if (Edit4->Text=="") {ShowMessage("Введите текст ответа !"); return;}
a=Edit4->Text;
kol=0;
} //if(tip==3)
b=(IntToStr(tip)+" "+IntToStr(kol)+" "+IntToStr(fi)+" "+a);
Memo1->Lines->Add(b);
//запись вопросов
for(int i=0;i<kol;i++)
Memo1->Lines->Add(Edit[i]->Text);
//запись имени картинки
if(fi==1)
{ AnsiString z;
z= ExtractFileName(OpenDialog1->FileName);
z="pic\\"+z;
//Memo1->Lines->Add(ExtractFileName(OpenDialog1->FileName));
Memo1->Lines->Add(z);
}// if(fi==1)
a="";
b="";
//обнулить и скрыть все поля
Edit4->Visible=false;
for(i=0;i<z;i++){
Edit[i]->Text="";
Edit[i]->Visible=false;
CheckBox[i]->Checked=false;
CheckBox[i]->Visible=false;
RadioButton[i]->Visible = false;
RadioButton[i]->Checked = false;
}
Edit3->Text="";
Edit4->Text="";
//разрешить использовать выбор типа теста для следующего вопроса
ComboBox1->Enabled=true;
// разрешить выбирать картинку
Button5->Enabled=true;
//снять флажое есть картинка
CheckBox6->Checked==false;
Label7->Visible=true;
Edit5->Visible=true;
prin=0;
}
//---------------------------------------------------------------------------
void __fastcall TTestCreateForm::Button4Click(TObject *Sender)
{
switch (ComboBox1->ItemIndex){
case 0: tip=1; break;
case 1: tip=2; break;
case 2: tip=3; break;
}
if (tip!=3)
if (Edit5->Text==""){ShowMessage("Введите число ответов!"); return; }
prin=1; //логика не нарушена есть тип вопроса и число ответов
ComboBox1->Enabled=false;
if (tip!=3)z=StrToInt(Edit5->Text); else z=0;
if(tip==1)
for (int i = 0; i < z; i++ ) {
RadioButton[i]->Visible = true;
RadioButton[i]->Checked = false;
Edit[i]->Visible=true;}
if(tip==2)
for (int i = 0; i < z; i++ ) {
Edit[i]->Visible=true;
CheckBox[i]->Visible = true;
}
if(tip==3){
Label7->Visible=false;
Edit5->Visible=false;
Edit4->Visible=true; }
}
//---------------------------------------------------------------------------
void __fastcall TTestCreateForm::Button3Click(TObject *Sender)
{
//здесь должна быть запись последнего вопроса
if(Edit1->Text==".txt"||Edit1->Text=="" )//проверка введенных данных
{ShowMessage("Введите имя файла !");//вывод диалогового окна с сообщением
return;//выход из процедуры
}
if(Application->MessageBoxA("Подтвердите запись теста в файл !","Внимание",MB_ICONWARNING+MB_YESNO)==IDYES)
{
//формирование пути
testpath="";
testpath="test\\"+Edit1->Text;
Memo1->Lines->SaveToFile(filename+"\\"+testpath);
ADODataSet1->Insert();
ADODataSet1Test->Value=(Memo1->Lines->Strings[0]);
ADODataSet1Put->Value=testpath;
ADODataSet1->Post();
}//if запись в файл
//подготовить пустое имя для следующего теста
Edit1->Text=".txt";
Memo1->Clear();
Button3->Enabled=false;
prin=0;
Edit3->Text="";
Edit5->Text=""; //число ответов
Edit4->Visible=false;
}
//---------------------------------------------------------------------------
void __fastcall TTestCreateForm::FormCreate(TObject *Sender)
{
//определить каталог - потому что сбивается из-за выбора картинки
int i,dl,pos;
AnsiString z;
z=ParamStr(0);
dl=z.Length();
i=dl; pos=0;
while(i!=1){ //убираем proeckt1.exe
if (z[i]=='\\'){
pos=i;
break;} i--; }
z=z.SubString(1,pos); //убираем "\"
filename=z;
Panel1->Visible=false;
Button1->Visible=true;
Edit2->Visible=true;
Label2->Visible=true;
Memo1->Visible=true;
Memo1->Clear();
Panel1->Visible=false;
//создаем массивы один раз и делаем их невидимыми
for (int i = 0; i < 7; i++ ) { //tip=2 флажки
CheckBox[i] = new TCheckBox(TestCreateForm);
CheckBox[i]->Parent = TestCreateForm;
CheckBox[i]->Left = 16;
CheckBox[i]->Top = 170+i*32;
CheckBox[i]->Width = 17;
CheckBox[i]->Visible = false;
CheckBox[i]->Checked = false;
CheckBox[i]->Caption=StrToInt(i);
}
for (int i = 0; i < 7; i++ ) { //варианты ответов для tip=1 tip=2
Edit[i] = new TEdit(TestCreateForm);
Edit[i]->Parent = TestCreateForm;
Edit[i]->Left = 58; //48
Edit[i]->Height = 21;
Edit[i]->Top = 170+i*32;
Edit[i]->Width = 489;
Edit[i]->Visible = false;
Edit[i]->Text="";
}
for (int i = 0; i < 7; i++ ) { //радиокнопки для tip=1
RadioButton[i] = new TRadioButton(TestCreateForm);
RadioButton[i]->Parent = TestCreateForm;
RadioButton[i]->Left = 16;
RadioButton[i]->Top = 170+i*32;
RadioButton[i]->Width = 17;
RadioButton[i]->Visible = false;
RadioButton[i]->Checked = false;
RadioButton[i]->Caption=StrToInt(i);
}
Edit4->Text=""; //ответ одной строкой
Edit5->Text=""; //число ответов
}
//---------------------------------------------------------------------------
void __fastcall TTestCreateForm::FormClose(TObject *Sender,
TCloseAction &Action)
{
//exit(0);
FormPrep->Show();
TestCreateForm->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TTestCreateForm::Button5Click(TObject *Sender)
{
OpenDialog1->InitialDir=filename+"\pic";
if(OpenDialog1->Execute()) //вызов диалога выбора файла
{
Button5->Enabled=false;
}
}
//---------------------------------------------------------------------------
/*
void __fastcall TTestCreateForm::ComboBox1Change(TObject *Sender)
{
if (ComboBox1->ItemIndex == 0){
Edit4->Visible=true; //error
Edit5->Visible=false; }
if (ComboBox1->ItemIndex == 1){
Edit4->Visible=true;
Edit5->Visible=true; }
if (ComboBox1->ItemIndex == 2){
Edit4->Visible=false; //error
Edit5->Visible=true; }
} */
//---------------------------------------------------------------------------
void __fastcall TTestCreateForm::Button6Click(TObject *Sender)
{
FormPrep->Show();
TestCreateForm->Hide();
}
//---------------------------------------------------------------------------
TestCreate.h
//---------------------------------------------------------------------------
#ifndef testcreateH
#define testcreateH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Dialogs.hpp>
#include <ExtCtrls.hpp>
#include <ADODB.hpp>
#include <DB.hpp>
//---------------------------------------------------------------------------
class TTestCreateForm : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TEdit *Edit2;
TOpenDialog *OpenDialog1;
TLabel *Label1;
TLabel *Label2;
TEdit *Edit3;
TMemo *Memo1;
TButton *Button2;
TButton *Button3;
TLabel *Label3;
TButton *Button4;
TCheckBox *CheckBox6;
TComboBox *ComboBox1;
TLabel *Label4;
TSaveDialog *SaveDialog1;
TPanel *Panel1;
TADODataSet *ADODataSet1;
TEdit *Edit1;
TLabel *Label5;
TButton *Button5;
TEdit *Edit4;
TEdit *Edit5;
TLabel *Label6;
TLabel *Label7;
TWideStringField *ADODataSet1Test;
TWideStringField *ADODataSet1Put;
TButton *Button6;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall Button4Click(TObject *Sender);
void __fastcall Button3Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall Button5Click(TObject *Sender);
void __fastcall Button6Click(TObject *Sender);
private: // User declarations
TCheckBox *CheckBox[7];
TEdit *Edit[7];
TRadioButton *RadioButton[7];
public: // User declarations
__fastcall TTestCreateForm(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TTestCreateForm *TestCreateForm;
//---------------------------------------------------------------------------
#endif
UnitTestStud.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include<stdio.h>
#include <stdlib.h>
#include <jpeg.hpp>
#include "UnitTestStud.h"
#include "UnitStu.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormTestStud *FormTestStud;
extern AnsiString te,na,gr;
int otv;
float k_vopr=0;
float per=0;
int mark=0;
FILE *lw;
char sr[200];
int kol=0;
int prk=0;
float k_pr=0;
int n1;
int n2;
int n3;
int otv1;
int otv2[9];
int kolotv2;
AnsiString slovo;
//---------------------------------------------------------------------------
__fastcall TFormTestStud::TFormTestStud(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormTestStud::readfile(){
if (!feof(lw)) {
for (int i = 0; i < 200; i++) sr[i] = ' ';
fgets(sr,200,lw);
if (sr[strlen(sr)-1] =='\n') sr[strlen(sr)-1]='\0';
}
if (feof(lw)) {prk=1;}
}
//---------------------------------------------------------------------------
void __fastcall TFormTestStud::Button1Click(TObject *Sender)
{
Image1->Visible=false;
if(k_vopr==0)Button1->Caption="Далее";
int prav=0;
if(n1==2)
{
for (int i=0; i<CheckListBox1->Items->Count; i++)
if (CheckListBox1->Checked[i])
{
for(int j=0; j<kolotv2; j++)
if (otv2[j]==i) prav++;
}
if(prav==kolotv2) k_pr++;
}
if(n1==1)
{
prav=RadioGroup1->ItemIndex;
if(prav+1==otv1) k_pr++;
}
if(n1==3)
{
if(slovo==Edit1->Text) k_pr++;
}
int i,j,indotw,dl; char dop;
readfile();
if(prk!=1) {
Label1->Caption=sr;
readfile();
if(prk==1) exit(1);
dop=sr[0]; n1=StrToInt(dop);
dop=sr[2]; n2=StrToInt(dop);
dop=sr[4]; n3=StrToInt(dop);
k_vopr++;
if (n1==1) {
dop=sr[6]; otv1=StrToInt(dop);
}
if (n1==1){
CheckListBox1->Items->Clear();
CheckListBox1->Visible=false;
RadioGroup1->Items->Clear();
RadioGroup1->ItemIndex=-1;
RadioGroup1->Visible=false;
Edit1->Visible=false;
for(i=1; i<=n2; i++){
readfile();
RadioGroup1->Items->Add(sr);
}
RadioGroup1->ItemIndex=-1;
RadioGroup1->Visible=true;
if(n3==1){ readfile();
Image1->Visible = true;
Image1->Stretch=true;
Image1->Picture->LoadFromFile(sr); }
}
if (n1==2){
i=6; j=0;
while(sr[i]) {otv2[j]=i-6; i++; j++;;}
kolotv2=j-1;
CheckListBox1->Items->Clear();
CheckListBox1->Visible=true;
RadioGroup1->Items->Clear();
RadioGroup1->ItemIndex=-1;
RadioGroup1->Visible=false;
Edit1->Visible=false;
for(i=1; i<=n2; i++){
readfile();
CheckListBox1->Items->Add(sr);
}
if(n3==1){ readfile();
Image1->Visible = true;
Image1->Stretch=true;
Image1->Picture->LoadFromFile(sr); }
}
if (n1==3){
i=6; j=0;
slovo=(AnsiString)sr;
dl=slovo.Length();
slovo=slovo.SubString(7,dl-3);
CheckListBox1->Items->Clear();
CheckListBox1->Visible=false;
RadioGroup1->Items->Clear();
RadioGroup1->ItemIndex=-1;
RadioGroup1->Visible=false;
Edit1->Text="";
Edit1->Visible=true;
if(n3==1){ readfile();
Image1->Visible = true;
Image1->Stretch=true;
Image1->Picture->LoadFromFile(sr); }
}}
else {
fclose(lw);
per=(k_pr/k_vopr)*100;
if(per<=100&&per>=90)mark=5;
else if(per<90&&per>=75)mark=4;
else if(per<75&&per>=60)mark=3;
else mark=2;
Label1->Caption="Число правильных ответов "+FloatToStr(k_pr)+" число вопросов "+FloatToStr(k_vopr)+" процент "+FloatToStr(per);
Label2->Caption="Оценка "+FloatToStr(mark);
RadioGroup1->Items->Clear();
RadioGroup1->ItemIndex=-1;
RadioGroup1->Visible=false;
Edit1->Visible=false;
Button1->Visible=false;
Image1->Visible=false;
CheckListBox1->Items->Clear();
CheckListBox1->Visible=false;
Button2->Visible=true;
ADODataSet1->Edit();
ADODataSet1->Insert();
ADODataSet1Group->Value=gr;
ADODataSet1Name->Value=na;
ADODataSet1Test->Value=FormTestStud->Caption;
ADODataSet1Mark->Value=mark;
ADODataSet1Percent->Value=per;
ADODataSet1Date->Value=Date();
ADODataSet1->Post();
}
}
//---------------------------------------------------------------------------
void __fastcall TFormTestStud::FormActivate(TObject *Sender)
{
RadioGroup1->Items->Clear();
RadioGroup1->ItemIndex=-1;
RadioGroup1->Visible=false;
CheckListBox1->Items->Clear();
CheckListBox1->Visible=false;
Edit1->Visible=false;
Image1->Visible=false;
int i; char dop;
if ((lw=fopen(te.c_str(),"r")) == NULL){
return; }
readfile(); if(prk==1) exit(1);
FormTestStud->Caption=sr;
Label1->Caption="";
Label2->Caption="";
Button1->Visible=true;
Button1->Caption="Начать тест";
Button2->Visible=false;
}
//---------------------------------------------------------------------------
void __fastcall TFormTestStud::Button2Click(TObject *Sender)
{
//FormStu->Show();
FormTestStud->Hide();
fclose(lw);
/*gr=0;
na="";
te=""; */
mark=0;
per=0;
k_vopr=0;
k_pr=0;
prk=0;
}
//---------------------------------------------------------------------------
void __fastcall TFormTestStud::FormClose(TObject *Sender,
TCloseAction &Action)
{
//FormStu->Show();
FormTestStud->Hide();
fclose(lw);
mark=0;
per=0;
k_vopr=0;
k_pr=0;
prk=0;
exit(0);
}
//---------------------------------------------------------------------------
void __fastcall TFormTestStud::FormCreate(TObject *Sender)
{
}
//---------------------------------------------------------------------------
UnitTestStud.h
//---------------------------------------------------------------------------
#ifndef UnitTestStudH
#define UnitTestStudH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ADODB.hpp>
#include <CheckLst.hpp>
#include <DB.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TFormTestStud : public TForm
{
__published: // IDE-managed Components
TLabel *Label1;
TImage *Image1;
TRadioGroup *RadioGroup1;
TCheckListBox *CheckListBox1;
TEdit *Edit1;
TButton *Button1;
TButton *Button2;
TDataSource *DataSource1;
TLabel *Label2;
TADODataSet *ADODataSet1;
TWideStringField *ADODataSet1Name;
TWideStringField *ADODataSet1Group;
TWideStringField *ADODataSet1Test;
TIntegerField *ADODataSet1Mark;
TDateTimeField *ADODataSet1Date;
TIntegerField *ADODataSet1Percent;
void __fastcall Button1Click(TObject *Sender);
void __fastcall FormActivate(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TFormTestStud(TComponent* Owner);
void __fastcall TFormTestStud::readfile();
};
//---------------------------------------------------------------------------
extern PACKAGE TFormTestStud *FormTestStud;
//---------------------------------------------------------------------------
#endif
UnitStu.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "UnitVX2.h"
#include "UnitTestStud.h"
#include "UnitStu.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormStu *FormStu;
AnsiString na, gr, te; //фам студ, группа, название теста
AnsiString putte[200]; // массив названий файлов теста
//---------------------------------------------------------------------------
__fastcall TFormStu::TFormStu(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormStu::Button1Click(TObject *Sender)
{
if (Edit1->Text=="") {ShowMessage ("Не введено имя"); return;}
na=Edit1->Text;
if (Edit2->Text=="") {ShowMessage ("Не введена группа"); return;}
gr=Edit2->Text;
if(ComboBox1->ItemIndex==-1){ShowMessage ("Не выбран тест"); return;}
//te=ComboBox1->Items->Strings[ComboBox1->ItemIndex];
te=putte[ComboBox1->ItemIndex];
ComboBox1->ItemIndex=-1;
Edit1->Text="";
Edit2->Text="";
FormTestStud->Show();
//FormStu->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TFormStu::FormCreate(TObject *Sender)
{
int i=0,j,t=0,pr;
Edit1->Text="";
Edit2->Text="";
ADOTable1->Active=true;
ADOTable1->First();
while(!ADOTable1->Eof){ i++; pr=0;
for(j=0; j<=i; j++)
if( ComboBox1->Items->Strings[j]==ADOTable1->Fields->Fields[0]->AsString) pr=1;
if(pr==0){
ComboBox1->Items->Add(ADOTable1->Fields->Fields[0]->AsString);
putte[t]=ADOTable1->Fields->Fields[1]->AsString;
t++;
}
ADOTable1->Next();
}
ComboBox1->ItemIndex=-1;
}
//---------------------------------------------------------------------------
void __fastcall TFormStu::FormActivate(TObject *Sender)
{
Edit1->Text=na;
Edit2->Text=gr;
ComboBox1->ItemIndex=-1;
}
//---------------------------------------------------------------------------
void __fastcall TFormStu::Button2Click(TObject *Sender)
{
FormVX2->Show();
FormStu->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TFormStu::FormClose(TObject *Sender, TCloseAction &Action)
{
exit(0);
}
//---------------------------------------------------------------------------
UnitStu.h
//---------------------------------------------------------------------------
#ifndef UnitStuH
#define UnitStuH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ADODB.hpp>
#include <DB.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TFormStu : public TForm
{
__published: // IDE-managed Components
TLabel *Label1;
TLabel *Label2;
TLabel *Label3;
TLabel *Label4;
TEdit *Edit1;
TComboBox *ComboBox1;
TButton *Button1;
TEdit *Edit2;
TDataSource *DataSource1;
TADOTable *ADOTable1;
TADOConnection *ADOConnection1;
TButton *Button2;
TRichEdit *RichEdit1;
void __fastcall Button1Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormActivate(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
private: // User declarations
public: // User declarations
__fastcall TFormStu(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TFormStu *FormStu;
//---------------------------------------------------------------------------
#endif
UnitStat.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "UnitStat.h"
#include "UnitPrep.h"
#include <ComObj.hpp>
#include <utilcls.h>
#include "UnitDgr.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormStat *FormStat;
Variant vVarApp,vVarBooks,vVarBook,
vVarSheets,vVarSheet,vVarCell;
AnsiString vAsCurDir, vAsCurDir1,vAsNameFile;
bool fStart;
int vxod=0;
int zakr=10; //zakr - число занятых строк в заготовке книги
int kolzap; //количество из базы
int k1,k2,k3,k4,k5, kol1; //kol1 количество всего в таблице
//---------------------------------------------------------------------------
__fastcall TFormStat::TFormStat(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormStat::FormCreate(TObject *Sender)
{
int i=0,j,pr;
AnsiString z;
z="select * from TestStud";
ADODataSet1->CommandText=z;
ADODataSet1->Active=true;
//тест заполнение комбобокс1
ADODataSet1->Active=true;
ADODataSet1->First();
while(!ADODataSet1->Eof){ i++; pr=0;
for(j=0; j<=i; j++)
if( ComboBox1->Items->Strings[j]==ADODataSet1->Fields->Fields[2]->AsString) pr=1;
if(pr==0)
ComboBox1->Items->Add(ADODataSet1->Fields->Fields[2]->AsString);
ADODataSet1->Next();
}
ComboBox1->Items->Add("все");
k1=ComboBox1->Items->Count-1;
ComboBox1->ItemIndex=k1;
//группа заполнение комбобокс2
ADODataSet1->First();
i=0;
while(!ADODataSet1->Eof){ i++; pr=0;
for(j=0; j<=i; j++)
if( ComboBox2->Items->Strings[j]==ADODataSet1->Fields->Fields[1]->AsString) pr=1;
if(pr==0)
ComboBox2->Items->Add(ADODataSet1->Fields->Fields[1]->AsString);
ADODataSet1->Next();
}
ComboBox2->Items->Add("все");
k2=ComboBox2->Items->Count-1;
ComboBox2->ItemIndex=k2;
//студент заполнение комбобокс3
ADODataSet1->First();
i=0;
while(!ADODataSet1->Eof){ i++; pr=0;
for(j=0; j<=i; j++)
if( ComboBox3->Items->Strings[j]==ADODataSet1->Fields->Fields[0]->AsString) pr=1;
if(pr==0)
ComboBox3->Items->Add(ADODataSet1->Fields->Fields[0]->AsString);
ADODataSet1->Next();
}
ComboBox3->Items->Add("все");
k3=ComboBox3->Items->Count-1;
ComboBox3->ItemIndex=k3;
//дата заполнение комбобокс4
ADODataSet1->First();
i=0;
while(!ADODataSet1->Eof){ i++; pr=0;
for(j=0; j<=i; j++)
if( ComboBox4->Items->Strings[j]==ADODataSet1->Fields->Fields[4]->AsString) pr=1;
if(pr==0)
ComboBox4->Items->Add(ADODataSet1->Fields->Fields[4]->AsString);
ADODataSet1->Next();
}
ComboBox4->Items->Add("все");
k4=ComboBox4->Items->Count-1;
ComboBox4->ItemIndex=k4;
//оценка заполнение комбобокс5
ADODataSet1->First();
i=0;
while(!ADODataSet1->Eof){ i++; pr=0;
for(j=0; j<=i; j++)
if( ComboBox5->Items->Strings[j]==ADODataSet1->Fields->Fields[3]->AsString) pr=1;
if(pr==0)
ComboBox5->Items->Add(ADODataSet1->Fields->Fields[3]->AsString);
ADODataSet1->Next();
}
ComboBox5->Items->Add("все");
k5=ComboBox5->Items->Count-1;
ComboBox5->ItemIndex=k5;
//русификация таблицы отображения данных
DBGrid1->Columns->Items[0]->Title->Caption="Студент";
DBGrid1->Columns->Items[1]->Title->Caption="Группа";
DBGrid1->Columns->Items[2]->Title->Caption="Тест";
DBGrid1->Columns->Items[3]->Title->Caption="Оценка";
DBGrid1->Columns->Items[4]->Title->Caption="Дата";
kol1= ADODataSet1->RecordCount;
}
//---------------------------------------------------------------------------
void __fastcall TFormStat::Button2Click(TObject *Sender)
{
ADODataSet1->Filtered=false;
ComboBox1->ItemIndex=k1;
ComboBox2->ItemIndex=k2;
ComboBox3->ItemIndex=k3;
ComboBox4->ItemIndex=k4;
ComboBox5->ItemIndex=k5;
}
//---------------------------------------------------------------------------
void __fastcall TFormStat::Button1Click(TObject *Sender)
{
//фильтрация данных по выбору преподавателя
AnsiString d; d="";
int pr=0;
ADODataSet1->Filtered=false;
if (ComboBox1->Items->Strings[ComboBox1->ItemIndex]!="все") {
d= "Test ='";
d=d+ComboBox1->Items->Strings[ComboBox1->ItemIndex].c_str();
d=d+"'"; pr=1;
}
if (ComboBox2->Items->Strings[ComboBox2->ItemIndex]!="все") {
if (pr) d=d+" and ";
d=d+ "Group ='";
d=d+ComboBox2->Items->Strings[ComboBox2->ItemIndex].c_str();
d=d+"'"; pr=1;
}
if (ComboBox3->Items->Strings[ComboBox3->ItemIndex]!="все") {
if (pr) d=d=" and ";
d=d+ "Name ='";
d=d+ComboBox3->Items->Strings[ComboBox3->ItemIndex].c_str();
d=d+"'"; pr=1;
}
if (ComboBox4->Items->Strings[ComboBox4->ItemIndex]!="все") {
if (pr) d=d+" and ";
d=d+ "Date ='";
d=d+ComboBox4->Items->Strings[ComboBox4->ItemIndex].c_str();
d=d+"'"; pr=1;
}
if (ComboBox5->Items->Strings[ComboBox5->ItemIndex]!="все") {
if (pr) d=d+" and ";
d=d+ "Mark ='";
d=d+ComboBox5->Items->Strings[ComboBox5->ItemIndex].c_str();
d=d+"'"; pr=1;
}
ADODataSet1->Filter=d;
ADODataSet1->Filtered=true;
kol1= ADODataSet1->RecordCount;
}
//---------------------------------------------------------------------------
void __fastcall TFormStat::Button3Click(TObject *Sender)
{
vAsCurDir=GetCurrentDir();
kol1=ADODataSet1->RecordCount;
int i=0;
float itog=0, srball;
vAsNameFile=vAsCurDir+"\\заготовка.xls";
char vchrgBuf0[100];
vxod++;
fStart=true;
try
{
//Создаем объект Excel.Application
vVarApp=CreateOleObject("Excel.Application");
vVarApp.OlePropertySet("Visible",true);
vVarBooks=vVarApp.OlePropertyGet("Workbooks");
vVarBooks.OleProcedure("Open",vAsNameFile.c_str());
vVarBook=vVarBooks.OlePropertyGet("Item",1);
vVarSheets=vVarBook.OlePropertyGet("Worksheets");
//На первый лист
vVarSheet=vVarBook.OlePropertyGet("Worksheets",1);
vVarSheet.OleProcedure("Activate");
}
catch(...)
{
MessageBox(0,vchrgBuf0,"Ошибка", MB_OK);
vVarApp.OlePropertySet("DisplayAlerts",false);
vVarApp.OleProcedure("Quit");
}
//ADODataSet1->Active=true;
ADODataSet1->First();
while(!ADODataSet1->Eof){
i++;
vVarCell= vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",zakr+i,1);
vVarCell.OlePropertySet("Value",(ADODataSet1->Fields->Fields[1]->AsString).c_str());
vVarCell= vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",zakr+i,2);
vVarCell.OlePropertySet("Value",(ADODataSet1->Fields->Fields[0]->AsString).c_str());
vVarCell= vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",zakr+i,3);
vVarCell.OlePropertySet("Value",ADODataSet1->Fields->Fields[3]->AsInteger);
vVarCell= vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",zakr+i,4);
vVarCell.OlePropertySet("Value",(ADODataSet1->Fields->Fields[4]->AsString).c_str());
vVarCell= vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",zakr+i,5);
vVarCell.OlePropertySet("Value",(ADODataSet1->Fields->Fields[2]->AsString).c_str());
//Memo1->Lines->Add( ADODataSet1->Fields->Fields[2]->AsString);
itog+=ADODataSet1->Fields->Fields[3]->AsInteger;
ADODataSet1->Next();
} //while(!ADODataSet1->Eof)
kolzap=zakr+i-1;
AnsiString srball_f;
vVarCell= vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",zakr+i+2,2);
vVarCell.OlePropertySet("Value", "Средний балл");
srball=itog/i;
srball_f=FloatToStrF(srball,ffGeneral,3,6);
vVarCell= vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",zakr+i+2,5);
vVarCell.OlePropertySet("Value",(srball_f).c_str());
}
//---------------------------------------------------------------------------
void __fastcall TFormStat::Button4Click(TObject *Sender)
{
//Сохранить книгу в текущей папке с именем tek
if (vxod != 0){
AnsiString vAsCurDir1=vAsCurDir+"\\tek.xls";
vVarApp.OlePropertyGet("Workbooks").OlePropertyGet("Item",1).
OleProcedure("SaveAs",vAsCurDir1.c_str()); }
//Закрыть открытое приложение Excel
if (vxod != 0) vVarApp.OleProcedure("Quit"); //Закрытие сервера
vVarApp.Clear();
vxod= 0;
//Close();
}
//---------------------------------------------------------------------------
void __fastcall TFormStat::Button5Click(TObject *Sender)
{
FormPrep->Show();
FormStat->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TFormStat::Button6Click(TObject *Sender)
{
//диаграмма
//Вспомогательная переменная
Variant v;
//Выйдем если не запускали создание таблицы
if(!fStart) return;
//Сделать текущей книгу 1
vVarBook=vVarBooks.OlePropertyGet("Item",1);
//Сделать текущим лист 1 книги 1
vVarSheets=vVarBook.OlePropertyGet("Worksheets") ;
vVarSheet=vVarSheets.OlePropertyGet("Item",1);
//Смотреть на лист 1 книги 1
vVarSheet.OlePropertyGet("Select");
//Объединить ячейки с данными
AnsiString d,k; int n;
n=kolzap;
Memo1->Lines->Add(n);
d="C"+IntToStr(n+1);
Memo1->Lines->Add(d);
//vVarCell=vVarSheet.OlePropertyGet("Range",number);
vVarCell=vVarSheet.OlePropertyGet ("Range", WideString ("B11"), WideString(d));
//Выделить ячейки
vVarCell.OleProcedure("Select");
//Переменной vVarBooks присвоить значение Charts - свойство
//объекта Excel.Application, содержащее набор диаграмм
vVarBooks=vVarApp.OlePropertyGet("Charts");
//Добавить диаграмму по умолчанию
vVarBooks.OleProcedure("Add");
//подпись осей
vVarBook.OlePropertyGet("ActiveChart").
OlePropertyGet("Axes",1,1).
OlePropertySet("HasTitle",true);
vVarBook.OlePropertyGet("ActiveChart").
OlePropertyGet("Axes",1,1).
OlePropertyGet("AxisTitle").OlePropertyGet("Characters").
OlePropertySet("Text","студенты");
vVarBook.OlePropertyGet("ActiveChart").
OlePropertyGet("Axes",2,1).
OlePropertySet("HasTitle",true);
vVarBook.OlePropertyGet("ActiveChart").
OlePropertyGet("Axes",2,1).
OlePropertyGet("AxisTitle").
OlePropertyGet("Characters").
OlePropertySet("Text","оценки");
/*
//легенда
vVarBook.OlePropertyGet("ActiveChart").
OlePropertySet("HasLegend",true);
vVarBook.OlePropertyGet("ActiveChart").
OlePropertyGet("SeriesCollection",1).
OlePropertySet("Name","Оклад");
vVarBook.OlePropertyGet("ActiveChart").
OlePropertyGet("SeriesCollection",2).
OlePropertySet("Name","Зарплата");
Variant v1=vVarBook.OlePropertyGet("ActiveChart").OlePropertyGet("Legend");
v1.OleProcedure("Select");
//Где разместить - слева, справа, снизу...
//v1.OlePropertySet("Position", -4152);
//Цвет легенды
v1.OlePropertyGet("Interior").OlePropertySet("ColorIndex",34);
*/
}
//---------------------------------------------------------------------------
void __fastcall TFormStat::Button7Click(TObject *Sender)
{
FormDgr->Show();
}
//---------------------------------------------------------------------------
UnitStat.h
//---------------------------------------------------------------------------
#ifndef UnitStatH
#define UnitStatH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ADODB.hpp>
#include <DB.hpp>
#include <DBGrids.hpp>
#include <Grids.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TFormStat : public TForm
{
__published: // IDE-managed Components
TDBGrid *DBGrid1;
TLabel *Label1;
TComboBox *ComboBox1;
TComboBox *ComboBox2;
TComboBox *ComboBox3;
TComboBox *ComboBox4;
TComboBox *ComboBox5;
TButton *Button1;
TButton *Button2;
TButton *Button3;
TMemo *Memo1;
TDataSource *DataSource1;
TADODataSet *ADODataSet1;
TButton *Button4;
TButton *Button5;
TRichEdit *RichEdit1;
TButton *Button7;
void __fastcall FormCreate(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button3Click(TObject *Sender);
void __fastcall Button4Click(TObject *Sender);
void __fastcall Button5Click(TObject *Sender);
void __fastcall Button6Click(TObject *Sender);
void __fastcall Button7Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TFormStat(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TFormStat *FormStat;
//---------------------------------------------------------------------------
#endif
UnitPrep.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "UnitVX2.h"
#include "testcreate.h"
#include "UnitPrep.h"
#include "UnitStat.h"
#include "UnitKor.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormPrep *FormPrep;
//---------------------------------------------------------------------------
__fastcall TFormPrep::TFormPrep(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormPrep::Button1Click(TObject *Sender)
{
TestCreateForm->Show();
}
//---------------------------------------------------------------------------
void __fastcall TFormPrep::Button3Click(TObject *Sender)
{
FormVX2->Show();
FormPrep->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TFormPrep::FormClose(TObject *Sender, TCloseAction &Action)
{
exit(0);
}
//---------------------------------------------------------------------------
void __fastcall TFormPrep::Button4Click(TObject *Sender)
{
FormStat->Show();
}
//---------------------------------------------------------------------------
void __fastcall TFormPrep::Button2Click(TObject *Sender)
{
FormKor->Show();
}
//---------------------------------------------------------------------------
void __fastcall TFormPrep::FormCreate(TObject *Sender)
{
}
//---------------------------------------------------------------------------
UnitPrep.h
//---------------------------------------------------------------------------
#ifndef UnitPrepH
#define UnitPrepH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TFormPrep : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TButton *Button2;
TButton *Button3;
TRichEdit *RichEdit1;
TButton *Button4;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button3Click(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall Button4Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TFormPrep(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TFormPrep *FormPrep;
//---------------------------------------------------------------------------
#endif
UnitKor.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "UnitKor.h"
#include "UnitPrep.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormKor *FormKor;
AnsiString mas[500];
AnsiString filepath, z;
//---------------------------------------------------------------------------
__fastcall TFormKor::TFormKor(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormKor::Button1Click(TObject *Sender)
{
FormPrep->Show();
FormKor->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TFormKor::FormCreate(TObject *Sender)
{
int i=0,j,pr;
//имя теста заполнение комбобокс1
ADOTable1->Active=true;
ADOTable1->First();
while(!ADOTable1->Eof){ pr=0;
for(j=0; j<=i; j++)
if( ComboBox1->Items->Strings[j]==ADOTable1->Fields->Fields[0]->AsString) pr=1;
if(pr==0){
ComboBox1->Items->Add(ADOTable1->Fields->Fields[0]->AsString);
mas[i]= ADOTable1->Fields->Fields[1]->AsString;
i++;
}
ADOTable1->Next();
}
ComboBox1->ItemIndex=0;
int dl,pos;
AnsiString z1;
z1=ParamStr(0);
dl=z1.Length();
i=dl; pos=0;
while(i!=1){ //??????? proeckt1.exe
if (z1[i]=='\\'){
pos=i;
break;} i--; }
z1=z1.SubString(1,pos); //??????? "\"
filepath=z1;
//Memo2->Lines->Add("Инструкция для преподавателя");
}
//---------------------------------------------------------------------------
void __fastcall TFormKor::ComboBox1Change(TObject *Sender)
{
//открыть файл, соответствующий выбранному тесту
AnsiString zname;
Memo1->Clear();
zname=mas[ComboBox1->ItemIndex];
//Memo1->Lines->Add(zname);
//формирование пути
//соединить каталог и имя файла
z="";
z=filepath+"\\"+zname;
Memo1->Lines->LoadFromFile(z);
}
//---------------------------------------------------------------------------
void __fastcall TFormKor::Button2Click(TObject *Sender)
{
Memo1->Lines->SaveToFile(z);
}
//---------------------------------------------------------------------------
UnitKor.h
//---------------------------------------------------------------------------
#ifndef UnitKorH
#define UnitKorH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ADODB.hpp>
#include <DB.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TFormKor : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TLabel *Label1;
TComboBox *ComboBox1;
TMemo *Memo1;
TADOTable *ADOTable1;
TDataSource *DataSource1;
TButton *Button2;
TRichEdit *RichEdit1;
void __fastcall Button1Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall ComboBox1Change(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TFormKor(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TFormKor *FormKor;
//---------------------------------------------------------------------------
#endif
UnitDgr.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "UnitDgr.h"
#include "UnitStat.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormDgr *FormDgr;
//---------------------------------------------------------------------------
__fastcall TFormDgr::TFormDgr(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormDgr::FormClose(TObject *Sender, TCloseAction &Action)
{
Series1->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TFormDgr::FormActivate(TObject *Sender)
{
FormStat->ADODataSet1->Prior();
int kol,i,j;
//String colorst;
kol= FormStat->ADODataSet1->RecordCount;
Series1->Clear();
Chart1->Title->Text->Clear();
Chart1->Title->Text->Add("Диаграмма результатов тестирования") ;
Chart1->Legend->Visible=false;
//colorst=clYellow;
for( i=1; i<=kol; i++){
//первое значение - текстовое, ось Х
//второе значение числовое, ось У
//Labels как в DBChart получается автоматически без настройки как ось Х
Series1->Add(FormStat->ADODataSet1->Fields->Fields[3]->Value,FormStat->ADODataSet1->Fields->Fields[0]->Value,clYellow);
FormStat->ADODataSet1->Next();
} //for( i=1; i<=kol; i++)
}
//---------------------------------------------------------------------------
void __fastcall TFormDgr::FormCreate(TObject *Sender)
{
}
//---------------------------------------------------------------------------
UnitDgr.h
//---------------------------------------------------------------------------
#ifndef UnitDgrH
#define UnitDgrH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Chart.hpp>
#include <DBGrids.hpp>
#include <ExtCtrls.hpp>
#include <Grids.hpp>
#include <TeEngine.hpp>
#include <TeeProcs.hpp>
#include <ADODB.hpp>
#include <DB.hpp>
#include <Series.hpp>
//---------------------------------------------------------------------------
class TFormDgr : public TForm
{
__published: // IDE-managed Components
TChart *Chart1;
TBarSeries *Series1;
TDBGrid *DBGrid1;
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall FormActivate(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TFormDgr(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TFormDgr *FormDgr;
//---------------------------------------------------------------------------
#endif
Unitabout.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unitabout.h"
#include "UnitVX2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TAbout *About;
//---------------------------------------------------------------------------
__fastcall TAbout::TAbout(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TAbout::Button1Click(TObject *Sender)
{
About->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TAbout::Image2Click(TObject *Sender)
{
}
//---------------------------------------------------------------------------
Unitabout.h
//---------------------------------------------------------------------------
#ifndef UnitaboutH
#define UnitaboutH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <jpeg.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TAbout : public TForm
{
__published: // IDE-managed Components
TImage *Image1;
TRichEdit *RichEdit1;
TButton *Button1;
TLabel *Label1;
TImage *Image2;
TRichEdit *RichEdit3;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Image2Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TAbout(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TAbout *About;
//---------------------------------------------------------------------------
#endif
ПРИЛОЖЕНИЕ 2
Рис.1 Главная форма программы
Рис.2 Форма регистрации студента в программе
Рис.3 Форма тестирования – тестирующий полигон
Рис.4 Форма преподавателя
Рис.5 Форма создания теста
Рис.6 Форма редактирования теста
Рис. 7 Форма статистики
Рис.8 Построение диаграммы по отсеянному результату
Рис.9 О программе