Первый Класс На C++

Тема в разделе "C/C++/C#", создана пользователем oli, 9 ноя 2011.

Статус темы:
Закрыта.
  1. oli

    oli Гость

    Доброго, я начинающий в c++, начал изучать классы, пытаюсь решить задачку такого плана:

    Создать класс Soft – файл, содержащий информацию о полном имени файла и ассоциативном приложении (doc – Word, psd – Photoshop, etc), используя динамическую память, размер, дату и время создания. Определить конструкторы: по умолчанию, копий и с параметром, обозначающим имя файла. Определить функции переименования файла, перемещения в другую папку и изменения ассоциативного приложения.

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


    Код (C++):
    #include "stdafx.h"




    #include<iostream>
    #include<conio.h>
    #include<stdio.h>
    #include <stdlib.h>


    using namespace std;
    class Stack{
    private:
    int kol;
    int i_el;
    int *ukaz;
    public:
    Stack();
    Stack(const Stack& s);
    Stack(int,int);

    int IsFull(){return (kol==i_el);};
    int IsEmpty(){return (i_el==0);};
    void Push(int number);
    void Pop();
    void Vivod();
    };</p>


    Stack::Stack(){
    kol=50;
    ukaz=new int[kol];
    i_el=0;
    for(int i=0; i<kol; i++){
    ukaz[i]=0;
    i_el++;
    }
    }

    Stack::Stack(const Stack& s){</p>

    kol=s.kol;
    ukaz=s.ukaz;
    i_el=s.i_el;

    for(int i=kol-i_el; i<kol;i++ )
    ukaz[i]=s.ukaz[i];
    }
    Stack::Stack(int k,int k1){
    kol=k1;
    i_el=k;
    ukaz=new int[k1];

    for(int i=0;i<k; i++){</p>

    cout<<i+1<<"el= ";
    cin>>ukaz[i];

    }
    }

    void Stack::Push(int number)
    {
    if (IsFull())
    cout<<"Error:Polnii stack"<<endl;
    else {</p>

    ukaz[i_el]=number;</p>

    i_el=i_el+1;



    }
    }
    void Stack::Vivod(){
    if(! IsEmpty())
    for(int i=0;i<i_el; i++){
    cout<<i+1<<"el= "<<ukaz[i]<<endl;
    }
    }
    void Stack::Pop(){

    if(IsEmpty())
    cout<<"Stack pust"<<endl;
    else {</p>

    cout<<"i= "<<i_el<<endl;
    ukaz[i_el-1]=0;
    kol--;
    i_el=i_el-1;


    }
    }

    void main(){

    int k, key,n,m;
    cout<<"Vvod steka" <<endl;
    cout<<"vvedite kolichestvo elementov steka: ";
    cin>>n;

    cout<<"Skoliko elementov budet vvedeno:";
    cin>>m;
    while(m>n){
    cout<<"Error: vvedite zanovo"<<endl;
    cout<<"vvedite kolichestvo elementov steka: ";
    cin>>n;

    cout<<"Skoliko elementov budet vvedeno:";
    cin>>m;
    }
    Stack q(m,n);</p>

    k=1;
    while (k){
    cout<<"Menu:"<<endl;
    cout<<"1-Kopirovanie steka"<<endl;
    cout<<"2-Dobavlenie elementa"<<endl;
    cout<<"3-Udalenie elementa"<<endl;
    cout<<"4-Proverka steka"<<endl;
    cout<<"5-Vivod steka"<<endl;
    cout<<"6-Vixod"<<endl;
    cout<<"Viberite punkt: ";
    cin>>key;

    switch(key){
    case 1:{
    Stack q1=q;
    q1.Vivod(); }
    break;



    case 2:{
    int c;
    cout<<"Vvedite chislo ";
    cin>>c;
    q.Push(c);}
    break;
    case 3:{
    q.Pop();}
    break;
    case 4:{
    if (q.IsEmpty())
    cout<<"Stek pustoi"<<endl;
    else
    cout<<"Stek s elementami"<<endl;
    }
    break;
    case 5:{
    if(q.IsEmpty())
    cout<<"Stek pustoi"<<endl;
    else

    q.Vivod();}
    break;


    case 6:{
    k=0;}
    break;
    }
    }
    }
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Ты что-то не в ту степь попёр, тебе надо было создать класс Soft, в котором должна находится информация о файле, а за место этого ты написал класс Stack, в котором хранятся просто числа.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей