• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Есть Код, Не Могу Довести Его До Рабочего Состояния

  • Автор темы MEJIOMAH
  • Дата начала
M

MEJIOMAH

Было такое задание:
Программа должна содержать:
• функция char* GetComputerData(), которая возвращает серийный номер жесткого диска
• функцію char* CalculateSerialNumber(char* comp_data, char* user_name), которая высчитывает серийный номер на основе уникального значения и имени пользователя.
• Алгоритм формирования серийного номера должен базироваться на операции XOR (длинна серийного номера должна быть 8 символов)
Программа проверки серийного номера должна содержать:
• Функцию char* GetComputerData(), которая возвращает значение серийного номера;
• Функцию bool IsValidSerialNumber(char* comp_data, char* user_name, char* serial_number), которая возвращает значение true если серийный номер правильный и значение false в другом случае

Помогите пожалуйста, что бы программа работала и была одним файлом, а не 4 разных как тут.


C++:
SerialGen.cpp
#include "stdafx.h"
#include <iostream>
#include "string.h"
#include "Functions.h"
using namespace std;


int main(int argc, char* argv[])
{
char *login = new char[]; 
char *SerialOut = new char[];
char ans;

cout<<"Press your login "; 
cin>>login;
cout<<login<<"\n";

SerialOut=CalculateSerialNumber(GetComputerData(),login);
cout<<"\n"<<SerialOut;

do
{
cout<<"\n Wait (y,n) \t";
cin>>ans;
}	while(ans=='y');

return 0;
}

CalculateSerialNumber.cpp
#include "stdafx.h"
#include "string.h"
#include <iostream>
using namespace std;

char* GetComputerData()
{

return "12345678";
}

char* CalculateSerialNumber(char* comp_data, char* user_name)
{
char *MagicKey = new char[];
char *Alphabet = new char[];

int length,length_name,length_comp_data,length_Alphabet;
int n;

Alphabet="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
MagicKey="keyboardlogitech";

length_Alphabet=strlen(Alphabet);
length=strlen(MagicKey); 
length_name=strlen(user_name);
length_comp_data=strlen(comp_data);

n=length;
char *Serial = new char[n];
for(int i=0;i<length;i++)
{
int q,w,e;

q=i%length_name;
w=i%length_comp_data;
e=i%length;
Serial[i]=MagicKey[e]^comp_data[w]^user_name[q];
Serial[i]=Alphabet[Serial[i]%length_Alphabet];
if (i==length-1) Serial[i+1]=0;
}

return Serial;
}

Functions.h
char* CalculateSerialNumber(char* comp_data, char* user_name);
char* GetComputerData();

Validation.cpp
#include "stdafx.h"
#include <iostream>
#include "string.h"
#include "Functions.h"
using namespace std;


bool IsValidSerialNumber(char* comp_data,char* user_name,char* serial_number)
{
char *Serial = new char[];
bool out;
int length_Serial,length_SerialIn;

Serial=CalculateSerialNumber(comp_data,user_name);

length_SerialIn=strlen(serial_number);
length_Serial=strlen(Serial);

if (length_SerialIn==length_Serial)
{
for (int i=0;i<length_Serial;i++)
{
if (Serial[i]==serial_number[i]) out=true;
else 
{
out=false;
break;
}
}
}
else out=false;

return out;
}

int main(int argc, char* argv[])
{
char *login = new char[]; 
char *SerialIn = new char[];
bool Valid;
char ans;

cout<<"Press your login "; 
cin>>login;
cout<<login<<"\n";

CalculateSerialNumber(GetComputerData(),login);

cout<<"Press serial number \t";
cin>>SerialIn;
cout<<"\n";

Valid=IsValidSerialNumber(GetComputerData(),login,SerialIn);

if (Valid==true) cout<<"Serial is valid. Greetings! \n";
if (Valid==false) cout<<"Serial is invalid. Try again\n";

do
{
cout<<"\n Wait (y,n) \t";
cin>>ans;
}	while(ans=='y');

return 0;
}

Добавлено: компилятор Dev C++
 
W

Whatka

первый раз вижу,чтобы не могли из нескольких файлов 1 сделать,
обычно обратная проблема

у тебя 2 мэйна и ещё 2 файла
сделай сначала просто 2 мэйна
а потом объеденяй
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!