• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы oli
  • Дата начала
Статус
Закрыто для дальнейших ответов.
O

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;
}
}
}
 
L

lazybiz

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!