Курсовая работа по курсу "Информатика" Вариант №11 - davaiknam.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Курсовая работа по курсу "История международных отношений" 1 351.56kb.
Курсовая работа по управлению судном вариант №25 1 128.33kb.
Контрольная работа по курсу «Социология» Вариант 8 1 106.66kb.
Контрольная работа 2012 2 вариант Информатика как наука. История... 3 477.02kb.
Курсовая работа по дисциплине : «Информатика» тема: «Особенности... 1 283.04kb.
Курсовая работа Тумахович Зоя Глебовна Специальность 050202 Информатика 1 283.05kb.
Курсовая работа на тему: биоэтические аспекты использования животных... 2 402.57kb.
Курсовая работа по истории государства и права 5 737.95kb.
Курсовая работа на тему Проблемы развития атомной энергетики по курсу... 1 376.15kb.
Курсовая работа по курсу «Всемирная история» 5 414.12kb.
Программа «Управление туристическим и гостиничным бизнесом» 1 143.87kb.
Программа «Фестиваля современных образовательных технологий» 1 37.41kb.
Направления изучения представлений о справедливости 1 202.17kb.

Курсовая работа по курсу "Информатика" Вариант №11 - страница №1/1


Министерство образования и науки Российский Федерации

Южно-Уральский Государственный Университет

Приборостроительный факультет

Кафедра автоматики и управления

Курсовая работа

по курсу "Информатика"

Вариант №11

Выполнил студент ПС-161

_____________ Рыжов Р.С.

" ___"_____________2012 г.

Проверил доцент каф. АиУ

_________ Казаринова В.Л.

" ___"_____________2012 г.

Челябинск

2012

Общее задание на курсовую работу по дисциплине «Информатика»

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

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

Определить в классах компоненты-функции для просмотра и установки полей данных.

Определить в классах компоненты-функции для выполнения запросов (п. 2 задания).

Определить в классах статическое поле, предназначенное для хранения количества объектов данного класса.

В демонстрационной программе создать иерархию объектов. Объекты создаются динамически по запросу пользователя, при этом указатели на вновь созданные объекты записываются в статические массивы (достаточно размерности n= 5).

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

Предусмотреть вывод на экран данных по запросу (п. 2 задания), а также количества элементов заданного типа (из статического поля).

Пояснительная записка к курсовой работе оформляется в соответствии со стандартами ЮУрГУ. В пояснительной записке к курсовой работе должны присутствовать:



  1. Введение, заключение, список использованной литературы

  2. Основная часть: описание работы функций, классов, демонстрационной программы, а также блок-схемы алгоритмов работы функций и демонстрационной программы. Блок-схемы оформляются в соответствии с ГОСТ 19.701-90 «Схемы алгоритмов, программ, данных и систем».

  3. Руководство оператора (инструкция пользователю по работе с демонстрационной программой со скриншотами работы программы).

  4. Листинг программы на Си++.

Методические указания

Иерархия классов есть иерархия по принципу наследования, т.е. типа “это есть разновидность того”. Например, “рабочий есть разновидность персоны”, “автомобиль” есть разновидность “транспортного средства”. В отличие от этого иерархия объектов  это иерархия по принципу вхождения, т.е. типа “это есть часть того”. Например, “установка  часть завода”, “двигатель”  часть “автомобиля”.



Tobject (абстр. класс)

Персона (абстр. класс)

Подразделение (абстр. класс)

Студент

Преподаватель

Кафедра

Группа

Рис. 1. Иерархия классов



Кафедра1

Группа1

СтудентА

СтудентБ

Группа2

СтудентА

СтудентБ

Кафедра1

Группа1

СтудентА

СтудентБ

Группа2

СтудентА

СтудентБ

Рис. 2. Иерархия объектов

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

Задание:

Классы:


Ток-шоу, Развлекательная передача, Телеканал, СМИ (средство массовой информации), Радиостанция, Хит-парад

Запросы:


• вывести перечень развлекательных передач указанного типа на указанном телеканале/радиостанции;

• вывести перечень развлекательных передач, которые ведет указанный ведущий;

• вывести перечень ток-шоу длительностью более получаса;

• вывести суммарную продолжительность рекламных пауз в хит-парадах заданного телеканала/радиостанции.


Листинг:
stdafx.h:
#pragma once
#include "targetver.h"
#include

#include

#include

#include

#include

#include "obj.h"


obj.h:

#ifndef objh

#define objh

using namespace std;


class object

{protected:

static int n;

static char m[100];

int number;

};
class entertainment:public object

{protected:

char leed[100];

public:

entertainment(){cout<<"\nСоздан объект: ";}



~entertainment(){cout<<"\nОбъект удалён\n";}

};
class media:public object

{protected:

int year;

public:

media(){cout<<"\nСоздан объект: ";}



~media(){cout<<"Объект удалён\n";}

};
class hit:public entertainment

{int duration_hit;

int duration_pause_hit;

static int duration_pause;

static int number_hit;

public:

void duration2();



void print_dur();

void leeding1(char i[100]);

void scan_hit();

void print_hit();

hit(int q, int w, char e[100], int r=9)

{cout<<"(хит-парад):";number_hit++;number=q;duration_hit=w;strcpy(leed,e);duration_pause_hit=r;}

hit(){number_hit++;cout<<"хит-парад\n"<

~hit()


{cout<<"\n\nУдаляется объект 'хит-парад': ";print_hit(); number_hit--;cout<<"Количество оставшихся объектов 'хит-парад': "<};
class show:public entertainment

{int duration_sho;

int duration_pause_sho;

static int number_sho;

public:


void duration1();

void leeding2(char i[100]);

void scan_sho();

void print_sho();

show(int q, int w, char e[100], int r=10)

{cout<<"(ток-шоу):";number_sho++;number=q;duration_sho=w;strcpy(leed,e);duration_pause_sho=r;}

show(){number_sho++;cout<<"ток-шоу\n"<

~show()


{cout<<"\n\nУдаляется объект 'ток-шоу': ";print_sho(); number_sho--;cout<<"Количество оставшихся объектов 'ток-шоу': "<};
class tv :public media

{char name_tv[100];

static int number_tv;

public:

void scan_tv();



void print_tv();

tv(int q,char e[100], int r=18)

{number_tv++;cout<<"(телеканал):";number=q;strcpy(name_tv,e);year=r;}

tv(){number_tv++;cout<<"телеканал"<

~tv()

{cout<<"\nУдаляется объект 'телеканал': ";print_tv();number_tv--;cout<<"Количество оставшихся объектов 'телеканал': "<

};
class radio :public media

{char name_rad[100];

static int number_rad;

public:


void scan_rad();

void print_rad();

radio(int q,char e[100], int r=20)

{number_rad++;cout<<"(радиостанция):";number=q;strcpy(name_rad,e);year=r;}

radio(){number_rad++;cout<<"радиостанция"<

~radio()


{cout<<"\nУдаляется объект 'радиостанция': ";print_rad();number_rad--;cout<<"Количество оставшихся объектов 'радиостанция': "<};

#endif



obj.cpp:

#include "stdafx.h"

using namespace std;
char object::m[100]="0";

int object::n=0;

int hit::number_hit=0;

int show::number_sho=0;

int tv::number_tv=0;

int radio::number_rad=0;

int hit::duration_pause=0;
void hit::leeding1(char i[100])

{if (strcmp(i,leed)==0) print_hit();}


void show::leeding2(char i[100])

{if (strcmp(i,leed)==0) print_sho();}


void show::duration1()

{if (duration_sho>30) print_sho();}


void hit::duration2()

{duration_pause=duration_pause+duration_pause_hit;}


void hit::print_dur()

{cout<<"Суммарная продолжительность рекламных пауз: "<
void hit::scan_hit()

{number_hit++;

number=number_hit;

cout<<"\nХит-парад номер: "<

cout<<"Введите продолжительность: "; cin>>duration_hit;

cout<<"Введите продолжительность рекламных пауз: "; cin>>duration_pause_hit;

cout<<"Введите имя ведущего: "; cin>>leed;

}
void hit::print_hit()

{cout<<"\nХит-парад номер: "<void show::scan_sho()

{number_sho++;

number=number_sho;

cout<<"\nТок-шоу номер: "<

cout<<"Введите продолжительность: "; cin>>duration_sho;

cout<<"Введите продолжительность рекламных пауз: "; cin>>duration_pause_sho;

cout<<"Введите имя ведущего: "; cin>>leed;

}
void show::print_sho()

{cout<<"\nТок-шоу номер: "<void tv::scan_tv()

{cout<<"\nТелеканал номер: "<

cout<<"Введите название: "; cin>>name_tv;

cout<<"Введите возраст: "; cin>>year;

}
void tv::print_tv()

{cout<<"\nТелеканал номер: "<
void radio::scan_rad()

{cout<<"\nРадиостанция номер: "<

cout<<"Введите название: "; cin>>name_rad;

cout<<"Введите возраст: "; cin>>year;

}
void radio::print_rad()

{cout<<"\nРадиостанция номер: "<
Демонстрационная программа:

#include "stdafx.h"

#include "obj.h"
using namespace std;
void main()

{int a,s,d,f,g,h,j,k,l,z,x,v,b;

char leed1[100];
cout<<"Введите количество радиостанций: "; cin>>a;

s=a;


radio *radio1=new radio[a];
cout<<"\nВведите количество хит-парадов на каждой радиостанции: "; cin>>l;

hit **hit1;

hit1=(hit**)malloc(a*sizeof(hit*));

for (d=0;d

hit1[d]=(hit*)malloc((l*a)*sizeof(hit));

for (d=0;d

{

cout<<"\nЗаполните информацию о хит-парадах радиостанции номер: "<

for (f=0;f

hit1[d][f].scan_hit();

}
cout<<"\nВведите количество телеканалов: "; cin>>g;

h=g;


tv *tv1=new tv[g];
cout<<"\nВведите количество хит-парадов на каждом телеканале: "; cin>>k;

hit **hit2;

hit2=(hit**)malloc(g*sizeof(hit*));

for (d=0;d

hit2[d]=(hit*)malloc((k*g)*sizeof(hit));

for (d=0;d

{

cout<<"\nЗаполните информацию о хит-парадах телеканала номер: "<

for (f=0;f

hit2[d][f].scan_hit();

}
cout<<"\nВведите количество ток-шоу на каждом телеканале: "; cin>>b;

show **show2;

show2=(show**)malloc(g*sizeof(show*));

for (d=0;d

show2[d]=(show*)malloc((b*g)*sizeof(show));

for (d=0;d

{

cout<<"\nЗаполните информацию о ток-шоу на телеканале номер: "<

for (f=0;f

show2[d][f].scan_sho();

}
for(;;)

{cout<<"Введите: \n1->'Вывести перечень развлекательных передач указанного типа на указанном \nтелеканале/радиостанции'"<

cout<<"2->'Вывести перечень развлекательных передач, которые ведет указанный ведущий'"<

cout<<"3->'Вывести перечень ток-шоу длительностью более получаса'"<

cout<<"4->'Вывести суммарную продолжительность рекламных пауз в хит-парадах заданного телеканала/радиостанции'"<

cout<<"5->'Удалить объекты'"<

cout<<"0->'Выход'"<

cin>>x;


if (x==1)

{

for(;;)



{cout<<"\n(1) Введите: 1->'Телеканал' 2->'Радиостанция(Хит-парад)' 0->'Назад' "; cin>>j;

if(j==1)


{cout<<"\nВведите: 1->'Хит-парад' 2->'Ток-шоу' 0->'Назад' "; cin>>v;

if(v==1)


{for (d=0;dfor (f=0;f

hit2[d][f].print_hit();

}

if(v==2)



{for (d=0;d

for (f=0;f

show2[d][f].print_sho();

}

if(v==0) break;



}

if(j==2)


{for (d=0;dfor (f=0;f

hit1[d][f].print_hit();

}

if(j==0) break;



}

}

if (x==2)



{

for(;;)


{cout<<"\n(2) Введите: Имя ведущего или 0->'Назад' "; cin>>leed1;

if (*leed1!='0')

{

for (d=0;d

for (f=0;f

hit2[d][f].leeding1(leed1);


for (d=0;dfor (f=0;f

show2[d][f].leeding2(leed1);
for (d=0;d

for (f=0;f

hit1[d][f].leeding1(leed1);

}

else break;



}

}

if (x==3)



{

for(;;)


{cout<<"\n(3) Введите: 1->'Перечень ток-шоу длительностью больше 30 минут' 0->'Назад' "; cin>>j;

if(j==1)


{for (d=0;dfor (f=0;f

show2[d][f].duration1();

}

if(j==0) break;



}

}

if (x==4)



{

for(;;)


{cout<<"\n(4) Введите: 1->'Телеканал' 2->'Радиостанция' 0->'Назад' "; cin>>j;

if(j==1)


{for (d=0;dfor (f=0;f

hit2[d][f].duration2();

hit2[0][0].print_dur();

}

if(j==2)


{for (d=0;d

for (f=0;f

hit1[d][f].duration2();

hit1[0][0].print_dur();

}

if(j==0) break;



}

}

if (x==5)



{

delete[] radio1;

delete[] tv1;

}

if (x==0) break;



}

}

Блок-схемы:


hit(int q, int w, char e[100], int r=9)



show(int q, int w, char e[100], int r=10)



tv(int q,char e[100], int r=18)



radio(int q,char e[100], int r=20)



hit() show() tv() radio()



~ hit() ~show() ~tv() ~radio()



leeding1(char i[100]) leeding2(char i[100])

duration1()


duration2() print_dur()


scan_hit() scan_sho() scan_tv() scan_rad()



print_hit() print_sho()


print_tv() print_rad()


main()



Демонстрация:







Конферансье приходят и уходят, а шутки остаются. Ю. Андрюхин
ещё >>