结对项目:代码复审+PSP
一、代码复审
首先我从代码风格规范和程序修改两方面进行审查。
(一)代码风格规范修改###
1 . 代码的部分未缩进:在用markdown粘贴代码时,需要后期tab,无形中加大工作量。
2 . 命名不确切:定义的有a,b,m,n等,在此用英文释义表示,更改为“分子numerator、分母denominator”。
int a,b,m,n; //修改前
char c;
int num1,den1,num2,den2,t;//修改后
char import;
3 . 注释过少:重要的语句并无解释,在此有加入,可移至博文底端附录代码部分。
(二)程序修改###
1 . 选取的分子随机数很可能会大于分母:使分子的取值范围缩小至分母数值内。
den1=rand()%100;
num1=rand()%den1;
den2=rand()%100;
num2=rand()%den2;
2 . 取分母的随机数可能为0:可添加if语句if(den1!=0||den2!=0),保证其取值为真分数时正常出题,再加以else语句,将分子与分母用 t 顺序转换,成为真分数。
switch(import){
if(den1!=0||den2!=0){
case 0:printf("%d+%d=\n",den1,den2);break;
case 1:printf("%d-%d=\n",den1,den2);break;
case 2:printf("%d*%d=\n",den1,den2);break;
case 3:printf("%d/%d=\n",den1,den2);break;
case 4:printf("(%d/%d)+(%d/%d)=\n",num1,den1,num2,den2);break;
case 5:printf("(%d/%d)-(%d/%d)=\n",num1,den1,num2,den2);break;
case 6:printf("(%d/%d)*(%d/%d)=\n",num1,den1,num2,den2);break;
case 7:printf("(%d/%d)/(%d/%d)=\n",num1,den1,num2,den2);break;
}
else{
t=den1;
den1=num1;
num1=t;
t=den2;
den2=num2;
num2=t;
switch(import){
case 0:printf("%d+%d=\n",den1,den2);break;
case 1:printf("%d-%d=\n",den1,den2);break;
case 2:printf("%d*%d=\n",den1,den2);break;
case 3:printf("%d/%d=\n",den1,den2);break;
case 4:printf("(%d/%d)+(%d/%d)=\n",num1,den1,num2,den2);break;
case 5:printf("(%d/%d)-(%d/%d)=\n",num1,den1,num2,den2);break;
case 6:printf("(%d/%d)*(%d/%d)=\n",num1,den1,num2,den2);break;
case 7:printf("(%d/%d)/(%d/%d)=\n",num1,den1,num2,den2);break;
}
}
}
3 .题目形式单一:只有真分数运算,所以我加入了整数与其混合。使用import=rand()%8 语句任取题目。
import=rand()%8;
(三)代码对比
注:修改后的程序,标记为(改)。
修改后代码:
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i,j;
printf("请输入题目的数量:");
scanf("%d",&j);
int num1,den1,num2,den2,t;//分子numerator 分母denominator 转换t (改)
char import; //输入的数量
srand((unsigned)time(NULL)); //取随机数
for(i=0;i<j;i++){
den1=rand()%100;
num1=rand()%den1; //保证分子<分母 (改)
den2=rand()%100;
num2=rand()%den2;
import=rand()%8; //任取题目 (改)
switch(import){
if(den1!=0||den2!=0){
case 0:printf("%d+%d=\n",den1,den2);break;
case 1:printf("%d-%d=\n",den1,den2);break;
case 2:printf("%d*%d=\n",den1,den2);break;
case 3:printf("%d/%d=\n",den1,den2);break;
case 4:printf("(%d/%d)+(%d/%d)=\n",num1,den1,num2,den2);break;
case 5:printf("(%d/%d)-(%d/%d)=\n",num1,den1,num2,den2);break;
case 6:printf("(%d/%d)*(%d/%d)=\n",num1,den1,num2,den2);break;
case 7:printf("(%d/%d)/(%d/%d)=\n",num1,den1,num2,den2);break;
}
else{ //保证分子< 分母 (改)
t=den1;
den1=num1;
num1=t;
t=den2;
den2=num2;
num2=t;
switch(import){
case 0:printf("%d+%d=\n",den1,den2);break;
case 1:printf("%d-%d=\n",den1,den2);break;
case 2:printf("%d*%d=\n",den1,den2);break;
case 3:printf("%d/%d=\n",den1,den2);break;
case 4:printf("(%d/%d)+(%d/%d)=\n",num1,den1,num2,den2);break;
case 5:printf("(%d/%d)-(%d/%d)=\n",num1,den1,num2,den2);break;
case 6:printf("(%d/%d)*(%d/%d)=\n",num1,den1,num2,den2);break;
case 7:printf("(%d/%d)/(%d/%d)=\n",num1,den1,num2,den2);break;
}
}
}
}
}
原始代码:
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i,j;
printf("请输入题目的数量:");
scanf("%d",&j);
int a,b,m,n;
char c;
srand((unsigned)time(NULL));
for(i=0;i<j;i++){
a=rand()%100;
b=rand()%100;
m=rand()%100;
n=rand()%100;
c=rand()%4;
switch(c){
case 0:c='+';break;
case 1:c='-';break;
case 2:c='*';break;
case 3:c='/';break;
}
printf("%d/%d%c%d/%d=\n",a,m,c,b,n);
}
}
二、PSP记录个人项目耗时情况
| Data | Start | End | Total(min) | Task | Remarks |
| 2016/3/10 | 11:00 | 11:30 | 30 | 讨论程序需要的模块 | finish |
| 2016/3/11 | 10:00 | 10:40 | 40 | 对软件的使用者进行需求分析 | finish |
| 2016/3/11 | 10:40 | 11:10 | 30 | 生成设计文档 | 仅为初稿,在编写过程中会根据实际情况加入新元素 |
| 2016/3/12 | 13:00 | 15:00 | 120 | 编写程序主要模块 | 不停调试阶段 |
| 2016/3/13 | 9:00 | 11:00 | 120 | 调试代码至基本功能够运行 | finish |
| 2016/3/13 | 15:00 | 16:00 | 60 | 优化界面 | 使软件操作流畅 |
| 2016/3/14 | 9:30 | 10:30 | 60 | 博文总结 | finish |
| 2016/3/15 | 13:00 | 13:57 | 57 | 规范格式并上传博客 | Markdown |
2016-3-22 1:24:32
结对项目:代码复审+PSP的更多相关文章
- 作业三 代码规范 代码复审 PSP
1.是否需要有代码规范(5分) 对于是否需要有代码规范,请考虑下列论点并反驳/支持: 1这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 反对.我并不认为代码规范都 ...
- 201871030112-贾傲羊 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接 课程班级博客链接 这个作业要求链接 作业要求链接 我的课程学习目标 学习PSP流程并运用于结对项目:学习GitHub代码的管理;学习结对编程的流程与内容 这个作业在哪些方 ...
- 作业三: 代码规范、代码复审、PSP
分) 对于是否需要有代码规范,请考虑下列论点并反驳/支持: 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 我是个艺术家,手艺人,我有自己的规范和原则. 规范不能 ...
- 作业三:代码规范、代码复审、PSP
一.代码规范 我认为我们编写的代码都需要进行规范的操作,因为如果为了图省事情或者为了减少时间去完成这个编程.在最后检验的时候就会出现一些警告,导致你这次编程的代码出现问题,当出现问题的时候你在回头去检 ...
- 作业三(代码规范、代码复审、PSP)
1.代码规范: 我支持代码要有规范,理由如下. (1).艺术是一个很带有个人风格的学科,天马行空才能凸显出自己的价值.但不要忘了,会艺术的不是生下来就会艺术, 他也需要按照前辈的步骤一步一步的学习基础 ...
- 代码规范、代码复审、PSP
作业三: 代码规范.代码复审.PSP 代码规范 代码规范的重要性 一.规范的代码可以促进团队合作 一个项目大多都是由一个团队来完成,如果没有统一的代码规范,那么每个人的代码必定会风格迥异.且不说会存 ...
- 高级四则运算器—结对项目反思(193 & 105)
高级四则运算器—结对项目反思(193 & 105) 本周我和一位韩国同学(71061105)一起结对编程完成了我们的结对项目——高级的小学四则运算题目生成器. PSP表格 PSP2.1 P ...
- WordCount结对项目
合作者:201631062124,201631062423 代码地址:https://gitee.com/yryx/WordCount 作业地址:https://edu.cnblogs.com/cam ...
- 结对项目-WordCount
结对作业: 成员:201631062115(me),201631062613(partner) 代码地址:https://gitee.com/ackary/WordCount 作业的链接地址:http ...
随机推荐
- 初识 Sql Server存储过程
开篇语 之前的公司并未使用存储过程来做项目,所以小生对存储过程的调用.使用也是一知半解,刚好这家公司就大量用到了存储过程 这次做的功能,为了保持风格一致,也是需要使用存储过程来实现动态sql和数据分页 ...
- android 通讯录实现
最近项目需要,于是自己实现了一个带导航栏的通讯录,上代码! 一.数据准备 (1)bean: public class Friend { private String remark; private S ...
- 定时管理器框架-Task.MainForm
入住博客园4年多了,一直都是看别人的博客,学习别人的知识,为各个默默无私贡献自己技术总结的朋友们顶一个:这几天突然觉得是时候加入该队列中,贡献出自己微弱的力量,努力做到每个月有不同学习总结,知识学习的 ...
- 【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)
RAC在LINUX上使用NFS安装前准备(六) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇 ...
- C#的扩展方法解析
在使用面向对象的语言进行项目开发的过程中,较多的会使用到“继承”的特性,但是并非所有的场景都适合使用“继承”特性,在设计模式的一些基本原则中也有较多的提到. 继承的有关特性的使用所带来的问题:对象的继 ...
- js获取屏幕宽高
最近想自己实现一个全屏滚动. 结果一开始就遇到了问题.因为不知道如何获取一个页面屏幕的高度. 网上所有的博客都是复制粘贴. 网页可见区域宽:document.body.clientWidth 网页可见 ...
- C# 文件下载之断点续传
注意,本文所说的断点续传特指 HTTP 协议中的断点续传.本文主要聊聊思路和关键代码,更多细节请参考本文附带的 demo. 工作原理 HTTP 协议中定义了一些请求/响应头,通过组合使用这些头信息.我 ...
- 【转】SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误
SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误 最近在VS2013上连接远程数据库时,突然连接不上,在跑MSTest下跑的时候,QTAgent32 crash.换成IIS ...
- SpringAOP与Redis搭建缓存
近期项目查询数据库太慢,持久层也没有开启二级缓存,现希望采用Redis作为缓存.为了不改写原来代码,在此采用AOP+Redis实现. 目前由于项目需要,只需要做查询部分: 数据查询时每次都需要从数据库 ...
- Nginx配置文件nginx.conf中文详解(转)
######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_ ...