Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторний практикум.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

Приклади виконання завдання

Приклад №1

Створити масив структур, що мітить наступну інформацію про студента: прізвище; ім’я; по батькові; номер групи; чотири оцінки здачі сесійних екзаменів; середній бал за результатами сесії. Дані структури зчитуються із файлу (створеного за допомогою Блокнота). Вивести на екран інформацію про середній бал студентів групи М21 у порядку спадання.

#include <iostream>

#include<stdio.h>

#include <fstream>

#include <string.h>

#include <windows.h>

using namespace std;

Void main()

{

struct strc{

char f[15];

char i[15];

char o[15];

char ngr[7];

int otc[4];

double sb;

}

ms[1000];

int nst,i,j;

SetConsoleOutputCP(1251);

SetConsoleCP(1251);

FILE *f1;

/* Відкриття файлу для вводу даних та перевірка, чи вдалося його відкрити */

if ((f1=fopen("struct", "rt"))==NULL)

{

printf("Файл відкрити не вдалося\n");

return;

}

cout<<"\n";

i=0;

// Читання даних з файлу до досягнення його кінця

while (!feof(f1))

{

i++;

// Форматний ввід даних з файлу

fscanf(f1,"%s%s%s%s%i%i%i%i",ms[i].f,ms[i].i,ms[i].o,ms[i].ngr ,&ms[i].otc[0],&ms[i].otc[1],&ms[i].otc[2],&ms[i].otc[3]);

// Обчислення середнього балу

ms[i].sb=(ms[i].otc[0]+ms[i].otc[1]+ms[i].otc[2]+ms[i].otc[3])/4.;

}

nst=i;

cout<<"\n Загальна кількість студентів ="<<nst<<"\n";

cout<<"\n";

cout<<"\nСтуденти групи m21 у порядку спадання середнього балу\n";

/* Впорядкування студентів групи m21 у порядку спадання */

for(i=0;i<nst-1;i++)

for(j=i+1;j<nst;j++)

if(ms[i].sb<ms[j].sb

&& !strcmp(ms[i].ngr,"m21")

&& !strcmp(ms[j].ngr,"m21"))

{

ms[999]=ms[i];

ms[i]=ms[j];

ms[j]=ms[999];

}

int k=0;

/* Перегляд масиву структури та вивід на екран тільки студентів групи m21 */

for(i=0;i<nst;i++)

If(!strcmp(ms[I].Ngr,"m21"))

{k++;

printf("%i\t%15s%15s%15s\t%15.6f\n",k,ms[i].f,ms[i].i,ms[i].o,ms[i].sb);

}

cout<<"\n";

fclose(f1);

}

Результат роботи програми:

Вхідний файл struct для вводу даних:

Результат роботи програми:

Завдання для виконання

Написати програму розв’язку задачі. Розробити контрольні прик­лади та протестувати за їх допомогою програму. Вхідні дані оформити у вигляді окремого файлу.

  1. Масив структур мітить інформацію про 23 студентів: прізвище, ім’я та по батькові; стать;номер групи; оцінка за здачу екзамену з інфор­матики в стобальній системі. Зчитати дані із файлу та вивести пріз­вища студентів чоловічої статі, що мають відмінну оцінку.

  2. Масив структур мітить інформацію про 25 людей: прізвище; ім’я; по батькові; стать; сімейний стан; відомості про кількість дітей. Зчитати дані із файлу та вивести прізвища всіх жонатих чоловіків, що мають дітей.

  3. Масив структур мітить інформацію про 25 клієнтів пункту прокату: прізвище; ім’я; домашня адреса; номер телефону; назва речі, взятої напрокат. Зчитати дані із файлу та вивести прізвища та телефони всіх клієнтів , що взяли на прокат телевізор.

  4. Масив структур мітить інформацію 22 клієнтів пункту прокату: прізвище; ім’я; назва речі, взятої напрокат; домашня адреса; номер телефону. Зчитати дані із файлу та вивести прізвища всіх клієнтів, телефони яких починаються цифрою 7.

  5. Масив структур мітить інформацію про 25 клієнтів пункту прокату: прізвище; ім’я; назва речі, взятої напрокат; домашня адреса; номер телефону. Зчитати дані із файлу та вивести прізвища всіх клієнтів, що проживають на введеній із клавіатури вулиці.

  6. Масив структур мітить інформацію про 30 студентів: прізвище; ім’я; місце проживання (гуртожиток або дома); номер телефону (якщо він є). Зчитати дані із файлу та вивести прізвища тих студентів, що проживають дома та мають домашній телефон.

  7. Масив структур мітить інформацію про 30 студентів: прізвище; ім’я; номер групи; місце проживання (гуртожиток або дома). Зчитати дані із файлу та вивести прізвища студентів заданої із клавіатури групи, що проживають у гуртожитку.

  8. Масив структур мітить інформацію про 30 студентів: прізвище; ім’я; стать; номер групи; місце проживання (гуртожиток або дома). Зчитати дані із файлу та підрахувати загальну кількість студентів жіночої статі, що проживають дома.

  9. Масив структур мітить інформацію про 30 студентів: прізвище; ім’я; номер групи; адреса прописки; стать. Зчитати дані із файлу та підра­хувати кількість студентів, що прописані на заданій із клавіатури вулиці.

  10. Масив структур мітить інформацію про 25 студентів: прізвище; ім’я; номер групи; адреса прописки, стать. Зчитати дані із файлу та підра­хувати загальну кількість студентів чоловічої та жіночої статі.

  11. Масив структур мітить інформацію про 10 автомобілів: модель; вартість; рік випуску, розхід пального на 100 кілометрів шляху. Зчи­тати дані із файлу та вивести автомобілі, які не старші 5 років та мають розхід пального, що не перевищує вказану із клавіатури величину.

  12. Масив структур мітить інформацію про 12 автомобілів: модель; рік випуску;вартість; розхід пального на 100 кілометрів шляху. Зчитати дані із файлу та вивести автомобілі, вартість яких не перевищує вказану із клавіатури величину, а розхід пального менше 7 літрів на 100 кілометрів.

  13. Масив структур мітить інформацію про 15 міст України: назва міста; кількість населення; рік заснування; середньорічна температура. Зчитати дані із файлу та вивести назви міст, старших 300 років, кількість населення в яких перевищує введену із клавіатури величину.

  14. Масив структур мітить інформацію про 12 міст України: назва міста; кількість населення; середньорічна температура. Зчитати дані із файлу та впорядкувати дані по спаданню середньорічої температури. Вивести міста, в яких вона не перевищує введену із клавіатури величину.

  15. Масив структур мітить інформацію про 20 людей: прізвище; ім’я; стать; вага; ріст. Зчитати дані із файлу і вивести на екран середній ріст людей чоловічої статі.

  16. Масив структур мітить інформацію про 22 людей: прізвище; ім’я; стать; ріст; вага. Зчитати дані із файлу і вивести на екран прізвища осіб жіночої статі, вага яких перевищує середнє значення.

  17. Масив структур мітить інформацію про 17 людей: прізвище; ім’я; стать; ріст; вага. Зчитати дані із файлу та вивести на екран прізвища всіх осіб, вага яких не перевищує норму (ріст – вага < 100).

  18. Масив структур мітить інформацію про 26 людей: прізвище; ім’я; стать; ріст; вага. Зчитати дані із файлу та вивести на екран прізвища всіх осіб чоловічої статі, вага та ріст яких перевищує введені із клавіатури значення.

  19. Масив структур мітить інформацію про 15 працівників фірми: прізвище; ім’я; рік народження; рік, із якого працює на фірмі; оклад. Зчитати дані із файлу і вивести на екран прізвища всіх осіб жіночої статі, що працюють на фірмі не менше 2 років та мають оклад, що не перевищує середнього по фірмі.

  20. Масив структур мітить інформацію про 15 працівників фірми: прізвище; ім’я; по батькові; оклад; рік народження;. Зчитати дані із файлу і вивести на екран прізвища всіх працівників, оклад яких перевищує середнє по фірмі значення.

  21. Масив структур мітить інформацію про 25 жителів населеного пункту: прізвище; ім’я; адреса проживання; номер телефону. Зчитати дані із файлу та вивести номер телефону людини, прізвище якої введено із клавіатури. Якщо такої людини немає, то видати відпо­відне повідомлення.

  22. Масив структур мітить інформацію про 23 жителів населеного пункту: адреса проживання; прізвище; ім’я; номер телефону. Зчитати дані із файлу та вивести на екран прізвище людини за введеним із клавіатури номером телефону. Якщо такого номера телефону немає, то видати відповідне повідомлення.

  23. Масив структур мітить інформацію про 35 абітурієнтів: прізвище; ім’я; адреса проживання; три оцінки за зовнішнє незалежне оціню­вання. Зчитати дані із файлу та вивести прізвища та адреси абіту­рієнтів, середній бал яких перевищує середній по університету.

  24. Масив структур мітить інформацію про 35 абітурієнтів: спеці­альність; прізвище; ім’я; адреса проживання; три оцінки за зовнішнє незалежне оцінювання. Зчитати дані із файлу та вивести прізвище та стать абітурієнтів, впорядкувавши їх по спаданню середнього балу – від найбільшого до найменшого.

  25. Масив структур мітить інформацію про 35 абітурієнтів: прізвище; ім’я; три оцінки за зовнішнє незалежне оцінювання; стать. Зчитати дані із файлу та вивести прізвища та стать абітурієнтів, впоряд­кувавши їх по спаданню середнього балу – від найбільшого до найменшого. На початку розмістити всіх пільговиків.

  26. Масив структур мітить інформацію про відправлення поїздів: номер поїзда; пункт призначення; час відправлення; кількість вільних місць. Зчитати дані із файлу та вивести номери тих поїздів, на які є не менше 25 вільних місць.

  27. Масив структур мітить інформацію про виліт літаків: номер рейсу; пункт призна­чення; час вильоту; наявність вільних місць (є або не­ма). Зчитати дані із файлу та вивести всі номери рейсів та пунктів призначення, на які є вільні місця, впоряд­ку­вав­ши їх за зростанням часу вильоту.

  28. Масив структур мітить інформацію про каталог книг: реєстраційний номер книги; назва; автор; видана, чи знаходиться у книгосховищі. Зчитати дані із файлу та вивести всі книги автора, прізвище якого введене із клавіатури якщо вона не видана.

  29. Масив структур мітить інформацію про студентів: прізвище; ім’я; номер групи; середній дохід на члена сім’ї. Зчитати дані із файлу та вивести всіх студентів, у яких середній дохід не перевищує заданої з клавіатури величини, впорядкувавши їх у порядку його спадання.

  30. Масив структур мітить інформацію про каталог книг: реєстраційний номер книги; видана, чи знаходиться у книгосховищі; якщо видана, то якого числа; прізвище студента, якому видана книга. Зчитати дані із файлу та вивести всіх студентів, яким книги видані більше тер­міну, заданого із клавіатури.