O
oli
Доброго, я начинающий в c++, начал изучать классы, пытаюсь решить задачку такого плана:
Создать класс Soft – файл, содержащий информацию о полном имени файла и ассоциативном приложении (doc – Word, psd – Photoshop, etc), используя динамическую память, размер, дату и время создания. Определить конструкторы: по умолчанию, копий и с параметром, обозначающим имя файла. Определить функции переименования файла, перемещения в другую папку и изменения ассоциативного приложения.
Вот что успел накидать по примеру, который вычитал в книге.. Дальше стопор...Если кто поможет и прокомментируем, очень буду рад, хочу действительно разобраться с этой темой:
Создать класс 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;
}
}
}