Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите, пожалуйста, перевести код с Delphi на С+ 
:(
    Опции темы
Leno4kaZaraza
Дата 10.5.2011, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.5.2011

Репутация: нет
Всего: нет



unit CreateMode;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, ExtCtrls, Buttons;

type
  TForm2 = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    Memo1: TMemo;
    Label1: TLabel;
    LabeledEdit2: TLabeledEdit;
    LabeledEdit3: TLabeledEdit;
    LabeledEdit4: TLabeledEdit;
    RadioGroup1: TRadioGroup;
    LabeledEdit1: TLabeledEdit;
    ComboBox1: TComboBox;
    Label2: TLabel;
    LabeledEdit5: TLabeledEdit;
    LabeledEdit6: TLabeledEdit;
    LabeledEdit7: TLabeledEdit;
    LabeledEdit8: TLabeledEdit;
    N7: TMenuItem;
    Button1: TButton;
    Button2: TButton;
    SaveDialog1: TSaveDialog;
    Image1: TImage;
    AmountOfAnsw: TComboBox;
    Label3: TLabel;
    procedure N3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure AmountOfAnswSelect(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

  Type
  TTest = record
  Num: integer;
  TypeOfQuestion: integer;
  Question: string[90];
  Answers:array [1..8] of string[30];
  NumTrueAnswer: integer;
  NumOfAnswers: integer;
  end;

var
   TestFile: file of TTest;
   NumZap: integer;
   Test: array [1..120] of TTest;
   Kol: integer;

var
  Form2: TForm2;

implementation

uses PassMode, WelcomPage;

{$R *.dfm}



procedure TForm2.AmountOfAnswSelect(Sender: TObject);
begin
case AmountOfAnsw.ItemIndex of
0:begin LabeledEdit1.Show; LabeledEdit1.EditLabel.Caption := 'Вариант1';
         LabeledEdit2.Show; LabeledEdit2.EditLabel.Caption := 'Вариант2';
         LabeledEdit3.Hide;
         LabeledEdit4.Hide;
         Label2.Show;
         ComboBox1.Show;
         Button1.Show;
         Button2.Show;
         LabeledEdit5.Hide;
         LabeledEdit6.Hide;
         LabeledEdit7.Hide;
         LabeledEdit8.Hide;
         Memo1.Clear;
   end;
1:begin LabeledEdit1.Show; LabeledEdit1.EditLabel.Caption := 'Вариант1';
         LabeledEdit2.Show; LabeledEdit2.EditLabel.Caption := 'Вариант2';
         LabeledEdit3.Show; LabeledEdit3.EditLabel.Caption := 'Вариант3';
         LabeledEdit4.Hide;
         Label2.Show;
         ComboBox1.Show;
         Button1.Show;
         Button2.Show;
         LabeledEdit5.Hide;
         LabeledEdit6.Hide;
         LabeledEdit7.Hide;
         LabeledEdit8.Hide;
         Memo1.Clear;
   end;
   2:begin LabeledEdit1.Show; LabeledEdit1.EditLabel.Caption := 'Вариант1';
         LabeledEdit2.Show; LabeledEdit2.EditLabel.Caption := 'Вариант2';
         LabeledEdit3.Show; LabeledEdit3.EditLabel.Caption := 'Вариант3';
         LabeledEdit4.Show; LabeledEdit4.EditLabel.Caption := 'Вариант4';
         Label2.Show;
         ComboBox1.Show;
         Button1.Show;
         Button2.Show;
         LabeledEdit5.Hide;
         LabeledEdit6.Hide;
         LabeledEdit7.Hide;
         LabeledEdit8.Hide;
         Memo1.Clear;
   end;
   3:begin LabeledEdit1.Show; LabeledEdit1.EditLabel.Caption := 'Вариант1';
         LabeledEdit2.Show; LabeledEdit2.EditLabel.Caption := 'Вариант2';
         LabeledEdit3.Show; LabeledEdit3.EditLabel.Caption := 'Вариант3';
         LabeledEdit4.Show; LabeledEdit4.EditLabel.Caption := 'Вариант4';
         LabeledEdit5.Show; LabeledEdit5.EditLabel.Caption := 'Вариант5';
         Label2.Show;
         ComboBox1.Show;
         Button1.Show;
         Button2.Show;
         LabeledEdit6.Hide;
         LabeledEdit7.Hide;
         LabeledEdit8.Hide;
         Memo1.Clear;
   end;
   4:begin LabeledEdit1.Show; LabeledEdit1.EditLabel.Caption := 'Вариант1';
         LabeledEdit2.Show; LabeledEdit2.EditLabel.Caption := 'Вариант2';
         LabeledEdit3.Show; LabeledEdit3.EditLabel.Caption := 'Вариант3';
         LabeledEdit4.Show; LabeledEdit4.EditLabel.Caption := 'Вариант4';
         LabeledEdit5.Show; LabeledEdit5.EditLabel.Caption := 'Вариант5';
         LabeledEdit6.Show; LabeledEdit6.EditLabel.Caption := 'Вариант6';
         Label2.Show;
         ComboBox1.Show;
         Button1.Show;
         Button2.Show;
         LabeledEdit7.Hide;
         LabeledEdit8.Hide;
         Memo1.Clear;
   end;
end;
end;

procedure TForm2.Button1Click(Sender: TObject);
var i:integer;
begin
 if (SaveDialog1.Execute) then
  begin
    AssignFile(TestFile,SaveDialog1.FileName);
    rewrite(TestFile);
    for i:=1 to NumZap-1 do
     Write(TestFile,Test[i]);
end;

ShowMessage('Тест успешно создан');
Memo1.Clear;
LabeledEdit1.Hide;
LabeledEdit2.Hide;
LabeledEdit3.Hide;
LabeledEdit4.Hide;
LabeledEdit5.Hide;
LabeledEdit6.Hide;
LabeledEdit7.Hide;
LabeledEdit8.Hide;
Label2.Hide;
Label3.Hide;
AmountOfAnsw.Hide;
ComboBox1.Hide;
Button1.Hide;
Button2.Hide;
Memo1.Hide;
Label1.Hide;
RadioGroup1.Hide;
NumZap:=1;
end;


procedure TForm2.Button2Click(Sender: TObject);
var i:integer;
begin
Test[1].Num := NumZap;
with Test[NumZap] do
begin
case RadioGroup1.ItemIndex of
0: begin
   TypeOfQuestion:=0;
   NumOfAnswers := AmountOfAnsw.ItemIndex + 2;
   end;
1: begin
   TypeOfQuestion:=1;
   NumOfAnswers := 1;
   end;
2: begin
   TypeOfQuestion:=2;
   NumOfAnswers := 8;
   end;
end;
Question:= Memo1.Text;
Answers[1]:=LabeledEdit1.Text;
Answers[2]:=LabeledEdit2.Text;
Answers[3]:=LabeledEdit3.Text;
Answers[4]:=LabeledEdit4.Text;
Answers[5]:=LabeledEdit5.Text;
Answers[6]:=LabeledEdit6.Text;
Answers[7]:=LabeledEdit7.Text;
Answers[8]:=LabeledEdit8.Text;
NumTrueAnswer := 1;
end;

inc(NumZap);
Memo1.Clear;
LabeledEdit1.Clear;  LabeledEdit2.Clear;
LabeledEdit3.Clear;  LabeledEdit4.Clear;
LabeledEdit5.Clear;  LabeledEdit6.Clear;
LabeledEdit7.Clear;  LabeledEdit8.Clear;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
Kol:=1;
Memo1.Clear;
AmountOfAnsw.Hide;
LabeledEdit1.Hide;
LabeledEdit2.Hide;
LabeledEdit3.Hide;
LabeledEdit4.Hide;
LabeledEdit5.Hide;
LabeledEdit6.Hide;
LabeledEdit7.Hide;
LabeledEdit8.Hide;
Label2.Hide;
Label3.Hide;
ComboBox1.Hide;
Button1.Hide;
Button2.Hide;
Memo1.Hide;
Label1.Hide;
RadioGroup1.Hide;
NumZap:=1;
end;

procedure TForm2.N2Click(Sender: TObject);
begin
 Memo1.Show;
 Label1.Show;
 RadioGroup1.Show;
end;

procedure TForm2.N3Click(Sender: TObject);
begin
close; Form1.Close; Form3.Close;
end;

procedure TForm2.N7Click(Sender: TObject);
begin
 Form2.Hide;
 Form1.Show;
end;

procedure TForm2.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: begin LabeledEdit1.Hide;
         LabeledEdit2.Hide;
         LabeledEdit3.Hide;
         LabeledEdit4.Hide;
         Label2.Hide;
         ComboBox1.Hide;
         AmountOfAnsw.Show;
         Label3.Show;
         Button1.Show;
         Button2.Show;
         LabeledEdit5.Hide;
         LabeledEdit6.Hide;
         LabeledEdit7.Hide;
         LabeledEdit8.Hide;
         Memo1.Clear;
   end;
1: begin LabeledEdit1.Show; LabeledEdit1.EditLabel.Caption := 'Введите ответ';
         Button1.Show; Button2.Show;
         LabeledEdit2.Hide;
         LabeledEdit3.Hide;
         LabeledEdit4.Hide;
         LabeledEdit5.Hide;
         LabeledEdit6.Hide;
         LabeledEdit7.Hide;
         LabeledEdit8.Hide;
         AmountOfAnsw.Hide;
         Label3.Hide;
         Label2.Hide;
         ComboBox1.Hide;
         Memo1.Clear;
   end;
2: begin LabeledEdit1.Show; LabeledEdit1.EditLabel.Caption := '1';
         LabeledEdit2.Show; LabeledEdit2.EditLabel.Caption := '2';
         LabeledEdit3.Show; LabeledEdit3.EditLabel.Caption := '3';
         LabeledEdit4.Show; LabeledEdit4.EditLabel.Caption := '4';
         LabeledEdit5.Show;
         LabeledEdit6.Show;
         LabeledEdit7.Show;
         LabeledEdit8.Show;
         Button1.Show;
         Button2.Show;
         AmountOfAnsw.Hide;
         Label3.Hide;
         Label2.Hide;
         ComboBox1.Hide;
         Memo1.Clear;
    end;
end;
end;

end.
unit PassMode;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus, ExtCtrls;

type
  TForm3 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    Label1: TLabel;
    LabeledEdit1: TLabeledEdit;
    LabeledEdit2: TLabeledEdit;
    LabeledEdit3: TLabeledEdit;
    LabeledEdit4: TLabeledEdit;
    LabeledEdit5: TLabeledEdit;
    LabeledEdit6: TLabeledEdit;
    LabeledEdit7: TLabeledEdit;
    LabeledEdit8: TLabeledEdit;
    OpenDialog1: TOpenDialog;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    RadioGroup1: TRadioGroup;
    Memo1: TMemo;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure EndTest();
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  Type
  TTest = record
  num:integer;
  TypeOfQuestion: integer;
  Question: string[90];
  Answers:array [1..8] of string[30];
  NumTrueAnswer: integer;
  NumOfAnswers:  integer;
  end;

  var
  TestFilePro: file of TTest;
  NumZap: integer;
  TestName : string;
  Test: array [1..120] of TTest;
  Mark:integer;
  PlusOrMinus:array [1..100] of char;
var
  Form3: TForm3;

implementation

uses WelcomPage, Unit4;

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
begin
close; Form1.Close;
end;

procedure TForm3.Button2Click(Sender: TObject);
var i: integer;
begin
 case Test[NumZap].TypeOfQuestion of
 0: begin
    if  (RadioGroup1.ItemIndex+1 = Test[NumZap].NumTrueAnswer) then
    PlusOrMinus[NumZap] := '+' else PlusOrMinus[NumZap] := '-';
    end;
 1: begin
    if (LabeledEdit1.Text = Test[NumZap].Answers[1]) then
    PlusOrMinus[NumZap] := '+' else PlusOrMinus[NumZap] := '-';
    end;
 2: begin
    if (LabeledEdit5.Text=Test[NumZap].Answers[5]) and
    (LabeledEdit6.Text=Test[NumZap].Answers[6]) and
    (LabeledEdit7.Text=Test[NumZap].Answers[7]) and
    (LabeledEdit8.Text=Test[NumZap].Answers[8]) then
    PlusOrMinus[NumZap] := '+' else PlusOrMinus[NumZap] := '-';;
    end;
 end;
inc(NumZap);
If (Numzap > Test[1].num) then
  begin
  EndTest();
  exit;
  end;
Memo1.Text := Test[NumZap].Question;    RadioGroup1.Items.Clear;
 case Test[NumZap].TypeOfQuestion of
 0: begin
      RadioGroup1.Show;  LabeledEdit1.Hide;
      LabeledEdit2.Hide; LabeledEdit3.Hide;
      LabeledEdit4.Hide; LabeledEdit5.Hide;
      LabeledEdit6.Hide; LabeledEdit7.Hide;
      LabeledEdit8.Hide; Label2.Hide; Label3.Hide;
      Label4.Hide; Label5.Hide; Label6.Hide;

      for i:=1 to test[NumZap].NumOfAnswers do
          RadioGroup1.Items.Add(test[NumZap].Answers[i]);
    end;
 1: begin
      LabeledEdit1.Show; LabeledEdit2.Hide;
      LabeledEdit3.Hide; LabeledEdit4.Hide;
      LabeledEdit5.Hide; LabeledEdit6.Hide;
      LabeledEdit7.Hide; LabeledEdit8.Hide;
      Label2.Hide; Label3.Hide; Label4.Hide;
      Label5.Hide; Label6.Hide;RadioGroup1.Hide;
      LabeledEdit1.EditLabel.Caption := 'Введите ответ';
    end;
 2: begin
      LabeledEdit1.Show; LabeledEdit2.Show;
      LabeledEdit3.Show; LabeledEdit4.Show;
      LabeledEdit5.Show; LabeledEdit6.Show;
      LabeledEdit7.Show; LabeledEdit8.Show;
      Label2.Hide; Label3.Hide; Label4.Hide;
      Label5.Hide; Label6.Hide;RadioGroup1.Hide;
      LabeledEdit1.Text:=Test[NumZap].Answers[1];
      LabeledEdit2.Text:=Test[NumZap].Answers[2];
      LabeledEdit3.Text:=Test[NumZap].Answers[3];
      LabeledEdit4.Text:=Test[NumZap].Answers[4];
      Memo1.Lines.Add(Test[NumZap].Answers[7]);
      Memo1.Lines.Add(Test[NumZap].Answers[8]);
      Memo1.Lines.Add(Test[NumZap].Answers[6]);
      Memo1.Lines.Add(Test[NumZap].Answers[5]);
    end;
 end;
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
Memo1.Clear;
LabeledEdit1.Hide; LabeledEdit2.Hide;
LabeledEdit3.Hide; LabeledEdit4.Hide;
LabeledEdit5.Hide; LabeledEdit6.Hide;
LabeledEdit7.Hide; LabeledEdit8.Hide;
Label1.Hide; Label2.Hide;
Label3.Hide; Label4.Hide;
Label5.Hide; Label6.Hide;
Button1.Hide; Button2.Hide;
Memo1.Hide; RadioGroup1.Hide;
Mark:=0;
end;

procedure TForm3.N2Click(Sender: TObject);
begin
close;  Form1.Close;
end;

procedure TForm3.N3Click(Sender: TObject);
var i:integer;
begin
NumZap:=0;
OpenDialog1.Title := 'Выберите тест';
 if OpenDialog1.Execute then
 begin
        AssignFile(TestFilePro,OpenDialog1.FileName);
        TestName := ExtractFileName(OpenDialog1.FileName);
        Reset(TestFilePro);
 end;
 while not EoF(TestFilePro) do
  begin
  inc(NumZap);
  Read(TestFilePro,Test[NumZap]);
  end;
Memo1.Show; Label1.Show;
Button1.Show; Button2.Show;
NumZap:=1;
Memo1.Text := Test[NumZap].Question;
RadioGroup1.Items.Clear;
 case Test[NumZap].TypeOfQuestion of
 0: begin
          RadioGroup1.Show;
          for i:=1 to test[NumZap].NumOfAnswers do
          RadioGroup1.Items.Add(test[NumZap].Answers[i]);
    end;
 1: begin
          LabeledEdit1.Show;
          LabeledEdit1.EditLabel.Caption := 'Введите ответ';
    end;
 2: begin
          LabeledEdit1.Show; LabeledEdit2.Show;
          LabeledEdit3.Show; LabeledEdit4.Show;
          LabeledEdit5.Show; LabeledEdit6.Show;
          LabeledEdit7.Show; LabeledEdit8.Show;
          Label2.Hide;  Label3.Hide;  Label4.Hide;
          Label5.Hide;  Label6.Hide;
          LabeledEdit1.Text; LabeledEdit2.Text;
          LabeledEdit3.Text; LabeledEdit4.Text;
    end;
 end;
end;
 procedure TForm3.EndTest();
 var i:integer;
 begin
   for i := 1 to NumZap  do
     begin
       if (PlusOrMinus[i] = '+') then inc(Mark);
     end;
  Form4.Show;
   for i := 1 to NumZap  do
     begin
      PlusOrMinus[i]:='0' ;
     end;
 end;
end.

Добавлено через 1 минуту и 23 секунды
Помогите перевести этот код с Delphi на С++
PM MAIL   Вверх
borisbn
Дата 10.5.2011, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



Leno4kaZaraza, какая из ~550 строк тебе непонятна ?
Если все, то какова цена вопроса ? Предлагаю $200.

Это сообщение отредактировал(а) borisbn - 10.5.2011, 13:10


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Riviero
Дата 10.5.2011, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 25.3.2010

Репутация: 2
Всего: 3



Переведу и оптимизирую за 1500$)

Это сообщение отредактировал(а) Riviero - 11.5.2011, 13:15
PM MAIL   Вверх
borisbn
Дата 10.5.2011, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



Riviero, знаешь, что в Чикаго 20-х годов делали за демпинг ? smile


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Riviero
Дата 11.5.2011, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 25.3.2010

Репутация: 2
Всего: 3



Цитата(borisbn @ 10.5.2011,  14:20)
Riviero, знаешь, что в Чикаго 20-х годов делали за демпинг ? smile


Боюсь даже представить)
PM MAIL   Вверх
Dem_max
Дата 11.5.2011, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



Суровый программист писал код


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0476 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.