Автор работы: Пользователь скрыл имя, 22 Марта 2013 в 20:23, лабораторная работа
1. Создать структуру, указанную в варианте, создать функцию ввода и вывода. Создать функции для реализации запроса на вывод на основе сложного критерия и сложного критерия с использованием функций. Создать динамический массив структурного типа и реализовать ввод массива и вывод на основе заданных критериев.
2. Создать структуру из четырех полей, создать функцию ввода и вывода. Создать функции для реализации запроса с использованием функций и группировки. Создать динамический массив структурного типа и реализовать ввод массива и выполнение запросов на основе заданных критериев.
Лабораторная работа №3
«Программирование с использованием структур и динамических массивов»
Цель: Получить навыки программирования с использованием структур и динамических массивов.
I. Постановка задачи
1. Создать структуру, указанную в варианте, создать функцию ввода и вывода. Создать функции для реализации запроса на вывод на основе сложного критерия и сложного критерия с использованием функций. Создать динамический массив структурного типа и реализовать ввод массива и вывод на основе заданных критериев.
2. Создать структуру из четырех полей, создать функцию ввода и вывода. Создать функции для реализации запроса с использованием функций и группировки. Создать динамический массив структурного типа и реализовать ввод массива и выполнение запросов на основе заданных критериев.
Вариант № 2
1 задание |
2 задание |
Учеба |
Учеба |
АБИТУРИЕНТ (имя, дата, балл, средний балл) |
ИНСТИТУТ |
Структура — конструкция большинства языков программирования, позволяющая содержать в себе набор переменных различных типов. В языках семейства Pascal структуры традиционно называют записями (англ. record).
С внедрением концепции объектно-
C++
struct str_name
{
private:
int member_1;
float member_2;
public:
std::string member_3;
// ...
};
// примеры инициализации
str_name struct0;
str_name struct1 = {1, 3.1416, "doit" /* ... */};
str_name struct2 = {member_1:2, member_2:3.1416, member_3:"doit" /* ... */};
str_name struct2 = {.member_1=2, .member_2=3.1416, .member_3="doit" /* ... */};
Функции использованные в 1 задание:
// Функция
для поиска студента с
int max(Abiturient dArr[], int size)
{
int max = dArr[0].ball;
for(int i = 1; i < size; i++)
if(max < dArr[i].ball)
max = dArr[i].ball;
return max;
}
// Функция для ввода абитуриентов
void setFunction(Abiturient dArr[], int size)
{
int count = 1;
for(int i = 0; i < size; i++)
{
std::system("cls");
std::cout << "Entrant: " << count;
std::cout << "\nEnter name: "; std::cin >> dArr[i].name;
std::cout << "\nEnter surname: "; std::cin >> dArr[i].surname;
std::cout << "\nEnter date of month: "; std::cin >> dArr[i].date;
std::cout << "\nEnter month: "; std::cin >> dArr[i].month;
std::cout << "\nEnter year: "; std::cin >> dArr[i].year;
std::cout << "\nEnter ball: "; std::cin >> dArr[i].ball;
std::cout << "\nEnter average ball: "; std::cin >> dArr[i].averageBall;
count++;
}
}
// Функция для вывода всех абитуриентов
void getFunction(Abiturient dArr[], int size)
{
std::system("cls");
for(int i = 0; i < size; i++)
{
std::cout << "\n\nName: " << dArr[i].name;
std::cout << " Surname: " << dArr[i].surname;
std::cout << "\nDate: " << dArr[i].date;
std::cout << " " << dArr[i].month;
std::cout << " " << dArr[i].year;
std::cout << "\nBall: " << dArr[i].ball;
std::cout << "\nAverage ball: " << dArr[i].averageBall;
}
}
// Функция для вывода абитуриентов с запросом со сложным критерием
void getHardCall(Abiturient dArr[], int size)
{
bool flag;
int count = 1;
Abiturient *myNewDArr = new Abiturient[size];
// очистка экрана от предыдущих записей
std::system("cls");
char myEntrant[25];
int baL;
std::cout << "Enter name of university entrant: ";
std::cin >> myEntrant; // ввод имени и...
std::cout << "\nEnter Ball: ";
std:: cin >> baL; // ...балла для запроса со сложным критерием
for(int i = 0; i < size; i++)
{
if(stricmp(dArr[i].name,
{
myNewDArr = dArr;
count++;
flag = true;
}
}
if(!flag)
std::cout << "\nEntrants with such name are not present \n"
<< "And a point there is less than set!\n";
else
getFunction(myNewDArr,count);
}
// Функция для вывода абитуриентов с запросом со сложным критерием
// и функцией
void getHardCallAndFunction(
{
int maxBall = max(dArr,size);
std::system("cls");
for(int i = 0; i < size; i++)
{
if(dArr[i].ball == maxBall)
{
std::cout << "This entrant has max ball =>";
std::cout << "\nName: " << dArr[i].name;
std::cout << " Surname: " << dArr[i].surname;
std::cout << "\nDate: " << dArr[i].date;
std::cout << " " << dArr[i].month;
std::cout << " " << dArr[i].year;
std::cout << "\nBall: " << dArr[i].ball;
std::cout << "\nAverage ball: " << dArr[i].averageBall;
}
}
}
Функции использованные во 2 задание:
// Функция
для вычисления среднего
// всех иститутов
int meanAge(Institute myArr[], int sz)
{
int mean = 0;
for(int i = 0; i < sz; i++)
mean += myArr[i].ageOfStudent;
mean = mean / sz;
return mean;
}
// Функция для ввода институтов
void setFunction(Institute myArr[], int sz)
{
int count = 1;
for(int i = 0; i < sz; i++)
{
std::system("cls");
std::cout << "Institute: " << count;
std::cout << "\nEnter name of Institute: ";
std::cin >> myArr[i].nameOfInstitute;
for(int j = 0; j < 3; j++)
{
std::cout << "\nEnter name of facultet: ";
std::cin >> myArr[i].facultet[j];
std::cout << "\nEnter number of student: ";
std::cin >> myArr[i].countOfStudentinF[j];
}
std::cout << "\nEnter age of students for this year: ";
std::cin >> myArr[i].ageOfStudent;
count++;
}
}
// Функция для вывода всех институтов
void getFunction(Institute myArr[], int sz)
{
std::system("cls");
for(int i = 0; i < sz; i++)
{
std::cout << "Name of Institute: "
<< myArr[i].nameOfInstitute;
for(int j = 0; j < 3; j++)
{
std::cout << "\nFacultet: "
<< myArr[i].facultet[j];
std::cout << " Students: "
<< myArr[i].countOfStudentinF[j];
}
std::cout << "\nAge of students for this year: "
<< myArr[i].ageOfStudent << "\n\n";
}
}
// Запроса с функцией и группировкой
void getCallWithFunctionAndGr(
{
bool flag;
std::system("cls");
for(int i = 0; i < sz; i++)
{
std::cout << "\nName of Institute: "
<< myArr[i].nameOfInstitute;
}
std::string check;
std::cout <<"\n\nEnter name of Institute: ";
std::cin >> check;
for(int i = 0; i < sz; i++)
{
if(check == myArr[i].nameOfInstitute)
{
for(int j = 0; j < 3; j++)
{
std::cout << "\nCount of students in facultet: "
<< myArr[i].facultet[j];
std::cout << " = > "
<< myArr[i].countOfStudentinF[j];
flag = true;
}
}
}
if(!flag)
std::cout << "\nWe have not this insitute!\n";
std::cout << "\nMean age of students of institutes: "
<< meanAge(myArr,sz) << "\n";
}
Задание 1.
//****************************
//
// Вариант
№2
// АБИТУРИЕНТ (имя, дата, балл, средний балл) *
//
// 07.03.2013
//****************************
#include <iostream>
struct Abiturient{
char name[25];
char surname[25];
int date;
char month[10];
int year;
int ball;
double averageBall;
};
// Функция
для поиска студента с
int max(Abiturient dArr[], int size)
{
int max = dArr[0].ball;
for(int i = 1; i < size; i++)
if(max < dArr[i].ball)
max = dArr[i].ball;
return max;
}
// Функция для ввода абитуриентов
void setFunction(Abiturient dArr[], int size)
{
int count = 1;
for(int i = 0; i < size; i++)
{
std::system("cls");
std::cout << "Entrant: " << count;
std::cout << "\nEnter name: "; std::cin >> dArr[i].name;
std::cout << "\nEnter surname: "; std::cin >> dArr[i].surname;
std::cout << "\nEnter date of month: "; std::cin >> dArr[i].date;
std::cout << "\nEnter month: "; std::cin >> dArr[i].month;
std::cout << "\nEnter year: "; std::cin >> dArr[i].year;
std::cout << "\nEnter ball: "; std::cin >> dArr[i].ball;
std::cout << "\nEnter average ball: "; std::cin >> dArr[i].averageBall;
count++;
}
}
// Функция для вывода всех абитуриентов
void getFunction(Abiturient dArr[], int size)
{
std::system("cls");
for(int i = 0; i < size; i++)
{
std::cout << "\n\nName: " << dArr[i].name;
std::cout << " Surname: " << dArr[i].surname;
std::cout << "\nDate: " << dArr[i].date;
std::cout << " " << dArr[i].month;
std::cout << " " << dArr[i].year;
std::cout << "\nBall: " << dArr[i].ball;
std::cout << "\nAverage ball: " << dArr[i].averageBall;
}
}
// Функция для вывода абитуриентов с запросом со сложным критерием
void getHardCall(Abiturient dArr[], int size)
{
bool flag;
int count = 1;
Abiturient *myNewDArr = new Abiturient[size];
// очистка экрана от предыдущих записей
std::system("cls");
char myEntrant[25];
int baL;
std::cout << "Enter name of university entrant: ";
std::cin >> myEntrant; // ввод имени и...
std::cout << "\nEnter Ball: ";
std:: cin >> baL; // ...балла для запроса со сложным критерием
for(int i = 0; i < size; i++)
{
if(stricmp(dArr[i].name,
{
myNewDArr = dArr;
count++;
flag = true;
}
}
if(!flag)
std::cout << "\nEntrants with such name are not present \n"
<< "And a point there is less than set!\n";
else
getFunction(myNewDArr,count);
}
// Функция для вывода абитуриентов с запросом со сложным критерием
// и функцией
void getHardCallAndFunction(
{
int maxBall = max(dArr,size);
std::system("cls");
for(int i = 0; i < size; i++)
{
if(dArr[i].ball == maxBall)
{
std::cout << "This entrant has max ball =>";
std::cout << "\nName: " << dArr[i].name;
std::cout << " Surname: " << dArr[i].surname;
std::cout << "\nDate: " << dArr[i].date;
std::cout << " " << dArr[i].month;
std::cout << " " << dArr[i].year;
std::cout << "\nBall: " << dArr[i].ball;
std::cout << "\nAverage ball: " << dArr[i].averageBall;
}
}
}
int main()
{
int size = 3; // количество абитуриентов
int check;
Abiturient* dArr = new Abiturient[size];
setFunction(dArr,size);
std::system("cls");
std::cout << "Enter 1 for Inquiry with difficult criterion\n"
<< "Enter 2 for Inquiry with difficult criterion and function\n"
<< "Enter 3 to see all entrants\nSo,enter: ";
std::cin >> check;
switch(check)
{
case 1: getHardCall(dArr,size);break;
case 2: getHardCallAndFunction(dArr,
case 3: getFunction(dArr,size);break;
default: std::cout << "\nYou have entered unknown symbol!\n";
}
std::cout << std::endl;
std::system("pause");
return 0;
}
Скриншот с примером выполнения программы:
Задание 2.
//****************************
//
// Вариант №2
// Институт
//
// 10.03.2013
//****************************
#include <iostream>
#include <cstring>
struct Institute{
int countOfStudentinF[3];
std::string facultet[3];
int ageOfStudent;
std::string nameOfInstitute;
};
// Функция для вычисления
// всех иститутов
int meanAge(Institute myArr[], int sz)
{
int mean = 0;
for(int i = 0; i < sz; i++)
mean += myArr[i].ageOfStudent;
mean = mean / sz;
return mean;
}
// Функция для ввода институтов
void setFunction(Institute myArr[], int sz)
{
int count = 1;
for(int i = 0; i < sz; i++)
{
std::system("cls");
std::cout << "Institute: " << count;
std::cout << "\nEnter name of Institute: ";
std::cin >> myArr[i].nameOfInstitute;
for(int j = 0; j < 3; j++)
Информация о работе Программирование с использованием структур и динамических массивов