Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб по С и C++.doc
Скачиваний:
216
Добавлен:
25.03.2015
Размер:
1.34 Mб
Скачать

Пример на использование структур

Вести сведения о студентах учебной группы (не более 50):

а) фамилию и имя;

в) итоги сдачи экзаменов – три оценки.

В программе расчитать средний балл для каждого студента, выполнить поиск по первой букве фамилии, поиск нужной записи.

Текст программы может иметь вид:

#include <iostream.h>

#include <stdio.h>

#include <string.h>

#include <conio.h>

struct Spisok {

char Fio[20];

int Ot[3];

float S_Bal;

} *sved;

void Vvod(int nom,struct Spisok *sved)

{ cout << "\n Vvedi svedenia " << (nom+1);

cout << "\n FIO - "; gets(sved->Fio);

float s=0;

for(int i=0;i<3;i++) {

cout << "\n Otcenki - "; cin >> sved->Ot[i];

s+=sved->Ot[i];

}

sved->S_Bal=s/3.;

return; }

void main(void)

{ struct Spisok Stud[50]; int i,N; char Bukva;

clrscr();

cout << "\n Vvedi kol-vo < 50 "; cin >> N;

for(i=0;i<N;i++) Vvod(i,&Stud[i]);

cout << "\n Spisok Students";

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

printf("\n %20s %4.2f",Stud[i].Fio,Stud[i].S_Bal);

cout << "\n Poisk FIO (bukva) "; cin >> Bukva;

cout << "\n Sveden Students";

int kod_p=0;

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

if(Stud[i].Fio[0]==Bukva){ kod_p=1;

printf("\n %20s %4.2f",Stud[i].Fio,Stud[i].S_Bal); }

if(kod_p==0) cout << " Takix HET!";

cout << "\n Poisk zapisi";

Vvod(-1,sved);

kod_p=0;

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

if(memcmp(sved,&Stud[i],sizeof(sved))==0)

{ kod_p=1;

printf("\n %20s %4.2f",Stud[i].Fio,Stud[i].S_Bal);

}

if(kod_p==0) cout << " Takix HET!";

getch();

}

Варианты индивидуальных заданий

Ввести сведения о студентах, содержащие следующую информацию:

- фамилия и инициалы;

- год рождения;

- оценки за первый семестр: физика, математика, информатика;

1. Распечатать список студентов, упорядоченный по алфавиту.

2. Распечатать список студентов, упорядоченный по году рождения.

3. Распечатать список студентов-отличников, упорядоченный по году поступления.

4. Распечатать анкетные данные студентов, сдавших сессию на 4 и 5.

5. Распечатать список студентов, фамилии которых начинаются с буквы Б и их оценки по всем предметам.

6. Распечатать анкетные данные отличников.

7. Распечатать список студентов, фамилии которых начинаются с буквы А и их даты рождения.

8. Распечатать анкетные данные студентов, имеющих оценку 3 в сессию.

9. Распечатать список студентов и их оценки. Фамилии студентов начинаются с букв В и Г.

10. Распечатать фамилии и даты рождения студентов, не имеющих оценок 3.

11. Вычислить общий средний балл всех студентов и распечатать список студентов со средними баллами выше общего среднего балла.

12. Вычислить общий средний балл всех студентов и распечатать список студентов, имеющих средний балл, равный общему среднему баллу.

13. Распечатать анкетные данные студентов, имеющих оценку 2.

14. Распечатать анкетные данные студентов, имеющих оценку 5 по информатике.

15. Распечатать анкетные данные студентов, имеющих оценку 4 по физике и оценку 5 по высшей математике.