You are on page 1of 15

Міністерство освіти та науки України

Харківський Національний університет радіоелектроніки


Кафедра ІК ім. В.В. Поповського
Дисципліна Програмування

Курсова робота

Виконала: Студентка групи КУІБ-21-1


Говта Ірина
Перевірив: Назаренко В.А.

Харків 2022
Завдання 1
Мета: Вивчення правил створення користувальних функцій і роботи з ними.
7. Составить функцию вычисления среднего значения элементов
одномерного массива и определения количества чисел, больше или меньше
этого значения. Массив может быть произвольного числового типа.
Хід роботи:
#include <iostream>
using namespace std;
void Rand (double Masp[16], int i)
{
for (i = 0; i < 16; i++)
Masp[i] = rand() % 50;
}
void Out (double Masp[16], int i)
{
cout << "Исходный массив" << endl;
for (i = 0; i < 16; i++)
cout << Masp[i] << " ";
cout << endl;
}
void Medium (double Masp[16], int i, double sum, double medium, int low, int high)
{
for (i = 0; i < 16; i++)
sum = sum + Masp[i];
medium = sum / 16;
cout << "Среднее значение: " << medium << endl;
for (i = 0; i < 16; i++)
{
if (Masp[i] < medium)
low++;
if (Masp[i] > medium)
high++;
}
cout << "Числа ниже среднего значения: " << low << endl;
cout << "Числа выше среднего значения: " << high << endl;
}
int main()
{
setlocale (LC_ALL, "Russian");
double Masp[16], sum = 0, medium{};
int i{}, low = 0, high = 0;
Rand(Masp, i);
Out(Masp, i);
Medium(Masp, i, sum, medium, low, high);
}
Блок схема
Висновок: Я вивчила правила створення користувальних функцій і
навчилась працювати з ними.

Завдання 2
Мета: Вивчення правил створення користувацьких функцій і роботи з ними

7. Разработать функцию интегрирования методом прямоугольников в


заданных пределах с заданной точностью. Функция должна принимать в
качестве агрумента интегрируемую функцию (т.е. передавать в качестве
аргумента указатель на функцию). В качестве примера проинтегрировать
функцию sin(x), аргумент х изменяется в пределах от 0 до π.

Хід роботи:
#include <iostream>
#include <cmath>

using namespace std;

float f(float x)
{
return sin(x);
}

float integralpram(double a, double b, int n)


{
double h, S, x;
h = (b - a) / n;
S = 0;
for (int i = 0; i < n; i++)
{
x = a + i * h;
S += f(x);
}
S *= h;
cout << S;
return S;
}

int main()
{
setlocale(LC_ALL, "ru");
double a, b;
int n;
cout << "Введите нижнюю границу: ";
cin >> a;
cout << "Введите верхнюю границу: ";
cin >> b;
cout << "Введите интервал разбиения: ";
cin >> n;
float (*ukz)(double, double, int) = integralpram;
ukz(a, b, n);
return 0;
}
Блок схема
Висновок: Я вивчила правила створення користувацьких функцій і
навчилась працювати з ними.
Завдання 3
7. В файле хранится информация по задолженностям студентов: ФИО,
группа, курс, предмет. Написать программу удаления из файла информации о
студентах аннулировавших задолженности.

Хід роботи:
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

void enter_new(double money, int course, string name, string group, string subject)
{
ofstream fname;
ofstream fgroup;
ofstream fcourse;
ofstream fsubject;
ofstream fmoney;
int n = 1;
fname.open("name.txt", ios::app);
fgroup.open("group.txt", ios::app);
fcourse.open("course.txt", ios::app);
fsubject.open("subject.txt", ios::app);
fmoney.open("money.txt", ios::app);
for (int i = 0; i < n; i++)
{
cout << "Введите ФИО (латиницей): ";
cin >> name;
fname << name << endl;
cout << "Введите группу студента (латиницей): ";
cin >> group;
fgroup << group << endl;
cout << "Введите курс студента (цифра): ";
cin >> course;
fcourse << course << endl;
cout << "Введите предмет студента (латиницей): ";
cin >> subject;
fsubject << subject << endl;
cout << "Введите сумму задолженности студента: ";
cin >> money;
fmoney << money << endl;
int plus;
cout << "Еще? (нажмите 1, если да): ";
cin >> plus;
if (plus == 1)
{
n = n + 1;
}
}
fname.close();
fgroup.close();
fcourse.close();
fsubject.close();
fmoney.close();
}
void correct()
{
int q = 0;
char* str = new char[1024];
ifstream qua("name.txt");
while (!qua.eof())
{
qua.getline(str, 1024, '\n');
q++;
}
q = q - 1;
string* mname;
double* mmoney;
int* mcourse; string* mgroup;
string* msubject;
mname = new string[q];
mgroup = new string[q];
mmoney = new double[q];
mcourse = new int[q];
msubject = new string[q];
qua.close();
ifstream oname;
ifstream ogroup;
ifstream ocourse;
ifstream osubject;
ifstream omoney;
oname.open("name.txt", ios::app);
ogroup.open("group.txt", ios::app);
ocourse.open("course.txt", ios::app);
osubject.open("subject.txt", ios::app);
omoney.open("money.txt", ios::app);
while (!oname.eof())
{
for (int k = 0; k < q; k++)
oname >> mname[k];
}
while (!ogroup.eof())
{
for (int k = 0; k < q; k++)
ogroup >> mgroup[k];
}
while (!ocourse.eof())
{
for (int k = 0; k < q; k++)
ocourse >> mcourse[k];
}
while (!osubject.eof())
{
for (int k = 0; k < q; k++)
osubject >> msubject[k];
}
while (!omoney.eof())
{
for (int k = 0; k < q; k++)
omoney >> mmoney[k];
}
oname.close();
ogroup.close();
ocourse.close();
osubject.close();
omoney.close();
string sname;
cout << "Введите ФИО (латиницей), которое вы хотите убрать из списка: ";
cin >> sname;
int l = 1;
int lplus;
for (int j = 0; j < q; j++)
{
if (mname[j] == sname)
{
mname[j] = " ";
mgroup[j] = " ";
mcourse[j] = 0;
msubject[j] = " ";
mmoney[j] = 0;
cout << "Студент убран из списка!" << endl;
}
}
cout << "Еще убрать студента? (нажмите 1, если да): ";
cin >> lplus;
if (lplus == 1)
{
l = l + 1;
}
ofstream fname;
ofstream fgroup;
ofstream fcourse;
ofstream fsubject;
ofstream fmoney;
fname.open("name.txt");
fgroup.open("group.txt");
fcourse.open("course.txt");
fsubject.open("subject.txt");
fmoney.open("money.txt");
for (int j = 0; j < q; j++)
{
if (mname[j] != " ")
{
fname << mname[j] << endl;
fgroup << mgroup[j] << endl;
fcourse << mcourse[j] << endl;
fsubject << msubject[j] << endl;
fmoney << mmoney[j] << endl;
}
}
fname.close();
fgroup.close();
fcourse.close();
fsubject.close();
fmoney.close();
}
void clean()
{
ofstream fname;
ofstream fgroup;
ofstream fcourse;
ofstream fsubject;
ofstream fmoney;

fname.open("name.txt", ios::trunc);
fgroup.open("group.txt", ios::trunc);
fcourse.open("course.txt", ios::trunc);
fsubject.open("subject.txt", ios::trunc);
fmoney.open("money.txt", ios::trunc);
fname.close();
fgroup.close();
fcourse.close();
fsubject.close();
fmoney.close();
}
void output()
{
int q = 0;
char* str = new char[1024];
ifstream qua("name.txt");
while (!qua.eof())
{
qua.getline(str, 1024, '\n');
q++;
}
q = q - 1;
string* mname;
double* mmoney;
int* mcourse; string* mgroup;
string* msubject;
mname = new string[q];
mgroup = new string[q];
mmoney = new double[q];
mcourse = new int[q];
msubject = new string[q];
qua.close();
ifstream oname;
ifstream ogroup;
ifstream ocourse;
ifstream osubject;
ifstream omoney;
oname.open("name.txt", ios::app);
ogroup.open("group.txt", ios::app);
ocourse.open("course.txt", ios::app);
osubject.open("subject.txt", ios::app);
omoney.open("money.txt", ios::app);
while (!oname.eof())
{
for (int k = 0; k < q; k++)
oname >> mname[k];
}
while (!ogroup.eof())
{
for (int k = 0; k < q; k++)
ogroup >> mgroup[k];
}
while (!ocourse.eof())
{
for (int k = 0; k < q; k++)
ocourse >> mcourse[k];
}
while (!osubject.eof())
{
for (int k = 0; k < q; k++)
osubject >> msubject[k];
}
while (!omoney.eof())
{
for (int k = 0; k < q; k++)
omoney >> mmoney[k];
}
oname.close();
ogroup.close();
ocourse.close();
osubject.close();
omoney.close();
ofstream conclution;
conclution.open("conclution.txt");
conclution << "ФИО " << "Группа " << "Курс " << "Предмет " <<
"Задолженость " << endl;
conclution << endl;
for (int i = 0; i < q; i++)
{
conclution << mname[i] << " " << mgroup[i] << " " << mcourse[i] << " " <<
msubject[i] << " " << mmoney[i] << endl;
}
conclution.close();
}

int main()
{
double money{};
int course{};
string name, group, subject;
setlocale(LC_ALL, "Russian");
cout << "Список студентов должников" << endl;
cout << endl;
char c;
int q{}, clean;
int ope = 1;
cout << "Вы хотите очистить базу данных? (Нажмите '1' если да): ";
cin >> clean;
if (clean == 1)
{
void clean();
cout << "Ваши файлы очищены!" << endl;
}
for (int i = 0; i < ope; i++)
{
cout << "Выберите операцию (для добавления нажмите 'n', для удаления нажмите 'c':
)";
cin >> c;
switch (c)
{
case 'n':
enter_new(money, course, name, group, subject);
break;
case 'c':
correct();
break;
}
int kplus;
cout << "Еще? (нажмите 1, если да): ";
cin >> kplus;
if (kplus == 1)
{
ope = ope + 1;
}
}
output();
cout << "Итоговый файл готов!" << endl;
cout << "Хорошего дня!" << endl;
return 0;
}
Блок схема
Висновок: Я практично вивчила можливості мови С++ у роботі з файлами.
Також я отримала практичні навички використання файлів при вирішенні
практичних задач

You might also like