cpp实验二
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实验二的更多相关文章
- 20145215&20145307《信息安全系统设计基础》实验二 固件设计
20145215&20145307<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 linux ...
- FPGA与simulink联合实时环路系列——实验二LED
实验二LED 实验内容 在实验一的基础上,将simulink产生的测试信号输出到FPGA开发板上的LED灯进行显示,这里要在生成的硬件模型上进行修改,将传送到FPGA的信号输出到8个LED灯上,并且对 ...
- 20145204&20145212信息安全系统实验二
20145204&20145212信息安全系统实验二 链接
- 20145204&20145212实验二报告
实验二固件设计 步骤: 1.开发环境的配置,参考实验一 1.将实验代码拷贝到共享文件夹中. 2.在虚拟机中编译代码.对于多线程相关的代码,编译时需要加-lpthread的库.下载调试在超级终端中运行可 ...
- 20145215实验二 Java面向对象程序设计
一.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 二.实验步骤 (一)单元测试 (1)三种代码 伪代码: ...
- 实验二 用C语言表示进程的调度
实验二 一. 实验目的 通过模拟进程的调度,进一步了解进程的调度的具体过程. 二. 实验内容和要求 1.进程PCB的结构体定义 2.定义队列 3.输入进程序列 4.排序(按到位时间) 5.输出进程运行 ...
- 20145218&20145240 《信息安全系统设计基础》实验二 固件设计
20145218&20145240 <信息安全系统设计基础>实验二 固件设计 实验报告链接:http://www.cnblogs.com/20145240lsj/p/6035512 ...
- 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...
- 实验二 PHP基本语法实验
实验二 PHP基本语法实验 0 实验准备 0.1实验环境和相关工具软件 具体到的机房环境,请在Windowsxp环境下做本实验: l 操作系统:Windowsxp l Web服务器:Apache ...
随机推荐
- layui从子iframe打开父iframe的tab选项卡
数据表格字段: {field: 'novelId', title: '小说ID',width:100,templet: '<div><a href="javascript: ...
- flink基础教程读书笔记
数据架构设计领域发生了重大的变化,基于流的处理是变化的核心. 分布式文件系统用来存储不经常更新的数据,他们也是大规模批量计算所以来的数据存储方式. 批处理架构(lambda架构)实现计数的方式:持续摄 ...
- Android 访问地址
private String url_data = "https://api.douban.com/v2/movie/top250?start=0&count=10"; 免 ...
- linux 免密码登陆
1.Linux下生成密钥 ssh-keygen的命令手册,通过”man ssh-keygen“命令: 通过命令”ssh-keygen -t rsa“ 生成之后会在用户的根目录生成一个 “.ssh”的文 ...
- PAT B1020
PAT B1020 解决思路 :贪心法,每次选取单价最高的月饼. 先上一个自己错误的解法 #include <cstdio> #include <algorithm> usin ...
- python模块和包(模块、包、发布模块)
模块和包 目标 模块 包 发布模块 01. 模块 1.1 模块的概念 模块是 Python 程序架构的一个核心概念 每一个以扩展名 py 结尾的 Python 源代码文件都是一个 模块 模块名 同样也 ...
- wps实现自动编码
1.打开wps,点击“开始”菜单,选择“标题1”样式,右键选择“修改样式” 2.在修改样式界面,左键点击“格式”选择“编号”选项 3.在打开的界面选择“多级编码”,选中一个样式,点击“自定义”按钮 4 ...
- Nim函数调用的几种形式
Nim函数调用的几种形式 Nim 转载条件:如果你需要转载本文,你需要做到完整转载本文所有的内容,不得删改文内的作者名字与链接.否则拒绝转载. 关于nim的例行介绍: Nim 是一门静态编译型的系统级 ...
- WCF分布式4:客户端访问寄宿在IIS中的WCF服务
部署过程比较简单,新建一个站点,指向服务的物理路径,设置一个端口.即可. 新建的站点对应一个应用程序池,设置应用程序池中的.NET版本为4.0 写一个测试客户端,访问IIS中的WCF服务,可能会出现, ...
- dos2章
讲FOR之前呢,咋先告诉各位新手朋友,如果你有什么命令不懂,直接在CMD下面输入: name /? 这样的格式来看系统给出的帮助文件,比如for /? 就会把FOR命令的帮助全部显示出来!当然许多菜鸟 ...