- •Программирование на языке высокого уровня Рабочая программа Задания на контрольные работы
- •552800 - Информатика и вычислительная техника
- •Предисловие
- •1. Содержание дисциплины
- •1.1. Содержание дисциплины по гос
- •Рабочая программа (объем дисциплины 270 часов)
- •Связанные типы динамических данных
- •Тематический план лекций для студентов очно-заочной формы обучения ( 24 часа)
- •Библиографический список
- •3. Задания на контрольные работы и методические указания к их выполнению
- •3.1. Контрольная работа 1
- •3.1.1. Задание на контрольную работу 1
- •Задача 1
- •Задача 2
- •3.1.2. Методические указания к выполнению контрольной работы 1
- •Задача 1
- •Задача 2
- •Задача 2 Использование функций в языке си, получающих и возвpащающих pазличное количество аpгументов
- •3.2.2. Методические указания к выполнению контрольной работы 2
- •Задача 1
- •Задача 2
- •3.3. Контрольная работа 3
- •3.3.1. Задание на контрольную работу 3
- •3.3.2. Методические указания к выполнению контрольной работы 3
- •3.4. Контрольная работа 4
- •3.4.1. Задание на контрольную работу 4
- •3.4.2. Методические указания к выполнению контрольной работы 4
- •4. Задание на курсовой проект
- •4.1. Задание на типовой курсовой проект
- •4.2. Основные разделы пояснительной записки к курсовому проекту
- •5. Тестовые задания
- •Содержание
- •191186, Санкт-Петербург, ул. Миллионная, 5
3.3.2. Методические указания к выполнению контрольной работы 3
В данной контрольной работе студент должен вначале выполнить описание класса (структуры), а затем объявить массив объектов данного типа на 10 элементов.
В программе должны быть функции:
ввода данных;
вывода всей информации на экран;
вывода данных на экран, отвечающих заданным условиям поиска (согласно варианта задания).
Условие задачи.
1.Структура с именем PRICRE содержит следующие поля:
наименование товара;
название магазина;
стоимость товара в рублях.
2. Условие поиска - вывести на экран информацию о товаре, наименование которого введено с клавиатуры.
Пусть:
tovar - имя поля с наименованием товара - символьный массив размерностью 20;
mag - имя поля с названием магазина - символьный массив
размерностью 15;
cena - имя поля со стоимостью товара в рулях - целое число.
Тогда описание структуры (класса) будет таким:
struct PRICE
{
char tovar[20];
char mag[15];
int cena;
};
Текст программы
#include <iostream.h>
#include <iomanip.h>
#include <string.h>
#include <conio.h>
#define TOV 20 // длина поля наименования товара
#define MAG 15 // длина поля названия магазина
#define R 10 // размерность массива объектов
// описание структуры PRICE
struct PRICE
{
char tovar [TOV];
char mag [MAG];
int cena;
};
// прототипы функций
void input ( PRICE [R] );
void output ( PRICE [R] );
PRICE inputzap ();
void outputzap ( PRICE );
void tabl();
void poisk ( PRICE [R] );
void main()
{
PRICE m[R]; // объявление массива объектов типа PRICE
// размерностью R
clrscr(); // функция очистки экрана
input(m);
clrscr();
output(m);
poisk(m);
}
// определение функции ввода в массив объектов
void input( PRICE x[R])
{
int i;
cout << "Ввод информации в массив объектов:\n";
for (i=0; i<R; i++)
x[i]=inputzap();
}
// определение функции ввода одной записи
PRICE inputzap()
{
PRICE z;
cout << "Введите наименование товара:";
cin.seekg(0L, ios::end);
cin.get(z.tovar, TOV-1, '\n');
cout << "Введите название магазина:";
cin.seekg(0L, ios::end);
cin.get(z.mag, MAG-1, '\n');
cout << "Введите стоимость товара в рублях:";
cin.seekg(0L, ios::end);
cin >> z.cena;
return z;
}
// определение функции вывода всей информации на экран
void output ( PRICE x[R] )
{
int i;
cout << "Вывод информации о всех товарах:\n";
tabl();
for (i=0; i<R; i++)
outputzap(x[i]);
cout << "------------------------------------------------------------\n";
}
// определение функции вывода одной записи на экран
void outputzap (PRICE z)
{
cout.setf(ios::left); // установка флага равнения по левому краю
cout << "|" << setw(25) << z.tovar << "|" << setw(20) << z.mag
<< "|";
cout.setf(ios::right); // установка флага равнения по правому краю
cout << setw(11) << z.cena << "|" << endl;
}
// определение функции вывода на экран шапки таблицы
void tabl()
{
cout << "-----------------------------------------------------------------------------\n";
cout << "| Наименование товара | Название магазина | Стоимость |\n";
cout << "|---------------------------------|--------------------------|----------------|\n";
}
// определение функции вывода на экран информации,
// отвечающей условию поиска
void poisk ( PRICE x[R] )
{
int i;
char tov[TOV]; // для ввода условия поиска
cout << "Введите наименование интересующего Вас товара:";
cin.seekg(0L, ios::end);
cin.get(tov,TOV-1,'\n');
cout << "Вывод информации о заданном товаре:\n";
tabl();
for (i=0; i<R; i++)
if (strcmp(x[i].tovar,tov)==0)
// наименования товара совпали
outputzap(x[i]);
cout << "------------------------------------------------------------\n";
}