Problem z kompilacją aplikacji. Kodowanie cezara

0

Witam, nie będę owijał w bawełnę że coś wiem w tym temacie. No ale potrzebuje dokończyć program na zaliczenie semestru. Udało mi się odnaleźć w internecie kod źródłowy aplikacji którą miałem napisać. Z tym że to nie rozwiązuje mi problemu ponieważ nie mogę odpalić programu, o ile na poprzednim semestrze korzystaliśmy z DevC++ i tam sprawa była prosta, bo wrzucało się kod źródłowy, kompilowało i działało. A przy C++ Builderze tak nie jest. Moja gorąca prośba do was forumowicze, prosiłbym o pomoc w kompilacji tego kodu źródłowego do exe, tj. do gotowej aplikacji.

Każda pomoc jest dla mnie na wagę złota, czy ktoś napisze jakieś wskazówki co mam zrobić, czy po prostu wyśle spakowaną gotową aplikacje z tego kodu. Dziękuje serdecznie.

Dokumentację aplikacji.

Project1.exe
Unit1.cpp
Unit2.cpp
Unit2.h

Kod źródłowy aplikacji.

Unit1.cpp

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute()){
        Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
        }
        Memo2->Clear();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(SaveDialog1->Execute()){
        Memo1->Lines->SaveToFile(SaveDialog1->FileName);
        }
}
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
int TForm1::IleZnakow(){
        int znaki=0;
        if(Memo1->Lines->Count>0){
                for(int i=0;i<Memo1->Lines->Count;i++)
                znaki+=Memo1->Lines->Strings[i].Length();
                }
        return znaki;
}
bool TForm1::CzySamogloska(char znak){
        char samogloski[5] = {'a','e','i','o','u'};
        for(int i=0;i<5;i++)
        if(znak==samogloski[i] || znak==UpCase(samogloski[i]))
        return true;
        return false;
        }
int TForm1::IleSamoglosek(){
        int ile=0;
        for(int i=0;i<Memo1->Lines->Count;i++){
                for(int  j=1;j<=Memo1->Lines->Strings[i].Length();j++)
                if(CzySamogloska(Memo1->Lines->Strings[i][j]))
                        ile++;
                        }

                return ile;
        }
void __fastcall TForm1::Button3Click(TObject *Sender)
{
 if (Memo2->Lines->Count>0){
             Memo1->Clear();
        int klucz=StrToInt(edKlucz->Text);
        Cezar c1(-klucz);
        for (int i=0;i<Memo2->Lines->Count;i++){
                Memo1->Lines->Add(c1.Koduj(Memo2->Lines->Strings[i]));
        }
        }else ShowMessage("Brak Tekstu");
}
//---------------------------------------------------------------------------
   bool TForm1::CzyLitera(char znak){
   if(znak>='a' && znak<='z')return true;
   if(znak>='A' && znak<='Z')return true;
   return false;
   }
//_________________
int TForm1::IleLiter(){
int licznik=0;
if (Memo1->Lines->Count>0){
        String linia;
        for(int i=0; i<Memo1->Lines->Count;i++){
        linia= Memo1->Lines->Strings[i]; 
        for(int j=1;j<linia.Length();j++){
                if (CzyLitera(linia[j]))licznik++;
        }
}
}return licznik;
}
void __fastcall TForm1::btnKodujClick(TObject *Sender)
{
        if (Memo1->Lines->Count>0){
             Memo2->Clear();
        int klucz=StrToInt(edKlucz->Text);
        Cezar c1(klucz);
        for (int i=0;i<Memo1->Lines->Count;i++){
                Memo2->Lines->Add(c1.Koduj(Memo1->Lines->Strings[i]));
        }
        }else ShowMessage("Brak Tekstu");
}
void __fastcall TForm1::Button6Click(TObject *Sender)
{
if (Memo2->Lines->Count>0 )   {
        if(SaveDialog2->Execute()){
              Memo2->Lines->SaveToFile(SaveDialog2->FileName);
        }
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button7Click(TObject *Sender)
{
if(OpenDialog2->Execute()){
        Memo2->Lines->LoadFromFile(OpenDialog2->FileName);
        }
Memo1->Clear();        
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Label1Click(TObject *Sender)
{
        
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Panel2Click(TObject *Sender)
{

}
//---------------------------------------------------------------------------


Unit2.cpp


//---------------------------------------------------------------------------
#pragma hdrstop
#include "Unit2.h"
//---------------------------------------------------------------------------
const int ILELITER=26;
#pragma package(smart_init)
Cezar::Cezar(int klucz){
        this->klucz=klucz %ILELITER;
}
 bool Cezar::CzyLitera(char znak){
   if(znak>='a' && znak<='z')return true;
   if(znak>='A' && znak<='Z')return true;
   return false;

 }
 char Cezar::KodujZnak(char znak){
        char wynik;
        if (CzyLitera(znak)) {
        wynik= znak+klucz;
        if(!CzyLitera(wynik))wynik=ILELITER;
        }
        else wynik =znak;
        return  wynik;
 }

String Cezar::Koduj(String linia){
String wynik=linia;
for (int i=1; i<=linia.Length();i++)  {
        wynik[i]=KodujZnak(linia[i]);   
        }
        return wynik;
}


Unit1.h

//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Dialogs.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
        TPanel *Panel1;
        TMemo *Memo1;
        TPanel *Panel2;
        TMemo *Memo2;
        TOpenDialog *OpenDialog1;
        TSaveDialog *SaveDialog1;
        TButton *Button1;
        TButton *Button2;
        TButton *btnKoduj;
        TEdit *edKlucz;
        TUpDown *UpDown1;
        TOpenDialog *OpenDialog2;
        TSaveDialog *SaveDialog2;
        TButton *Button6;
        TLabel *Label11;
        TButton *Button3;
        TButton *Button7;
        TLabel *Label1;
        TLabel *Label2;
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall Button2Click(TObject *Sender);
        void __fastcall Button3Click(TObject *Sender);
        void __fastcall btnKodujClick(TObject *Sender);
        void __fastcall Button6Click(TObject *Sender);
        void __fastcall Button7Click(TObject *Sender);
private:
        int IleZnakow();
        int IleLiter();
        bool CzySamogloska(char znak);
        int IleSamoglosek();
        bool CzyLitera(char znak);
       
public:		// User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

Unit2.h

//---------------------------------------------------------------------------
#ifndef Unit2H
#define Unit2H
#include <vcl.h>
class Cezar{
        private:
                int klucz;
                bool CzyLitera(char znak);
                char KodujZnak(char znak);
        public:
                Cezar(int klucz);
                String Koduj(String linia);
};
//---------------------------------------------------------------------------
#endif 

Kod wynikowy będący działającą aplikacją zgodnie z potrzebami klienta.

Project1.exe

Jeszcze raz dziękuje wszystkim forumowiczom którzy w jakiś sposób pomogą mi przez to przejść.

0

brakuje ci pliku z ustawieniem kontrolek, projektu i chyba paru jeszcze
po prostu stwórz nowy projekt, wklej swój kod podmieniając standardowy i dodaj na formatki wszystkie kontrolki o jakie będzie się pluł kompilator
no i jeszcze podepnij procedury pod zdarzenia
na przykład coś takiego Button1Click masz podpiąć do zdarzenia (zakładka Events) OnClick elementu Button o nazwie Button1

albo po prostu zdobądź brakujące pliki, nikt tego za ciebie nie będzie robił

0

Otwieram C++ buildera, tworzę nowy projekt mam 2 okna, Form1 i Unit1.cpp i ten cały kod mam wrzucić do Unit1.cpp czy dla każdego mam tworzyć kolejnego "wątku" mam tworzyć okno tj. Unit2.cpp, Unit2.h itd?

Co do brakujących plików, jest cała praca, poza właśnie samym programem i plikami.

Ktoś ma jakieś pomysły jak to zrobić.

0

tam w New masz zdaje się do wybodu Form, Unit itp. i wybierasz Unit

0

Jutro się tym muszę zająć bo dziś już mam dość. A ktoś na forum jest w stanie to zrobić, nie mówię że za darmo. Proszę o jakieś PW, jeśli ktoś jest zainteresowany.

PS. W załączniku dodaje cała prace kontrolną w formie teksowej, brakuje mi formy elektronicznej, tj samego programu i plików niezbednych do działania programu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1