- •Предисловие
- •Правила выполнения лабораторных работ
- •Обеспеченность занятия (средства обучения):
- •Порядок выполнения отчета по лабораторной работе
- •Лабораторная работа № 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 |
. |
… |
… |
… |
|
|
|
|
# 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;
};
// Прототипы функций
student *inputstudentfile ( int &nn);
void outputstudent ( student st[], int nn);
group *perechengroup ( student st[], int nn, int &kk);
void outputgroup (group z[], int kk);
void outputgroupfile (group z[], int kk);
// Ввод исходного массива задолжников из файла
student *inputstudentfile ( int &nn)
{
ifstream fin;
char file[10];
char iniz[7]; // рабочая переменная для инициалов
student t; // рабочая переменная для подсчета записей в файле
student *ps;
int i;
cout << ”Имя файла:” ;
cin >> file;
fin.open(file);
if( fin==NULL) {cout<<”Файл не открыт.\n”; exit(1);}
// подсчет записей в файле
nn =0;
do {
fin >> t.name >> iniz >> t.kurs >> t.gr ;
nn++;
}while (fin.good());
nn--;
fin.close();
// выделение памяти для динамического массива
ps= new student [nn];
if( ps=NULL ) { cout<<”Нет динамической памяти.”; getch(); exit(1);}
// ввод массива задолжников из файла
fin.open(file);
if( fin==NULL) {cout<<”Файл не открыт.\n”; exit(1);}
for (i=0; i< nn; i++)
{
fin >> ps[i].name >> iniz >> ps[i].kurs >> ps[i].gr ;
strcat( ps[i].name, “ “); // добавление инициалов через
strcat( ps[i].name, iniz); // пробел к фамилии
}
fin.close();
return ps;
}
// Вывод массива задолжников на экран
void outputstudent ( student st[], int nn)
{
cout<< “Фамилия и инициалы Курс Группа \n”;
for (i=0; i<nn; i++)
cout << setw(16)<< st[i].name << setw(7)<< st[i].kurs << setw(8) << st[i].gr << endl ;
}
// Формирование перечня групп, имеющих задолжников
group *perechengroup ( student st[], int nn, int &kk)
{
int i,j,fl;
group *p;
// выделение памяти для динамического массива (перечня)
p= new group [nn];
if( p==NULL ) { cout<<”Нет динамической памяти.”; getch(); exit(1);}
kk=0;
for ( i=0; i<nn; i++)
{
fl=1;
for ( j=0; j<kk; j++)
if (strcmp(st[i].gr, p[j].gr) == 0) { fl=1; p[j].ng++; }
if (fl==1) { strcpy(p[k].gr, st[i].gr); p[k].ng =1; kk++; }}
return p;
}
// Вывод перечня групп, имеющих задолжников, на экран
void outputgroup (group z[], int kk)
{
cout<< “ Группа Кол-во \n”;
for (i=0; i< kk; i++)
cout << setw(8)<< z[i].gr << setw(8)<< z[i].ng << << endl ; }
// Вывод перечня групп, имеющих задолжников, в файл
void outputgroupfile (group z[], int kk)
{
оfstream fout;
char file[10];
int i;
cout << ”Имя файла:” ;
cin >> file;
fout.open(file);
if( !fout.good()) {cout<<”Файл не открыт.\n”; exit(1);}
for (i=0; i< kk; i++)
fout << setw(8)<< z[i].gr << setw(8)<< z[i].ng << << endl ;
fout.close(); }
/*основная функция программы */
void main()
{
student *pst; // указатель на исходную таблицу задолжников
int n; // n – число строк в исходной таблице
group *pz; // указатель на перечень групп, имеющих задолжников
int k; // к – число групп в перечне
pst=inputstudentfile ( n);
cout << ” Исходный массив структур. \n” ;
outputstudent ( pst, n);
pz=perechengroup ( pst, n, k);
cout << ” Перечень групп, имеющих задолжников. \n” ;
outputgroup ( pz, k);
outputgroupfile ( pz, k);
delete [] pst;
delete [] pz;
}
