/
Код:
/ 1.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
const int N = 18;
struct Student
{
char Name[35];
int course;
bool styp;
};
struct List
{
Student data[N];
int first;
int last;
};
void Creation(List *list)
{
list->first = list->last = 1;
}
bool Full(List *list)
{
if (list->last == list->first) return true;
else return false;
}
List *head;
Student *Addel(List *list)
{
Student znach;
cout << "\nИмя > ";
cin >> znach.Name;
cout << "\nКурс > ";
cin >> znach.course;
cout << "\nСтипендия > ";
cin >> znach.styp;
if ((list->last % (N - 1)) + 1 == list->first)
{
cout << "\nСписок полный\n\n";
return 0;
}
else
{
list->data[list->last] = znach;
list->last = (list->last % (N - 1)) + 1;
cout << endl << "Элемент додан в список\n\n";
}
}
void Delel(List *list)
{
int a[N];
bool b[N];
for (int i = 0; i < N; i++)
{
a[i] = list->data[i].course;
b[i] = list->data[i].styp;
}
for (int i = 0; i < N; i++)
{
if ((a[i] == 1) && (b[i] == 1))
list->first = (list->first % (N - 1)) + 1;
cout << endl << "Элемент удален из списка\n\n";
}
}
Student *Printlist(List *list)
{
cout << "\nЭлементы списка: " << endl;
for (int i = 1; i<list->last; i++)
{
cout << list->data[i].Name << " ";
cout << list->data[i].course << " ";
cout << list->data[i].styp << endl;
}
cout << "\n";
return 0;
}
void main()
{
setlocale(LC_ALL, "Rus");
List list;
Creation(&list);
int x;
do
{
cout << "1. Введите студента" << endl;
cout << "2. Удалить ненужное" << endl;
cout << "3. Вывести список" << endl;
cout << "0. Выйти" << endl;
cout << "\nНомер операции > ";
cin >> x;
switch (x)
{
case 1:
Addel(&list); break;
case 2:
if (Full(&list)) cout << endl << "Список пустой\n\n";
else Delel(&list); break;
case 3:
if (Full(&list)) cout << endl << "Список пустой\n\n";
else Printlist(&list); break;
}
} while (x != 0);
}