- •Предисловие
- •Правила выполнения лабораторных работ
- •Обеспеченность занятия (средства обучения):
- •Порядок выполнения отчета по лабораторной работе
- •Лабораторная работа № 1 «Разработка линейных алгоритмов»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы
- •Лабораторная работа № 3-4 «Использование оператора цикла с параметром»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы
- •Лабораторная работа № 5 «Табулирование функций»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 11-12 «Разработка технического задания с использованием ms Word»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •1 Общие сведения
- •1.1. Полное наименование системы и ее условное обозначение
- •1.3. Термины и определения
- •3.1.4. Безопасность системы
- •3.1.5. Требования по эргономике и технической эстетике
- •3.1.6. Требования к производительности системы
- •3.2. Общие требования к функциям системы
- •3.2.1. Общие требования к способам обработки и хранения информации
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 15-16 «Использование многомерных массивов»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 17 «Использование оператора выбора switch-case-default»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 21 «Разработка программного кода методом половинного деления»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •9: Разложение на множители
- •10: Палиндром
- •11: Вывести нечетные числа последовательности
- •Контрольные вопросы:
- •Лабораторная работа № 26-27 «Обработка структурных данных»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 28-29 «Использование файловых потоков»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 30-31 «Использование строк при разработке программного кода»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 32-33 «Использование динамических массивов структур»
- •Список представляет собой таблицу
- •Задания для лабораторной работы:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Список представляет собой таблицу
- •Задания для лабораторной работы:
- •Контрольные вопросы:
- •Лабораторная работа № 36-37 «Использование классов динамических массивов структур»
- •Образовательные результаты, заявленные во фгос третьего поколения:
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Список представляет собой таблицу
- •Краткие теоретические и учебно-методические материалы по теме лабораторной работы
- •Задания для лабораторной работы:
- •Контрольные вопросы:
Список представляет собой таблицу
№ |
Фамилия и инициалы |
Курс |
Группа |
1 |
Иванов А.А. |
1 |
ИСТ – 101 |
2 |
Сидоров Б.Б. |
1 |
АСУ – 120 |
. |
… |
… |
… |
|
|
|
|
Каждая строка содержит информацию об одном студенте. Таблица содержит n строк. Предположим, что n не превышает 200 и ее значение вводится в процессе работы программы. Требуется написать программу, которая печатает перечень групп, имеющих задолжников с указанием их количества в группе.
# include <iostream.h>
# include <fstream.h>
# include <string.h>
# include <iomanip.h>
# include <stdlib.h>
const int N=200;
struct student
{
char name[30];
int kurs;
char gr[7];
};
struct group
{
char gr[7];
int ng;
};
class massiv // класс массив структур
{
private:
student st[N]; // исходная таблица задолжников
int n; // n – число строк в исходной таблице
group z[N]; // перечень групп, имеющих задолжников
int k; // к – число групп в перечне
public:
void inputstudentfile (); // ввод массива задолжников из файла
void outputstudent (); // вывод массива задолжников на экран
void outputgroup (); // вывод перечня групп задолжников на экран
void outputgroupfile (); // вывод перечня групп задолжников в файл
void perechengroup (); // формирование перечня групп задолжников
};
// Ввод исходного массива задолжников из файла
void massiv::inputstudentfile ()
{
ifstream fin;
char file[10];
char iniz[7]; // рабочая переменная для инициалов
cout << ”Имя файла:” ;
cin >> file;
fin.open(file);
if( fin==NULL) {cout<<”Файл не открыт.\n”; exit(1);}
n=0;
do {
fin >> st[i].name >> iniz >> st[i].kurs >> st[i].gr ;
strcat( st[i].name, “ “); // добавление инициалов через
strcat( st[i].name, iniz); // пробел к фамилии
n++;
}while (fin.good());
n--;
fin.close();
}
// Вывод массива задолжников на экран
void massiv::outputstudent ()
{
cout<< “Фамилия и инициалы Курс Группа \n”;
for (i=0; i<n; i++)
cout << setw(16)<< st[i].name << setw(7)<< st[i].kurs << setw(8) << st[i].gr << endl ;
}
// Формирование перечня групп, имеющих задолжников
void massiv::perechengroup ()
{
int i,j,fl;
k=0;
for ( i=0; i<n; i++)
{
fl=1;
for ( j=0; j<k; j++)
if (strcmp(st[i].gr, z[j].gr) == 0) { fl=1; z[j].ng++; }
if (fl==1) { strcpy(z[k].gr, st[i].gr); z[k].ng =1; k++; }
}
}
// Вывод перечня групп, имеющих задолжников, на экран
void massiv::outputgroup ()
{
cout<< “ Группа Кол-во \n”;
for (i=0; i<k; i++)
cout << setw(8)<< z[i].gr << setw(8)<< z[i].ng << << endl ;
}
// Вывод перечня групп, имеющих задолжников, в файл
void massiv::outputgroupfile ()
{
оfstream fout;
char file[10];
int i;
cout << ”Имя файла:” ;
cin >> file;
fout.open(file);
if( !fout.good()) {cout<<”Файл не открыт.\n”; exit(1);}
for (i=0; i<k; i++)
fout << setw(8)<< z[i].gr << setw(8)<< z[i].ng << << endl ;
fout.close();
}
/*основная функция программы */
void main()
{
massiv a; // Объект класса massiv
a.inputstudentfile ();
cout << ” Исходный массив структур. \n” ;
a.outputstudent ();
a.perechengroup ();
cout << ” Перечень групп, имеющих задолжников. \n” ;
a.outputgroup (); a.outputgroupfile (); }
