
- •Введение
- •Лабораторная работа №1
- •Лабораторная работа №2 Задача 1
- •Лабораторная работа №3 Задача 1
- •Лабораторная работа №4
- •Задача 3
- •Лабораторная работа №5
- •Лабораторная работа №6
- •Лабораторная работа №7
- •Лабораторная работа №8-10
- •Лабораторная работа №11 Задача 1
- •Лабораторная работа №12
- •Лабораторная работа №14
- •Лабораторная работа №15
- •Лабораторная работа №16
- •Лабораторная работа №17
- •Заключение:
Лабораторная работа №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;
}
Блок-схема: