Студопедия

КАТЕГОРИИ:

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

Задание к лабораторной работе




Методические указания И ЗАДАНИЯ

к лабораторныМ работАМ

по курсу

«ПРОГРАММИРОВАНИЕ В СРЕДЕ СОВРЕМЕННЫХ ОПЕРАЦИОННЫХ СИСТЕМ. ЧАСТЬ 1»

для студентов направления подготовки

 0915 «Компьютерная инженерия»

                     

 

  Рассмотрено на заседании кафедры компьютерной инженерии
  ___________, протокол №
   
  Утверждено на заседании учебно- издательского Совета ДонНТУ
  Протокол №____от ___________20___ р. Регистрационный номер _______________________

 

Донецк, 2016


 


УДК 681.973

 

МЕТОДИЧЕСКИЕ УКАЗАНИЯ И ЗАДАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ ПО КУРСУ «ПРОГРАММИРОВАНИЕ В СРЕДЕ СОВРЕМЕННЫХ ОПЕРАЦИОННЫХ СИСТЕМ» (для студентов направления подготовки 6.0915 «Компьютерная инженерия»).

 

Составитель: Чередникова О.Ю. – Донецк: ГВУЗ «Донецкий национальный технический университет», 2016 г. – 56 с.

 

Целью методических указаний по курсу «Программирование в среде современных операционных систем» является приобретение студентами практических навыков программирования в среде Visual Studio на платформах Windows Form и WPF на языке программирования C#.

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

 

          Составитель:

к.т.н., доцент каф. КИ                         Чередникова О.Ю.

 

 

               

 

          Рецензенты:

к.т.н., доцент каф. КИ                         Теплинский С.В.

к.т.н., доцент каф. АСУ                       Хмелевой С.В.

 



Содержание

Введение……………………………………………………………………..6

Лабораторная работа №1…………………………………………………7

Лабораторная работа №2…………………………………………………22

Лабораторная работа №3…………………………………………………26

Лабораторная работа №4…………………………………………………32

Лабораторная работа №5…………………………………………………38

работа Лабораторная №6…………………………………………………38

Лабораторная работа №7…………………………………………………38

Список рекомендуемой литературы……………………………………..59



Введение

Целью лабораторных работ по курсу «Программирование графического интерфейса» является приобретение студентами практических навыков программирования в среде Visual Studio на платформах Windows Form и WPF на языке программирования C#. Данные методические указания предназначены для студентов, обучающихся по направлению подготовки «Компьютерная инженерия» специальностей «Компьютерные системы и сети» и «Системное программирование».

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

     



Лабораторная работа №1

Тема: Разработка консольного приложения на языке программирования C#. Интерфейсы, свойства, коллекции.

Цель: Показать знание основных конструкций языка С#, в частности интерфейсов, свойств и коллекций, полученных в курсе ООП.

Теоретические сведения

Свойства

Каждый класс С# может содержать в себе объявления одного или нескольких свойств. Свойства представляют собой методы специального вида, причем для каждого свойства применяются два таких метода. Один метод используется для чтения значения свойства, а другой — для записи. Для того чтобы объявить свойство, используется такая конструкция:

<Модификатор> <Тип> <Имя свойства>

{

get

{

return <Возвращаемое значение>;

}

set

{

<Поле класса> = value;

}}

пример объявления свойства Channel в классе TelevisionSet:

class TelevisionSet

{ private byte currentChannel;

public byte Channel

{

set

{

if(value <= maxChannel && value > 0)

currentChannel = value;

}

get

{ return currentChannel;}

}

}

Блок свойства Channel содержит две процедуры доступа. Одна из этих процедур, объявленная с ключевым словом get, предназначена для получения значения свойства, а другая, объявленная с ключевым словом set, — для установки значения свойства. Ключевое слово value обозначает неявный параметр, передаваемый процедуре доступа set. Этот параметр содержит значение, которое программа пытается присвоить свойству.

Рассмотрим следующий фрагмент программы:

TelevisionSet tvSmall = new TelevisionSet();

TelevisionSet tvLarge = new TelevisionSet() ;

tvSmall.Channel = 5;

tvLarge.Channel = 52;

 

Применение свойств оправдано в тех случаях, когда необходимо контролировать значение какого-либо атрибута объекта. Свойство связывается только с одним значением. Методы же более универсальны. Вы можете, например, передавать методам несколько параметров по ссылке или по значению, что невозможно при использовании свойств.

Интерфейсы

Класс С# может наследовать свойства только одного базового класса. Таким образом, в отличие от других языков ООП (например, C++) в языке С# каждый производный класс может иметь только один базовый класс. На первый взгляд такое ограничение может показаться довольно существенным, однако во многих случаях оно успешно обходится при помощи механизма интерфейсов.

В то время как классы представляют собой механизм для представления неких сущностей (таких, например, как геометрические фигуры, телевизоры и т. п.), интерфейсы применяются для описания неких действий над этими сущностями. При этом объект (класс) может реализовать набор интерфейсов, каждый из которых отвечает за выполнение над объектом каких-либо действий. Интерфейсы более всего похожи на виртуальные методы абстрактного класса, которые должны быть определены в базовом классе.

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

Пусть нам нужно создать класс Point, отражающий поведение точки на плоскости. Этот объект должен хранить текущие координаты точки, делая их доступными при помощи свойств X и Y. Кроме того, класс Point должен реализовывать два интерфейса IPrint и IMail, первый из которых позволяет распечатывать точку на принтере и выполнять предварительный просмотр результатов печати, а второй — отправлять точку по электронной почте по заданному адресу.

Ниже мы привели объявление интерфейсов IPrint и IMail:

interface IPrint

{

void Print();

void PrintPreview();

}

interface IMail

{

void SendMail(string mailAddress);

}

Как видите, в объявлении интерфейсов мы указываем только прототипы методов, не включая тело этих методов. Кроме того, в прототипах методов не допускается указывать модификаторы доступа, такие, как public или private. Все методы интерфейса являются общедоступными по умолчанию.

В С# принято, что название интерфейса начинается с прописной буквы I. При объявлении интерфейсов мы устанавливаем соглашение (контракт), которому должны удовлетворять методы, свойства, индексаторы и события, объявленные в рамках интерфейса. Что же касается конкретной реализации интерфейса, то она возлагается на класс, реализующий интерфейс.

Ниже мы привели в сокращенном виде исходный текст класса Point, реализующего интерфейсы IPrint и IMail:

class Point : IPrint, IMail

{

protected int xPos;

protected int yPos;

public Point(int x, int y)

{ xPos = x;

yPos = y;

}

 void IPrint.Print()

{Console.WriteLine("Печать точки ({0}, {1})", this.X, this.Y);

}

void IPrint.PrintPreview()

 {Console.WriteLine( "Просмотр перед печатью точки ({0}, {1})", this.X, this.Y);

 }

void IMail.SendMail(string mailAddress)

 {Console.WriteLine( "Отправка точки ({0}, {1}) по адресу {2}", this.X, this.Y, mailAddress);

}

Тот факт, что класс реализует те или иные интерфейсы, отражается в ключевом слове class. Названия реализуемых интерфейсов перечисляются после этого слова через запятую:

class Point : IPrint, IMail

Если бы наш класс Point был унаследован от базового класса с именем, например, Shape и дополнительно реализовывал интерфейсы IPrint и IMail, это можно было бы записать следующим образом:

class Point : Shape, IPrint, IMail

Вначале нужно создать объект класса, реализующего наш интерфейс:

Point pt = new Point(10, 20);

Далее нам нужно создать ссылку на интерфейс. Это делается следующим образом:

IPrint ptPrinter = (IPrint)pt;

Здесь мы объявили переменную ptPrinter типа IPrint и записали в нее ссылку, приведя ее тип явным образом к типу IPrint. С помощью такой ссылки можно адресоваться к методам интерфейса IPrint, но нельзя получить доступ к полям и методам класса Point:

ptPrinter.PrintPreview();

ptPrinter.Print();

Таким образом, обращаясь к объекту через интерфейс, программа может не иметь никакой информации относительно того, какие свойства, поля и методы определены в этом классе. Этим достигается независимость программы, работающей с объектом, от внутренних деталей реализации объекта. Если базовый класс реализует какие-либо интерфейсы, то они наследуются производными классами. При необходимости производный класс может переопределить все или некоторые методы интерфейсов базового класса.

Коллекции

Большинство классов коллекций находятся в пространствах имен System. Collections и System.Collections .Generic. Классы обобщенных коллекций можно найти в пространстве имен System.Collections.Generic. Классы коллекций, специализированные для хранения определенного типа, находятся в пространстве имен System.Collections . Specialized.

Списки

Для динамических списков в .NET Framework предусмотрен обобщенный класс List<T>. В реализации List<T> используется массив типа Т.

Создавать списочные объекты можно, вызывая конструктор по умолчанию. При объявлении обобщенного класса List<T> необходимо указывать тип хранимых значений. В приведенном ниже коде показано, как объявлять списки List<T> с элементами int и Racer:

 var intList = new List<int>();

 var racers = new List<Racer>();

 

Конструктор по умолчанию создает пустой список. Как только элементы начинают добавляться в список, его емкость увеличивается до 4 элементов. При добавлении пятого элемента размер списка изменяется так, чтобы уместить 8 элементов. Если же и этого недостаточно, список вновь расширяется, на этот раз до 16 элементов. При каждом расширении емкость списка удваивается.

Емкость коллекции — это не то же самое, что количество элементов в коллекции. Количество элементов в коллекции может быть прочитано в свойстве Count. Разумеется, емкость всегда больше или равна количеству элементов. До тех пор, пока ни один элемент не добавлен в коллекцию, количество равно 0.

Добавлять элементы в список можно методом Add(), как показано ниже. Обобщенный параметрический тип определяет тип первого параметра метода Add ().

var intList = new List<int>();

intList.Add(1);

intList.Add(2);

var stringList = new List<string> ();

stringList. Add ("one") ;

stringList.Add("two");

Для вставки элементов в определенную позицию коллекции служит метод Insert ():

intList.Insert (3, 3);

Получив количество элементов из свойства Count, вы можете выполнить цикл for для прохода по всем элементам коллекции, применяя индексатор для обращения к ним:

for (int i=0; i < racers.Count; i++)

{

Console.WriteLine(racers[i]);

Поскольку List<T> реализует интерфейс IEnumerable, проход по элементам коллекции можно также осуществлять с помощью оператора foreach:

foreach (Racer r in racers)

{ Console.WriteLine(r);}

Элементы можно удалять по индексу либо передавая подлежащий удалению элемент.

Ниже удаляется четвертый по порядку элемент:

racers.RemoveAt(3);

Чтобы удалить объект Racer, его можно также непосредственно передать методу Remove (). Удаление по индексу работает быстрее, поскольку в этом случае не приходится выполнять поиск удаляемого элемента по всей коллекции. Метод Remove () сначала ищет в коллекции индекс удаляемого элемента с помощью метода IndexOf (), а затем использует этот индекс для удаления элемента.

Метод RemoveRange () удаляет множество элементов из коллекции. Первый параметр специфицирует индекс, начиная с которого располагаются удаляемые элементы, а второй параметр задает количество удаляемых элементов.

int index = 3;

int count = 5;

racers.RemoveRange(index, count);

Для удаления всех элементов из коллекции служит метод Clear(), определенный в интерфейсе ICollection<T>.

 

Очередь

Очередь (queue) — это коллекция, в которой элементы обрабатываются по схеме "первый вошел, первый вышел" (first in, first out — FIFO).

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

Очередь реализуется с помощью класса Queue<T> из пространства имен System.Collections.Generic. Внутри класс Queue<T> использует массив типа Т, подобно тому, как это делает класс List<T>. Обращаться к элементам очереди через индексатор нельзя. Очередь позволяет лишь добавлять элементы, при этом элемент помещается в конец очереди (методом Enqueue ()), а также получать элементы из головы очереди (методом Dequeue ()).

Методы класса Queue<T> описаны в табл. 10.2.

При создании очередей можно использовать конструкторы, подобные тем, что применялись с типом List<T>. Конструктор по умолчанию создает пустую очередь, но конструктор можно также использовать для указания начальной емкости. Подобно классу List<T>, емкость очереди при необходимости удваивается.

Стек

Стек (stack) — это еще один контейнер, очень похожий на очередь. Элемент, добавленный к стеку последним, читается первым ("последний вошел, первый вышел"(last in, first out — LIFO).

Члены класса Stack<T> перечислены в табл. 10.3.

Сортированный список

Если нужна коллекция, отсортированная по ключу, можно воспользоваться SortedList<TKey, TValue>. Этот класс сортирует элементы на основе значения ключа. Можно использовать не только любой тип значения, но также и любой тип ключа. В приведенном ниже примере создается сортированный список, в котором как ключ, так и значение имеют тип string. Конструктор по умолчанию создает пустой список, в который с помощью метода Add () добавляются две книги. Применяя перегруженные конструкторы, можно указать емкость списка, а также передать объект, который реализует интерфейс IComparer<TKey>, используемый для сортировки элементов в списке.

Первый параметр метода Add () — ключ (заголовок книги); второй параметр — значение (номер ISBN). Для добавления элементов в список вместо метода Add () можно применить индексатор. Индексатор требует ключ в качестве параметра индекса. Если такой ключ уже существует, метод Add () генерирует исключение ArgumentException. Если же то же значение ключа применяется с индексатором, то новое значение заменяет старое.

SortedList<TKey, TValue> допускает только одно значение на ключ. Если нужно иметь несколько значений на ключ, следует использовать Lookup<TKey, TElement>.

var books = new SortedList<string, string>();

books.Add("C# 2008 Wrox Box", "978-0-470-047205-7");

books.Add("Professional ASP.NET MVC 1.0", "978-0-470-38461-9");

books["Beginning Visual C# 2008"] = "978-0-470-19135-4";

books["Professional C# 2008"] = "978-0-470-19137-6";

С помощью оператора fоreach можно выполнить итерацию по списку. Элементы, возвращенные перечислителем, имеют тип KeyValuePair<TKey, TValue>, который содержит как ключ, так и значение. Ключ доступен через свойство Key, а значение — через свойство Value.

foreach (KeyValuePair<string, string> book in books)

Console.WriteLine ("{0}, {1}", book.Key, book.Value);  

Эта итерация отображает заголовки книг и номера ISBN, упорядоченные по ключу:

 

Задание к лабораторной работе

Разработать программу ввода и обработки данных (в соответствии с вариантом). Ввод данных осуществляется с клавиатуры. При вводе должен быть осуществлен контроль данных на корректность (используя механизм свойств и исключений).

Этапы выполнения лабораторной работы:

1. Разработать класс, инкапсулирующий работу с одно записью данных (поля записи, свойства, методы ввода и вывода полей записи) и реализующий интерфейс IComparable для возможности сортировки данных по какому-либо полю.

2. Разработать класс, содержащий коллекцию (по варианту) описанного выше класса, и обеспечивающий реализацию следующего интерфейса:

interface Iwork_field

{ void input_data(); // ввод данных

   void output_data(string s); // вывод данных, s – заголовок

   void work(); // обработка данных

   void sort(); // сортировка данных

 }

Пример выполнения задания приведен ниже. В примере вводятся фамилия и оценка по 5тибальной шкале. Затем выводится список отличников.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace lab1

{

interface Iwork_field

{ void input_data();

   void output_data(string s);

   void work();

   void sort();

}

//////////////////////////////////////////////////////////////////////////////////////////

class info:IComparable<info>

{

   public string name {get;set;}

   int ball;

   bool err;

   public int prop_ball

   {

       set

       {

           if ((value >= 0) && (value <= 5)) ball = value;

           else { Console.WriteLine("error. wrong diapason ball"); ball = 0; err = true; }

       }

       get { return ball; }

   }

   public info() { err = false; }

 

   public info(string s,int b)

   {name=s;prop_ball=b;}

 

   public int CompareTo(info other) // сравнение записей

   {// A call to this method makes a single comparison that is used for sorting.

       if (this.ball > other.ball) return 1;

       else if (this.ball < other.ball)

           return -1;

       else return 0;

   }

 

    public info load_keyboard()// ввод записи с клавиатуры

   {

       do

       { 

          Console.WriteLine("vvedite fio ball");

           err = false;

           string s = Console.ReadLine();

           string[] mas_s = s.Split(new Char[] { ' ' });

           name = mas_s[0];

           if (mas_s.Length < 2) { Console.WriteLine("error. no ball"); err = true; }

           else

               try { prop_ball = Convert.ToInt32(mas_s[1]); }

               catch (System.FormatException)

               { Console.WriteLine("error format ball"); err = true; }

       } while (err);

       return this;

   }

      

   public void write_screen() // вывод записи на экран

   {

       Console.WriteLine(name + ' ' + ball);

   }

}

////////////////////////////////////////////////////////////////////////////////////

class Work:Iwork_field

{

   List<info> spisok;

  public Work()

   { spisok = new List<info>();

   }

  public void input_data()

   {

       Console.Write("count=");

       int n = Convert.ToByte(Console.ReadLine());

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

       {

           info z = new info();               

           spisok.Add(z.load_keyboard());

       }

   }

  public void output_data(string s)

  {

      Console.WriteLine(s);

      foreach (info current in spisok)

          current.write_screen();

   }

  public void work()

  {

      Console.WriteLine("список отличников");

      var rez = spisok.Where(x => x.prop_ball == 5);

      foreach (info current in rez)

          Console.WriteLine(current.name+" "+ current.prop_ball);

  }

   public void sort()

   {spisok.Sort();

   }

}

////////////////////////////////////////////////////////////////////////////////

class Program

{

   static void Main(string[] args)

   {

       byte n;

       Work z = new Work();

       Iwork_field w = (Iwork_field)z;

       w.input_data();

       w.output_data("исходные данные");

       w.sort();

       w.output_data("данные после сортировки");

       w.work();

       Console.ReadKey();           

   }

}

}

Варианты заданий

1. Оценки за сессию по предметам. Формат ввода информации: предмет (название предмета может состоять из двух слов) – оценка по 5тибальной шкале. Подсчитать средний балл за сессию. Тип коллекции – очередь.

2. Курс доллара за несколько дней. Формат ввода информации: дата – курс. Определить максимальный курс за представленный период. Тип коллекции – стек.

3. Ведомость по сессии. Формат ввода информации: фамилия – инициалы – средний балл. Определить отличников. Тип коллекции – сортированный список.

4. Движение самолетов. Формат ввода информации: номер рейса (4 цифры 2 буквы) – цена – порт назначения. Сформировать таблицу рейсов для заданного аэропорта. Тип коллекции – список.

5. Успеваемость по дисциплине. Формат ввода информации: фамилия – оценки по 3 лаб. работам. Сформировать список не сдавших хоть одну лаб. работу. Тип коллекции – очередь.

6. Учет товаров в магазине. Формат ввода информации: наименование товара – стоимость – количество. Вывести информацию о товаре, которого в магазине находится на самую большую сумму. Тип коллекции – стек.

7. Учет техники на заводе. Формат ввода информации: наименование прибора – год создания – стоимость. Вывести информацию о приборах, разработанных в заданном году. Тип коллекции – сортированный список.

8. Электронный каталог. Формат ввода информации: имя файла – объем – дата создания. Вывести все файлы больше 100Мб. Тип коллекции – сортированный список.

9. Учет в больнице. Формат ввода информации: номер мед. карты (2 буквы, 3 цифры) – номер палаты. Вывести список больных заданной палаты. Тип коллекции – список.

10.  Станция тех. обслуживания. Формат ввода информации: марка машины – регистрационный номер (2 буквы, 5 цифр) – пробег. Вывести список машин с пробегом больше 10000 км. Тип коллекции – сортированный список.

11.  Учет книг в библиотеке. Формат ввода информации: жанр (фантастика, детектив, история) – автор – количество. Найти автора, книг которого наибольшее количество, и вывести информацию о его книгах. Тип коллекции – очередь.

12.   Районный военкомат. Формат ввода информации: фамилия – дата рождения – пригодность к службе (да/нет). Вывести сведения о всех пригодных к службе. Тип коллекции – стек.

13. Учет лекарств в аптеке. Формат ввода информации: название лекарства – стоимость – количество. Вывести список лекарств, стоимостью менее 50 руб, которых в аптеке осталось меньше 10 шт. Тип коллекции – сортированный список.

14.  Учет материалов в цехе. Формат ввода информации: наименование материала – шифр (6 цифр) – количество – единица измерения (шт, кг). Вывести список материалов, которых осталось меньше 100 шт. или менее 50 кг. Тип коллекции – список.

15.  Учет оборудования. Формат ввода информации: наименование предмета – инвентарный номер (3 буквы 4 цифры) – срок службы. Составить список оборудования со сроком службы более 10 лет. Тип коллекции – стек.

16.  Учет разговоров на АТС за месяц. Формат ввода информации: фамилия абонента – количество звонков – сумма для оплаты. Вывести абонента, который сделал максимальное количество звонков и абонента, выполнившего звонки на максимальную сумму. Тип коллекции – очередь.

17.  Учет рабочего времени. Формат ввода информации: фамилия – табельный номер (5 цифр) – количество отработанных часов в неделю. Вывести информацию о рабочих, которые отработали более 40ч. Тип коллекции – сортированный список.

18.  Диспетчерская автовокзала. Формат ввода информации: номер автобуса (2 буквы, 5 цифр) – фамилия водителя – время отправления чч:мм. Составить список автобусов, отправляющихся позже 15.00. Тип коллекции – сортированный список.

19.  Нагрузка преподавателей в неделю. Формат ввода информации: фамилия и инициалы преподавателя – день недели – количество часов занятий. Вывести список преподавателей, имеющих нагрузку не менее 4 часов в заданный день недели. Тип коллекции – список.

20.  Учет погодных условий на метеостанции за месяц. Формат ввода информации: число – температура воздуха днем и ночью. Вывести информацию о дне с максимальной разницей дневной и ночной температур. Тип коллекции – очередь.

21.  Книга заявок на ремонт. Формат ввода информации: фамилия заявителя – тип ремонта (малый, средний, крупный) – дата заявки. Вывести информацию о заявке на средний ремонт для заданной даты. Тип коллекции – стек.

22.  Часовая мастерская. Формат ввода информации: фамилия заказчика – стоимость ремонта – дата заявки. Сформировать список заказов на ремонт после заданной даты. Тип коллекции – список.

23.  Справочное бюро. Формат ввода информации: фамилия – инициалы – домашний телефон (6 или 7 цифр или -, если телефона нет). Сформировать список людей, не имеющих домашнего телефона. Тип коллекции – очередь.

24.  Жилищное управление. Формат ввода информации: адрес (улица, дом, квартира) – количество проживающих – жилая площадь. Вывести сведения о квартирах, у хозяев которых имеется лишняя жилая площадь (норма 13 кв.м. на человека). Тип коллекции – список.

25.  Рабочие предприятия. Формат ввода информации: табельный номер (5 цифр) – номер цеха – профессия. Вывести рабочих заданного цеха. Тип коллекции – сортированный список.

26.  Библиотека. Формат ввода информации: инвентарный номер (7 цифр) – год издания – издательство. Вывести список книг заданного издательства. Тип коллекции – сортированный список.

27.  Информация о дипломировании. Формат ввода информации: номер зачетной книжки (в виде гг/56788, где гг – год поступления) – сокращенное название факультета – оценка). Составить список защитивших на отлично и поступивших в заданном году. Тип коллекции – сортированный список.

28.  Учет компьютеров на кафедре. Формат ввода информации: инвентарный номер (6 цифр) – стоимость – использование (учебная работа, НИР). Вывести сведения о компьютерах, используемых для учебной работы стоимостью более 10000руб. Тип коллекции – очередь.

29.   Сведения о футбольном турнире. Формат ввода информации: название команды – количество побед, поражений, ничьих. Для каждой команды подсчитать количество набранных очков (победа 3 очка, ничья 1 очко, поражение 0). Тип коллекции – стек.

30.  Учет товаров. Формат ввода информации: артикул товара (6 цифр) – название магазина – количество товара. Вывести сведения о заданном товаре. Тип коллекции – список.










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

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