Задачи по программированию на СС++. Учебно-методическое пособие
.pdf#include <stdio.h> #define LimS 100 #define LimG 10 #define LimT 5
struct Tutor{
char name_f[]; //название направления int n_group; //число групп
int n_stud; //общее число студентов
int n_estud;//число преуспевающих студентов
};
void InputS(struct Tutor [], int*); void OutputS(struct Tutor [], int); void ProzentS(struct Tutor [], int);
int main(){
struct Tutor ta[LimT];//Объявление массива
//структур
int t; InputS(ta,&t); OutputS(ta,t); ProzentS(ta,t); return 1;
}
void InputS(struct Tutor t[LimT], int * n) {int i,nn;
do{
printf("Введите размерность массива 0<n<=%d ",LimT);
scanf("%d",&nn); }while(nn<=0 || nn>LimT);
printf("Ввод данных по запросу программы:\n"); for(i=0;i<nn;i++)
{printf("\nВведите данные для направления
%d\n",i+1);
printf("Введите название (например NP | NI | NK | NB | NN) \n");
scanf("%s",t[i].name_f); do{
61
printf("Введите количество групп 0<g<=%d ",LimG);
scanf("%d",&t[i].n_group); }while(t[i].n_group<=0||t[i].n_group>LimG);
do{
printf("Введите общее количество студентов
0<n<=%d ",LimS); scanf("%d",&t[i].n_stud); }while(t[i].n_stud<=0 || t[i].n_stud>LimS);
do{
printf("Введите количество преуспевающих студентов 0<=es<=%d ",LimS);
scanf("%d",&t[i].n_estud); }while(t[i].n_estud<0||t[i].n_estud>LimS);
}
*n=nn;
}
void OutputS(struct Tutor t[LimT], int n){ int i;
for(i=0;i<n;i++){ printf("\Название направления %d:
%s\n",i+1,t[i].name_f); printf("Кол-во групп: %d\n",t[i].n_group); printf("Общее кол-во студентов:
%d\n",t[i].n_stud); printf("Кол-во преуспевающих студентов:
%d\n",t[i].n_estud);
}
}
void ProzentS(struct Tutor t[LimT], int n) {int i,Sn,Se; float p;
Sn=0;Se=0;
for(i=0;i<n;i++)
{Sn+=t[i].n_stud; Se+=t[i].n_estud;} p=100.0*Se/Sn;
printf("%2.2f%%\n",p);
}
62
Задачи
1.Определить структуру с именем Student, содержащую следующие поля: фамилия и инициалы; номер группы; успеваемость – массив из пяти элементов.
2.Определить структуру с именем Aeroflot, содержащую следующие поля: название пункта назначения; номер рейса; тип самолета.
3.Определить структуру с именем Worker, содержащую следующие поля: фамилия и инициалы работника; название занимаемой должности; год поступления на работу.
4.Определить структуру с именем Train, содержащую следующие поля: название пункта назначения; номер поезда; время отправления.
5.Определить структуру с именем Route, содержащую следующие поля: название начального пункта; название конечного пункта; номер маршрута.
6.Определить структуру с именем Note, содержащую следующие поля: фамилия, имя; номер телефона; дата рождения – массив из трех чисел.
7.Определить структуру с именем Zodiac_Sign, содержащую следующие поля: фамилия, имя; знак Зодиака; дата рождения – массив из трех чисел.
8.Определить структуру с именем Prise содержащую следующие поля: название товара; название магазина, в котором продается товар; стоимость товара в руб.
9.Определить структуру с именем Order содержащую следующие поля: расчетный счет плательщика (формат уточнить в Интернете); расчетный счет получателя; перечисляемая сумма в руб.
10.Определить структуру с именем Merto содержащую следующие поля: название начального пункта; название конечного пункта; время поездки; номер линии.
63
11.Определить структуру с именем Autobus содержащую следующие поля: название начального пункта; название конечного пункта; номер маршрута; время поездки.
12.Определить структуру с именем Mobile содержащую следующие поля: начало звонка; длительность звонка; фамилия, имя абонента; название оператора.
13.Определить структуру с именем Express содержащую следующие поля: дата начала и дата срока действия билета; номер маршрута; дата проезда; время посадки.
14.Определить структуру с именем Credit содержащую следующие поля: название кредитной программы; процентная ставка по кредиту; срок предоставления кредита; сумма переплаты.
15.Определить структуру с именем Insurance содержащую следующие поля: название страховой программы; процентная ставка по страховке; срок предоставления страховки; сумма страховки.
16.Определить структуру с именем Payment содержащую следующие поля: фамилия имя отчество плательщика; адрес плательщика; период платежа – месяц и год; сумма платежа.
17.Определить структуру с именем Netbook содержащую следующие поля: название фирмы изготовителя; размер экрана; объем оперативной памяти; цена.
18.Определить структуру с именем VUZ содержащую следующие поля: название вуза; общее количество студентов; количество факультетов; стипендия студента.
19.Определить структуру с именем Home содержащую следующие поля: адрес дома; этажность; количество подъездов; количество квартир на этаже.
20.Определить структуру с именем Tea содержащую следующие поля: страна производитель; сорт чая; вес в упаковке; цена чая за 100 гр.
64
21.Определить структуру с именем TV содержащую следующие поля: страна производитель; размер диагонали; цена телевизора.
22.Определить структуру с именем Monitor содержащую следующие поля: страна производитель; размер диагонали монитора; время отклика; цена монитора.
23.Определить структуру с именем Lamp содержащую следующие поля: страна производитель лампы освящения; мощность; уровень энергосбережения (А,В,С); цена.
24.Определить структуру с именем Bicycle содержащую следующие поля: страна производитель; количество скоростей велосипеда; вид; цена.
25.Определить структуру с именем Car содержащую следующие поля: страна производитель; объем двигателя; расход топлива на 100 км; цена автомобиля.
26.Определить структуру с именем Gold содержащую следующие поля: страна производитель; цвет золота; проба; цена золота за 1 гр.
27.Определить структуру с именем City содержащую следующие поля: название города; площадь; плотность населения; количество улиц.
28.Определить структуру с именем Street содержащую следующие поля: название улицы; протяженность; количество домов; количество перекрестов.
29.Определить структуру с именем Country содержащую следующие поля: название; количество крупных городов; количество рек; плотность населения.
30.Определить структуру с именем Printer содержащую следующие поля: страна производитель; скорость печати (в мин); качество печати; цена.
31.Определить структуру с именем Scaner содержащую следующие поля: страна производитель; скорость сканирования (в мин); качество сканирования; цена.
65
32.Определить структуру с именем Phone содержащую следующие поля: страна производитель; вес телефон; размер диагонали экрана телефона; цена.
33.Определить структуру с именем Pen содержащую следующие поля: страна производитель; толщина линии письма; вид (шариковая, гелевая); цена.
34.Определить структуру с именем EGE содержащую следующие поля: регион проведения; количества предметов для сдачи ЕГЭ; количество выпускников; средний балл выпускников.
35.Определить структуру с именем Cupboard содержащую следующие поля: фирма производитель шкафа; материал; количество полок; цена.
36.Определить структуру с именем Table содержащую следующие поля: страна производитель стола; высота стола; материал, из которого изготовлен; цена.
37.Определить структуру с именем Book содержащую следующие поля: автор; объем (в страницах); число экземпляров; цена.
38.Определить структуру с именем Cup содержащую следующие поля: страна производитель; объем стакана; материал, из которого изготовлен; цена.
39.Определить структуру с именем Bag содержащую следующие поля: страна производитель; размер сумки; материал, из которого изготовлен; цена.
40.Определить структуру с именем Chair содержащую следующие поля: страна производитель; высота кресла; материал, из которого изготовлен; цена.
41.Определить структуру с именем Hat содержащую следующие поля: страна производитель; размер шапка; материал, из которого изготовлен; цена.
42.Определить структуру с именем Сoat содержащую следующие поля: страна производитель; размер шубы; материал, из которого изготовлен; цена.
66
43.Определить структуру с именем Dress содержащую следующие поля: страна производитель; размер платья; материал, из которого изготовлен; цена.
44.Определить структуру с именем Glasses содержащую следующие поля: страна производитель; число диоптрий; материал, из которого изготовлен; цена.
45.Определить структуру с именем Iron содержащую следующие поля: страна производитель; мощность утюга; количество режимов глажки; цена.
46.Определить структуру с именем Dictaphone содержащую следующие поля: страна производитель; объем памяти; число режимов записи; цена.
47.Определить структуру с именем Zap содержащую следующие поля: страна производитель; радиус управления пульта; вес пульта; цена.
48.Определить структуру с именем Watch содержащую следующие поля: фирма производитель; диаметр циферблата; вид (муж., жен.); цена.
49.Определить структуру с именем Scooter содержащую следующие поля: фирма производитель; мощность; число скоростей; цена.
50.Определить структуру с именем Sweater содержащую следующие поля: фирма производитель; из какого материала ; размер; цена.
51.Определить структуру, представляющую момент времени (час, минута, секунда). Задача: ввести текущий момент времени, вывести момент на следующую секунду (учесть возможную смену суток).
52.Определить структуру, представляющую дату (число, месяц, год). Задача: ввести сегодняшнюю дату. Вывести завтрашнюю (с учетом високосных годов).
53.Сделать предыдущую задачу в расширенном виде: учесть григорианский стиль (года, оканчивающиеся двумя нулями являются високосными только в том слу-
67
чае, когда после отбрасывания этих двух нулей оставшееся число делится на 4).
54.Определить структуру с именем Tram содержащую следующие поля: бортовой номер трамвая, маршрутный номер трамвая, фамилия водителя. Задача: имеется массив из 10 таких структур. По заданному номеру маршрута вывести бортовые номера соответствующих трамваев и фамилии водителей. Либо сообщение, что такого маршрута нет.
55.Описать структуру, представляющую успеваемость студентов по основам программирования. Поля: фамилия студента, группа, баллы за 1-й семестр, баллы за 2-й семестр, «итоговый балл», «автоматическая оценка» (текстовая). Первые 4 поля ввести с экрана. Программа должна генерировать 5-е и 6-е поля. Итоговый балл считается по формуле 0,4 n1+0,6 n2, где n1 – количество баллов за 1-й семестр, n2 – количество баллов за 2-й семестр. Автоматическая оценка выставляется по итоговому баллу: от 86 до 100 – «отлично», от 69 до 85
– «хорошо», от 51 до 68 – «удовлетворительно», от 31 до 50 – «надо сдавать экзамен», менее 31 – «необходим повтор курса».
56.Вариант предыдущей задачи. Структура с 4 полями: фамилия, группа баллы за 1-й и 2-й семестр. Имеется массив из 10 таких структур. Вывести на экран фамилии и группы студентов с автоматическим «отлично» и студентов, которым необходим повтор курса.
57.Описать иерархическую структуру «горожане» с полями «фамилия» и «адрес». Поле «адрес» само является структурой с полями: «город», «улица», «дом», «квартира». Задача: имеется массив из 15 таких записей. Вывести на экран фамилии живущих по одинаковым адресам, но в разных городах (как в фильме «Ирония судь-
бы»).
68
Литература
1.Подбельский В.В., Фомин С.С. Программирование на языке СИ. – М.:«Финансы и статистика», 2004. – 600 с.
2.Крячков А.В., Сухинина И.В., Томшин В.К. Программирование на С и С++. Практикум: Учеб. пособие для вузов. – М.: Горячая линия – Телеком, 2000. – 344 с.
3.Харви Дейтел, Пол Дейтел. Как программировать на С.
– Бином-Пресс, 2008. – 1024 с.
4.Павловская Т.А., Щупак Ю.А. С/С++. Программирование на языке высокого уровня. Структурное программирование. - СПб.: Питер, 2002.
5.Павловская Т.А. С/С++. Программирование на языке высокого уровня. - СПб.: Питер, 2013. – 461 с.
69
|
Оглавление |
|
Тема 1. Линейная структура ....................................................... |
3 |
|
Тема 2. Условный оператор...................................................... |
10 |
|
Тема 3. Оператор-переключатель............................................. |
16 |
|
Тема 4. Цикл с предусловием................................................... |
22 |
|
Тема 5. Цикл с постусловием ................................................... |
26 |
|
Тема 6. |
Цикл с параметром....................................................... |
29 |
Тема 7. |
Одномерные массивы .................................................. |
31 |
Тема 8. |
Двумерные массивы (матрицы).................................. |
39 |
Тема 9. |
Функции ........................................................................ |
46 |
Тема 10. Структуры данных ..................................................... |
59 |
|
Литература.................................................................................. |
69 |
|
70
