- •1. Краткие теоретические сведения
- •1. Файловый ввод-вывод. Текстовые файлы
- •1.1. Организация ввода и вывода. Файловая система
- •1.2. Текстовые файлы
- •1.3. Основные методы обработки текстовых файлов
- •2. Файловый ввод-вывод. Двоичные файлы
- •2.1. Двоичные файлы
- •2.2. Последовательный доступ к элементам двоичных файлов
- •2.3. Организация произвольного доступа к элементам двоичных файлов
- •2. Задание
- •2.4. Задания для выполнения на занятиях
- •2.4.1. Задание 1.
- •2.4.2. Задание 2. Вычисление с использованием структур
- •2.4.2.1. Условие задания
- •2.4.2.2. Пример для варианта 30
- •2.4.2.3. Программа
- •2.4.2.4. Тестирование
- •2.5. Домашние задания
- •2.5.1. Задание 1. Запись в файл массивов структур
- •2.5.1.1. Условие задания
- •2.5.1.2. Пример для варианта 30
- •2.4.3.3. Программа
- •2.4.3.4. Тестирование
- •2.5.2. Задание 2. Формирование и запись в файл массивов структур
- •2.5.2.1. Условие задания
- •2.5.2.2. Пример выполнения работы для варианта 31
- •2.5.2.3. Программа
- •2.5.2.4. Тестирование
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1. Файловый ввод-вывод. Текстовые файлы 2
- •1.1. Организация ввода и вывода. Файловая система 2
2.5.2.2. Пример выполнения работы для варианта 31
Описать структуру с именем NOTE, содержащую следующие поля:
• фамилия, имя;
• номер телефона;
• адрес.
Ключевые поля: фамилия и имя.
Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE (записи должны быть размещены по фамилии);
• вывод на экран информации об адресе и телефоне по фамилии, введенной с клавиатуры.
2.5.2.3. Программа
Листинг программы:
#include<iostream.h>
#include<stdio.h>
#include<string.h>
struct note
{
char name[50];
char ln[50];
int phone;
char adress[50];
};
struct note nt[10];
main()
{
cout<<"Vvedite koli4estvo poley, kotoroe vy hotite dobavit' v BD"<<endl;
int k;
cin>>k;
for(int i=0;i<k;i++)
{
cout<<"Vvedite familiju "<<i+1<<"-go 4eloveka"<<endl;
scanf("%s", nt[i].ln);
cout<<"Vvedite imya "<<i+1<<"-go 4eloveka"<<endl;
scanf("%s", nt[i].name);
cout<<"Vvedite nomer telefona "<<i+1<<"-go 4eloveka"<<endl;
cin>>nt[i].phone;
cout<<"Vvedite adress "<<i+1<<"-go 4eloveka"<<endl;
scanf("%s", nt[i].adress);
}
cout<<"vvedite familiju dlya poiska"<<endl;
char s[50];
scanf("%s",s);
cout<<"Najdennye sovpadenija:"<<endl;
for(i=0;i<k;i++)
{
if(strcmp(s,nt[i].ln)==0)
{
cout<<nt[i].phone<<' '<<nt[i].adress<<endl;
}
}
return 0;
}
2.5.2.4. Тестирование
Тест |
Ожидаемый результат |
Полученный результат |
2 ivanov ivan 2535252 GORS petrov petr 2230252 GD
sidorov |
|
|
5 ivanov ivan 2535252 GORS petrov petr 2230252 GD sergeev igor 2434355 GB ivanov urij 2131353 GD ivanov alexey 2414111 TK
ivanov |
2535252 GORS 2131353 GD 2414111 TK |
2535252 GORS 2131353 GD 2414111 TK |
3 timofeev tima 927442 ufa timofeev dima 917234 smolen timofeev arsen 961593 moskv
timofeev |
927442 ufa 917234 smolen 961593 moskv |
927442 ufa 917234 smolen 961593 moskv |
3. Выводы
Выполнение этой лабораторной работы должно показать Вам средства языка C++, необходимые программисту для реализации программ с одномерными массивами. Вы должны освоить операторы языка С++, реализующие работу с массивами в программах.
Во время выполнения этой и других работ Вы познакомитесь с другими возможностями языка С++ и выберете для себя некоторый стиль написания программ на языке С++.
Чем активнее Вы будете овладевать возможностями системы программирования на языке С++, тем более легким и эффективным будет для Вас выполнение всего лабораторного практикума.
4. Требование к отчету
В отчете должны быть отображены следующие пункты:
1. Название работы.
2. Цель работы
3. Задание.