1.函数重载编程练习

编写重载函数add(),实现对int型,double型,Complex型数据的加法。在main()函数中定义不同类型 数据,调用测试。

#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 ;
}

2.函数模板编程练习

编写实现快速排序函数模板,并在main()函数中,定义不同类型数据,调用测试。

#include<iostream>
using namespace std;
void QS(int a[], int, int);
int main()
{
int a[] = { ,,,,,,,,, }, k;
int n = ;
cout << "Before sort:" << endl;
for (k = ; k < n; k++)
cout << a[k] << ",";
cout << endl;
QS(a, , n - );
cout << "After sort:" << endl;
for (k = ; k < n; k++)
cout << a[k] << ",";
cout << endl;
return ;
} void QS(int s[], int left, int right)
{
if (left < right)
{
int i = left, j = right, x = s[left];//取出数组中第一个数
while (i < j)
{
while (i < j && s[j] >= x) // 从右侧找第一个小于x的数
j--;
if (i < j)
s[i++] = s[j];
while (i < j && s[i] < x) // 从左侧找第一个大于等于x的数
i++;
if (i < j)
s[j--] = s[i];
}
s[i] = x;
QS(s, left, i - ); // 数组中的数依次排序
QS(s, i + , right);
}
}

快速排序的关键就是从左侧和右侧找比原数大或者小的数,并且交换。

3.类的定义、实现和使用编程练习

#include <iostream>
#include <string>
using namespace std; // User类的声明
class User {
public:
User() :name(""), passwd(""), email("") {}; void setInfo(string name, string password = "", string email = ""); //×××(补足代码)
// 声明带有默认形参值的成员函数setInfo()
// 密码默认值为6个1
// 邮箱默认值为空串
void changePasswd();
void printInfo();
private:
string name;
string passwd;
string email;
};
// User类的实现
void User::setInfo(string name0, string password0, string email0)
{
name = name0;
passwd = password0;
email = email0;
}
// 成员函数setInfo()的实现
void User::changePasswd()
{
int count = ;
string passwd1;
string newpasswd;
cout << "the old password:";
cin >> passwd1;
while (passwd1 != ""&&count <=
 )
{
count++;
cout << "请重新输入";
cin >> passwd1;
}
if (count > )
{
cout << "plesae try later" << endl;
}
else
{ cout << "Enter new password:"<<newpasswd;
cin >> newpasswd;
cout << "the password is changed successfully" << endl;
passwd = newpasswd;
}
}// 功能:设置用户名(name), 密码(passwd), 联系邮箱(email)
// 成员函数changePasswd()的实现
// 功能:修改密码
// 要求:在修改密码前,要求先输入旧密码,验证无误后,才允许修改。
// 如果输入旧密码时,连续三次输入错误,则提示用户稍后再试,暂时退出修改密码程序。
// 补足代码
void User::printInfo()
{
cout << "name: " << name << endl;
cout << "password: " << "******" << endl;
cout << "email: " << email << endl;
} // 成员函数printInfo()的实现
// 功能:打印用户信息
// 要求: 密码以6个*显示
// 补足代码
// ×××基础实现版预期运行结果截图:(实际编写后,请修改main()中对象实例测试) // 在主函数中测试User类
// 用User类创建对象,测试类的功能
int main() {
cout << "testing 1......" << endl;
// 测试1
User user1;
user1.setInfo("Leonard");
user1.printInfo();
user1.changePasswd();
user1.printInfo(); cout << endl << "testing 2......" << endl << endl;
// 测试2
User user2;
user2.setInfo("Jonny", "", "xyz@hotmail.com");
user2.printInfo();
return ;
}

cpp实验二的更多相关文章

  1. 20145215&20145307《信息安全系统设计基础》实验二 固件设计

    20145215&20145307<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 linux ...

  2. FPGA与simulink联合实时环路系列——实验二LED

    实验二LED 实验内容 在实验一的基础上,将simulink产生的测试信号输出到FPGA开发板上的LED灯进行显示,这里要在生成的硬件模型上进行修改,将传送到FPGA的信号输出到8个LED灯上,并且对 ...

  3. 20145204&20145212信息安全系统实验二

    20145204&20145212信息安全系统实验二 链接

  4. 20145204&20145212实验二报告

    实验二固件设计 步骤: 1.开发环境的配置,参考实验一 1.将实验代码拷贝到共享文件夹中. 2.在虚拟机中编译代码.对于多线程相关的代码,编译时需要加-lpthread的库.下载调试在超级终端中运行可 ...

  5. 20145215实验二 Java面向对象程序设计

    一.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 二.实验步骤 (一)单元测试 (1)三种代码 伪代码: ...

  6. 实验二 用C语言表示进程的调度

    实验二 一. 实验目的 通过模拟进程的调度,进一步了解进程的调度的具体过程. 二. 实验内容和要求 1.进程PCB的结构体定义 2.定义队列 3.输入进程序列 4.排序(按到位时间) 5.输出进程运行 ...

  7. 20145218&20145240 《信息安全系统设计基础》实验二 固件设计

    20145218&20145240 <信息安全系统设计基础>实验二 固件设计 实验报告链接:http://www.cnblogs.com/20145240lsj/p/6035512 ...

  8. 实验二 Java面向对象程序设计

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

  9. 实验二 PHP基本语法实验

    实验二 PHP基本语法实验 0 实验准备 0.1实验环境和相关工具软件 具体到的机房环境,请在Windowsxp环境下做本实验: l  操作系统:Windowsxp l  Web服务器:Apache ...

随机推荐

  1. lua 基础 之 坑一样的地方

    -- local 局部-- local表=全局表,是同一个表,这主要是由于lua的表机制是匿名的,相当于函数的指针,local foo = foo,-- 即使本地foo没有在全局_G注册,还是引用的是 ...

  2. Exploit-Exercises nebule 旅行日志(三)

    继续探索之路,经过昨天的题目,忽然有那么点开窍了,今天继续: 看题目,还是用level对应的级别的帐号和密码登录,flag02的程序源码如图上所示,getegid 和 geteuid就不说了,这个程序 ...

  3. python中对文件、文件夹,目录的基本操作

    一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()2.返回指定目录下的所有文件和目 ...

  4. OO第一单元作业总结之初识面向对象

    第一个单元的三次作业均为求导,循序渐进的让我们掌握如何构造类和方法,让整个代码是面向对象的设计而不是面向过程的设计.如果第一次作业和第二次作业你只是简单的对过程着手架构类,到了第三次作业就会变得格外麻 ...

  5. dict的几个要点

    1. 采用key,value键-值对进行存储 2. key必须是不可变对象 3. key值不能重复 添加元素: aDict = {'1':'aaa','b':'bbb','3':'ccc'} aDic ...

  6. struts2的文件配置以及注释代码

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-/ ...

  7. 判断浏览器大于等于ie9

    方便自己查找 <script> (function (window) { var theUA = window.navigator.userAgent.toLowerCase(); if ...

  8. R画图的颜色搭配

    colors()函数列出当前已经支持的颜色名称 [19] "bisque3" "bisque4" "black" [22] "bl ...

  9. Date对象方法

    创建Date               new  Date() Date对象方法: get系列: getDate()            返回一个月中的某一天(1-31) getDay()    ...

  10. 访问mysql出现Access denied for user 'root'@'的解决方法

    1.关闭mysql的服务 方法一:我的电脑右键-管理-服务和应用程序-服务,找到mysql,右键关闭 方法二:cmd进入命令提示符,service mysqld stop(这个是网上的方法,我试了一下 ...