Помощь в написании студенческих работ
Антистрессовый сервис

Создание иерархии классов

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

СОСТАВ И СТРУКТУРА ПРОГРАММЫ Данная программа состоит из трех, связанных между собой файлов. В первом файле (h-файл) описаны классы, во втором файле (.cpp) показана их реализация. В третьем-основном файле выполняются необходимые по заданию операции. Основная программа состоит из двенадцати функций: функция добавления устройства хранения, функция добавления персонального компьютера (далее — ПК… Читать ещё >

Создание иерархии классов (реферат, курсовая, диплом, контрольная)

КУРСОВАЯ РАБОТА

«Создание иерархии классов»

АННОТАЦИЯ Курсовая работа состоит из 3 разделов: состав и структура программы, функции и алгоритмы функций, руководство пользователя. Так же имеются 3 приложения: листинг «h"-файла, листинг «.cpp"-файла и листинг основной программы.

Пояснительная записка к курсовой работе оформлена в текстовом процессоре Microsoft Word 2010. Программа написана в среде Microsoft Visual Studio 2010.

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

Список лит. — 3 назв.

ВВЕДЕНИЕ

В данной курсовой работе необходимо связать иерархией отношений заданные классы. Класс, находящийся во главе иерархии — это абстрактный класс. Всего дано шесть классов: устройство хранения, класс ноутбук, класс жёсткий диск, класс персональный компьютер, класс планшет, класс Flash-память. В качестве базовых классов выступают классы персона и транспорт. Классы водитель и пассажир будут производными от класса персона, а классы поезд и автомобиль будут производными от класса транспорт. Помимо иерархии классов, будет реализована иерархия объектов, которую можно реализовать с помощью полей классов, представляющих собой статические массивы указателей на соответствующие подчиненные объекты.

Иерархия классов представлена на рисунке 1

Иерархия объектов представлена на рисунке 2

Рисунок 1-Иерархия классов Рисунок 2-Иерархия объектов

1. СОСТАВ И СТРУКТУРА ПРОГРАММЫ Данная программа состоит из трех, связанных между собой файлов. В первом файле (h-файл) описаны классы, во втором файле (.cpp) показана их реализация. В третьем-основном файле выполняются необходимые по заданию операции. Основная программа состоит из двенадцати функций: функция добавления устройства хранения, функция добавления персонального компьютера (далее — ПК), функция удаления заданного устройства хранения (далее ЗУ — запоминающее устройство), функция удаления заданного ПК, функция вывода меню, функция вывода перечня ЗУ по заданному ПК, функция вывода перечня ПК с объёмом памяти ЗУ больше заданного, функция вывода перечня ПК указанного вида с ценой, меньше заданной, функция вывода перечня ПК указанного вида с указанной операционной системой (далее — ОС), функция вывода перечня ПК указанного вида с частотой процессора больше заданной.

2. ОБЗОР МЕТОДОВ РЕШЕНИЯ

2.1 Описание классов данных В данной курсовой работе используется шесть классов, с которыми производится работа программы.

1. Class TDevice — базовый класс для двух других классов. Содержит данные по ЗУ: производитель, модель, назначение, объём памяти, гарантийный срок.

2. Class THard — производный от TDevice класс, который содержит данные по жёсткому диску: объём памяти и марка.

3. Class TFlash — производный от TDevice класс, который содержит данные по устройствам Flash-памяти: объём памяти и марка.

4. Class TPc — базовый класс для двух других классов. Содержит данные по ПК: операционная система, объём памяти, цена, частота процессора. Так же данный класс содержит указатель на массив класса TDevice.

5. Class TNotebook — производный от TPc класс, который содержит данные по ноутбуку: модель и страна-производитель.

6. Class TTablet — производный для TPc класс, который содержит данные по планшету: модель и страна производитель.

2.2 Функция main ()

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

Блок-схема функции main () представлена на рисунке 3

Рисунок 3-Блок-схема функции main ()

2.3 Функция PrintMenu ()

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

Блок-Схема функции PrintMenu () представлена на рисунке 4

Рисунок 4-Блок-схема функции PrintMenu ()

2.4 Функция DobDev ()

Эта функция производит добавление данных по классу устройство хранения, причем функция предлагает выбор, который определяет, какое именно устройство хранения необходимо добавить в базу: жёсткий диск или Flash-память. Сначала функция проверяет программу на наличие ПК, если же не существует ни одного ПК, функция выводит сообщение пользователю о том, что данные ввести невозможно. Если данные по ПК существуют (т.е. существует хотя бы один набор данных), то функция предлагает ввести номер ПК, которому будет соответствовать добавляемое устройство хранения. Функция предусматривает так же неверный ввод номера. После этого функция начинает цикл, в котором будут вводится данные (максимум можно ввести 5 устройств хранения). Функция предлагает выбор из трех пунктов. Первый-ввод данных по жёсткому диску, второй-ввод данных по Flash-памяти и третий-выход из цикла. После создания выбранного устройства хранения можно ввести еще несколько данных, пока в мини-меню не будет выбран третий пункт, который вернет пользователя в основное меню.

Блок-схема функции DobDev () представлена на рисунке 5

Рисунок 5-Блок-схема функции DobDevice ()

2.5 Функция DobPC ()

Данная функция вводит в базу данных информацию о ПК. В начале функция предлагает выбор добавляемого, т. е. можно ввести либо данные по ноутбуку, либо данные по планшету. Функция выводит мини-меню с выбором добавляемого объекта.

Блок-схема функции DobPC () представлена на рисунке 6

Рисунок 6-Блок-Схема функции DobPC ()

2.6 Функция DelPC ()

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

Блок-схема функции DelPC () представлена на рисунке 7

Рисунок 7-Блок-схема функции DelPC ()

2.7 Функция DelDev ()

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

Блок-схема функции DelDev () представлена на рисунке 8

Рисунок 8-Блок-схема функции DelDev ()

2.8 Функция SpisMod ()

Данная функция выводит список устройств хранения в указанном ПК. Вначале функция проверяет на наличие данных по ПК и устройствам хранения. Если данных нет, то функция завершает работу. Если данные по устройствам хранения есть, то предлагается ввести номер ПК, по которому выводится список ЗУ. После этого выводится марка ПК и данные по устройствам хранения.

Блок-схема функции SpisMod () представлена на рисунке 9

Рисунок 9-Блок-схема функции SpisMod ()

2.9 Функция SpisSystem ()

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

Рисунок 10-Блок-схема функции SpisSystem ()

2.10 Функция SpisMemory ()

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

Блок-схема функции SpisMemory () представлена на рисунке 11

Рисунок 11-Блок-схема функции SpisMemory ()

2.11 Функция SpisCena ()

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

Блок-схема функции SpisСena () представлена на рисунке 12

класс данные хранение диск Рисунок 12-Блок-схема функции SpisCena ()

2.12 Функция SpisChastota ()

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

Блок-схема функции SpisСena () представлена на рисунке 12

Рисунок 12-Блок-схема функции SpisChastota ()

3. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

3.1 Основное меню программы Рисунок 13-Скриншот основного меню программы Основное меню программы состоит из девяти пунктов. Выбор необходимого пункта осуществляется путем ввода номера пункта меню. Если было введено число «0» то программа завершит свою работу.

3.2 Добавление объектов Рисунок 14-Скриншот добавления объекта типа «Персональный компьютер»

На рисунке 14 представлен скриншот добавления объекта класса «Персональный компьютер». Сначала необходимо выбрать, какие данные нужно добавлять, а потом вводить данные по выбранному ПК.

Рисунок 15-Скриншот добавления объекта «Устройство хранения»

На рисунке 15 показано добавление объекта «Устройство хранения». Добавление объекта осуществляется аналогично добавлению объекта «Персональный компьютер»

Рисунок 16-Скриншот создание объекта класса «Жёсткий диск»

3.2 Удаление объектов Рисунок 17-Скриншот удаления необходимого объекта класса «Устройство хранения»

На рисунке 17 показано удаление объекта класса «Устройство хранения». Для удаления нужного устройства хранения необходимо сначала выбрать номер ПК, затем ввести модель удаляемого устройства хранения.

Рисунок 18-Скриншот удаление объекта класса «Транспорт»

3.3 Вывод устройств хранения в указанном ПК Рисунок 19-Скриншот вывода перечня устройств хранения в указанном ПК На рисунке 19 показан вывод устройств хранения в указанном ПК. Сначала с клавиатуры вводится необходимый номер ПК, далее выводится список устройств хранения которые мы хотим посмотреть.

3.4 Вывод информации о ПК указанного вида с указанной ОС.

Рисунок 21-Скриншот вывода информации о ПК указанного вида с указанной ОС На рисунке 21 представлен скриншот вывода информации о ПК указанного вида с указанной ОС. Для вывода информации необходимо ввести ОС.

3.5 Вывод перечня ПК указанного вида с ценой, меньше заданной Рисунок 22-Скриншот вывода перечня ПК указанного вида с ценой, меньше заданной На рисунке 22 представлен скриншот вывода перечня ПК указанного вида с ценой, меньше заданной. Для вывода списка необходимо ввести цену, по которой будет выведены данные.

3.5 Вывод перечня ПК с объёмом памяти устройств хранения, больше заданного Рисунок 23-Скриншот вывода перечня ПК с объёмом памяти устройств хранения, больше заданного На рисунке 23 представлен скриншот вывода перечня ПК с объёмом памяти устройств хранения, больше заданного. Для вывода списка необходимо ввести объём памяти, по которому будет выведены данные.

3.6 Вывод перечня ПК указанного вида с частотой процессора, больше заданной Рисунок 23-Скриншот вывода перечня ПК указанного вида с частотой процессора, больше заданной На рисунке 23 представлен скриншот вывода перечня ПК указанного вида с частотой процессора, больше заданной. Для вывода списка необходимо ввести частоту процессора, по которой будут выведены данные.

ЗАКЛЮЧЕНИЕ

Эта программа, создана для удобной обработки. Благодаря разработанному алгоритму мы получили ряд преимуществ. Ряд преимуществ иерархии классов:

— Иерархическое представление системы можно использовать для описания того, как влияют изменения приоритетов на верхних уровнях на приоритеты элементов нижних уровней.

— Иерархии предоставляют более подробную информацию о структуре и функции системы на нижних уровнях и обеспечивают рассмотрение факторов и их целей на высших уровнях. Для удовлетворения ограничений на элементы уровня их лучше всего воспроизводить на следующем более высоком уровне. Например, природу можно рассматривать как актор, цель которого — использовать определенный материал и который подчиняется определенным законам в качестве ограничений.

— Естественные системы, составленные иерархически, т. е. посредством модульного построения и затем сборки модулей, строятся намного эффективнее, чем системы, собранные в целом.

— Иерархии устойчивы и гибки; они устойчивы в том смысле, что малые изменения вызывают малый эффект, а гибкие в том смысле, что добавления к хорошо структурированной иерархии не разрушают ее характеристик.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Лафоре Р. Объектно-ориентированное программирование в С++ / Р. Лафоре — 4-е изд. — Питер.: 2010. — 654 с.

2. Давыдов В. Г. Технологии программирования. С++ / В. Г. Давыдов — Санкт-Петербург: БХВ-Петербург, 2009. — 432 с.

3. Касюк С. Т. Конспект лекций по дисциплине «Информатика» / С. Т. Касюк — Челябинск: ЮУрГУ, 2005. — 212 с.

ПРИЛОЖЕНИЕ Листинг программы на С++

1. Файл Osnova. h

#ifndef Class_File

#define Class_File

class TDevice

{

public:

int kolll;

static int kold;

int memory; //объём память ЗУ

int tip;//тип ЗУ

char modeld [20]; // Модель ЗУ

char brend[20]; // Магазин (ЗУ)

int skorost; // Скорость

float cena; // Стоимость ЗУ

void PrintDev ();

TDevice (int j);

~TDevice ();

};

class THard: public TDevice

{

public:

int shum; //Уровень шума

char inter[20]; // Используемый интерфейс

static int kolt;

void PrintDev ();

THard (int j);

~THard ();

};

class TFlash: public TDevice

{

public:

static int kolf;

char indikator[20]; // Индикатор

char korpus[20]; // материал корпуса

void PrintDev ();

TFlash (int j);

~TFlash ();

};

class TPc

{

public:

int kolch;

TDevice *ppp[5];

static int kolm;

int tip;

char marka [20]; // Марка ПК

char os[20]; // Операционная система

float coast; // Цена транспортного средства

int chastota; //частота процессора

void PrintFl ();

virtual void PrintDPc ()=0;

TPc (int c);

~TPc ();

};

class TNotebook: public TPc

{

public:

static int kols;

char disk[20]; // Наличие дисковода

int ekrann[20]; // Диагональ экрана

void PrintDPc ();

TNotebook (int c);

~TNotebook ();

};

class TTablet: public TPc

{

public:

static int kolo;

int ekranp; // Диагональ экрана

char vid[20]; // Тип (по конструктивному исполнению)

void PrintDPc ();

TTablet (int c);

~TTablet ();

};

#endif

1. Файл 123. cpp

#include «stdafx.h»

#include «Osnova.h»

#include «stdio.h»

#include «string»

#include «conio.h»

TDevice:TDevice (int j)

{

kolll=0;

tip=j;

printf («Vvod dannih po ustriystvu hraneniya n»);

printf («1-Vvedite model: n»);

scanf («%s», modeld);

printf («2-Vvedite marku: n»);

scanf («%s», brend);

printf («3-Vvedite skorost: n»);

scanf («%d» ,&skorost);

printf («4-Vvedite cenu: n»);

scanf («%f» ,&cena);

printf («5-Vvedite obyom pamyati: n»);

scanf («%d» ,&memory);

kold=kold+1;

getchar ();

}

TDevice:~TDevice ()

{

printf («n Dannie udaleni «);

getchar ();

kold=kold-1;

}

THard:THard (int j):TDevice (j)

{

system («cls»);

printf («Vvod dannih po HDD n»);

printf («1-Vvedite uroven shuma: n»);

scanf («%d» ,&shum);

printf («2-Vvedite tip interfeysa: n»);

scanf («%s», inter);

kolt=kolt+1;

getchar ();

}

THard:~THard ()

{

printf («n Dannie udaleni «);

kolt=kolt-1;

getchar ();

}

TFlash:TFlash (int j):TDevice (j)

{

printf («Nalichie indikatora: n»);

scanf («%s», indikator);

printf («Vvedite tip korpusa: n «);

scanf («%s», korpus);

kolf=kolf+1;

getchar ();

}

TFlash:~TFlash ()

{

printf («n Dannie udaleni «);

kolf=kolf-1;

getchar ();

}

TPc:TPc (int c)

{

kolch=0;

tip=c;

printf («1-Vvedite marku PC: n»);

scanf («%s», marka);

printf («2-Vvedite OS: n»);

scanf («%s», os);

printf («3-Vvedite chastotu processora: n»);

scanf («%d» ,&chastota);

printf («4-Vvedite cenu na PC n»);

scanf («%f» ,&coast);

kolm=kolm+1;

getchar ();

}

TPc:~TPc ()

{

printf («n Dannie po dannomu PC udaleni n»);

kolm=kolm-1;

getchar ();

}

TNotebook:TNotebook (int c):TPc (c)

{

printf («1-Nalichie diskovoda n»);

scanf («%s», disk);

printf («2-Vvedite diagonal ekrana: n»);

scanf («%d» ,&ekrann);

kols=kols+1;

getchar ();

}

TNotebook:~TNotebook ()

{

printf («n Dannie udaleni «);

kols=kols-1;

getchar ();

}

TTablet:TTablet (int c):TPc (c)

{

printf («1-Vvedite tip: n»);

scanf («%s», vid);

printf («2-Vvedite diagonal ekrana: n»);

scanf («%d» ,&ekranp);

kolo=kolo+1;

getchar ();

}

TTablet:~TTablet ()

{

printf («n Dannie udaleni «);

kolo=kolo-1;

getchar ();

}

void TDevice: PrintDev ()

{

printf («n Model: %s «, modeld);

printf («n Marka: %s «, brend);

printf («n Skorost: %d «, skorost);

printf («n Cena: %f «, cena);

printf («n Obyom pamyati: %d», memory);

printf («n»);

getchar ();

}

void TPc: PrintFl ()

{

int i;

if (kolch==0)

{

printf («n Net takih ustroyst hraneniya n»);

getchar ();

return;

}

for (i=0;i

ppp[i]->PrintDev ();

}

void TPc: PrintDPc ()

{

printf («n Dannie po PC n»);

printf («n Marka: %s n», marka);

printf («n OS: %sn», os);

printf («n Cena: %fn», coast);

printf («n Chastota processora: %dn», chastota);

printf («n»);

getchar ();

}

void TTablet: PrintDPc ()

{

printf («Chastota processora: %dn», chastota);

printf («Marka PC: %s n», marka);

printf («Diagonal ekrana: %d n», ekranp);

printf («Tip: %s n», vid);

printf («n»);

getchar ();

}

void TNotebook: PrintDPc ()

{

printf («Chastota processora: %dn», chastota);

printf («Marka PC: %s n», marka);

printf («Diagonal ekrana: %d n», ekrann);

printf («Nalichie diskovoda: %s n», disk);

printf («n»);

getchar ();

}

1. Файл kursac. cpp

#include «stdafx.h»

#include «Osnova.h»

#include «stdio.h»

#include «string»

#include «conio.h»

#include

int TDevice: kold=0;

int THard: kolt=0;

int TFlash: kolf=0;

int TPc: kolm=0;

int TNotebook: kols=0;

int TTablet: kolo=0;

TPc *a[5]={0};

// Добавление записей по ЗУ

void DobDev ()

{

system («cls»);

int i, j;

if (TPc:kolm==0)

{

printf («n Net info»);

getchar ();

return;

}

printf («Vvedite nomer PC: n»);

scanf («%d» ,&i);

getchar ();

if ((i>TPc:kolm)||(i<0))

{

printf («n Dannie vvedeni neverno»);

return;

}

do

{

system («cls»);

printf («Viberete, chto vi dobavite n»);

printf («1-HDD n»);

printf («2-Flash n»);

printf («0-Vihodn»);

scanf («%d» ,&j);

getchar ();

switch (j)

{

case 1:

{

a[i-1]->ppp[a[i-1]->kolch]=new THard (j);

a[i-1]->kolch++;

break;

}

case 2:

{

a[i-1]->ppp[a[i-1]->kolch]=new TFlash (j);

a[i-1]->kolch++;

break;

}

case 0: return;

default: break;

}

}

while (j≠0);

}

int SpisMod ()

{

system («cls»);

int j, i;

if (TPc:kolm==0)

{

printf («n Net PC, sostavit' spisok nelzan»);

getchar ();

return 0;

}

if (TDevice:kold==0)

{

printf («n Net ustroystv hraneniya, sostavit' spisok nelza n»);

getchar ();

return 0;

}

printf («n Viberete nomer PC: n»);

scanf («%d» ,&i);

getchar ();

printf («n Marka PC: %s», a[i-1]->marka);

a[i-1]->PrintFl ();

getchar ();

return i;

}

void DelDev ()

{

system («cls»);

int i, j, c;

char modeldud[20];

i=SpisMod ();

if (i≠0)

{

printf («n Vvedite model udalyaemogo ustroystva hraneniya: n»);

scanf («%s», modeldud);

for (j=0; jkolch; j++)

{

if (strcmp (a[i-1]->ppp[j]->modeld, modeldud)==0)

{

delete a[i-1]->ppp[j];

a[i-1]->kolch—;

for (c=j;c

kolch;c++)

{

a[i-1]->ppp[j]=a[i-1]->ppp[j+1];

a[i-1]->ppp[j+1]=0;

}

}

else

{

printf («n Takoe ustroystvo hraneniya otsutstvuet «);

getchar ();

break;

}

}

}

else

{

printf («n Dannih net «);

getchar ();

}

getchar ();

}

// Добавление ПК

void DobPc ()

{

system («cls»);

int c;

printf («n Viberete, kakoi PC budet dobavlen»);

printf («n 1-Notebook»);

printf («n 2-Planshetn»);

scanf («%d» ,&c);

getchar ();

switch (c)

{

case 1:

{

a[TPc:kolm-1] = new TNotebook (c);

break;

}

case 2:

{

a[TPc:kolm-1] = new TTablet (c);

break;

}

default:

{

printf («n Dannie vvedeni neverno n»);

getchar ();

break;

}

}

}

// Удаление ПК

void DelPc ()

{

system («cls»);

int i, j;

if (TPc:kolm==0)

{

printf («n Net PC «);

getchar ();

return;

}

printf («Vvedite nomer PC: n»);

scanf («%d» ,&i);

getchar ();

if ((i>TPc:kolm)||(i<0))

{

printf («n Dannie vvedeni neverno»);

getchar ();

return;

}

if (a[i-1]->kolch≠0)

{

for (j=0;jkolch+1;j++)

{

delete a[i-1]->ppp[j];

a[i-1]->kolch—;

}

}

delete a[i-1];

a[i-1]=0;

for (j=i-1;j

{

a[j]=a[j+1];

a[j+1]=0;

}

getchar ();

}

void SpisCena ()

{

system («cls»);

int i, j, s, c;

if (TPc:kolm==0)

{

printf («n Net PC, sostavit' spisok nelzan»);

getchar ();

return;

}

printf («n Vvedite cenu, po kotoroy budem vivodit spisok «);

scanf («%d» ,&i);

printf («n Viberete, kakoi PC «);

printf («n 1-Notebook»);

printf («n 2-Planshet n»);

scanf («%d», &c);

for (j=0; j<=TPc:kolm-1; j++){

if ((a[j] -> coast < i) && (a[j] -> tip == c)){

a[j] -> PrintDPc ();

getchar ();

}

else

{

printf («n PC s ukazannoy cenoy net «);

getchar ();

}

}

getchar ();

}

void SpisSystem ()

{

system («cls»);

char sistema[20];

int j, c;

if (TPc:kolm==0)

{

printf («n Net PC, sostavit' spisok nelzan»);

getchar ();

return;

}

printf («n Vvedite OS, po kotoroy vivodyatsa dannie: «);

scanf («%s», sistema);

printf («n Viberete, kakoi PC «);

printf («n 1-Notebook»);

printf («n 2-Planshet»);

printf («n»);

scanf («%d» ,&c);

for (j=0;j

if ((strcmp (a[j]->os, sistema)==0)&&(a[j]->tip==c))

{

a[j]->PrintDPc ();

}

else

{

if (j

continue;

}

printf («n PC s dannoy OS net «);

}

}

getchar ();

}

void SpisChastota ()

{

system («cls»);

int ch, j, s, c;

if (TPc:kolm==0)

{

printf («n Net PC, sostavit' spisok nelzan»);

getchar ();

return;

}

printf («n Vvedite chastotu processora, po kotoroy budem vivodit spisok «);

scanf («%d» ,&ch);

printf («n Viberete, kakoi PC «);

printf («n 1-Notebook»);

printf («n 2-Planshet»);

printf («n»);

scanf («%d» ,&c);

for (j=0; j<=TPc:kolm-1; j++)

if (((a[j] -> chastota) > ch) && (a[j] -> tip == c))

a[j]->PrintDPc ();

else

{

printf («n PC, sootvetstvuyushih zaprosu net»);

getchar ();

}

}

void SpisMemory ()

{

int i, j, s;

system («cls»);

if (TPc:kolm==0)

{

printf («n Net PC, sostavit' spisok nelzan»);

getchar ();

return;

}

if (TDevice:kold==0)

{

printf («n Net ustroystv hraneniya, sostavit' spisok nelza n»);

getchar ();

return;

}

printf («n Vvedite obyom pamyati, po kotoromu budem vivodit spisok «);

scanf («%d» ,&i);

getchar ();

for (j=0; j<=TPc:kolm-1; j++)

{

if ((a[j]->ppp[j]->memory>i)&&(a[j]->ppp[j]->tip==1))

a[j]->PrintDPc ();

else

{

printf («n PC, sootvetstvuyushih zaprosu net»);

getchar ();

}

}

}

int PrintMenu ()

{

int i;

do

{

system («cls»);

printf («Menu n»);

printf («n 1)-Dobavlenie PCn»);

printf («n 2)-Dobavlenie ustroystv hraneniyan»);

printf («n 3)-Udalenie ustroystv hraneniya n «);

printf («n 4)-Udalenie PC n «);

printf («n 5)-Vivod perechnya ustroystv hraneniya po zadannogo PC n «);

printf («n 6)-Vivod perechnya PC ukazannogo vida s ukazannoy OSn»);

printf («n 7)-Vyvod perechnya PC s obemom pamyati ustroistv hraneniya, n bolshe zadannogo n»);

printf («n 8)-Vivod perechnya PC ukazannogo vida s cenoi, n men’she zadannoy n»);

printf («n 9)-Vivod perechnya PC ukazannogo vida s chastotoy processora, n bolshe zadannoy n»);

printf («n 0)-Exit n»);

scanf («%d» ,&i);

getchar ();

switch (i)

{

case 1:{DobPc ();break;}

case 2:{DobDev ();break;}

case 3:{DelDev ();break;}

case 4:{DelPc ();break;}

case 5:{SpisMod ();break;}

case 6:{SpisSystem ();break;}

case 7:{SpisMemory ();break;}

case 8:{SpisCena ();break;}

case 9:{SpisChastota ();break;}

case 0:{break;}

default:

{

printf («Neverno vveden punkt menu «);

getchar ();

break;

}

}

while (i≠0);

return (i);

}

int _tmain (int argc, _TCHAR* argv[])

{

system («cls»);

PrintMenu ();

return 0;

}

Показать весь текст
Заполнить форму текущей работой