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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычисление значений функции http://www.cyberforum.ru/cpp-beginners/thread816394.html
Составить программу для вычисления значений заданной функции, используя исходные данные:
C++ Определить стоимость подписки Цена подписки на газету «Пресс-Курьер» на год определяется следующим образом: льготная подписка (при предъявлении квитанции за предыдущий год) на весь год–15 грн., подписка для тех, кто впервые станет постоянным читателем, – 18 грн., подписка для пенсионеров – 12 грн., подписка обыкновенная – 24 грн. Определить стоимость подписки с учётом приведённых условий. http://www.cyberforum.ru/cpp-beginners/thread816386.html
Найти стороны треугольника C++
Треугольник задан величинами своих углов и радиусом описанной окружности. Найти стороны треугольника.
C++ Ввести строку текста (содержащую как слова так и числа), вывести все числа из данной строки
Ввести ленту произвольной длины, которую будем трактовать как текст, в котором слова отделены одним или несколькими пробелами (длина слов, в целом, произвольная). Учитывая, что в тексте встречаются слова, содержащие как буквы, так и цифры, а также просто числа, содержащие цифры, вывести на экран монитора все числа. Каким образом это можно сделать?
C++ Массив: Заменить последний из отрицательных элементов в массиве на три элемента, равных заданному значению. http://www.cyberforum.ru/cpp-beginners/thread816372.html
Вставка в вектор новых элементов 1)Заменить последний из отрицательных элементов в массиве на три эле¬мента, равных заданному значению. Если такая замена невозможна, выдать об этом сообщение. 2)Заменить первый отрицательный элемент в массиве на три элемента, рав¬ных заданному значению. Если такая замена невозможна, выдать об этом сообщение.
C++ Ошибка при компиляции error LNK2019 IMG.obj : error LNK2019: ссылка на неразрешенный внешний символ "unsigned long __cdecl GTASA_CRC32_fromUpCaseString(char const *)" (?GTASA_CRC32_fromUpCaseString@@YAKPBD@Z) в функции "public: unsigned int __thiscall IMG::GetFileIndexByName(char const *)" (?GetFileIndexByName@IMG@@QAEIPBD@Z) Проект: http://rghost.ru/44703315 подробнее

Показать сообщение отдельно
paradox92
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 38

Доделать программу для генерации и проверки серийного номера жесткого диска - 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 минут
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru