Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2011, 22:29   #1
FRATER1234
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 68
Вопрос C Динамическим масивом как сделать ?

Здраствуйте все.
Я делаю задачку вот эту
Создать структуру ВИДЕОМАГАЗИН со следующими полями:

Название фильма
Режиссер
Жанр
Рейтинг популярности
Цена диска

Реализовать следующие возможности:
Поиск по названию
Поиск по жанру
Поиск по режиссеру
Самый популярный фильм в жанре
Показ всех записей и добавление

Как сделать мне с динамикой подскажите что мне поменять чтоб тоже самое было тока с динамикой ?
Ниже мой код со статическим масивом

Последний раз редактировалось FRATER1234; 22.11.2011 в 22:33.
FRATER1234 вне форума Ответить с цитированием
Старый 22.11.2011, 22:31   #2
FRATER1234
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 68
По умолчанию

Код:
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
 
 
//обьявление структуры
int const col=5;
struct video
{
        char name[40];
        char regis[40];
        char genre[40];
        int rate;
        int price;
}film[col];
 
//прототипы ф-ций
void AddInfo();
void Searchname(char *name);
void Searchgenre(char *genre);
void Searchregis(char *regis);
void Searchpop(char *popgenre);
void ShowAll();
 
//главная программа
void main()
{
        char name[20],genre[20], regis[20],popgenre[20], choice;
        setlocale(LC_ALL, "rus");
                //меню
                do{
        cout<<"Выберите требуемое действие:\n1-Добавить информацию о фильме...\n2-Поиск фильма по названию...\n";
                cout<<"3-Поиск по жанру...\n4-Поиск по режиссеру...\n5-Самый популярный фильм в жанре...\n6-Показать все фильмы...\n7-Выход...\n";
        cin>>choice;
        switch(choice){
                case '1':
                        AddInfo();
                break;
                case '2':
                        cout<<"Введите название фильма\n";
                        cin>>name;
                        Searchname(name);
                break;
                                case '3':
                                                cout<<"Введите жанр фильма\n";
                        cin>>genre;
                        Searchgenre(genre);
                                break;
                                case '4':
                                        cout<<"Введите режиссера\n";
                                        cin>>regis;
                                        Searchregis(regis);
                                break;
                                case '5':
                                        cout<<"Введите жанр фильма\n";
                    cin>>popgenre;
                    Searchpop(popgenre);
                                break;
                                case '6':
                                        ShowAll();
                                break;
                                case '7':
                                        exit(0);
                                break;
                                default:
                                        cout<<"Неправильный выбор\n";
                                        break;
        }
                }
                while (choice != '7');
}
 
//ф-ция добавления информации
void AddInfo()
{       
        int k;
        cout<<"Введите кол-во записей:\n";
        cin>>k;
        for (int i=0; i<k; i++){
                cout<<"Введите название фильма["<<i<<"]:\n";
                cin>>film[i].name;
                cout<<"Введите режиссера фильма["<<i<<"]:\n";
                cin>>film[i].regis;
                cout<<"Введите жанр фильма["<<i<<"]:\n";
                cin>>film[i].genre;
                cout<<"Введите рейтинг фильма["<<i<<"]:\n";
                cin>>film[i].rate;
                cout<<"Введите цену на диск с фильмом["<<i<<"]:\n";
                cin>>film[i].price;
        }
}
 
//ф-ция поиска по названию
void Searchname(char *name)
{               
        for(int i=0; i<col;i++){
                if (_stricmp(name, film[i].name)==0){
                        cout<<"Название фильма: "<<film[i].name<<"\n";
                        cout<<"Режиссер фильма: "<<film[i].regis<<"\n";
                        cout<<"Жанр фильма: "<<film[i].genre<<"\n";
                        cout<<"Рейтинг фильма: "<<film[i].rate<<"\n";
                        cout<<"Цена диска с фильмом: "<<film[i].price<<"\n";
                                                cout<<"##########################\n";
                }
                                else 
                                        cout<<"Фильм с таким названием не найден\n";
        }
                
}
//ф-ция поиска по жанру
void Searchgenre(char *genre)
{               
        for(int i=0; i<col;i++){
                if (_stricmp(genre, film[i].genre)==0){
                        cout<<"Название фильма: "<<film[i].name<<"\n";
                        cout<<"Режиссер фильма: "<<film[i].regis<<"\n";
                        cout<<"Жанр фильма: "<<film[i].genre<<"\n";
                        cout<<"Рейтинг фильма: "<<film[i].rate<<"\n";
                        cout<<"Цена диска с фильмом: "<<film[i].price<<"\n";
                                                cout<<"##########################\n";
                }
                                else 
                                        cout<<"Фильм такого жанра не найден\n";
        }
                
}
FRATER1234 вне форума Ответить с цитированием
Старый 22.11.2011, 22:32   #3
FRATER1234
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 68
По умолчанию

Код:
//ф-ция поиска по режиссеру
void Searchregis(char *regis)
{               
        for(int i=0; i<col;i++){
                if (_stricmp(regis, film[i].regis)==0){
                        cout<<"Название фильма: "<<film[i].name<<"\n";
                        cout<<"Режиссер фильма: "<<film[i].regis<<"\n";
                        cout<<"Жанр фильма: "<<film[i].genre<<"\n";
                        cout<<"Рейтинг фильма: "<<film[i].rate<<"\n";
                        cout<<"Цена диска с фильмом: "<<film[i].price<<"\n";
                                                cout<<"##########################\n";
                }
                                else 
                                        cout<<"Фильм этого режиссера не найден\n";
        }
                
}
 
//Ф-ция поиска самого популярного фильма в жанре
void Searchpop(char *popgenre)
{               
                int max=0,maxnum;
        for(int i=0; i<col;i++){
                if (_stricmp(popgenre, film[i].genre)==0){
                                        if (film[i].rate>max){
                                                max=film[i].rate;
                                                maxnum=i;
                                        }
                }
                                else 
                                        cout<<"Фильм этого режиссера не найден\n";
        }
                cout<<"САМЫЙ ПОПУЛЯРНЫЙ ФИЛЬМ В ЖАНРЕ:\n";
                cout<<"Название фильма: "<<film[maxnum].name<<"\n";
        cout<<"Режиссер фильма: "<<film[maxnum].regis<<"\n";
        cout<<"Жанр фильма: "<<film[maxnum].genre<<"\n";
        cout<<"Рейтинг фильма: "<<film[maxnum].rate<<"\n";
        cout<<"Цена диска с фильмом: "<<film[maxnum].price<<"\n";
                cout<<"##########################\n";
                
}
 
//ф-ция показа всех фильмов
void ShowAll()
{       
        for (int i=0; i<col; i++){
                cout<<"Название фильма: "<<film[i].name<<"\n";
        cout<<"Режиссер фильма: "<<film[i].regis<<"\n";
        cout<<"Жанр фильма: "<<film[i].genre<<"\n";
        cout<<"Рейтинг фильма: "<<film[i].rate<<"\n";
        cout<<"Цена диска с фильмом: "<<film[i].price<<"\n";
                cout<<"##########################\n";
        }
}
FRATER1234 вне форума Ответить с цитированием
Старый 24.11.2011, 14:26   #4
blacktener
Пользователь
 
Регистрация: 15.12.2010
Сообщений: 78
По умолчанию

ХОЧЕШЬ БОЛЬШЕ ДИНАМИКИ?
получай.

ну короче вот небольшой пример динамического массива

Код:
#include <iostream>

using namespace std;

int main(){
    int *p,*q; //создаем два указателя
    p = new int[5]; //выделяем память под массив
    q = p; //направляем q в начало массива
    for(int i=0; i<5; i++){
        *q = 2*i+1;
        q++; // переходим к следующему елементу        
    }
    q = p; //опять заставляем q показывать в начало массива
    for(int i=0; i<5; i++){
        cout << *q << " "; //вывод значений елементов массива
        q++;    
    }
    cout << endl;
    system("PAUSE");
    return 0;    
}

Последний раз редактировалось blacktener; 24.11.2011 в 14:28.
blacktener вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
процедура с масивом ms.yur Паскаль, Turbo Pascal, PascalABC.NET 2 10.04.2011 16:18
Как сделать выпадающее меню динамическим koval911 Microsoft Office Excel 5 12.11.2010 15:54
Как пользоваться динамическим IP? WinFasT Свободное общение 2 19.01.2010 09:00
Задание с масивом maloy-rom Помощь студентам 5 25.05.2009 19:02