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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2012, 16:05   #1
Анннютик
Пользователь
 
Регистрация: 02.08.2011
Сообщений: 18
По умолчанию объектно-ориентированная задача с графическим интерфейсом

Помогите, пожалуйста, кто может!!! Я написала программу на С++, её надо сделать объектно-ориентированной с графическим интерфейсом с помощью Win32 API.
Вот собственно готовая,рабочая программка на С++:
Код:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
using namespace std;
 
struct KNIGI
{
    char nomer[30];
    char FIO[30];
    char nazvanie[40];
    int Year;
    int kolvo;
};
 
struct STR
{
    KNIGI *Knigi;
    STR *next;
};
 
STR * create(KNIGI * Knigi) //начальное формирование списка
{
   STR *r=new STR;
   r->Knigi=Knigi;
   r->next=NULL;
   return r;
}
 
 
 
void add(KNIGI *Knigi, STR* r) //добавление нового элемента списка
{
    while(r->next)
      r=r->next;
    r->next=new STR;
    r->next->Knigi=Knigi;
    r->next->next=NULL;
}
 
void vyvodKNIGI(KNIGI *Knigi) //вывод на экран
{
 
    cout<<"Номер: "<<Knigi->nomer<<endl;
    cout<<"Ф.И.О.: "<<Knigi->FIO<<endl;
    cout<<"Название книги: "<<Knigi->nazvanie<<endl;
    cout<<"Год издания:"<<Knigi->Year<<endl;
    cout<<"Количество экземпляров:"<<Knigi->kolvo<<endl;
    cout<<endl;
 
}
KNIGI * dobavlenieKnigi() //добавление книги
{
   cout<<"Данные о книге:"<<endl;
    KNIGI *Knigi=new KNIGI;
    fflush(stdin);
    cout<<"Введите номер:";
    cin.getline(Knigi->nomer,30);
 
    cout<<"Введите автора(ФИО):";
    cin.getline(Knigi->FIO,30);
 
    cout<<"Введите название:";
    cin.getline(Knigi->nazvanie,40);
 
    cout<<"Введите год издания:";
    cin>>Knigi->Year;
 
    cout<<"Введите количесиво экземпляров:";
    cin>>Knigi->kolvo;
 
    return Knigi;
}
int choice()
{
    int answer;
    cout<<"МЕНЮ"<<endl;
    cout<<"1. Добавить данные о новой книге"<<endl;
    cout<<"2. Вывод списка"<<endl;
    cout<<"3. Найти и удалить"<<endl;
    cout<<"4. Очистить список"<<endl;
    cout<<"5. Выход"<<endl;
    cout<<"Введите свой выбор:";
    cin>>answer;
    fflush(stdin);
    if(answer>=1 && answer<=5)
      return answer;
    else
      return 0;
}
 
STR* search_and_del(STR * str)
 
 
{
STR *last=str,*r= str;
char d[30];
           cout<<"Введите номер книги:"<<endl;
           cin.getline(d,30);
           while (r)
           {
               if (!strcmp(d,r->Knigi->nomer))
               {
                    {
                   vyvodKNIGI(r->Knigi);
 cout<<"Вы хотите очистить эту запись?(y/n) "<<endl;// Удаление записи
                        char c;
                        cin.get(c);
                        if (c=='y')
                                    {
                                r->Knigi=NULL;
                                if(last==r) str=r->next;
                                else last->next=r->next;
                         }
                        while(cin.get(c) && c!='\n');
                   last = r;
                   r=r->next;
                    }
                     }
               else if (strcmp(d,r->Knigi->nomer))
                   r=r->next;
           }
 
           cout<<"Запись удалена"<<endl;
return str;
}
 
 
 
int main()
{
    STR *r=NULL;
    int ch;
    while(1)
    {
       ch=choice();
if(ch==1)
       {
           cout<<endl;
           if(r==NULL)
             r=create(dobavlenieKnigi());
           else
             add(dobavlenieKnigi(),r);
       }
 
else if(ch==2)
       {
           cout<<endl;
           int i=0;
           int N=0;
 
           STR *pr=r;
           while (r)
           {
               N++;
               r=r->next;
           }
 
           KNIGI *buf;
           KNIGI **pKnigi=new KNIGI*[N];
           r=pr;
 
           while (r)
           {
                   pKnigi[i]=r->Knigi;
                   r=r->next;
                   i++;
               }
 
           r=pr;
 
 
               for (i=0;i<N;i++)
                   vyvodKNIGI(pKnigi[i]);
 
       }
 
else if(ch==3)
       {
           r=search_and_del(r);
       }
 
else if(ch==4)
       {
        char e;
        cout<<"Вы хотите удалить все записи? (y/n) "<<endl;// Удаление всех записей
        cin.get(e);
        if(e=='y')
        {r=NULL;
        cout<<"Все записи удалены!"<<endl;}
        else if (e=='n') cout<<endl;
        while(cin.get(e) && e!='\n');
       }
 
else if(ch==5)
       {
           break;
           cout<<endl;
       }
 
    }
    return 0;
}
Анннютик вне форума Ответить с цитированием
Старый 05.01.2012, 16:12   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Анннютик

Если эту портянку действительно написала ты, значит ты сможешь объяснить, что происходит в этих строчках?

while(r->next)
r=r->next;
r->next=new STR;
r->next->Knigi=Knigi;
r->next->next=NULL;
Rififi вне форума Ответить с цитированием
Старый 05.01.2012, 16:21   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

с чем у вас именно проблема?
с граф интерефейсом или же с ООП?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объектно-ориентированная база данных! Korsar chesti БД в Delphi 1 13.04.2011 16:24
Qt3 designer под Linux/программы с графическим интерфейсом HDMI Фриланс 3 31.01.2010 16:47
Создание программ с графическим интерфейсом Rembo C++ Builder 20 18.11.2009 19:28
[C++] Объектно-ориентированная среда. Двумерный массив. xsix Помощь студентам 31 29.12.2008 16:49
Программа с графическим интерфейсом raccooni Общие вопросы C/C++ 1 29.11.2008 18:00