#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. java入门需了解的历史

    1991年,Sun公司的Green项目,Oak 1995年,推出Java测试版 1996年,JDK1.0 1997年,JDK1.1 1998年,JDK1.2,大大改进了早期版本的缺陷,是一个革命性的版 ...

  2. 计算机基础 & python基础

    五大组成部分 控制器 运算器(数学运算+逻辑运算) 存储器(存取数据) 输入设备(键盘.鼠标等) 输出设备(显示器.打印机等) CPU CPU=运算器+控制器 CPU的分类: 精简指令集(RISC): ...

  3. 记录一下,PC端vue开发常用框架,已经用过elementUI和iview 接下来尝试另一个Muse-UI 喜欢它的点击效果

    官网地址: https://muse-ui.org/#/zh-CN/installation

  4. 分享腾讯云的Linux服务器连接速度很慢的解决心得(原创)

    最近发觉连接服务器非常慢,之前没有出现过这种情况. 我在这个腾讯云的服务器上弄了很多虚拟服务器,估计是数据量太大 造成了冗余数据较多的原因,咨询了下腾讯云的小哥, 给我了个明确的回复: 您反馈Xshe ...

  5. Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  6. python的单、双、多分支流程控制

    if流程控制总结: 1.当满足条件时,执行满足条件的代码. 2.当执行完if语句内代码,程序继续往下执行. 单分支: if 条件成立,执行满足条件的代码 如下: if a>50: print(' ...

  7. [转] 如何写好.babelrc?Babel的presets和plugins配置解析

    什么是Babel The compiler for writing next generation JavaScript. 官网是这么说的,翻译一下就是下一代JavaScript 语法的编译器. 作为 ...

  8. js分析 有_道_翻_译 md5

    0.参考 1.分析 1.1 输入翻译内容,手动点击“翻译”按钮 1.2 查看提交数据,通过多次提交确认变化量 1.3 CTRL+SHIFT+f 全局搜索 salt 或 sign 定位到三处js代码块, ...

  9. Python_多进程

    Python 多进程库 multiprocessing ,支持子进程.通信.数据共享.执行不同形式的同步 多进程,绕过gil ,实现多核的利用,多进程也是原生进程,由操作系统维护 在pycharm中, ...

  10. UVA 536 Tree Recovery 建树+不建树

    题意: 给出先序和中序,求后序. 思路: ①建树然后递归输出. //建树的 #include<iostream> #include<cstdio> #include<qu ...