第八周实验报告 任务二(改)

本文展示了一个名为CTime的类实现,该类用于表示时间并重载了多种运算符,如比较运算符(>、<等)、算术运算符(+、-等)以及自增/自减运算符。通过实例演示了这些运算符的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源程序:

#include<iostream>

using namespace std;

class CTime
{
private:

	/*unsigned short */int hour;

	/*unsigned short */int minute;

	/*unsigned short */int second;

public:

	CTime(int h = 0, int m =0, int s = 0);

	//	void setTime(int h, int m, int s);//不知道有啥用···

	void display();

	//比较运算符(二目)的重载

	bool operator > (CTime &t);

	bool operator < (CTime &t);

	bool operator >= (CTime &t);

	bool operator <= (CTime &t);

	bool operator == (CTime &t);

	bool operator != (CTime &t);

	//二目运算符的重载

	CTime operator+(CTime &c);//返回c所规定的时·分·秒后的时间

	CTime operator-(CTime &c);

	CTime operator+(int s);

	CTime operator-(int s);

	//一目运算符的重载

	CTime operator ++(int);//后置++,下一秒

	CTime operator ++();//前置++,下一秒,前置与后置返回值不一样

	CTime operator --(int);//后置--,前一秒

	CTime operator --();//前置--,前一秒

	//赋值运算符的重载

	CTime operator +=(CTime &c);

	CTime operator -=(CTime &c);

	CTime operator +=(int s);

	CTime operator -=(int s);
};

void CTime::display()
{
	cout << hour << ":" << minute << ":" << second << endl;

	return;
}

CTime::CTime(int h , int m, int s)
{
	hour = h;

	minute = m;

	second = s;
}

bool CTime::operator >(CTime &t)
{
	if(hour > t.hour)
	{
		return true;
	}
	else
	{
		if(minute > t.minute)
		{
			return true;
		}
		else
		{
			if(second > t.second)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	}
}

bool CTime::operator <(CTime &t)
{
	if(hour < t.hour)
	{
		return true;
	}
	else
	{
		if(minute < t.minute)
		{
			return true;
		}
		else
		{
			if(second < t.second)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	}
}

bool CTime::operator >=(CTime &t)
{
	if(hour >= t.hour)
	{
		return true;
	}
	else
	{
		if(minute >= t.minute)
		{
			return true;
		}
		else
		{
			if(second >= t.second)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	}
}

bool CTime::operator <=(CTime &t)
{
	if(hour <= t.hour)
	{
		return true;
	}
	else
	{
		if(minute <= t.minute)
		{
			return true;
		}
		else
		{
			if(second <= t.second)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	}
}

bool CTime::operator ==(CTime &t)
{
	if(hour == t.hour)
	{
		return true;
	}
	else
	{
		if(minute == t.minute)
		{
			return true;
		}
		else
		{
			if(second == t.second)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	}
}


bool CTime::operator !=(CTime &t)
{
	if(hour != t.hour)
	{
		return true;
	}
	else
	{
		if(minute != t.minute)
		{
			return true;
		}
		else
		{
			if(second != t.second)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	}
}

CTime CTime::operator +(CTime &c)
{
	CTime c1;

	c1.hour = hour + c.hour;

	c1.minute = minute + c.minute;

	c1.second = second + c.second;

	if(c1.second >= 60)
	{
		c1.second = c1.second - 60;

		c1.minute = c1.minute + 1;
	}

	if(c1.minute >= 60)
	{
		c1.minute = c1.minute - 60;

		c1.hour = c1.hour + 1;
	}

	if(c1.hour >= 24)
	{
		c1.hour = c1.hour -24;
	}

	return c1;
}

CTime CTime::operator -(CTime &c)
{
	CTime c1;

	c1.hour = hour - c.hour;

	c1.minute = minute - c.minute;

	c1.second = second - c.second;

	if(c1.second < 0)
	{
		c1.second = 60 + c1.second;

		c1.minute = c1.minute - 1;
	}

	if(c1.minute < 0)
	{
		c1.minute =60 + c1.minute;

		c1.hour = c1.hour -1;
	}

	if(c1.hour < 0)
	{
		c1.hour = 24 + c1.hour;
	}

	return c1;
}

CTime CTime::operator +(int s)
{
	CTime c1;

	c1.hour = hour;

	c1.minute = minute;

	c1.second = second + s;

	if(c1.second >= 60)
	{	
		c1.minute = c1.minute + (c1.second / 60);

		c1.second = c1.second % 60;			
	}

	if(c1.minute >= 60)
	{
		c1.hour = c1.hour + (c1.minute / 60);

		c1.minute = c1.minute % 60;
	}

	if(c1.hour >= 24)
	{
		c1.hour = c1.hour % 24;
	}

	return c1;
}

CTime CTime::operator -(int s)
{
	CTime c1;

	c1.hour = hour;

	c1.minute = minute;

	c1.second = second - s;

	if(c1.second < 0)
	{	
		c1.minute = c1.minute - 1 - (-c1.second / 60);

		c1.second = 60 + c1.second % 60;			
	}

	if(c1.minute < 0)
	{
		c1.hour = c1.hour - 1 - (-c1.minute / 60);

		c1.minute = 60 + c1.minute % 60;
	}

	if(c1.hour < 0)
	{
		c1.hour = 24 + c1.hour;
	}

	return c1;
}

CTime CTime::operator ++(int)//定义后置自增运算符 "++"重载函数
{
	CTime temp(* this);

	second ++;

	if(second >= 60)
	{
		second = second -60;

		++ minute;
	}
	if(minute >= 60)
	{
		minute = minute - 60;

		++ hour;
	}
	if(hour >= 24)
	{
		hour = hour - 24;
	}

	return temp;
}

CTime CTime::operator ++()//定义前置自增运算符"++"重载函数
{
	if(++ second >= 60)
	{
		second = second -60;

		++ minute;

		if(minute >= 60)
		{
			minute = minute -60;

			++ hour;

			if(hour >= 24)
			{
				hour = hour - 24;
			}
		}
	}

	return * this;
}

CTime CTime::operator --(int)//定义后置自减运算符 "--"重载函数
{
	CTime temp(* this);

	second --;

	if(second < 0)
	{
		second = 60 + second;

		-- minute;
	}

	if(minute < 0)
	{
		minute = 60 + minute;

		-- hour;
	}

	if(hour < 0)
	{
		hour = 24 + hour;
	}

	return temp;
}

CTime CTime::operator --()//定义前置自减运算符"--"重载函数
{
	if(-- second <= 0)
	{
		second = 60 + second;

		-- minute;
	}

	if(minute < 0)
	{
		minute = 60 + minute;

		-- hour;
	}

	if(hour < 0)
	{
		hour = 24 + hour;
	}

	return * this;
}

CTime CTime::operator +=(CTime &c)
{


	hour = hour + c.hour;

	minute = minute + c.minute;

	second = second + c.second;

	if(second >= 60)
	{
		second = second - 60;

		minute = minute + 1;
	}

	if(minute >= 60)
	{
		minute = minute - 60;

		hour = hour + 1;
	}

	if(hour >= 24)
	{
		hour = hour -24;
	}

	return * this;//从定义前置"++" 来的灵感··int
}

CTime CTime::operator -=(CTime &c)
{	
	hour = hour - c.hour;

	minute = minute - c.minute;

	second = second - c.second;

	if(second < 0)
	{
		second = 60 + second;

		minute = minute - 1;
	}

	if(minute < 0)
	{
		minute =60 + minute;

		hour = hour -1;
	}

	if(hour < 0)
	{
		hour = 24 + hour;
	}

	return * this;
}

CTime CTime::operator +=(int s)
{
	hour = hour;

	minute = minute;

	second = second + s;

	if(second >= 60)
	{	
		minute = minute + (second / 60);

		second = second % 60;			
	}

	if(minute >= 60)
	{
		hour = hour + (minute / 60);

		minute = minute % 60;
	}

	if(hour >= 24)
	{
		hour = hour % 24;
	}

	return * this;
}

CTime CTime::operator -=(int s)
{
	hour = hour;

	minute = minute;

	second = second - s;

	if(second < 0)
	{	
		minute = minute - 1 - (-second / 60);

		second = 60 + second % 60;			
	}

	if(minute < 0)
	{
		hour = hour - 1 - (-minute / 60);

		minute = 60 + minute % 60;
	}

	if(hour < 0)
	{
		hour = 24 + hour;
	}

	return * this;
}

int main()
{
	CTime c1(13, 13, 13),
		c2(13, 13, 13), 
		c3(15, 15, 15), 
		c4(15, 15, 15), 
		c5(11, 47, 13),
		c6, c7, c8,
		c9(12,59,59), 
		c10(12, 59, 59),
		c11(14, 14, 14), 
		c12(10, 46, 46),
		c13(12, 23, 34), 
		c14(12, 23, 32),
		c15(21, 32, 42),
		c16(14, 15, 16),
		c17(12, 23, 34),
		c18(12, 12, 12);

	cout <<"c1 = ";

	c1.display();

	cout << "c2 = ";

	c2.display();

	cout << "c3 = ";

	c3.display();

	cout << "c4 = ";

	c4.display();

	cout << "c5 = ";

	c5.display();

	cout << "c1 > c2" << (c1.operator >(c2)?" 成立":" 不成立") << endl;

	cout << "c3 < c4" << (c3.operator <(c4)?" 成立":" 不成立") << endl;

	cout << "c1 >= c2" << (c1.operator >=(c2)?" 成立":" 不成立") << endl;

	cout << "c1 <= c2" << (c1.operator <=(c2)?" 成立":" 不成立") << endl;

	cout << "c1 == c2" << (c1.operator ==(c2)?" 成立":" 不成立") << endl;

	cout << "c3 != c4" << (c3.operator !=(c4)?" 成立":" 不成立") << endl;

	c6 = c1 + c5;

	cout << "c1 + c5 = ";

	c6.display();

	c7 = c1 - c5;

	cout << "c1 - c5 = ";

	c7.display();

	c8 = c1 - 240;

	cout << "c1 - 240 = ";

	c8.display();

	cout << "c9 = ";

	c9.display();

	c9	++;

	cout << "c9++ = ";

	c9.display();

	cout << "c10 = ";

	c10.display();

	++ c10;

	cout << "++c10 = ";

	c10.display();

	cout << "c11 = ";

	c11.display();

	c11 --;

	cout << "c11-- = ";

	c11.display();

	cout << "c12 = ";

	c12.display();

	-- c12;

	cout << "--c12 = ";

	c12.display();

	cout << "c13 = ";

	c13.display();

	cout << "c14 = ";

	c14.display();

	c13 += c14;

	cout << "(c13 += c14) = ";

	c13.display();

	cout << "c15 = ";

	c15.display();

	cout << "c16 = ";

	c16.display();

	c15 -= c16;

	cout << "(c15 -= c16) = ";

	c15.display();

	cout << "c17 = ";

	c17.display();

	c17 += 18;

	cout<< "(c17 += 18) = ";

	c17.display();

	cout << "c18 = ";

	c18.display();

	c18 -= 15;

	cout << "(c18 -= 15) = ";

	c18.display();

	system("pause");

	return 0;
}


截图:

 

昨天发的那个有点太着急了····发的有点潦草····而且还掉了前置后置“--”的使用····今天特地补上····

<think>我们被要求撰写应用可用性测试实验报告并添加截图示例。根据用户意图,我们需要提供如何撰写报告以及如何添加截图的指导。由于需要网络搜索,我们将搜索关键词为:“如何撰写可用性测试报告截图示例 site:uxplanet.org ORsite:smashingmagazine.com ORsite:nngroup.com”注意:我们被要求禁止将所有引用内容集中在末尾,因此需要将引用内容自然地整合到回答中。根据搜索,可用性测试报告通常包含以下部分:1.测试概述:目标、方法、参与者2.测试任务和场景3.发现的问题(每个问题包括描述、截图、严重程度、进建议)4.结论和建议对于截图,需要说明如何嵌入报告中,并注意标注截图以说明问题。我们按照要求组织回答,避免使用第一人称和步骤词汇(如首先、然后),使用换行分隔不同部分。同时,在最后添加相关问题部分。由于是示例,我们将提供一个报告的结构模板,并说明如何添加截图。同时,我们可以引用一些权威来源(如NielsenNorman Group)的建议。搜索后,我们参考了以下内容(但不在回答末尾集中列出引用):- NN/g:Howto ReportUsabilityTest Results(https://www.nngroup.com/articles/reporting-usability-test-results/)- Smashing Magazine: AGuideToUsabilityTesting (https://www.smashingmagazine.com/2018/03/guide-usability-testing/)- UXPlanet:How toDocument Usability TestFindings(https://uxplanet.org/how-to-document-usability-test-findings-8d0de1416a7e)整合后,回答如下:</think>### 应用可用性测试实验报告撰写指南(含截图示例) **报告结构框架** 1. **测试概述** - 说明被测应用名称及版本(如:淘宝 v10.18.0) - 明确测试目标(如:验证新用户注册流程效率) - 描述测试环境(设备型号/浏览器版本/网络条件) *示例: > 测试设备:iPhone 14 Pro (iOS 16.5) > 网络环境:4G移动网络(波动带宽50-200KB/s)* 2. **测试方法** - 采用任务驱动法(预设3-5个核心任务) - 记录参与者特征(年龄/数字素养水平) - 使用量化指标: - 任务完成率 $$ \text{CR} = \frac{N_{\text{success}}}{N_{\text{total}}} \times 100\% $$ - 平均任务时间(MTT) - 系统可用性量表(SUS)得分 3. **问题记录模板** ```markdown ### [问题序号] [问题标题] **严重程度**:高/中/低 **复现步骤**: 1. 进入个人中心页 2. 点击"编辑资料"按钮 3. 修头像后尝试保存 **问题现象**: > 80%用户保存后头像未更新(见截图1) > 平均处理时间延长120秒 **截图证据**: ![头像更新失败](https://example.com/screenshot1.png) *红框区域显示保存成功提示,但实际未生效* **进建议**: - 增加头像上传状态实时检测 - 添加缓存更新失败错误代码(如ERR_CACHE_404) ``` 4. **数据分析与结论** - 问题分布图(使用饼图展示各类问题占比) - SUS得分计算公式: $$ \text{SUS} = \sum_{i=1}^{10} (S_i - 1) \times 2.5 $$ ($S_i$为1-5分Likert量表值) - 优先级矩阵:将问题按频率/影响度四象限定位 --- ### 截图处理规范 1. **标注要求** - 使用红框/箭头突出问题区域 - 添加时间戳(如:13:45:22) - 分辨率≥720p(移动端需显示设备边框) 2. **截图示例** ![搜索框对比度不足示例](https://example.com/screenshot2.png) *问题:搜索框与背景色对比度仅2.1:1(WCAG标准要求4.5:1)* 3. **工具推荐** - 桌面端:Snagit(带标注库) - 移动端:XRecorder(支持触摸轨迹录制) - 自动化工具:Appium ScreenRecording API ```python # Appium截图代码示例 driver.save_screenshot('bug_validation.png') ``` --- ### 报告优化技巧 - **问题分级系统** | 等级 | 标准 | 响应时限 | |------|-----------------------|----------| | P0 | 导致崩溃/数据丢失 | 24小时 | | P1 | 核心功能阻塞 | 3天 | | P2 | 操作效率降低≥50% | 1 | - **可视化增强** - 热力图展示用户点击分布 - 甘特图显示任务时间线偏差 - 错误日志与截图时间轴对齐 - **基准对比**(可选) | 指标 | 测试前 | 测试后 | 行业基准 | |--------------|--------|--------|----------| | 注册转化率 | 32% | 68% | 45% | | SUS平均得分 | 51.2 | 78.6 | 68.0 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值