C++习题
//"String.h"class String
{
char *Name;
char *Phone;
public:
void Set(char *name="gh",char *phone="13546892458");
char *GetName();//外部不能引用private,所以用这个函数,方便外部引用Name
~String();
void Show();
};
//"1.cpp"
/*2. 编写一个程序,输入用户的姓名和电话号码,按姓名的词典顺序排列后,输出用户的姓名和电话号码。*/
#include<iostream.h>
#include"String.h"
#include<string.h>
#define N 3
void String::Set(char *name,char *phone)
{
Name=new char[strlen(name)+1];
strcpy(Name,name);
Phone=new char[strlen(phone)+1];
strcpy(Phone,phone);
}
String::~String()
{
delete []Name;
delete []Phone;
}
char * String::GetName()
{
return Name;
}
void String::Show()
{
cout<<Name<<'\t'<<Phone<<endl;
}
void main()
{
int i,j,post;
String s[N],temp;
temp.Set();
temp.Show();
char name[20],phone[15];
cout<<"请输入用户信息(格式:姓名 电话号码):\n";
i=0;
for (i=0;i<N;i++)
{
cin>>name>>phone;
s[i].Set(name,phone);
}
for (i=0;i<N-1;i++)
{
post=i;
for (j=i+1;j<N;j++)
if (strcmp(s[post].GetName(),s[j].GetName())>0)
post=j;
if (post!=i)
{
temp=s[post];
s[post]=s[i];
s[i]=temp;
}
}
cout<<" NAME"<<'\t'<<"PHONENUMBER"<<endl;
for (i=0;i<N;i++)
s[i].Show();
}
最后运行的时候会弹出一个命令框,请各位帮忙看一下是什么问题,谢谢!