学习笔记:第11章 C/C++程序设计

来源:互联网 发布:aes算法原理 编辑:程序博客网 时间:2024/06/10 17:53
例11-1 一件简单的C/C++程序。
1 //first.cpp
2 /*第一个 C++程序*/
3 #include<iostream>
4 using namespace std;
5 int main(void)
6{
7  int i;
8  cout<<"First C++ Program!"<<endl;
9  cout<<"请输入一个整数:\n";
10 cint>>i;
11 cout<<"您输入的整数是:"<<i;
12 count<<'\n'
13 return 0;
14 }


例11-2 按照定义的精度和宽度输出。
#include<iostream.h>
#include<iomanip.h>
void main()
{
 float x=1233.76898;
 cout<<x<<endl;
 cout.precision(5);//设置输出精度
 cout.width(10);//设置输入宽度
 count<<x<<endl;
}


例11-3 判断给定的整数是否为素数。
#include<iostream.h>
void main()
{
int k,m;
cout<<"input a integer:";
cin>>m
for(k=m/2;m>0;k--){
if(m%k==0) break; //找到m的一个因子时终止for语句的执行
}
if(k>1)
count<<m<<"不是一个素数.";
else
count<<m<<"是一个素数.";
}


例11-4 输出100~200之间3的倍数。
#include<iostream.h>
void main()
{
int k;
for(k=100;k<=200;k++)
{
if(i%3)!=0 continue;//若k不是3的倍数,则跳过输出语句
cout<<k<<" ";//若k是3的倍数,则输出
}
}


例11-5 编写一个判断给定整数是否是素数的函数。
bool isPrime(int m)
{//若m是素数则返回true,否则返回false
int k;
if(m<1)
return false;
for(k=2;i<=m;k++)
if(m%k==0) break;
if(k<m)
return false;
return true;
}


例11-6 定义一个栈结构的类Stack.
const int STACK_SIZE=100;
class Stack{
int top;//数据成员:栈顶指针
int buffer[STACK_SIZE];//数据成员:栈空间
public:
Stack(){top=0;}
int length(){//成员函数:返回栈中元素的数目
return top;
}
bool push(int element){//成员函数:元数element入栈
if(top==STACK_SIZE){
cout<<"Stack is overflow!\n";
return false;
}
else{
buffer[top]=element;
top++;
return true;
}
}
bool pop(int &e);
};


例11-7 调用类实例的成员函数
class A{
int x;
public:
void f();
void g();
}


void main(void)
{
A e1;//创建A类的一个局部对象e1
e1.f();//调用对象e1的成员函数f对对象e1进行操作
e1.g();//调用对象e1的成员函数g对对象e1进行操作
e1.x=5;//错误,对象e1的数据成员x是不可见的
A *p;
p=new A;//创建A类的一个动态对象,用p指向该对象
p->f();//调用对象的成员函数f对p指向的对象进行操作
p->g();//调用对象的成员函数g对p指向的对象进行操作
}


例11-8 定义一个类String,其对象的空间在创建对象时申请。
class String{
char *str;//数据成员:存储串空间的首地址的指针变量
public:
String(){//构造函数
str=NULL;
}
String(const char *p){//构造函数
str=new char[strlen(p)+1];//申请空间
strcpy(str,p);
}
~String(){//析构函数
delete []str;//释放空间
str=NULL;
}
int length(){return strlen(str);}
};


例11-9 定义一个类A及其两个对象a和b。
clss A{
public:
void f();
void g(int i){x=i;f();}
private:
int x,y,z;
}
A a,b;


例11-10 定义一个元素顺序存储的线性表类,派生出队列和栈。
class LinearList{
int *buffer;
int size;
public:
LinearList(int num){
size=(num>10)?num:10;
buffer=new int[size];
}
~LinearList(){delete []buffer;}
bool insert(int x,int i);//在线性表第i个元素后插入新元素x
   //返回值表示操作成功或失败
bool remove(int &x,int i);//删除线性表的第i个元素,返回值表示操作成功或失败
int element(int i) const;//返回线性表的第i个元素
int search(int x) const;//查找值为x的元素并反馈其位置序号,未找到时返回0
int length() const;//返回线性表的长度(即元素数目)
}
class Queue:private LinearList{//Queue是LinearList的派生类
public:
bool enQueue(int x)//元素x入队,返回值表示操作成功或失败
{return insert(x,length());}
bool deQueue(int &x)//元素出队,由x队头元素
{return remove(x,1);}
}
class Stack:private LinearList{//Stack是LinearList的派生类
public:
bool push(int x)//元素x入栈,返回值表示操作成功或失败
{return insert(x,length());}
bool pop(int &x)//元素出栈,有x待会栈顶元素
{return remove(x,1);}
}



0 0
原创粉丝点击