C++语言程序设计实验一 类与对象
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++语言程序设计实验一 类与对象的更多相关文章
- 160809208沈昊辰c语言程序设计实验选择结构设计
<C语言程序设计>实验报告 学 号 160809208 姓 名 沈昊辰 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C区二层机房 ...
- 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...
- 160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C05 机 ...
- C语言程序设计实验报告三
C程序设计实验报告 姓 名:张美盛 实验地点:家 实验时间:2020年3月29日 实验项目:4.3.1 If语句的应用 4.3.2 switch-case的应用 4.3.3 switch-case嵌套 ...
- C语言程序设计实验报告四
C程序设计实验报告 姓 名:赖瑾 实验地点:家 实验时间:2020年4月9日 实验项目:5.3.1练习2 求数列的前n项和 5.3.2练习2 求水仙花数 5.3.4 十进制转换 5.3.5练习1 百马 ...
- C语言程序设计实验报告(第一次实验)
C程序设计实验报告 实验项目:C语言程序设计教程实验1.3.2:1.3.3:1.3.4:2.3.1:2.3.2 姓名:赖瑾 实验地点:家 实验时间:2020.2.25 目录 C程序设计实验报告 一.实 ...
- Apex语言(八)类和对象
1.类和对象 一切皆对象,是客观存在的万物,有标识.属性和行为.一个人,一台电脑,一辆轿车都是对象 类是创建对象的模板或蓝图,是对象的抽象,是对象的类型. 一个对象是一个类的一个实例,是一个类的变量. ...
- 160809209_李梦鑫_C语言程序设计实验2 选择结构程序设计
实验2-1 输入3个数,并按由大到小的顺序输出. 实验要求: 编写一个C程序,输入3个数,并按由大到小的顺序输出. 源码:#include <stdio.h> int main() { i ...
- 符瑞艺 160809228_C语言程序设计实验2 选择结构程序设计
实验2- 输入3个数,并按由大到小的顺序输出. 实验要求: 编写一个C程序,输入3个数,并按由大到小的顺序输出. 参考: 源码: #include <stdio.h> int main() ...
- 学号160809224姓名黄家帅c语言程序设计实验2 选择结构程序设计
实验2-1 输入3个数,并按由大到小的顺序输出. 实验要求: 编写一个C程序,输入3个数,并按由大到小的顺序输出. 源码: #include <stdio.h>void main(){ i ...
随机推荐
- [机器学习] Yellowbrick使用笔记4-目标可视化
目标可视化工具专门用于直观地描述用于监督建模的因变量,通常称为y目标. 代码下载 当前实现了以下可视化: 平衡箱可视化Balanced Binning:生成带有垂直线的直方图,垂直线显示推荐值点,以将 ...
- js取不到iframe元素
跨域 iframe 请绕道,下文是针对非跨域 iframe 的问题排除 1.iframe 取不到值的问题的原因 1. 父页面未加载完成 2. iframe 未加载完成 3. 语法使用错误 4. 跨域( ...
- 通过Google Cloud Storage(GCS)管理Terraform的状态State
管理Terraform状态文件的最佳方式是通过云端的统一的存储,如谷歌云就用GCS. 首先要创建一个Bucket: $ gsutil mb -p pkslow -l us-west1 -b on gs ...
- 第三方模块的下载与使用 requests模块 openpyxl模块
今日内容 第三方模块下载操作 第三方模块: 别人写的魔魁啊 一般情况下都很强大 python中模块很多 如果想使用第三方模块 第一次必须先下载 后面就可以反复使用 =内置模块 下载第三方模块的方式: ...
- ng + zorro angular表格横纵向合并,横向目前是手动,纵向是自动合并,微调后可适配三大框架使用
表格横纵向合并,可以看一下代码编写之前和之后的样式,先上图~~ 表格页面文件.html <h1>正常表格</h1> <nz-table #colSpanTable [nz ...
- 特殊input框需求,粘贴文字或者扫码筛选检查后加密为password格式,否则正常显示/假如用户输入的信息是以mima开头,就切换输入框为密码类型
1.angular8粘贴文字或者扫码筛选检查后加密为password格式,否则正常显示 <input [type]="myInputType" (keyup.enter)=& ...
- Python3+Selenium3自动化测试-(七)
在实际定位元素的过程中,发现有一种情况让人很是恼火,根据xpath路径定位,感觉像是没错哦,但是执行时就来一个报错信息--为什么呢? 多表单切换 例如我们登录网易邮箱时就会发现,定位登录框时,一个嵌套 ...
- windows11预览版装WSA心得
这两天心血来潮想要装个WSA(安卓windows子系统),原来一直用的安卓模拟器(mumu啊蓝叠啊逍遥啊),但感觉像wsa这种安卓系统与主系统融合的模式更带感,于是开始了我艰苦的安装(瞎捯饬)之路 我 ...
- 如何在es中查询null值
目录 1.背景 2.需求 3.准备数据 3.1 创建mapping 3.2 插入数据 4.查询 name字段为null的数据 5.查询address不存在或值直接为null的数据 6.参考链接 1.背 ...
- java执行js脚本
@Test public void aa() throws NoSuchMethodException { String regular = "function regular(args1) ...