Complex.hpp文件源码:

#include <iostream>

using namespace std;

class Complex {
public:
Complex(float r = 0, float i = 0) : real{ r }, imag{ i }{ }
Complex(const Complex& obj) : real{ obj.real }, imag{ obj.imag }{ }
float get_real() const { return real; }
float get_imag() const { return imag; }
void show() const {
if (imag == 0) {
cout << real;
}
else if(imag < 0){
cout << real << " - " << std::abs(imag) << "i";
}
else {
cout << real << " + " << imag << "i";
}
}
void add(const Complex c2) {
real += c2.real;
imag += c2.imag;
}
friend Complex add(Complex c1, Complex c2) {
Complex c3;
c3.real = c1.real + c2.real;
c3.imag = c1.imag + c2.imag;
return c3;
}
friend bool is_equal(Complex c1, Complex c2) {
bool equal = false;
if (c1.real == c2.real && c1.imag == c2.imag) {
equal = true;
}
return equal;
}
friend float abs(Complex c1) {
float m = 0;
m = std::sqrt(c1.real * c1.real + c1.imag * c1.imag);
return m;
} private:
float real;
float imag;
};

  task3.cpp源码:

#include "Complex.hpp"
#include <iostream>
int main()
{
using namespace std;
Complex c1(4, -1);
const Complex c2(-2);
Complex c3(c1);
cout << "c1 = ";
c1.show();
cout << endl;
cout << "c2 = ";
c2.show();
cout << endl;
cout << "c2.imag = " << c2.get_imag() << endl;
cout << "c3 = ";
c3.show();
cout << endl;
cout << "abs(c1) = ";
cout << abs(c1) << endl;
cout << boolalpha;
cout << "c1 == c3 : " << is_equal(c1, c3) << endl;
cout << "c1 == c2 : " << is_equal(c1, c2) << endl;
Complex c4;
c4 = add(c1, c2);
cout << "c4 = c1 + c2 = ";
c4.show();
cout << endl;
c1.add(c2);
cout << "c1 += c2, " << "c1 = ";
c1.show();
cout << endl;
}

  运行测试结果截图:

  myUser.hpp文件源码 :(由于我的电脑内可能存在User.hpp文件,故使用myUser命名该文件)

#include <iostream>
#include <iomanip> using namespace std; class User {
public:
User(string namestr, string passwdstr = "111111", string emailstr = " ") : name{ namestr }, passwd{ passwdstr }, email{ emailstr }{ n++; }
void set_email() {
string new_email;
cout << "Enter email address: ";
cin >> new_email;
email = new_email;
cout << "email is set successfully\n";
}
void change_passwd() {
string old_passwd, new_passwd;
int count = 0;
cout << "Enter old password: ";
cin >> old_passwd;
while (count < 2) {
if (passwd != old_passwd) {
cout << "password input error. Please re-enter again: ";
cin >> old_passwd;
}
else {
cout << "Enter new password: ";
cin >> new_passwd;
passwd = new_passwd;
cout << "new password is set successfully...\n";
return;
}
count++;
}
if (passwd != old_passwd) {
cout << "password input error. Please try after a while.\n";
}
else {
cout << "Enter new password: ";
cin >> new_passwd;
passwd = new_passwd;
cout << "new password is set successfully...\n";
}
}
void print_info() {
cout << left << setw(8) << "name:" << name << endl;
cout << setw(8) << "passwd:" << "******" << endl;
cout << setw(8) << "email:" << email << endl;
}
void static print_n() {
cout << "there are " << n << " users.";
} private:
string name;
string passwd;
string email;
static int n;
};

  task4.cpp源码:

#include "myUser.hpp"
#include <iostream> int User::n = 0; int main()
{
using namespace std;
cout << "testing 1......" << endl;
User user1("Luna", "46713", "112@hotmail.com");
user1.print_info();
cout << endl
<< "testing 2......" << endl
<< endl;
User user2("Leonard");
user2.change_passwd();
user2.set_email();
user2.print_info();
User::print_n();
}

  运行测试结果截图:

C++语言程序设计实验一 类与对象的更多相关文章

  1. 160809208沈昊辰c语言程序设计实验选择结构设计

    <C语言程序设计>实验报告 学 号 160809208 姓 名 沈昊辰 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C区二层机房 ...

  2. 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...

  3. 160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C05 机 ...

  4. C语言程序设计实验报告三

    C程序设计实验报告 姓 名:张美盛 实验地点:家 实验时间:2020年3月29日 实验项目:4.3.1 If语句的应用 4.3.2 switch-case的应用 4.3.3 switch-case嵌套 ...

  5. C语言程序设计实验报告四

    C程序设计实验报告 姓 名:赖瑾 实验地点:家 实验时间:2020年4月9日 实验项目:5.3.1练习2 求数列的前n项和 5.3.2练习2 求水仙花数 5.3.4 十进制转换 5.3.5练习1 百马 ...

  6. C语言程序设计实验报告(第一次实验)

    C程序设计实验报告 实验项目:C语言程序设计教程实验1.3.2:1.3.3:1.3.4:2.3.1:2.3.2 姓名:赖瑾 实验地点:家 实验时间:2020.2.25 目录 C程序设计实验报告 一.实 ...

  7. Apex语言(八)类和对象

    1.类和对象 一切皆对象,是客观存在的万物,有标识.属性和行为.一个人,一台电脑,一辆轿车都是对象 类是创建对象的模板或蓝图,是对象的抽象,是对象的类型. 一个对象是一个类的一个实例,是一个类的变量. ...

  8. 160809209_李梦鑫_C语言程序设计实验2 选择结构程序设计

    实验2-1 输入3个数,并按由大到小的顺序输出. 实验要求: 编写一个C程序,输入3个数,并按由大到小的顺序输出. 源码:#include <stdio.h> int main() { i ...

  9. 符瑞艺 160809228_C语言程序设计实验2 选择结构程序设计

    实验2- 输入3个数,并按由大到小的顺序输出. 实验要求: 编写一个C程序,输入3个数,并按由大到小的顺序输出. 参考: 源码: #include <stdio.h> int main() ...

  10. 学号160809224姓名黄家帅c语言程序设计实验2 选择结构程序设计

    实验2-1 输入3个数,并按由大到小的顺序输出. 实验要求: 编写一个C程序,输入3个数,并按由大到小的顺序输出. 源码: #include <stdio.h>void main(){ i ...

随机推荐

  1. Redis 中ZSET数据类型命令使用及对应场景总结

    转载请注明出处: 目录 1.zadd添加元素 2.zrem 从有序集合key中删除元素 3.zscore 返回有序集合key中元素member的分值 4.zincrby 为有序集合key中元素增加分值 ...

  2. Spring MVC的运行流程

    Spring MVC的运行流程 摘要:本文档主要结合官方给出的Spring MVC流程图结合一个简单的Spring MVC实例,分析并介绍了Spring MVC的运行流程. 目录 Spring MVC ...

  3. lwl-resume 个人简历编辑使用说明

    LWL RESUME 是一个简洁.可自定义生成pdf的在线简历编辑工具! 如果你喜欢这种简约格式的简历风格,可以尝试用它来编辑简历 . 注意事项 不支持手机端编辑!请务必使用最新版Chrome(谷歌浏 ...

  4. 优化if...else...语句

    写代码的时候经常遇到这样的场景:根据某个字段值来进行不同的逻辑处理.例如,不同的会员等级在购物时有不同的折扣力度.如果会员的等级很多,那么代码中与之相关的if...elseif...else...会特 ...

  5. VUEX 使用学习三 : mutations

    转载请注明出处: 在 Vuex 中 store 数据改变的唯一方法就是提交 mutations.mutations里面装着一些改变数据方法的集合,这是Vuex 设计很重要的一点,就是把处理数据逻辑方法 ...

  6. Windows 安装 Anaconda

    下载 anaconda 官网 https://repo.anaconda.com/archive/ 国内镜像 https://mirrors.bfsu.edu.cn/anaconda/archive/ ...

  7. Ubuntu 安装播放器

    安装 VLC sudo snap install vlc snap 下载慢的看这里https://www.cnblogs.com/Ahtelek/p/ubuntu-snap.html

  8. 为啥要对jvm做优化?

    摘要:在jvm中有很多的参数可以进行设置,这样可以让jvm在各种环境中都能够高效的运行.绝大部分的参数保持默认即可. 本文分享自华为云社区<为什么需要对jvm进行优化,jvm运行参数之标准参数& ...

  9. 12月22日内容总结——django中间件的三个了解要求的方法、基于django中间件的功能设计、cookie与session

    目录 一.django中间件三个了解的方法 二.django中间件五个方法的执行流程详解 三.基于django中间件的功能设计 功能设计介绍 如何利用字符串导入模块 功能模拟 四.cookie与ses ...

  10. 线程、GIL、协程

    1.多进程实现TCP服务端并发 1.之前我们学习了一个服务端对应一个客户端的操作,但是我们无法实现一个服务端对应多个客户端的操作.因此我们需要在pycharm的右上角点击倒三角,选择Edit Conf ...