C++题 高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/28 07:54:54
以下是老师给的实验内容:
删除序列中相同的数。
a)数据的类型不定(整型、实型、字符型等);
b)序列中包含的数的个数(固定、不固定);
c)序列中的数(已排好序、无序);
d)删除序列中相同的数;
e)显示原始序列和结果;
f)注意括号内为可选内容。
分析:从问题中抽取一个类,序列类SEQ,创建一个序列类,建立一个序列并排序,显示原始数据和结果。
设计方案:
删除序列中相同的数
Class SEQ
{//接口函数
构造函数
Input 输入序列数据
Sort 排序
Display 显示原始序列或排序后的序列
Delsame 删除序列中相同的数
Show 显示结果
//属性描述
n 序列中数据的个数
list[] 一维数组,存放原始数组及结果数组
}

#include <iostream>
#include <string>
using namespace std;
template<class T>
class SEQ{
int n;
T*list;
public:
SEQ(int i);//i是序列中数据的个数
~SEQ();
void Input();
void Sort();
void Display();
void Delsame();
void Show();
};

int main()
{
SEQ<int>t(10);//如果想用字符型,就定义为SEQ<char>t(n);括号中是数的个数
t.Input();
t.Display();//显示原始数据
t.Sort(); //排序
t.Display();//显示排序后的数据
t.Delsame();//删除相同的数
t.Show();//显示删除相同的数后的结果
return 0;
}
template<class T>
SEQ<T>::SEQ(int i):n(i){
list=new T[n];
}
template<class T>
SEQ<T>::~SEQ(){
delete[]list;
}
template<class T>
void SEQ<T>::Input(){
cout <<"请输入"<<n<<"个数:\n";
int i;
for(i=0;i<n;i++){
cin>>list[i];
}
}