怎么在程序运行时将对象输入?在线急等。。。。。。。

beyond20082002 2003-12-17 12:20:27
//这个程序用栈,能进行查找,修改,排序(通过id这个对象成员)
#include <iostream.h>
const int size=20;
template<class T>
class stack{
T stck[size];
int tos;
public:
void init()
{tos=0;}
void push(T &ob);
T pop();
int search(T &ob);
T overwrite(int i, T &ob);
void sort();
};
template<class T>
void stack<T>::push(T &ob)
{
if(tos==size)
{
cout<<"stack is full\n";
return ;
}
stck[tos]=ob;
tos++;
}
template<class T>
T stack<T>::pop()
{
if(tos==0)
{cout<<"stack is empty\n";
return 0;
}
tos--;
return stck[tos];
}
template<class T>
int stack<T>::search(T &ob)
{
int i;
if(tos==0)
{
cout<<"stack is empty\n";
return -1;
}
for( i=0; i<tos; i++)
if(stck[i]==ob)
break;
if(i==tos)
{
cout<<"element is not\n";
return -1;
}
return i;
}
template<class T>
T stack<T>::overwrite(int i,T &ob)
{
T temp;
temp=stck[i];
stck[i]=ob;
return temp;
}
template<class T>
void stack<T>::sort()
{
T temp;
for(int i=0; i<tos ; i++)
{
int max=i;
for(int j=i+1; j<tos; j++)
{
if(stck[max]<stck[j])
max=j;
}
if(max==i) continue;
temp=stck[max];
stck[max]=stck[i];
stck[i]=temp;
}
}
#include<iostream.h>
#include<string.h>
class student{
int id;
char* name;
int sex;
public:
student(int a=-1,char* b=&"noname",int c=0):id(a),sex(c)
{
name=new char[strlen(b)+1];
strcpy(name,b);
}
~student()
{delete name;}
student(const student &b)
{ name=new char[strlen(b.name)+1];
strcpy(name,b.name);
id=b.id;
sex=b.sex;
}
void print();
int operator ==(student b);
int operator <(student b);
student& operator=(const student &a);
};
void student::print()
{
if(sex==0)
cout<<" "<<id<<" "<<name<<" "<<"famale\n";
else
cout<<" "<<id<<" "<<name<<" "<<"male\n";
}
int student::operator ==( student b)
{
if(id==b.id)
return 1;
return 0;
}
int student::operator <(student b)
{
if(id<b.id)
return 1;
return 0;
}
student& student::operator =(const student &a)
{
if(this == &a) return *this;
delete name;
name=new char[strlen(a.name)+1];
strcpy(name,a.name);
id=a.id;
sex=a.sex;
return *this;
}
void main()
{
int i,j,k;
int a;
char* b;
int c;
stack<student> sta;
sta.init();
{
cout<<"press 1: push stack element\npress 2: pop stack element\npress 3: sort stack element\npress 4: search stack element\npress 5: overwrite stack element\n";
cin>>i;
student ob;
switch(i)
{
case 1:cout<<"\nplease intput stack element:";
cin>>a>>b>>c;
ob=student(a,b,c); //就是这个句子
sta.push(ob);
cout<<"\npush compelet";
break;
case 2:cout<<"\npop element:";
sta.pop().print();
cout<<"\npop compelet";
break;
case 3:cout<<"\nsort element..............";
sta.sort();
cout<<"\nsort compelet";
break;
case 4:cout<<"\nsearch element";
cout<<"\nplease intput stack element id:";
cin>>a;
ob=student(a); //就是这个句子
j=sta.search(ob);
cout<<"\nyour search stack element number:"<<j;
cout<<"\nsearch compelet";
break;
case 5:cout<<"\noverwrite element";
cout<<"\nplease input stack element number:";
cin>>k;
cout<<"\nplease input new element:";
cin>>a>>b>>c;
ob=student(a,b,c); //就是这个句子
sta.overwrite(k,ob);
cout<<"\noverwrite compelet";
break;
}
cout<<" are you continue?";
}while(1);
}

...全文
102 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
beyond20082002 2003-12-17
  • 打赏
  • 举报
回复
我的QQ:120997921
beyond20082002 2003-12-17
  • 打赏
  • 举报
回复
case 1:cout<<"\nplease intput stack element:";
cin>>a>>b>>c;
ob=student(a,b,c); //就是这个句子,能达到我的效果吗?
sta.push(ob);
cout<<"\npush compelet";
break;
xhjbeidoulong 2003-12-17
  • 打赏
  • 举报
回复
可以动态定义对象,也可以new出来!
至于不同的对象,那就得进入不同的对象登计簿,:)
xhjbeidoulong 2003-12-17
  • 打赏
  • 举报
回复
没看完你的代码,现在对你的标题作个回答。
输入对象无非是对对象的成员变量赋值,那你可以要求用户输入一系列的值,然后完成一个对象的输入。
如我们在作人员登计时,将问他姓名,性别,年龄,等等。完成这些后,对他的登计完成
yifengling0 2003-12-17
  • 打赏
  • 举报
回复
问题提出不明确,这么长的代码,看不动啊。。讲讲关键的问题在那!?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧