Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

II. Экспериментальный раздел работы




Пример 1. Ввода - вывода простейшей структуры на дисплей.

#include <iomanip.h>

#include <conio.h>

#include <stdlib.h>

#include <iostream.h>

struct Vkladchik

{ // определение структуры "Вкладчик"

int account; // номер счета

char name[10]; // имя

float suma; // сумма вклада

};

void main(void)

{ clrscr();

Vkladchik к ; // создание экземпляра объекта

cout«"Введите счет, имя , сумму \n"; cin»k.account»k.name»k.suma;

cout«"Cчёт"«setw(9 )«"Имя" <<setw(16) <<"Cyммa"«endl;

cout<<k.account<<k.name<<k.suma;

cout«"\n\n";

getch();

}

 

Пример 2. Ввода - вывода массива структур на дисплей.

#include <iomanip.h>

#include <conio.h>

#include <stdlib.h>

#include <iostream.h>

struct Vkladchik { // определение структуры "Вкладчик"

int account; // номер счета

char name [10]; // имя

float suma; // сумма вклада

};

void main(void)

{ int i, n;

сlrscr();

соut«"Введите число записей п= ";

cin»n;

Vkladchik к [10]; // создание массива экземпляров объектов

соut«"Введите счет, имя, сумму \n";

for(i=0;i<n; i++){

 cin»k[i].account»k[i].name»k[i].suma; cout«"?"«endl;

}

cout«"Cчёт"«setw(9)«"Имя" <<setw(16) <<"Cyммa"«endl;

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

cout<<k[i].account<<k[i].name<<k[i].suma<<endl;

cout«"\n\n";

cout«"\nHажмите любую клавишу...";

getch();

}

 

Пример 3. Cоставить программу, с помощью которой можно расположить фамилии студентов Вашей группы в порядке убывания среднего балла, полученного по результатам сдачи зимней экзаменационной сессии.

Программа состоит из трех процедур:

       ReadData – формирование исходных данных;

       WriteData – вывод результатов;

       SortChoice – сортировка фамилий студентов согласно среднего балла.

Подробности работы программы разберите по тексту, используя комментарии. Для простоты представлены данные по трем студентам, сдававшим четыре экзамена.    Использовался алгоритм сортировки выбором.     

#include <iomanip.h>

#include <conio.h>

#include <stdlib.h>

#include <iostream.h>

int n=3;

int m=4;

typdef struct student_one {        /* для данных по одному студенту */

char fio[30];                               /*поле формирования фамилии и имени студента*/

int marks[m];                            /*поле подмассив оценок, полученных в сессию*/

       double sb;                                        {поле для среднего балла }

   }   

   typdef student_one student_all[n]; { массив для формирования данных

                                                                          по всем студентам Вашей группы }

student_all group;

void ReadData(student_all r); {Процедура ввода данных и вычисления

                                                           среднего балла для каждого студента группы}

int i,k,s;

{

r[1].fio =« Иванов Андрей»;          /*формирование данных по первому студенту*/

r[1].marks[1]=4; r[1].marks[2]=5; r[1].marks[3]=3; r[1].marks[4]=3;

r[2].fio =« Мунтян Светлана»;  /* формирование данных по второму студенту */

r[2].marks[1]=4; r[2].marks[2]=4; r[2].marks[3]=5; r[2].marks[4]=3;

r[3].fio =« Бойко Вячеслав»;      /* формирование данных по третьему студенту */

r[3].marks[1]=4; r[3].marks[2]=5; r[3].marks[3]=5; r[3].marks[4]=5;

for (i=1; i< n; i++)            /* вычисление среднего балла для каждого студента*/

    { s=0;

         for (k=1; k< m; i++; s=s+ r[i].marks[k]);

         r[i].sb=s/m;

      };

};

 

void WriteData(sstudent_all r);             /*процедура вывода результатов*/

int i;

{

for (i=1; i< n; i++)

  cin<< r[i].fio<<” “<<r[i].sb;

};

 

void SortChoice(student_allgr);    /*процедура сортировки методом выбора*/

int i,k,kmax;

double xmax;

student_one st;

{

for (i=1; i< (n-1); i++)                                          /* шаг сортировки */

{ kmax=i; xmax=gr[i].sb; st=gr[i];

      for (k=i+1; i< n; i++)                           /* поиск максимального элемента*/

        { if gr[k].sb > xmax  

              { 

                   kmax=k; xmax=gr[k].sb; st= gr[k]

                 };

gr[kmax]=gr[i]; gr[i] =st;             /*обмен местами максимального и I -элемента*/    

          }

 };

 

{                                                       /*Основная программа*/

ReadData(group); cout<<”несортированные данные”<<endl;    

WriteData(group);

SortChoice(group); 

cout<<”сортированные данные”<<endl;    

WriteData(group);    

getch();

}

 

Введите программу и проведите ее отладку и тестирование. Проведите сортировку фамилий по алфавиту, по результатам первого экзамена. Поэкспериментируйте с программой.

 










Последнее изменение этой страницы: 2018-05-10; просмотров: 201.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...