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

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

Восстановить пароль Регистрация
 
paradox92
 Аватар для paradox92
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 38
25.03.2013, 00:59     Доделать программу для генерации и проверки серийного номера жесткого диска #1
Программа должна содержать:
• функция 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++
доделать программу для решения СЛАУ C++
Составить программу для проверки утверждения C++
Написать программу для проверки работы процедуры ScalarProduct для вычисления скалярного произведения двух векторов C++
C++ Предлагаю программу для генерации командной строки g++ (нахождения *.a в частности)
C++ Windows-приложение для мониторинга состояния SMART регистров жесткого диска
C++ Генерация и проверка серийного номера, как реализовать?

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

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

Текущее время: 17:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru