• 计算与软件工程作业二


    作业要求

    https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10402

    作业1

    预习第二节

    1.单元测试主要步骤:
    (1)设置数据(一个假想的正确的E-mail地址);
    (2)使用被测试类型的功能(用E-mail地址来创建一个User类的实体);
    (3)比较实际结果和预期的结果(Assert.IsTrue(target!= null);)。
    单元测试应有最熟悉代码的人(程序的作者)来写。

    2.回归测试
    在单元测试的基础上, 我们就能够建立关于这一模块的回归测试 (Regression Test). 在软件项目中,如果一个模块或功能以前是正常工作的,但是在一个新的构建中出了问题,那这个模块就出现了一个“退步”(Regression),从正常工作的稳定状态退化到不正常工作的不稳定状态。

    3.效能分析
    分析方法:
    (1)抽样法(Sampling)
    当程序运行时,IDE工具记录程序的运行情况,输出程序运行时间的分布情况。
    (2)代码注入(Instrumentation)
    将检测的代码插入到每一函数中,记录程序的一举一动,精确的测量程序的各个效能数据。
    常规做法:
    先抽样,找出热点所在,后对热点模块进行代码注入的方法进行详细分析。

    4.PSP
    个人软件过程(Personal Software Process,PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够说明个体软件过程的原则; 帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。

    完成结果

    代码

     #include<iostream>
     #include<stdlib.h>
     #include<string>
     #include<time.h>
     using namespace std;
     using std::fixed;
     #define MIN 1
     #define MAX 10
    string to_string(int n)
    {
    	int m=n;
    	int i=0,j=0;
    	char s[MAX];
    	char ss[MAX];
    	while(m>0)
    	{
    		s[i++]= m%10 + '0';
    		m/=10;
    	}
    	s[i]='';
    
    	i=i-1;
    	while(i>=0)
    	{
    		ss[j++]=s[i--];
    	}
    	ss[j]='';
    	return ss;
    }
    string oper1(char op,int integer,int numerator,int denominator)//整数和分数的运算 
    {
    string rst;
    int temp1;
    if(op=='+')
    {
    	return rst=to_string(integer*denominator+numerator)+'/'+to_string(denominator);
    }
    if(op=='-')
    {
    	return rst=to_string(integer*denominator-numerator)+'/'+to_string(denominator);
    }
    if(op=='*')
    {	
    	for(int i=2;(integer*numerator)>=i;i++) 
        if((integer*numerator)%i==0 && denominator%i==0)
        {
        	temp1=(integer*numerator);
            temp1/=i;
            denominator/=i;
            i--;       
        }
    	return rst=to_string(temp1)+'/'+to_string(denominator);
    }
    if(op=='/')
    {	
    	for(int i=2;(integer*denominator)>=i;i++) 
        if((integer*denominator)%i==0 && numerator%i==0)
        {
        	temp1= integer*denominator;
            temp1/=i;
            numerator/=i;
            i--;       
        }
    	return rst=to_string(temp1)+'/'+to_string(numerator);
    }
    }
    string oper2(char op,int integer1,int integer2)//整数和整数的运算 
    {
    string rst;
    if(op=='+')
    {
    	return rst = to_string(integer1 + integer2);
    }
    if(op=='-')
    {
    	return rst = to_string(integer1 - integer2);
    }
    if(op=='*')
    {	
    	return rst = to_string(integer1 * integer2);
    }
    if(op=='/')
    {	
    	for(int i=2;integer1>=i;i++) 
        if(integer1%i==0 && integer2%i==0)
        {
            integer1/=i;
            integer2/=i;
            i--;       
        }
    	return rst = to_string(integer1) + '/' + to_string(integer2);
    }
    } 
    string oper3(char op,int numerator1,int denominator1,int numerator2,int denominator2)//分数和分数的运算 
    {
    string rst;
    int temp1,temp2;
    if(op=='+')
    {
    	temp1 = numerator1 * denominator2 + numerator2 * denominator1;
    	temp2 = denominator1 * denominator2;
    	for(int i=2;temp1>=i;i++)  
        if(temp1%i==0 && temp2%i==0)
        {
            temp1/=i;
            temp2/=i;
            i--;
        }
    	return rst=to_string(temp1)+'/'+to_string(temp2);
    }
    if(op=='-')
    {
    	temp1 = numerator1 * denominator2 - numerator2 * denominator1;
    	temp2 = denominator1 * denominator2;
    	for(int i=2;temp1>=i;i++) 
        if(temp1%i==0 && temp2%i==0)
        {
            temp1/=i;
            temp2/=i;
            i--;
        }
    	return rst=to_string(temp1)+'/'+to_string(temp2);
    }
    if(op=='*')
    {	
    	temp1 = numerator1 * numerator2;
    	temp2 = denominator1 * denominator2;
    	for(int i=2;temp1>=i;i++) 
        if(temp1%i==0 && temp2%i==0)
        {
            temp1/=i;
            temp2/=i;
            i--;
        }
    	return rst=to_string(temp1)+'/'+to_string(temp2);
    }
    if(op=='/')
    {	
    	temp1 = numerator1 * denominator2;
    	temp2 = denominator1 * numerator2;
    	for(int i=2;temp1>=i;i++) 
        if(temp1%i==0 && temp2%i==0)
        {
            temp1/=i;
            temp2/=i;
            i--;
        }
    	return rst=to_string(temp1)+'/'+to_string(temp2);
    }
    }
    int main()
    {
    	int grade;
    	char level;
    	
    
    	int n,integer1,integer2,numerator1,denominator1,numerator2,denominator2;
    	int rightNum=0,wrongNum=0;
    	string result;
    	float CorrectRatio=0.0;//定义正确率; 
    	char operation[]={'+','-','*','/'};	//定义运算符号 
    	int operand[]={1,2,3,4};//定义操作数;
    	char tempOperation;
    	int tempOperand;	
    	srand((unsigned)time(NULL));
    	cout<<"请输入数字选择年级 一年级或二年级(输入'1'),三年级或四年级或五年级(输入'2')"<<endl;
        cin>>grade;
    	cout<<"请选择难易程度 难(输入'A'),中(输入'B'),易输入('C')"<<endl;
    	cin>>level;
    	cout<<"选择题目数量"<<endl;	
    	cin>>n;
    		
    	
     	while(n)//选择题目数量; 
     	{
    	
    	integer1 = rand()%(MAX-MIN+1)+MIN; 
    	integer2 = rand()%(MAX-MIN+1)+MIN;
    	numerator1 = rand()%(MAX-MIN+1)+MIN;  
    	denominator1 = rand()%(MAX-MIN+1)+MIN;
    	numerator2 = rand()%(MAX-MIN+1)+MIN;
    	denominator2 = rand()%(MAX-MIN+1)+MIN; //随机生成两个整数和两个分数的分子和分母;
    	tempOperation = operation[rand()%4];
    	tempOperand = operand[rand()%4];//随机生成一个运算符和两个运算数的随机组合 
    	
     	
    	if(tempOperand==3)//两个操作数分别为整数和分数 
    	{
    		cout<<integer1<<tempOperation<<numerator1<<"/"<<denominator1<<"="<<endl;
    		cin>>result;
    		if(result==oper1(tempOperation,integer1,numerator1,denominator1)) 
    		{
    			rightNum++;
     			CorrectRatio=float(rightNum)/float(rightNum+wrongNum);
     			cout<<"回答正确!"<<"目前正确率为:"<<fixed<<CorrectRatio<<endl;
     		}
     		else
     		{
     			wrongNum++;
     			CorrectRatio=float(rightNum)/float(rightNum+wrongNum);
     			cout<<"回答错误!"<<"正确答案为:"<<oper1(tempOperation,integer1,numerator1,denominator1)<<endl;
    			cout<<"目前正确率为:"<<fixed<<CorrectRatio<<endl;
     		}
    	}
    	if(tempOperand==1||tempOperand==2)//两个操作数分别为整数和整数 
    	{
    		cout<<integer1<<tempOperation<<integer2<<"="<<endl;
    		cin>>result;
    		if(result==oper2(tempOperation,integer1,integer2))
    		{
    			rightNum++;
     			CorrectRatio=float(rightNum)/float(rightNum+wrongNum);
     			cout<<"回答正确!"<<"目前正确率为:"<<fixed<<CorrectRatio<<endl;
     		}
     		else
     		{
     			wrongNum++;
     			CorrectRatio=float(rightNum)/float(rightNum+wrongNum);
     			cout<<"回答错误!"<<"正确答案为:"<<oper2(tempOperation,integer1,integer2)<<endl;
    			cout<<"目前正确率为:"<<fixed<<CorrectRatio<<endl;
     		}
    	}
    	if(tempOperand==4)//两个操作数分别为分数和分数 
    	{
    		cout<<numerator1<<"/"<<denominator1<<tempOperation<<numerator2<<"/"<<denominator2<<"="<<endl;
    		cin>>result;
    		if(result==oper3(tempOperation,numerator1,denominator1,numerator2,denominator2))
    		{
    			rightNum++;
     			CorrectRatio=float(rightNum)/float(rightNum+wrongNum);
     			cout<<"回答正确!"<<"目前正确率为:"<<fixed<<CorrectRatio<<endl;
    	 	}
    	 	else
     		{
     			wrongNum++;
     			CorrectRatio=float(rightNum)/float(rightNum+wrongNum);
     			cout<<"回答错误!"<<"正确答案为:"<<oper3(tempOperation,numerator1,denominator1,numerator2,denominator2)<<endl;
    			cout<<"目前正确率为:"<<fixed<<CorrectRatio<<endl;
     		}
    	}
    	n--;
    	} 
    	system("pause");
    	return 0;
     
    }
    

    作业2

    git学习与码云代码托管平台gitee

    在登录gitee之后,应先创建一个仓库,用于存放自己的代码。在安装好git之后,可以利用git bash对git进行管理。

    托管于gitee上的链接

    https://gitee.com/yzzzw/yzwcode

  • 相关阅读:
    【自动化测试不求人】selenium三种等待时间
    Linux中vim的简单配置
    linux中解压缩并安装.tar.gz后缀的文件
    Linux命令全称
    Linux中的find(-atime、-ctime、-mtime)指令分析
    (转)docker安装Mysql8.0并挂载外部配置和数据
    自动化测试常见Python算法题&答案
    2019年的面试经验总结-软件测试
    Python基础语法
    抓包工具Charles的使用说明
  • 原文地址:https://www.cnblogs.com/yzzzw/p/12382072.html
Copyright © 2020-2023  润新知