标签:技术 过程改进 计算 同事 时间 复合 cout 个数 border
GitHub地址:https://github.com/LYbear/calculate
PSP
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
Planning |
计划 |
10 |
· Estimate |
· 估计这个任务需要多少时间 |
10 |
Development |
开发 |
655 |
· Analysis |
· 需求分析 (包括学习新技术) |
30 |
· Design Spec |
· 生成设计文档 |
30 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
10 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
5 |
· Design |
· 具体设计 |
40 |
· Coding |
· 具体编码 |
5h*60 |
· Code Review |
· 代码复审 |
1h*60 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
3h*60 |
Reporting |
报告 |
290 |
· Test Report |
· 测试报告+博客 |
4h*60 |
· Size Measurement |
· 计算工作量 |
10 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
40 |
合计 |
955 |
项目要求
附加要求
解题思路
这个题目可以被划分为以下三个问题:
如何解决
问题1
expression: (1+2+5)-(3*4)=
问题2
该种方法一般思路为:
问题3
判断用户输入情况只需接受用户输入比较统计得分即可。由于要求采用命令行界面完成,该部分主要需要控制及美化命令行界面。
测试部分
由于四则运算的规则繁杂,随机生成的算式需要判断各种情况的产生,也就无形之中给测试部分增添了很大压力。看过了《构建之法》第二章的所有测试部分之后,利用其中单元测试的部分对项目进行了统一的测试。详细情况见后文测试部分。
#include <iostream>
#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <time.h>
int main() //主函数
{
int n,a,right=0;
double percent;
cout<<"Please enter the number of the test:";
cin>> n >>endl;
for(int i=0;i<n;i++)
{
a=takeTest();
right=right+a;
}
cout<<"Powerful!"<<endl;
cout<<"The number of right:%d"+right<<endl;
percent=((double)right*100.00)/(double)n;
cout<<"The percent of right:%0.2f %%\n"+percent<<endl;
}
// 随机获取运算符函数
char getSignal()
{
char signal[4]={‘+‘,‘-‘,‘*‘,‘/‘};
srand((unsigned)time(NULL));
return signal[rand()%4];
}
//获取随机数函数
int random(double start, double end)
{
return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0));
}
//题目生成函数
int takeTest()
{
int get;
int num1,num2,a;
char signal;
srand((unsigned)time(NULL));
signal=getSignal();
num1=random(0,1000);
num2=random(1,1000);
if(signal==‘-‘)
{
if(num1<num2)
{
int temp;
temp=num1;
num1=num2;
num2=temp;
}
}
if(signal==‘/‘)
{
if(num2==0)
{
int temp;
temp=num1;
num1=num2;
num2=temp;
}
}
cout<<num1+signal+num2<<endl;
cin>>get<<endl;
fflush(stdin); //清空输入缓冲区
if(getResult(num1,num2,signal)==get)
{
cout<<"You‘re right!"<<endl;
a=1;
}
else
{
cout<<"It‘s wrong!\n"<<endl;
cout<<getResult(num1,num2,signal)<<endl;
a=0;
}
return a;
}
//获取运算结果函数
int getResult(int num1,int num2,char signal)
{
int res;
switch(signal)
{
case ‘+‘:
res=num1+num2;break;
case ‘-‘:
res=num1-num2;break;
case ‘*‘:
res=num1*num2;break;
case ‘/‘:
res=num1/num2;break;
default:
cout<<"运算符错误!"<<endl;
}
return res;
}
运行结果如图:
自我测评:
本程序由c++语言编写而成,在Visual C++6.0版本的编译器上测试执行成功。但是个人能力不够,花费时间也较多。
PSP2.1 |
Personal Software Process Stages |
实际耗时(分钟) |
Planning |
计划 |
20 |
· Estimate |
· 估计这个任务需要多少时间 |
0 |
Development |
开发 |
800 |
· Analysis |
· 需求分析 (包括学习新技术) |
120 |
· Design Spec |
· 生成设计文档 |
30 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
15 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
40 |
· Design |
· 具体设计 |
100 |
· Coding |
· 具体编码 |
7h*60 |
· Code Review |
· 代码复审 |
1.5h*60 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
2h*60 |
Reporting |
报告 |
330 |
· Test Report |
· 测试报告+博客 |
4.5h*60 |
· Size Measurement |
· 计算工作量 |
10 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
50 |
合计 |
1123 |
标签:技术 过程改进 计算 同事 时间 复合 cout 个数 border
原文地址:https://www.cnblogs.com/lybear/p/8882424.html