1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

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

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

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

    oli Гость

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

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

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


    Код:
    #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

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

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