计算与软件工程 作业二

作业要求(https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10402)

作业1

预习

1.PSP(Personal Software Process)
特点:
• 不局限于某一种软件技术 (如编程语言), 而是着眼于软件开发的流程, 这样不同应用的工程师可以互相比较。

• 不依赖于考试, 而主要靠工程师自己收集数据, 然后统计提高。

• 在小型,初创的团队中, 高质量的项目需求很难找到,这意味着给程序员的输入质量不高,在这种情况下, 程序员的输出 (程序/软件) 往往质量不高, 然而这并不能全部由程序员负责。

• PSP 依赖于数据

• 需要工程师输入数据, 记录工程师的各项活动, 这本身就需要不小的代价。

• 如果数据不准确或有遗失, 怎么办? 让工程师编造一些?

• 如果一些数据不利于工程师本人 (例如: 花很多时间修改缺陷), 我们怎么能保证工程师能如实地记录这些数据呢?

• PSP的目的是记录工程师如何实现需求的效率, 而不是记录顾客对产品的满意度。

2.程序效能分析
分析方法:
(1)抽样(Sampling)
抽样就是当程序运行时,Visual Studio时不时看一看这个程序运行在哪一个函数内,并记录下来,程序结束后,Visual Studio就会得出一个关于程序运行时间分布的大致的印象。这种方法的优点是不需要改动程序,运行较快,可以很快地找到瓶颈。但是不能得出精确的数据,代码中的调用关系(CallTree)也不能准确表示。
(2)代码注入(Instrumentation)
代码注入就是将检测的代码加入到每一个函数中,这样程序的一举一动都被记录在案,程序的各个效能数据都可以被精准地测量。这一方法的缺点是程序的运行时间会大大加长,还会产生很大的数据文件,数据分析的时间也相应增加。同时,注入的代码也影响了程序真实的运行情况。

3.单元测试
创建的主要步骤
(1)设置数据(一个假想的正确的E-mail地址);
(2)使用被测试类型的功能(用E-mail地址来创建一个User类的实体);
(3)比较实际结果和预期的结果(Assert.IsTrue(target!= null);)。
好的单元测试的标准
(1)单元测试应该在最低的功能/参数上验证程序的正确性。
(2)单元测试必须由最熟悉代码的人(程序的作者)来写。
(3)单元测试过后,机器状态保持不变。
(4)单元测试要快(一个测试运行时间是几秒钟,而不是几分钟)。
(5)单元测试应该产生可重复、一致的结果。
(6)独立性,单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性。
(7)单元测试应该覆盖所有代码路径,包括错误处理路径,为了保证单元测试的代码覆盖率,单元测试必须测试公开的和私有的函数/方法。
(8)单元测试应该集成到自动测试的框架中。
(9)单元测试必须和产品代码一起保存和维护。

个人程序运行截图

计算与软件工程 作业二_第1张图片
计算与软件工程 作业二_第2张图片

作业二

1.使用 Gitee(码云)代码托管仓库(https://www.jianshu.com/p/2a03c225ea93)

配置本地的 Git 用户信息
计算与软件工程 作业二_第3张图片
本机生成SSH公钥
计算与软件工程 作业二_第4张图片
托管代码遇到一些困难,操作生疏,废了很长时间
git add . 将当前目录所有文件添加到git暂存区
git clone 把仓库克隆到本地会建一个文件夹(若是自己建立了文件夹就不必再clone)
git commit -m "initial commit" #提交并备注提交信息
(若出现错误:fatal: Not a git repository (or any of the parent directories): .git ,则输入git init)
git push origin master #将本地提交推送到远程仓库

2.gitee链接(https://gitee.com/tang_yuan-yuan/git-tang/blob/master/5.cpp)

3.代码

#include
#include
#include
using namespace std;
int main()
{
    cout<<"********************欢 迎 进 入 四 则 运 算 系 统*********************"<>Ques1;
    Ques01=floor(Ques1);
    cout<<"                      二.行间距(正整数):";
    cin>>Ques5;
    cout<<"                      三.请输入算式中数值的最大值:";
    cin>>Ques3;
    while(1)
    {
        cout<<"                      四.运算中需要乘除法吗?y:需要;n:不需要";
        cin>>Ques4;
        cout<<"                      五.减法中需要有负数吗?y:需要;n:不需要";
        cin>>Ques7;
        cout<<"`````````````````````````````````````````````````````````````````````````"<>Ques1;
                    Ques01=floor(Ques1);
                }
                else
                {
					start = clock();
                    for(int j=0;j>ans;
                            if(ans==num1+num2)
                            {
                                cout<<"正确"<>ans;
                                if(ans==num1-num2)
                                {
                                    cout<<"正确"<num2)
                                {
                                    cout<>ans;
                                    if(ans==num1-num2)
                                    {
                                        cout<<"正确"<>ans;
                                    if(ans==num2-num1)
                                    {
                                        cout<<"正确"<>ans;
                            if(ans==num1*num2)
                            {
                                cout<<"正确"<>ans;
                                if(ans==num1/num2)
                                {
                                    cout<<"正确"<>Ques1;
                    Ques01=floor(Ques1);
                }
                else
                {
					start = clock();
                    for(int j=0;j>ans;
                            if(ans==num1+num2)
                            {
                                cout<<"正确"<>ans;
                                if(ans==num1-num2)
                                {
                                    cout<<"正确"<num2)
                                {
                                    cout<>ans;
                                    if(ans==num1-num2)
                                    {
                                        cout<<"正确"<>ans;
                                    if(ans==num2-num1)
                                    {
                                        cout<<"正确";
                                    }
                                    else
                                    {
                                        cout<<"答错了!"<>Ques6;
        if(Ques6=='y')
        {
            goto Again;
        }
        if(Ques6=='n')
        {
            goto Exit;
        }
        else
        {
            cout<<"输入有误,请重新输入:";
        }
    }
Exit:
    return 0;
}

你可能感兴趣的:(计算与软件工程 作业二)