vvodUniuc(head, nd, 2);
cout << "№ зачётки сгенерирован автоматически: \n";
cout << nd->Nstud << "\n";
vvodUniuc(head, nd, 1);
cout << "№ студака сгенерирован автоматически: \n";
cout << nd->Nzach << "\n"
cout << "Факультет: \n";
vvodEl(nd->fac, rty);
cout << "Кафедра: \n";
vvodEl(nd->kaf, rty);
cout << "Группа: \n";
vvodEl(nd->group, uio);
nd->sr_ball = 0;
nd->kol_obch = 0;
nd->kol_Otl_Hor = 0;
bool tmp = false;
int men_add_tmp = 0;
while (!tmp) {
cout << "\n\n № Сессии для которой ввести оценки: \n\n";
ses_num = vvod_sesNum();
vvod_predmets(nd, ses_num);
add_pred_rep_menu();
bool prov_tmp = false;
while (!prov_tmp) {
cin >> men_add_tmp;
ochiCIN();
if (men_add_tmp == 2)
{
tmp = true;
prov_tmp = true;
}
else
if (men_add_tmp == 1) {
break;
tmp = true;
}
else
eroor_menu();
}
}
nd->next = NULL;
if (head == NULL)
head = nd;
else
{
student* current = head;
while (current->next != NULL)
current = current->next;
current->next = nd;
}
tail = nd;
SaveG(&id, &kol);
saveOneStudToFile(nd);
cout << "\x1b[32m \n Успешно! \n \x1b[30m";
};
void vvodEl(char El[], int qwe) {
bool tmp = false;
while (!tmp) {
cin.getline(El, qwe);
ochiGET();
if ((!prov_prob(El) || !prov_pyst(El))) {
cout << "Не должно быть пробелов / строка не должна быть пустой!!!\n";
cout << "Повторите ввод: \n";
}
else
tmp = true;
}
}
else
if (tmp_zad_main_menu == 2)
{
prochent_sr_ball = false;
while (1) {
zad_dop_menu44();
cin >> tmp_zad_dop_menu;
ochiCIN();
if (tmp_zad_dop_menu == 1)
{
MyStud.find_pech_stud_true(prochent_sr_ball);
}
else
if (tmp_zad_dop_menu == 2)
{
MyStud.find_pech_stud_true(prochent_sr_ball, 'ж');
}
else
if (tmp_zad_dop_menu == 3)
{
MyStud.find_pech_stud_true(prochent_sr_ball, 'м');
}
else
if (tmp_zad_dop_menu == 4)
{
break;
}
else
eroor_menu();
}
}
else
if (tmp_zad_main_menu == 3)
{
break;
}
else
eroor_menu();
}
nd->next = NULL;
tail = nd;
if (head == NULL)
head = nd;
else
{
student* current = head;
while (current->next != NULL)
current = current->next;
current->next = nd;
}
}
cout << "\x1b[32m \n База данных успешно загружена!!! \n \x1b[30m";
cout << "Количество студентов в базе = " << kol << "\n\n";
}
stud.close();
}
void Students::saveOneStudToFile(student* st) {
ofstream one_stud;
one_stud.open("students.txt", ios::app);
one_stud << st->id << " ";
one_stud << st->fam << " ";
one_stud << st->name << " ";
one_stud << st->otch << " ";
one_stud << st->pol << " ";
one_stud << st->day << " ";
one_stud << st->mount << " ";
one_stud << st->year << " ";
one_stud << st->yPOST << " ";
one_stud << st->fac << " ";
one_stud << st->kaf << " ";
one_stud << st->group << " ";
one_stud << st->Nstud << " ";
one_stud << st->sr_ball << " ";
one_stud << st->kol_Otl_Hor << " ";
one_stud << st->kol_obch << " ";
one_stud << st->Nzach << "\n";
one_stud.close();
}
if (!WriteFile(hSourceFile, pbKeyBlob, dwKeyBlobLen, &dwCount, NULL))
{
cout << "\x1b[31m \nError writing header. \n \x1b[30m";
}
else
{
cout << "\x1b[32m \nThe key BLOB has been written to the file. \n \x1b[30m";
}
// Free memory.
free(pbKeyBlob);
bool fEOF = false;
Непосредсвенно выполнение самого шифрования:
count = strlen(current->name);
if (!CryptEncrypt(hKey, NULL, fEOF, 0, (BYTE*)current->name, &count,
strlen(current->name)))
{
cout << "\x1b[31m \nError during CryptEncrypt. \n \x1b[30m";
}
stud << current->name << " ";
if (!(pbKeyBlob = (PBYTE)malloc(dwKeyBlobLen)))
{
cout << "\x1b[31m \n Memory allocation error. \n \x1b[30m";
}
if (!ReadFile(
hSourceFile,
pbKeyBlob,
dwKeyBlobLen,
0,
NULL))
{
cout << "\x1b[31m \n Error reading key BLOB length! \n \x1b[30m";
}
if (!CryptImportKey(
hCryptProv,
pbKeyBlob,
dwKeyBlobLen,
0,
0,
&hKey))
{
cout << "\x1b[31m \n Error during CryptImportKey! \n \x1b[30m";
}
if (pbKeyBlob)
{
free(pbKeyBlob);
}
if (!CryptDecrypt(
hKey,
0,
fEOF,
0,
(BYTE*)nd->fam,
&count))
{
cout << "\x1b[31m \n Error during CryptDecrypt! \n \x1b[30m";
}
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть