- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计题目
(一)集合的运算:交、并、补(难度系数:1.1)
全集:大写字母 ‘A’~’Z’
要求实现以下功能:
1、集合的输入:自动去掉重复和非法的字符
2、集合的显示:输出集合的全部元素
3、输出一个给定集合的补集
4、输出两个给定集合的交集和并集
#includeiostream
#includestring
using namespace std;
class jihe
{//类集合jihe的定义
private:
char *yuansu; //集合的元素值,以字符指针表示
int geshu; //集合中元素个数
bool biaoshi[26]; //标识A-Z相关元素的使用情况,false表未用,即无此元素,true表已用,即有此元素
public:
jihe()
{//无参构造函数,实现初始化///无参构造函数是自己定义的构造函数,只是构造函数是没有参数的,不用向函数传递数值或地址
yuansu=\0;///???——这个是字符串,字符串结尾用\0来标识,也是初始化字符串,初始化后字符串为空
geshu=0;
for(int i=0;i26;i++)
{
biaoshi[i]=false;
}
}
jihe(char *ch)
{//有参构造函数,以一个字符指针指向的值作为参数,实现初始化
int i;
geshu=0;
for(i=0;i26;i++) biaoshi[i]=false;
int len=strlen(ch);///测算ch字符串的长度 赋值到length变量里面
yuansu =new char[27];
for(i=0;ilen;i++)
{
if(ch[i]=A ch[i]=Z biaoshi[ch[i]-A]!=true)///???————判断字符串里面的数要在A-Z之间,ch[i]-A是获取该元素的数组下标(A的下标是0),如果该元素不存在集合里(即biaoshi[下标]!=true),则执行以下内容
{
yuansu[geshu]=ch[i];///???——geshu的初始化为0,这是把符合要求的元素放进到yuansu数组里面,ch[i]只是一个字符串,在你执行这个函数的时候已经输入进去了
biaoshi[ch[i]-A]=true;
geshu++;
}
}
yuansu[geshu]=\0;
}
void shuru()
{//输入集合中的全部元素,并去除不符合要求及重复的元素
char t;
yuansu=new char[27];
cout请输入一集合的所有元素(A-Z),以$结束:;
cint;
while(t!=$)
{
if(t=A t=Z biaoshi[t-A]!=true)///?——跟上面的解释一样,只是这里的ch[i]换成t了,为什么上面这个jihe的构造函数和下面的shuru构造函数内容基本相同呢?原因是上面jihe的函数是实现把所有元素都清空,实现初始化,下面的函数要自己一个个把元素从键盘上输入进去
{
yuansu[geshu]=t;///?
biaoshi[t-A]=true;///?
geshu++;
}
cint;
}
yuansu[geshu]=\0;///
}
char *ys()///?有什么作用,为什么要返回?///点解要在这个位置返回?————因为这是一个类,这些元素都在类里面,是私有的private:char *yuansu; int geshu; bool biaoshi[26];开头定义了这些,所以不能够从外面直接访问,而是同过public的构造函数去访问这些数据
{//返回集合中的元素
return yuansu;
}
bool *bs()///?
{//返回标识
return biaoshi;
}
int gs()///?
{//返回个数
return geshu;
}
jihe* buji()
{//求补集,返回一个jihe对象///体5明,如何起到求补集作用?
char *temp=new char[27];
int j=0;
for(int i=0;i26;i++)
{
if(biaoshi[i]==false)
{
temp[j]=A+i;///有咩作用,加了等于没加
j++;
}
}
temp[j]=\0;
return new jihe(tem
文档评论(0)