Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Портфолио Шимбирёв.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.53 Mб
Скачать

Лабораторная работа №12

Постановка задачи: Создать программу позволяющую создавать и записывать тест, а также проходить его и выводить полученные баллы, создать структуру вопросов и возможность подсчитывать баллы на правильные ответы.

Тест:

Входные данные:

Выходные данные:

нет

нет

Листинг программы:

//---------------------------------------------------------------------------

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

#include<iostream>

#include<fstream>

#include <stdlib.h>

#include <conio.h>

#include <windows.h>

using namespace std;

struct test

{

char question[50];

char otv1[50];

char otv2[50];

char otv3[50];

char otv4[50];

int bal;

int otvet;

};

fstream f;

string q;

test t;

int a, b,i,x,j,dv,g;

int pr1,pr2,ball;

void vopros()

{

system("cls");

f.open("123.mpt", ios::out | ios::app | ios::binary);

cout<<">< Vapros: ";

gets(t.question);

cout<<">< 1 Var ";

gets(t.otv1);

cout<<">< 2 Var ";

gets(t.otv2);

cout<<">< 3 Var ";

gets(t.otv3);

cout<<">< 4 Var ";

gets(t.otv4);

cout<<">< Nomer pravilnogo otveta ";

cin>>t.otvet;

cout<<">< Balli ";

cin>>t.bal;

f.write((char*)&t,sizeof(test));

f.close();

}

void vivod()

{

ball=0;

f.open("123.mpt", ios::in | ios::binary);

while ((!f.eof()))

{

system("cls");

f.read((char*)&t,sizeof(test));

cout<<"<> Vopros: "<<t.question<<endl;

cout<<"<> Var 1 : "<<t.otv1<<endl;

cout<<"<> Var 2 : "<<t.otv2<<endl;

cout<<"<> Var 3 : "<<t.otv3<<endl;

cout<<"<> Var 4 : "<<t.otv4<<endl;

cout<<">< Vvedite otvet : ";

cin>>a; j++;

if (a==t.otvet)

{

i++;

ball=ball+t.bal;

}

}

if (i<=0)

{

system("cls");

cout<<"<===================> \n";

cout<<"<> Test ne proyden <>\n";

cout<<"<===================> " ;

system("pause");

}

else

{

cout<<"<> Vi otvetili pravilno na "<<i-1<<"/"<<j-1<<" voprosov.";

cout<<" i poluchili "<<ball<<" ballov";

}

getch();

f.close();

}

int main()

{

int pr;

setlocale(LC_ALL,"");

system("cls");

cout<<"<> Kto vi? \>< 1-admin \<> 2-user \n >< Otvet: ";

cin>>pr1;

if (pr1==1)

{

system("cls");

cout<<">< Parol: ";

cin>>pr2;

if (pr2==123)

{

do

{

system("cls");

cout<<">< Deystvie: \n <> 1)Create vopros \n <> 2)Run test. \n <> 3)Clear data test.\n <> 4)Exit \n";

cin>>g;

if (g==1) vopros();

if (g==2) vivod();

if (g==3) std::ofstream fileStrm("123.mpt", std::ios::out);

if (g==4) break;

}

while (1+1==2);

}

}

if (pr1==2)

{

vivod();

}

return 0;

}

Скриншоты:

Рис 30.

Рис 31.

Рис 32.

Рис 33.

Лабораторная работа №14

Постановка задачи:

Даны два массива A и B одинакового размера N. Сформировать новый массив C того же размера, каждый элемент которого равен максимальному из элементов массивов A и B с тем же индексом.

Тест:

Входные данные:

Выходные данные:

нет

нет

Листинг

#include <iostream>

#include <conio.h>

#include <time.h>

#include <stdlib.h>

using namespace std;

int main()

{

setlocale(LC_ALL,"Russian");

cout<<"Введите число N: ";

int N;

cin>>N;

int A[100],B[100],C[100];

srand(time(NULL));//randomize

cout<<"\nСгенерированный массив A: ";

for (int i = 0; i < N; i++)

{

A[i] = rand() % 50;

cout<<A[i]<<" ";

}

cout<<"\n\nСгенерированный массив B: ";

for (int i = 0; i < N; i++)

{

B[i] = rand() % 50;

cout<<B[i]<<" ";

}

cout<<"\n\nСформированный массив С: ";

for (int i = 0; i < N; i++)

{

C[i] = (A[i] > B[i]) ? A[i] : B[i]; // тернарный оператор

cout<<C[i]<<" ";

}

getch();

return 0;

}

Блок-схема: