#include <iostream>

using namespace std;

template<class T>

void insertionSort(T a[],int n){

int i,j;

T temp;

for(int i=1;i<n;i++)

{

int j=i;

T temp=a[i];

while (j>0&&temp<a[j-1]){

a[j]=a[j-1];

j--;

}

a[j]=temp;

}

}

int main()

{

int i ,a[10] = {5,2,6,0,3,9,1,7,4,8};

insertionSort(a,10);

for( i=0; i < 10 ;i++ )

{

cout << a[i]<<” “;

}

cout << endl;

return 0;

}

#include <iostream>

using namespace std;

template<class T>

void mySwap(T &x,T &y)

{

T temp=x;

x=y;

y=temp;

}

template<class T>

void selectionSort(T a[],int n)

{

for(int i=0;i<n-1;i++){

int leastIndex=i;

for(int j=i+1;j<n;j++)

if(a[j]<a[leastIndex])

leastIndex=j;

mySwap(a[i],a[leastIndex]);

}

}

int main()

{

int i;

int a[5]={0,2,3,1,5};

selectionSort(a,5);

for(int i=0;i<5;i++)

{

cout<<a[i]<<" ";

}

cout<<endl;

return 0;

}

#include <iostream>

using namespace std;

template<class T>

void mySwap(T &x,T &y)

{

T temp=x;

x=y;

y=temp;

}

template<class T>

void bubbleSort(T a[],int n){

int i=n-1;

while (i>0){

int lastExchangeIndex=0;

for(int j=0;j<i;j++)

if(a[j+1]<a[j]){

mySwap(a[j],a[j+1]);

lastExchangeIndex=j;

}

i=lastExchangeIndex;

}

}

int main()

{

int i;

int a[5]={0,2,3,1,5};

bubbleSort(a,5);

for(int i=0;i<5;i++)

{

cout<<a[i]<<" ";

}

cout<<endl;

return 0;

}

#include <iostream>

using namespace std;

template<class T>

int seqSearch(const T list[],int n,const T &key){

for(int i=0;i<n;i++)

if(list[i]==key)

return i;

return -1;

}

int main()

{

int i;

int a[5]={0,2,3,1,5};

cout<<seqSearch(a,5,1);

cout<<endl;

return 0;

}

#include<iostream>

using namespace std;

template<class T>

int binSearch(const T list[],int n,const T &key)

{

int low=0;

int high=n-1;

while (low<=high){

int mid=(low+high)/2;

if(key==list[mid])

return mid;

else if(key<list[mid])

high=mid-1;

else low=mid+1;

}

return -1;

}

int main()

{

int a[5]={1,2,3,4,5};

cout<<binSearch(a,5,2);

cout<<endl;

return 0;

}

#include<iostream>

using namespace std;

struct Complex {

double real;

double imaginary;

};

int add(int a, int b)

{

return a+b;

}

double add(double a,double b)

{

return a+b;

}

Complex add(Complex a, Complex b)

{

Complex i;

i.real=a.real+b.real;

i.imaginary=a.imaginary+b.imaginary;

return i;

};

int main() {

int m,n;

cout<<"Enter two integer:";

cin>>m>>n;

cout<<"Their sum:"<<add(m,n)<<endl;

double x,y;

cout<<"Enter two real number:";

cin>>x>>y;

cout<<"Their sum:"<<add(x,y)<<endl;

Complex a,b,c;

cout<<"Enter two complex unmber:";

cin>>a.real>>a.imaginary;

cin>>b.real>>b.imaginary;

c=add(a,b);

cout<<"Their sum:"<<c.real<<"+"<<c.imaginary<<"i"<<endl;

return 0;

}

#include <iostream>

using namespace std;

template <class T>

void InsertSort(T a[],int i,int j)

{

int x,y;

T s;

x=i,y=j,s=a[i];

while(x<y)

{

while(x<y&&a[y]>=s)

y--;

if(x<y)

a[x++]=a[y];

while(x<y&&a[x]<=s)

x++;

if(x<y)

a[y--]=a[x];

}

a[x]=s;

int k=0;

for(k=0;k<j+1;k++)

{

cout<<a[k]<<" ";

}

}

int main()

{

int a[5]={1,2,3,4,5};

InsertSort(a,0,4);

return 0;

}

#include <iostream>

#include <string>

using namespace std;

class User {

public:

void setInfo(string name,string passwd_="111111",string email_=" ");

void changePasswd();

void printInfo();

private:

string name;

string passwd;

string email;

};

void User::setInfo(string name_,string passwd_,string email_){

name=name_;

email=email_;

passwd=passwd_;

}

void User::printInfo(){

cout << "name:\t" <<name<<endl;

cout << "passwd:\t" <<"******"<<endl;

cout << "email:\t" <<email<<endl;

}

void User::changePasswd(){

int i=1;

string oldpasswd;

while(i<3)

{

cout<<"Enter the old passwd:";

cin>>oldpasswd;

if(oldpasswd==passwd)

{

string newpasswd;

cout<<"Enter the new passwd:";

cin>>newpasswd;

passwd=newpasswd;

break;

}

else if(oldpasswd!=passwd)

{

cout<<"passwd input error,Please re-Enter again:";

cin>>oldpasswd;

i++;

if(i==3)

{

cout<<endl<<" Please try after a while"<<endl;

}

}

}

}

int main() {

cout << "testing 1......" << endl;

User user1;

user1.setInfo("Leonard");

user1.printInfo();

user1.changePasswd();

user1.printInfo();

cout << endl << "testing 2......" << endl << endl;

User user2;

user2.setInfo("Jonny","92197","xyz@hotmail.com");

user2.printInfo();

return 0;

}

Summary:本次实验主要是对函数模板的熟悉,编写以及调试。编写模板时要注意对应问题和对各个部分的调谐。

C++ 实验2的更多相关文章

  1. [原] 利用 OVS 建立 VxLAN 虚拟网络实验

    OVS 配置 VxLAN HOST A ------------------------------------------ | zh-veth0(10.1.1.1) VM A | | ---|--- ...

  2. Android中Activity的四大启动模式实验简述

    作为Android四大组件之一,Activity可以说是最基本也是最常见的组件,它提供了一个显示界面,从而实现与用户的交互,作为初学者,必须熟练掌握.今天我们就来通过实验演示,来帮助大家理解Activ ...

  3. SEED实验系列文章目录

    美国雪城大学SEEDLabs实验列表 SEEDLabs是一套完整的信息安全实验,涵盖本科信息安全教学中的大部分基本原理.项目组2002年由杜文亮教授创建,目前开发了30个实验,几百所大学已采用.实验楼 ...

  4. 物联网实验4 alljoyn物联网实验之手机局域网控制设备

    AllJoyn开源物联网协议框架,官方描述是一个能够使连接设备之间进行互操作的通用软件框架和系统服务核心集,也是一个跨制造商来创建动态近端网络的软件应用.高通已经将该项目捐赠给了一个名为“AllSee ...

  5. (转)linux下和云端通讯的例程, ubuntu和openwrt实验成功(一)

    一.  HTTP请求的数据流总结#上传数据, yeelink的数据流如下POST /v1.0/device/4420/sensor/9089/datapoints HTTP/1.1Host: api. ...

  6. (原创) alljoyn物联网实验之手机局域网控制设备

    AllJoyn开源物联网协议框架,官方描述是一个能够使连接设备之间进行互操作的通用软件框架和系统服务核心集,也是一个跨制造商来创建动态近端网络的软件应用.高通已经将该项目捐赠给了一个名为“AllSee ...

  7. 实验:Oracle直接拷贝物理存储文件迁移

    实验目的:Oracle直接拷贝物理文件迁移,生产库有类似施工需求,故在实验环境简单验证一下. 实验环境: A主机:192.168.1.200 Solaris10 + Oracle 11.2.0.1 B ...

  8. Oracle RAC 更换存储实验

    实验环境准备: RHEL 6.5 + Oracle 11.2.0.4 RAC (2nodes) OCR和Voting Disk使用的是OCR1磁盘组,底层对应3个1G大小的共享LUN,一般冗余: DA ...

  9. Vertica集群扩容实验过程记录

    需求: 将3个节点的Vertica集群扩容,额外增加3个节点,即扩展到6个节点的Vertica集群. 实验环境: RHEL 6.5 + Vertica 7.2.2-2 步骤: 1.三节点Vertica ...

  10. 数据库---实验四 oracle的安全性和完整性控制

    实验内容: (一) 授权 . 以dba用户的身份登陆oracle,创建用户u1+学号后四位,u2+学号后四位. SQL> create user u1_3985 identified by &q ...

随机推荐

  1. Linux Django项目测试

    步骤 django项目: 依赖包 [root@web01 ~]# yum install openssl-devel bzip2-devel expat-devel gdbm-devel readli ...

  2. mysql官方测试库

    sql语句优化时没有测试数据,oracle官方提供测试数据 https://dev.mysql.com/doc/employee/en/employees-installation.html 到 ht ...

  3. Mysql --库和表的操作

    库的增删改查 系统数据库 创建数据库 数据库的相关操作 表的操作 存储引擎介绍(有点多 很啰唆) 表的介绍 表的操作 一.系统数据库 查看系统库: show databases; nformation ...

  4. [Linux]权限s权限和t权限

    问题 在<Unix高级编程>第4.9章节中描述了函数chmod()的参数mode常量值 当中S_ISUID.S_ISGID.S_ISVTX三个常量让人困惑. 分析 通过查阅文档,发现这几个 ...

  5. C# 微信开发-----微信会员卡(二)

    主要说说如何使用微信的激活会员卡 如图: 点击激活会员卡时,要跳转到如下的图片: 要实现这个功能,首先我们在创建会员卡后就操作如下代码 #region 添加激活时的自定义字段 string custo ...

  6. 使用Java方式连接HDFS

    IDEA中新建Maven工程,添加POM依赖, 在IDE的提示中, 点击 Import Changes 等待自动下载完成相关的依赖包. <?xml version="1.0" ...

  7. Java基础try-with-resource语法源码分析

    众所周知,所有被打开的系统资源,比如流.文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重大的生产事故. 在Java的江湖中,存在着一种名为finally ...

  8. 论文阅读笔记四十五:Region Proposal by Guided Anchoring(CVPR2019)

    论文原址:https://arxiv.org/abs/1901.03278 github:code will be available 摘要 区域anchor是现阶段目标检测方法的重要基石.大多数好的 ...

  9. 03.DataStructure

    01.list ''' list 특징 - 1차원 배열 구조 형식) 변수 = [값1, 값2] - 다양한 자료형 저장 가능 - index 사용=순서 존재 형식) 변수[n] - 값 수정( ...

  10. Linux 内存释放命令非常不错具有参考借鉴价值

    这篇文章主要介绍了Linux 内存释放命令的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下(http://www.120xcjl.com) 我使用的是CentOS 6.5 ,由于卸载Solr ...