- 浏览: 502604 次
- 性别:
- 来自: 惠州
文章分类
- 全部博客 (255)
- ant (1)
- springMVC (2)
- ajax (4)
- oracle (12)
- SSH (13)
- struts1 (2)
- Hibernate (14)
- spring (5)
- jstl (1)
- 连接池 (1)
- acegi (4)
- java (17)
- jquery (11)
- div+css (4)
- drupal (1)
- php (8)
- freemaker调模板生成静态页面 (1)
- xml (1)
- json (2)
- javascript (9)
- 正则表达式 (4)
- Ext (8)
- jdbc (1)
- sql server (2)
- perl (5)
- db4o (1)
- webservice (4)
- flex (13)
- it资讯 (1)
- joomla (0)
- 设计模式 (1)
- struts2 (4)
- s2sh (8)
- linux (3)
- ejb (2)
- android旅途 (24)
- android (36)
- C/C++ (16)
- mysql (1)
最新评论
-
fengyuxing168:
IBelyService bs = IBelyService. ...
为 Android 添加 Java 层服务也就是添加自定义的aidl服务到serviceManager 通过ServiceManager.getService取 -
dengzhangtao:
"由于ActivityManagerService是 ...
binder理解 -
yzyspy:
ActivityManagerService:startHom ...
Android的Launcher成为系统中第一个启动的,也是唯一的 -
Matchstick:
使用SELECT DISTINCT alias FROM Po ...
hibernate 一对多表查询时fetchMode.join 生成left outer join 出来数据重复问题 -
dlheart:
没看懂你什么意思啊,我遇到的问题是一对多,设了fetch = ...
hibernate 一对多表查询时fetchMode.join 生成left outer join 出来数据重复问题
//
此程序通过数组来定义集合类,虽不如链表高级,
//
但是也蛮有趣味的,只是在下才疏学浅,运行时有时会出现错误
//
注意:是有时会出错,程序不稳定
//
#include<iostream.h>
#define Max 10
int i=0,j=0;
class Set
{
private:
int elems[Max];
int pc;
public:
Set(){pc=0;elems[0]='\0';}
Set(Set &s); // 对象引用作为参数
void set();
int size(Set S);
void isfull(Set S);
void isempty(Set S);
int ismemberof(int n);
int add(int n);
int delet(int n);
Set bingji(Set A,Set B);
Set jiaoji(Set A,Set B);
void display();
};
void Set::set()//
初始化
{
int n,m,flag=0;
cout<<" 数组元素的个数(N<=10) :";
cin>>n;
cout<<" 输入数组元素:";
for(i=0;i<n;i++)
{cin>>m;
for(j=0;j<pc;j++)
if(m==elems[j]) {flag=1;break;}
if(!flag)
{
elems[i]=m;
pc++;}
}
}
int Set::size(Set S)
{
return S.pc;}
void Set::isempty(Set S)//
判断空
{if(!size(S))
cout<<"Empty!";
else cout<<"Not Empty!";}
void Set::isfull(Set S)//
判断满
{if(size(S)==Max)
cout<<"Full!";
else cout<<"Not Full!";}
int Set::ismemberof(int n) //
判断是否为其元素
{
for(int i=0;i<pc;i++)
if(elems[i]==n)
return 1;
return 0;
}
int Set::add(int n) //
增加元素
{
if(ismemberof(n))
return 1;
else if(pc>Max)
return 0;
else
{
elems[pc++]=n;
return 1;
}
}
int Set::delet(int n)//
删除元素
{
if(ismemberof(n))
{for(i=0;i<pc;i++)
if(elems[i]==n)
{pc--;
for(j=i;j<pc;i++)
elems[j]=elems[j+1];
}
return 1;
}
else return 0;
}
Set::Set(Set &p) //
复制构造函数
{
pc=p.pc;
for(int i=0;i<pc;i++)
elems[i]=p.elems[i];
}
Set Set::bingji(Set A,Set B)
{
Set C(A);
for(i=0;i<B.pc;i++)
for(j=0;j<C.pc;j++)
if(B.elems[i]!=C.elems[j]) C.add(B.elems[i]);
return C;
}
Set Set::jiaoji(Set A,Set B)
{
Set C;
for(i=0;i<B.pc;i++)
for(j=0;j<A.pc;j++)
if(B.elems[i]==A.elems[j]) C.add(B.elems[i]);
return C;
}
void Set::display ()//
{
if(pc<1) cout<<"ф"<<endl;
else
{
cout<<"{";
for(i=0;i<pc-1;i++)
cout<<elems[i]<<",";
cout<<elems[i]<<"}";
cout<<endl;
}
}
int main()
{
int n;
Set A,B,C;
cout<<"A";
A.set();
cout<<"B";
B.set();
cout<<"A=";
A.display();
cout<<"B=";
B.display();
cout<<"A∩B=";
C=A.jiaoji(A,B);
C.display();
cout<<"A∪B=";
C=A.bingji(A,B);
C.display();
cout<<" 从A 中选择要删除的元素:";
cin>>n;
A.delet(n);
cout<<"A=";
A.display();
cout<<" 从B 中选择要删除的元素:";
cin>>n;
B.delet(n);
cout<<"B=";
B.display();
cout<<" 输入要增加到集合A 中的元素:";
cin>>n;
if(!A.add(n)) cout<<" 增加失败, 集合A 已满!";
else
{cout<<"A=";
A.display();
}
cout<<" 输入要增加到集合B 中的元素:";
cin>>n;
if(!B.add(n)) cout<<" 增加失败, 集合B 已满!";
else
{cout<<"B=";
B.display();
}
return 0;
}
新写法
// 看看符合你要求不?
#include <iostream>
using namespace std;
const int Max=100;
//------------------------------------------------------
class Set
{
unsigned int len;
int Elem[Max];
public:
//Constructor
Set();
Set(const Set & SetObj);
inline bool isFull() const;
inline bool isEmpty() const;
inline unsigned int size() const;
inline int isMemberOf(int nElem) const;// 返回位置
bool addElem(int nElem);
bool delElem(int nElem);
Set Union(const Set & SetB);
Set InSection(const Set & SetB);
void display() const;
void Input();
};
//------------------------------------------------------
Set::Set():len(0){}
//------------------------------------------------------
Set::Set(const Set & SetObj)
{
for (len = 0;len < SetObj.len;len++)
{
Elem[len] = SetObj.Elem[len];
}
}
//------------------------------------------------------
unsigned int Set::size() const
{
return len;
}
//------------------------------------------------------
bool Set::isEmpty() const
{
return len == 0;
}
//------------------------------------------------------
bool Set::isFull() const
{
return len == Max;
}
//------------------------------------------------------
int Set::isMemberOf(int nElem) const
{
for (int index = 0; index < len; index++)
{
if (Elem[index] == nElem) return index + 1;
}
return -1;
}
//-------------------------------------------------------
void Set::display() const
{
for (int index = 0; index < len;index++)
cout<<Elem[index]<<" ";
cout<<endl;
}
//-------------------------------------------------------
// 添加和删除元素操作
//-------------------------------------------------------
bool Set::addElem(int nElem)
{
if (isFull()) return false;
else if (isMemberOf(nElem)!= -1){}//Do nothing
else
{
Elem[len++] = nElem;
}
return true;
}
//--------------------------------------------------------
bool Set::delElem(int nElem)
{
int loc = isMemberOf(nElem);
if (isEmpty()||(loc == -1)) return false;
for (int index = loc; index < len; index++)
{
Elem[index - 1] = Elem[index];
}
len--;
return true;
}
//--------------------------------------------------------
// 求交集(InSection) 与并集(Union)
//--------------------------------------------------------
Set Set::Union(const Set & SetB)
{
// 注意: 没有考虑溢出的情况
Set SetC(SetB);
for (int index = 0;index < len;index++)
SetC.addElem(Elem[index]);
return SetC;
}
//------------------------------------------------------------
Set Set::InSection(const Set & SetB)
{
Set SetC;
for (int index = 0;index < len;index++)
{
for (int indexB = 0;indexB < SetB.len;indexB++)
{
if (Elem[index] == SetB.Elem[indexB])
SetC.addElem(Elem[index]);
}
}
return SetC;
}
//--------------------------------------------------------------
void Set::Input()
{
int nSize;
cout<<" 请输入集合的大小:\n";
cin>>nSize;
if (nSize > Max) return;
cout<<" 请输入集合元素!\n";
for (int i = 0,elem; i < nSize ;i++)
{
cin>>elem;
addElem(elem);
}
}
//---------------------------------------------------------------
int main()
{
int n;
Set A,B,C;
cout<<"A";
A.Input();
cout<<"B";
B.Input();
cout<<"A=";
A.display();
cout<<"B=";
B.display();
cout<<"A∩B=";
C=A.InSection(B);
C.display();
cout<<"A∪B=";
C=A.Union(B);
C.display();
cout<<" 从A 中选择要删除的元素:";
cin>>n;
A.delElem(n);
cout<<"A=";
A.display();
cout<<" 从B 中选择要删除的元素:";
cin>>n;
B.delElem(n);
cout<<"B=";
B.display();
cout<<" 输入要增加到集合A 中的元素:";
cin>>n;
if (!A.addElem(n)) cout<<" 增加失败, 集合A 已满!";
else
{
cout<<"A=";
A.display();
}
cout<<" 输入要增加到集合B 中的元素:";
cin>>n;
if (!B.addElem(n)) cout<<" 增加失败, 集合B 已满!";
else
{
cout<<"B=";
B.display();
}
return 0;
}
发表评论
-
Linux内存点滴 用户进程内存空间 stack heap text data
2013-01-19 16:54 2900Linux内存点滴 用户进程内存空间 经常使用top ... -
Java JNI由浅入深(包括:Java和C++互传ArrayList泛型对象参数)
2011-10-28 15:09 4144Java JNI由浅入深(包括:Java和C++互传Array ... -
JNI编程(二) —— 让C++和Java相互调用(1)
2011-10-28 11:55 896自己在外面偷偷的算了下,又有将近两个月没更新过blog了。趁着 ... -
Android jni 常用方法备忘
2011-10-28 10:44 1162Android jni 常用方法备忘 ... -
c 线程同步
2011-10-28 09:23 851#include <pthread.h> #inc ... -
c++ 双线程协议解析 链表 sleep pthread_join g++编译
2011-10-25 11:37 1642主类 testlinklist.cpp #include &l ... -
undefined reference to 'pthread_create'问题解决
2011-10-25 10:19 1249undefined reference to 'pthread ... -
strlen与sizeof的区别
2011-10-12 14:20 807strlen与sizeof的区别 最后一个int a[3 ... -
C/C++语言数组作为参数传递
2011-09-28 17:08 1274#include <stdio.h> #inclu ... -
c/c++字符函数操作
2011-09-20 17:01 806// 取得Xml元素的值 // itemName:元 ... -
C++——指针,堆栈,引用,函数
2011-09-16 14:07 1318C++——指针,堆栈,引用,函数 ... -
今天看了两个小时<<21天学通C++>>把C++中的指针、引用、传值问题弄清楚了
2011-09-16 11:13 1025今天看了两个小时 <<21 天学通 C+ ... -
STL中的"集合类"的定义使用
2011-09-16 09:23 1356STL 中的" 集合类" 的定义 ... -
c++链表操作
2011-09-15 19:22 885最后我学习一下如何在已有的链表上插入节点 我们要考虑四 ... -
c++面向对象的编程入门篇--类构造函数与析构函数
2011-09-15 16:14 942请注意,这一节内容是c++的重点,要特别注意! 我们先说一 ... -
C++操作符含义
2011-01-20 10:44 2071C++操作符含义 "->"是 ...
相关推荐
1.11.6 数据集合类 17 1.11.7 通信类 18 1.12 类的消息机制 18 1.12.1 MFC如何接收一个寄送消息 18 1.12.2 MFC如何处理接收的消息 18 1.12.3 UI对象 20 1.13 小 结 20 第2章 控制条 21 2.1 通用控制条 21 2.2 用API...
1.11.6 数据集合类 17 1.11.7 通信类 18 1.12 类的消息机制 18 1.12.1 MFC如何接收一个寄送消息 18 1.12.2 MFC如何处理接收的消息 18 1.12.3 UI对象 20 1.13 小 结 20 第2章 控制条 21 2.1 通用控制条 21 2.2 用API...
本书是GIS系统开发技术和Visual C++编程技术的集合体,全面介绍和分析了MFC程序的框架结构和各种MFC辅助工具的使用方法,实例剖析了MFC中与图形和数据库应用程序设计有关的类。介绍了GIS系统的开发方法和思路,结合...
本书是GIS系统开发技术和Visual C++编程技术的集合体,全面介绍和分析了MFC程序的框架结构和各种MFC辅助工具的使用方法,实例剖析了MFC中与图形和数据库应用程序设计有关的类。介绍了GIS系统的开发方法和思路,结合...
本书是GIS系统开发技术和Visual C++编程技术的集合体,全面介绍和分析了MFC程序的框架结构和各种MFC辅助工具的使用方法,实例剖析了MFC中与图形和数据库应用程序设计有关的类。介绍了GIS系统的开发方法和思路,结合...
CADODatabase类包含关于_ConnectionPtr的函数集合。 // 打开一个数据库连接 BOOL CADODatabase::Open ( LPCTSTR lpstrConnection = _T("");//连接字符串 ) 示例: // 访问SQL Server示例 CADODatabase pAdoDb; ...
1.11.6 数据集合类 17 1.11.7 通信类 18 1.12 类的消息机制 18 1.12.1 MFC如何接收一个寄送消息 18 1.12.2 MFC如何处理接收的消息 18 1.12.3 UI对象 20 1.13 小 结 20 第2章 控制条 21 2.1 通用控制条 21 2.2 用API...
6.10 输入输出流实例 111 6.10.1 代码生成 111 6.10.2 一个简单的数据记录 117 6.11 小结 123 6.12 练习 123 第7章 常量 124 7.1 值替代 124 7.1.1 头文件里的const 124 7.1.2 const的安全性 125 7.1.3 集合 126 ...
19、模板的使用实际上是将类模板实例化成一个( )。 A.函数 B.对象 C.类 D.抽象类 20、假定MyClass为一个类,则该类的拷贝构造函数的声明语句为( )。 A.MyClass(MyClass x) B.MyClass&(MyClass x) C....
本书是GIS开发技术和Visual C++编程技术的集合体。全面介绍和分析了MFC程序的框架结构和各种MFC辅助工具的使用方法,实例剖析了MFC中与图形和数据库应用程序设计有关的类。介绍了GIS的开发方法和思路,结合具体代码...
如题,此实例非常适合学习,重载并自绘了Wnd类,效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果。实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其...
CADODatabase类包含关于_ConnectionPtr的函数集合。 // 打开一个数据库连接 BOOL CADODatabase::Open ( LPCTSTR lpstrConnection = _T("");//连接字符串 ) 示例: // 访问SQL Server示例 CADODatabase pAdoDb; ...
CADODatabase类包含关于_ConnectionPtr的函数集合。 // 打开一个数据库连接 BOOL CADODatabase::Open ( LPCTSTR lpstrConnection = _T("");//连接字符串 ) 示例: // 访问SQL Server示例 CADODatabase pAdoDb; ...
CADODatabase类包含关于_ConnectionPtr的函数集合。 // 打开一个数据库连接 BOOL CADODatabase::Open ( LPCTSTR lpstrConnection = _T("");//连接字符串 ) 示例: // 访问SQL Server示例 CADODatabase pAdoDb; ...
CADODatabase类包含关于_ConnectionPtr的函数集合。 // 打开一个数据库连接 BOOL CADODatabase::Open ( LPCTSTR lpstrConnection = _T("");//连接字符串 ) 示例: // 访问SQL Server示例 CADODatabase pAdoDb; ...
1.11.6 数据集合类 17 1.11.7 通信类 18 1.12 类的消息机制 18 1.12.1 MFC如何接收一个寄送消息 18 1.12.2 MFC如何处理接收的消息 18 1.12.3 UI对象 20 1.13 小 结 20 第2章 控制条 21 2.1 通用控制条 21 ...
15.1.2 类型安全的集合类 15.1.3 对象集合 15.1.4 类型化指针集合 15.2 使用CList模板类 15.2.1 绘制曲线 15.2.2 定义CCurve类 15.2.3 实现CCurve类 15.2.4 练习使用CCurve类 15.3 创建文档 15.4 改进视图 15.4.1 ...
15.1.2 类型安全的集合类 15.1.3 对象集合 15.1.4 类型化指针集合 15.2 使用CList模板类 15.2.1 绘制曲线 15.2.2 定义CCurve类 15.2.3 实现CCurve类 15.2.4 练习使用CCurve类 15.3 创建文档 15.4 改进视图 15.4.1 ...
6.10 输入输出流实例 111 6.10.1 代码生成 111 6.10.2 一个简单的数据记录 117 6.11 小结 123 6.12 练习 123 第7章 常量 124 7.1 值替代 124 7.1.1 头文件里的const 124 7.1.2 const的安全性 125 7.1.3 集合 126 ...
6.10 输入输出流实例 111 6.10.1 代码生成 111 6.10.2 一个简单的数据记录 117 6.11 小结 123 6.12 练习 123 第7章 常量 124 7.1 值替代 124 7.1.1 头文件里的const 124 7.1.2 const的安全性 125 7.1.3 ...