Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
paradox92
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 38
#1

Доделать программу для генерации и проверки серийного номера жесткого диска - C++

25.03.2013, 00:59. Просмотров 979. Ответов 0
Метки нет (Все метки)

Программа должна содержать:
• функция 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 в другом случае

Мои наброски. которые я всё никак не могу довести до рабочего состояния:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#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;
}
Добавлено через 21 час 4 минуты
кто-то поможет?

Добавлено через 10 часов 50 минут
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2013, 00:59     Доделать программу для генерации и проверки серийного номера жесткого диска
Посмотрите здесь:

Генерация и проверка серийного номера, как реализовать? - C++
Мне нужно, скажем так, защитить программу - написать функцию генерации и проверки уникального серийного номера для каждой копии программы....

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

Windows-приложение для мониторинга состояния SMART регистров жесткого диска - C++
Доброго времени суток дорогие ребята! Возможно кто-то уже сталкивался с такой задачей.Не составить ли вам труда помочь студенту. Буду...

Предлагаю программу для генерации командной строки g++ (нахождения *.a в частности) - C++
То есть, если один файл *.a надо найти да тем более знаешь где он , то это не представляет трудностей. А как вам такая командная строка? ...

доделать программу для решения СЛАУ - C++
Ребят, помогите пожалуйста, есть программа для решения СЛАУ методом гаусса, но ту слау, которую необходимо решить мне по заданию она не...

Составить программу для проверки утверждения - C++
Составить программу для проверки утверждения: «Результатами вычислений по формуле х^2 + х + 17 при 0 &lt;= х &lt;= 15 являются простые числа»....

Составить программу для проверки утверждения - C++
Составить программу для проверки утверждения: «Результа¬тами вычислений по формуле , при 0 &lt; х &lt; 15 явля¬ются простые числа». Все...

Составить программу для проверки утверждения - C++
Составить программу для проверки утверждения&quot;Результатами вычислений по формуле X^2+x+17 при 0&lt;=x&lt;=15 являются простые числа, все...

Стратегии обслуживания жесткого диска - C++
Здравствуйте, пробую разобраться с темой обслуживания на примере стратегии N-SCAN; нашел для примера код, но в нем есть не совсем...

Менеджмент жесткого диска при многопоточности - C++
Пусть у меня 4-ех ядерный процессор, и запущено 4 рабочих потока (в одном процессе). Казалось бы, что все хорошо, но диск-то у меня один! ...

Прокомментируйте программу для проверки работоспособности класса «система счисления» - C++
Если с можете помагите с этим программой 3.5 Разработана программа для проверки работоспособности класса «система счисления»...

Написать программу для проверки знаний даты основания Санкт-Петербурга - C++
Написать программу для проверки знаний даты основания Санкт-Петербурга, если пользователь ввел неправильное число, тогда программа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru