作业要求
https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10402
个人开发技术
PSP——个人软件流程
一、IC(Individual Contributor)在团队中的流程
1、理解问题或任务
2、提出多种解决办法并估计工作量,其中包括寻找以前的解决方案,因为很多工作是重复性的 – 例如实现某些类似的web页面
3、与相关角色交流解决问题的提案, 决定最终方案
4、执行, 把想法变成实际中能工作的代码
5、修复缺陷, 对结果负责
二、软件工程师的成长
1、知识: 对具体技术的掌握, 动手能力
2、经验: 对问题领域的知识和经验的积累 (例如: 对于医疗行业的了解, 对于金融行业的了解)
3、通用的软件设计思想, 软件工程思想的提高
4、 职业技能 (区别于技术技能)
职业技能包括: 自我管理的能力; 表达和交流的能力; 与人合作的能力; 把任务按质按量完成的执行力。
三、PSP的各个阶段
1、计划
(1)、明确需求和其他因素,估计以下的各个任务需要多少时间
2、开发
(1)、需求分析 (包括学习新技术)
(2)、生成设计文档
(3)、设计复审 (和同事审核设计文档)
(4)、代码规范 (为目前的开发制定合适的规范)
(5)、具体设计
(6)、具体编码
(7)、代码复审
(8)、测试(自我测试,修改代码,提交修改)
3、报告
(1)、测试报告
(2)、计算工作量
(3)、事后总结, 并提出过程改进计划
四、PSP的特点
1、 不局限于某一种软件技术 (如编程语言), 而是着眼于软件开发的流程, 这样不同应用的工程师可以互相比较。
2、不依赖于考试, 而主要靠工程师自己收集数据, 然后统计提高。
3、 在小型,初创的团队中, 高质量的项目需求很难找到,这意味着给程序员的输入质量不高,在这种情况下, 程序员的输出 (程序/软件) 往往质量不高, 然而这并不能全部由程序员负责。
4、PSP 依赖于数据
5、PSP的目的是记录工程师如何实现需求的效率, 而不是记录顾客对产品的满意度。
程序运行结果
程序说明
该程序可以实现年级以及难易程度的选择,可以判断对错以及累计的错题数目,但不支持括号和多个运算符,不能判断时间。
程序代码
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
int a0[1000],b0[1000],c0[1000],a1[1000],b1[1000],c1[1000],a2[1000],b2[1000],c2[1000],a3[1000],b3[1000],c3[1000],C[1000],a,b,c;
int i,j,A0,A1,A2,A3,B0,B1,B2,B3;
int A,B,k;
int min,max,m;
int CC,FS,YS;
k=0;
A0=0;A1=0;A2=0;A3=0;
B0=0;B1=0;B2=0;B3=0;
cout<<"*****************四则运算******************"<<endl;
char ch;
cout<<"年级:
1.一年级
2.二年级
3.三年级
4.四年级
5.五年级"<<endl;
cout<<"输入年级前面的数字选择年级:"<<endl;
cin>>ch;
if(ch=='1')
{
cout<<"**************生成一年级四则运算**************"<<endl;
}
if(ch=='2')
{
cout<<"**************生成二年级四则运算***************"<<endl;
}
if(ch=='3')
{
cout<<"**************生成三年级四则运算***************"<<endl;
}
if(ch=='4')
{
cout<<"**************生成四年级四则运算***************"<<endl;
}
if(ch=='5')
{
cout<<"**************生成五年级四则运算***************"<<endl;
}
cout<<"‘是’输入'1',‘否’输入'0'"<<endl;
cout<<"是否要有乘除法?"<<endl;
cin>>CC;
while(1) //判断输入是否合法
{
if(CC != 1&&CC != 0)
{
cout<<"输入不合法,请重新输入:";
cin>>CC;
}
else
break;
}
cout<<"是否要加减结果中有负数?"<<endl;
cin>>FS;
while(1) //判断输入是否合法
{
if(FS != 1&&FS != 0)
{
cout<<"输入不合法,请重新输入:";
cin>>FS;
}
else
break;
}
cout<<"是否要除法结果中有余数?"<<endl;
cin>>YS;
while(1) //判断输入是否合法
{
if(YS != 1&&YS != 0)
{
cout<<"输入不合法,请重新输入:";
cin>>YS;
}
else
break;
}
cout<<"请输入算式中两数取值范围[a,b](a<b):"<<endl;
cin>>min>>max;
if(min>=max)
{
cout<<"输入不合法,请重新输入:";
cin>>min>>max;
}
cout<<"A=输出算式总数 B=每行显示数量"<<endl;
cout<<"请依次输入A,B的值:"<<endl;
cin>>A>>B;
m=max-min+1;
for(i=0;i<1000;i++)
{
a0[i]=0;b0[i]=0;
a1[i]=0;b1[i]=0;
a2[i]=0;b2[i]=0;
a3[i]=0;b3[i]=0;
}
for(i=0;;i++)
{
a=min+rand()%m;
b=min+rand()%m;
c=rand()%4;
if(CC==0) //如果CC=0,去除c=2,3的情况
{
if(c==2||c==3)
continue;
}
if(FS==0) //如果FS=0,去除c=0,1下结果小于0的情况
{
if(c==0)
{
if(a+b<0)
continue;
}
else if(c==1)
{
if(a-b<0)
continue;
}
}
if(YS==0) //如果YS=0,且是除法,去除a,b相除有余数的情况
{
if(c==3)
if(0 != a%b)
continue;
}
//将算式分为加、减、乘、除四组
if(c==0) //加法
{
for(j=0;j<=A0;j++)
{
if(a==a0[j]&&b==b0[j])
{
B0++;break;
}
}
if(B0>0)
{
B0=0;continue;
}
else
{
a0[A0]=a;
b0[A0]=b;
c0[A0]=a+b;
A0++;
}
}
else if(c==1) //减法
{
for(j=0;j<=A1;j++)
{
if(a==a1[j]&&b==b1[j])
{
B1++;break;
}
}
if(B1>0)
{
B1=0;continue;
}
else
{
a1[A1]=a;
b1[A1]=b;
c1[A1]=a-b;
A1++;
}
}
else if(c==2) //乘法
{
for(j=0;j<=A2;j++)
{
if(a==a2[j]&&b==b2[j])
{
B2++;break;
}
}
if(B2>0)
{
B2=0;continue;
}
else
{
a2[A2]=a;
b2[A2]=b;
c2[A2]=a*b;
A2++;
}
}
else //除法
{
if(b==0)
continue;
for(j=0;j<=A3;j++)
{
if(a==a3[j]&&b==b3[j])
{
B3++;break;
}
}
if(B3>0)
{
B3=0;continue;
}
else
{
a3[A3]=a;
b3[A3]=b;
c3[A3]=a/b;
A3++;
}
}
if(A==A0+A1+A2+A3) //限制算式数量
break;
}
//输出
for(i=0;i<A0;i++) // 加
{
k++;
if(a0[i]<0)
cout<<"("<<a0[i]<<")";
else
cout<<a0[i]<<" ";
cout<<"+";
if(b0[i]<0)
cout<<"("<<b0[i]<<")";
else
cout<<" "<<b0[i]<<" ";
cout<<"= ? ";
if(k%B==0)
cout<<endl;
else
cout<<" ";
}
for(i=0;i<A1;i++) // 减
{
k++;
if(a1[i]<0)
cout<<"("<<a1[i]<<")";
else
cout<<a1[i]<<" ";
cout<<"-";
if(b1[i]<0)
cout<<"("<<b1[i]<<")";
else
cout<<" "<<b1[i]<<" ";
cout<<"= ? ";
if(k%B==0)
cout<<endl;
else
cout<<" ";
}
for(i=0;i<A2;i++) // 乘
{
k++;
if(a2[i]<0)
cout<<"("<<a2[i]<<")";
else
cout<<a2[i]<<" ";
cout<<"*";
if(b2[i]<0)
cout<<"("<<b2[i]<<")";
else
cout<<" "<<b2[i]<<" ";
cout<<"= ? ";
if(k%B==0)
cout<<endl;
else
cout<<" ";
}
for(i=0;i<A3;i++) // 除
{
k++;
if(a3[i]<0)
cout<<"("<<a3[i]<<")";
else
cout<<a3[i]<<" ";
cout<<"/";
if(b3[i]<0)
cout<<"("<<b3[i]<<")";
else
cout<<" "<<b3[i]<<" ";
cout<<"= ? ";
if(k%B==0)
cout<<endl;
else
cout<<" ";
}
cout<<"请在此输入各式的结果:"<<endl;
for(i=0;i<A;i++)
cin>>C[i];
int t=0,corr=0,f=0;
//判断输入结果的对错
for(i=0;i<A0;i++)
{
if(c0[i]==C[t])
{t++;corr++;}
else
{
t++;
cout<<"第"<<t<<"题答错!"<<endl;
f++;
}
}
for(i=0;i<A1;i++)
{
if(c1[i]==C[t])
{t++;corr++;}
else
{
t++;
cout<<"第"<<t<<"题答错!"<<endl;
f++;
}
}
for(i=0;i<A2;i++)
{
if(c2[i]==C[t])
{t++;corr++;}
else
{
t++;
cout<<"第"<<t<<"题答错!"<<endl;
f++;
}
}
for(i=0;i<A3;i++)
{
if(c3[i]==C[t])
{t++;corr++;}
else
{
t++;
cout<<"第"<<t<<"题答错!"<<endl;
f++;
}
}
if(A==corr)
cout<<"恭喜你都答对啦!!!!!!"<<endl;
else
cout<<"答错了"<<f<<"题,继续加油哟!"<<endl;
system("pause");
return 0;
}
关于Git
git学习与码云代码托管平台gitee
git的安装及使用方法:https://www.liaoxuefeng.com/wiki/896043488029600 或
https://gitee.com/help/categories/43
在码云代码托管平台gitee上创建仓库以及把代码托管到仓库中的方法步骤:https://www.jianshu.com/p/2a03c225ea93