scliuyong

导航

实验二

2 实验步骤

2.1实验过程

2.1.1实验代码

博客园网址:https://i.cnblogs.com/posts/edit;postId=16886508#postBody

 

 

2.1.1.1博客园截图

 

github的代码地址:

https://github.com/scliuyong/shiyan2-/blob/main/shiyan2(1).cpp

 

2.1.2实验过程

(1) 本人角色

驾驶员  孙绮萌 223201062206

领航员  刘勇   223201062134

 

(2) 我们选择一个小学四则运算自动生成程序的例子

要求:

1.        能够自动生成四则运算练习题

2.        可以定制题目数量

3.        用户可以选择运算符

4.        用户设置最大数(如十以内、百以内等)

5.        用户选择是否有括号、是否有小数

6.        用户选择输出方式(如输出到文件、打印机等)

7.        最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)     

2.1.3领航员实验过程

一、代码测试覆盖标准

 

2.1.3 .1UnitTest1.cpp截图

 

2.1.3.2函数覆盖测试截图

 

2.1.3.3对测试用例截图

 

 

二、测试用例

测试用例例如题目数量5道,加减乘除运算,最大数值为510,有小数,有括号,直接打印到屏幕上。

 

 

图二 测试用例截图

三、代码检查表

功能模块名称

四则运算式生成模块

审查人

 

刘勇

审查日期

2022/11/11

代码名称

实验二四则运算

代码作者

孙绮萌

重要性

审查项

 

程序的板式

重要性

审查性

结论

 

空行是否得体?

 

代码行内的空格是否得体?

 

“{” “}” 是否各占一行并且对齐于同一列?

重要

一行代码是否只做一件事?如只定义一个变量,只写一条语句。

重要

Ifforwhiledo等语句自占一行,不论执行语句多少都要加 “{}”

重要

在定义变量(或参数)时,是否将修饰符 * 紧靠变量名?注释是否清晰并且必要?

重要

注释是否有错误或者可能导致误解?

 

 

 

命名规则

重要性 

审查项

结论

重要

命名规则是否与所采用的操作系统或开发工具的风格保持一致?

 

标识符是否直观且可以拼读?

 

标识符的长度应当符合“min-length && max-information”原则?

重要

程序中是否出现相同的局部变量和全部变量?

 

类名、函数名、变量和参数、常量的书写格式是否遵循一定的规则?

 

 

 

表达式与基本语句 

重要性

审查项

结论

重要

如果代码行中的运算符比较多,是否已经用括号清楚地确定表达式的操作顺序?

 

是否编写太复杂或者多用途的复合表达式?

 

重要

是否将复合表达式与真正的数学表达式混淆?

重要

是否用隐含错误的方式写if语句? 例如

 

 

1)将布尔变量直接与TRUEFALSE或者10进行比较。

 

2)将浮点变量用“==”=”与任何数字比较。

 

3)将指针变量用“==”=”NULL比较

 

如果循环体内存在逻辑判断,并且循环次数很大,是否已经将逻辑判

 

 

断移到循环体的外面?

 

 

 

常量

重要性

审查项

结论

 

如果某一常量与其它常量密切相关,是否在定义中包含了这种关系?

 

 

 

函数设计 

重要性

审查项

结论

 

参数的书写是否完整?不要贪图省事只写参数的类型而省略参数名字。

 

参数命名、顺序是否合理?

 

参数的个数是否太多?

 

是否使用类型和数目不确定的参数

 

是否省略了函数返回值的类型?

 

函数名字与返回值类型在语义上是否冲突?

重要

是否将正常值和错误标志混在一起返回?正常值应当用输出参数获得,而错误标志用return语句返回。

重要

return语句是否返回指向栈内存指针或者引用

类的构造函数、析构函数和赋值函数

重要性

审查项

结论

重要

数据类型问题:

 

 

(1)变量的数据类型有错误吗?

 

(2)存在不同数据类型的赋值吗?

 

(3)存在不同数据类型的比较吗?

重要

变量值问题:

 

 

(1)变量的初始化或缺省值有错误吗?

 

 

(2)变量发生上溢或下溢吗?

 

(3)变量的精度够吗?     

重要

逻辑判断问题:

 

 

(1)由于精度原因导致比较无效吗?

 

(2)表达式中的优先级有误吗?

 

(3)逻辑判断结果颠倒吗? 

 

 

四、工作记录表.

项目

预计

实际

设计时间

4小时内

5小时

编码时间

2小时

3小时左右

测试时间

半小时

半小时

代码行数

300

313

测试代码行数

18

18

错误数量

0

0

错误修复时间

0

0

开发总时间

3小时

4小时

测试时候照片

 

测试时候照片

 

2.2选做题实验过程

 

GitHub代码地址:https://github.com/666wuhu/shiyan2xuanzuoti

 

 结对伙伴代码是以新型冠状病毒(Covid-19)引发了全球大流行疫情。疫情扩散对全球航空、旅游、体育、能源、金融市场等方面造成巨大影响。该传染病的变异性和传染性极强,且具有14天的潜伏期,详细掌握人员的流动、住所、接种疫苗及联系方式等信息对疫情控制显得尤为重要。所以,十分有必要在校园内设计一套功能丰富的学生疫情信息管理系统。

系统概述:

1)数据的处理可采用结构体数组(或链表),数据的存储要求使用文件读写的知识。

2)个人信息中应至少包括姓名、学号、联系方式、寝室号、入校日期、14日内途径地(数组)、是否接种过疫苗、3日内的体温记录。

功能概述:

1)文件读入功能——可以从jichu.dat文件中读入至少2名同学的人员信息,作为系统的基础数据。

2)数据输入、存储功能——可随时录入新的学生信息,具有输入提示;并将全部信息存入student.dat文件中。

3)查找和修改功能——可根据学号、姓名查询人员信息,并可以修改联系方式、寝室号等信息。将变动后的人员信息同步到student.dat文件中。

4)筛选功能——假设某地为风险地区,筛出14日内有此地途径史的学生,同时筛出此学生“同寝室其他人”的姓名/寝室号(人员列表中至少包含3个寝室,毎寝室至少4),将以上人员信息输出到guanzhu.dat文件中。

 

结对伙伴代码的检查

检查表

序号

重要性

审查项

结论

1

重要

头文件是否使用了 ifndef/define/endif 预处理块?

2

不重要

   头文件中是否只存放“声明”而不存放“定义”

3

不重要

   空行是否得体?

4

不重要

长行拆分是否得体?

5

重要

Ifforwhiledo等语句自占一行,不论执行语句多少都要加 “{}”

6

重要

一行代码是否只做一件事?如只定义一个变量,只写一条语句。

7

重要

   程序中是否出现相同的局部变量和全部变量?

8

重要

如果代码行中的运算符比较多,是否已经用括号清楚地确定表达式的操作顺序

9

重要

如果某一常量与其它常量密切相关,是否在定义中包含了这种关系?

10

不重要

参数的书写是否完整?不要贪图省事只写参数的类型而省略参数名字

11

重要

   数组或指针的下标是否越界?

12

重要

构造函数中是否遗漏了某些初始化工作?

13

重要

由于精度原因导致比较无效吗?

14

重要

        忘记进行错误处理吗?

15

重要

对不存在的或者错误的文件进行操作吗?

16

重要

文件以不正确的方式打开吗?

17

重要

文件结束判断不正确吗?

18

重要

没有正确地关闭文件吗? 循环终止条件不正确吗?

19

重要

错误地修改循环变量吗?

20

重要

存在误差累积吗?        

 

对同伴的代码写一篇500字以上的评论,介绍同伴的优缺点

我的搭档是一个17大高个的阳光女孩,很善良非常乐于助人,他之前不是学这个专业的,通过这次合作让我非常感到惊讶,并没有什么写代码的能力,刚开始我还以为他写不出来,但是在这个互联网时代,经过他的不懈努力,他完成了代码,虽然刚开始写出开了很多bug,但是在我们不断查资料的学习下完成了代码的编写。

   通过有坚持不懈的意志力,做每一件事情都很认真做完。优秀的人都会有共同的特点,而且他每次上课都有在认认真真听讲。从来没有溜号过。通过这段时间一起做实验的经历,他影响了我。虽然她是是一个女生,他不仅很细心,还有意志力,那种永不言败的精神。

在此期间,在我们对问题的交流,让我们不解决了问题,还发现了可以通过类似的方法去解决一系列的问题。做这个实验二人缺一不可团队的合作真的起了很大的作用,发挥了1+1>2的效果。

但是每个人都会有缺点,对所学的知识掌握不全面,总是对知识的是零零散散的,不经常系统的去复习知识点,希望在以后他可以改掉这些毛病,也希望以后有这样的机会,能够与他合作,还可以思考交流,在以后的学习中也可以互相交流学习互相帮助。


3 总结与体会

通过这次实训,我收获了很多,一方面学习到了许多以前没学过的专业知识与知识的应用,另一方面还提高了自我动手做项目的潜力。本次实训,是对我潜力的进一步锻炼,也是一种考验。从中获得的诸多收获,也是很可贵的,是十分有好处的。

在实训中我学到了许多新的知识。是一个让我把书本上的理论知识运用于实践中的好机会,原先学的时候感叹学的资料太难懂,此刻想来,有些其实并不难,关键在于理解。

在这次实训中还锻炼了我其他方面的潜力,提高了我的综合素质。首先,它锻炼了我做项目的潜力,提高了独立思考问题、自我动手操作的潜力,在工作的过程中,复习了以前学习过的知识,并掌握了一些应用知识的技巧等。其次,实训中的项目作业也使我更加有团队精神从那里,我学会了下面几点找工作的心态:

继续学习,不断提升理论涵养

在信息时代,学习是不断地汲取新信息,获得事业进步的动力。作为一名青年学子更就应把学习作为持续工作用心性的重要途径。走上工作岗位后,我会用心响应单位号召,结合工作实际,不断学习理论、业务知识和社会知识,用先进的理论武装头脑,用精良的业务知识提升潜力,以广博的社会知识拓展视野。

二、努力实践,自觉进行主角转化.

只有将理论付诸于实践才能实现理论自身的价值,也只有将理论付诸于实践才能使理论得以检验。

同样,一个人的价值也是透过实践活动来实现的,也只有透过实践才能锻炼人的品质,彰显人的意志。

务必在实际的工作和生活中潜心体会,并自觉的进行这种主角的转换。

 

沈阳航空航天大学

 

 

         

实 验 报 告

 

实验名称:实验二

实验题目:结对项目

 

 

 

   

软件工程

   

223201062134

   

刘勇

 

孙绮孟

   指导教师

孟桂英

      

 

 

 

 

完成时间:2022  11 

 




 1 实验内容及要求

1.1  教学内容及要求

完成结对项目,实现代码复审。

1.2  实验要求

首先在同学中找一个同伴,范围不限,可以在1~3班中随意组合,不要找同组的成员,女同学尽量找男同学结对,但是不做强制要求

1.2.1 实验题目

本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。

题目1

我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:

① 能够自动生成四则运算练习题

② 可以定制题目数量

③ 用户可以选择运算符

④ 用户设置最大数(如十以内、百以内等)

⑤ 用户选择是否有括号、是否有小数

⑥ 用户选择输出方式(如输出到文件、打印机等)

⑦ 最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)     

题目2

现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示,其使用规定如下:

① 楼层号为0~20,其中0号为地下一层

② 有楼层限制的电梯不在相应楼层停靠,如单双层

③ 所有电梯采用统一按钮控制

④ 请根据上述要求设计并实现一个电梯控制程序,使得用户平均等待时间尽可能小,如果有图形显示就更好了。

电梯编号

可服务楼层

最大乘客数量

最大载重量

1

全部楼层

10

800 kg

2

单层

10

800 kg

3

双层

10

800 kg

4

全部楼层

20

2000 kg

 

1.2.2实验要求

(1)     驾驶员

① 能够完成全部代码工作,程序基本实现全部要求功能,并将代码上传至GitHub代码托管系统中

② 能够对导航员在本次编程工作中起到的作用给出客观评价,并完成500字以上的总结,并且上传和队友工作时的照片

(2)     领航员

① 能够辅助驾驶员完成全部代码工作,并且为关键函数选用合适的覆盖标准设计测试用例,并编写代码进行单元自动测试

② 利用结对编程作业的代码检查表(表1.2对驾驶员的本次工作进行评价,并同时填写PSP 0.1工作记录表

③ 能够对本次工作完成500字以上的总结

1.1工作记录表

项目

预计

实际

设计时间

 

 

编码时间

 

 

测试时间

 

 

代码行数

 

 

测试代码行数

 

 

错误数量

 

 

错误修复时间

 

 

开发总时间

 

 

1.2.3选做题

从以往个人完成的项目中选择一个作品,例如:以往的数据结构课程设计或者其它具有比较完整功能的小系统,代码至少要大于100

(1) 将代码上传至个人GitHub系统中,并将代码地址交给对方;

(2) 对同伴的作品进行代码复审,并参照C/C++代码审查表 Java代码审查表 这两篇博文的内容将检查内容填入以下代码审查表中;

1.2代码审查表

序号

重要性

审查项

结论

1

重要/不重要

审查表中待检查内容

填写是//无(是代表符合规范,否代表不符合规范,无代表代码不涉及该项内容)

2

 

 

 

 

(3) 将对伙伴审查的结果以表格的形式写到自己的作业里,作业中应该附有伙伴作业的GitHub代码地址

(4) 对同伴的代码写一篇500字以上的评论,介绍同伴的优缺点


2 实验步骤

2.1实验过程

2.1.1实验代码

博客园网址:https://i.cnblogs.com/posts/edit;postId=16886508#postBody

 

 

2.1.1.1博客园截图

 

github的代码地址:

https://github.com/scliuyong/shiyan2-/blob/main/shiyan2(1).cpp

 

2.1.2实验过程

(1) 本人角色

驾驶员  孙绮萌 223201062206

领航员  刘勇   223201062134

 

(2) 我们选择一个小学四则运算自动生成程序的例子

要求:

1.        能够自动生成四则运算练习题

2.        可以定制题目数量

3.        用户可以选择运算符

4.        用户设置最大数(如十以内、百以内等)

5.        用户选择是否有括号、是否有小数

6.        用户选择输出方式(如输出到文件、打印机等)

7.        最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)     

2.1.3领航员实验过程

一、代码测试覆盖标准

 

2.1.3 .1UnitTest1.cpp截图

 

2.1.3.2函数覆盖测试截图

 

2.1.3.3对测试用例截图

 

 

二、测试用例

测试用例例如题目数量5道,加减乘除运算,最大数值为510,有小数,有括号,直接打印到屏幕上。

 

 

图二 测试用例截图

三、代码检查表

功能模块名称

四则运算式生成模块

审查人

 

刘勇

审查日期

2022/11/11

代码名称

实验二四则运算

代码作者

孙绮萌

重要性

审查项

 

程序的板式

重要性

审查性

结论

 

空行是否得体?

 

代码行内的空格是否得体?

 

“{” “}” 是否各占一行并且对齐于同一列?

重要

一行代码是否只做一件事?如只定义一个变量,只写一条语句。

重要

Ifforwhiledo等语句自占一行,不论执行语句多少都要加 “{}”

重要

在定义变量(或参数)时,是否将修饰符 * 紧靠变量名?注释是否清晰并且必要?

重要

注释是否有错误或者可能导致误解?

 

 

 

命名规则

重要性 

审查项

结论

重要

命名规则是否与所采用的操作系统或开发工具的风格保持一致?

 

标识符是否直观且可以拼读?

 

标识符的长度应当符合“min-length && max-information”原则?

重要

程序中是否出现相同的局部变量和全部变量?

 

类名、函数名、变量和参数、常量的书写格式是否遵循一定的规则?

 

 

 

表达式与基本语句 

重要性

审查项

结论

重要

如果代码行中的运算符比较多,是否已经用括号清楚地确定表达式的操作顺序?

 

是否编写太复杂或者多用途的复合表达式?

 

重要

是否将复合表达式与真正的数学表达式混淆?

重要

是否用隐含错误的方式写if语句? 例如

 

 

1)将布尔变量直接与TRUEFALSE或者10进行比较。

 

2)将浮点变量用“==”=”与任何数字比较。

 

3)将指针变量用“==”=”NULL比较

 

如果循环体内存在逻辑判断,并且循环次数很大,是否已经将逻辑判

 

 

断移到循环体的外面?

 

 

 

常量

重要性

审查项

结论

 

如果某一常量与其它常量密切相关,是否在定义中包含了这种关系?

 

 

 

函数设计 

重要性

审查项

结论

 

参数的书写是否完整?不要贪图省事只写参数的类型而省略参数名字。

 

参数命名、顺序是否合理?

 

参数的个数是否太多?

 

是否使用类型和数目不确定的参数

 

是否省略了函数返回值的类型?

 

函数名字与返回值类型在语义上是否冲突?

重要

是否将正常值和错误标志混在一起返回?正常值应当用输出参数获得,而错误标志用return语句返回。

重要

return语句是否返回指向栈内存指针或者引用

类的构造函数、析构函数和赋值函数

重要性

审查项

结论

重要

数据类型问题:

 

 

(1)变量的数据类型有错误吗?

 

(2)存在不同数据类型的赋值吗?

 

(3)存在不同数据类型的比较吗?

重要

变量值问题:

 

 

(1)变量的初始化或缺省值有错误吗?

 

 

(2)变量发生上溢或下溢吗?

 

(3)变量的精度够吗?     

重要

逻辑判断问题:

 

 

(1)由于精度原因导致比较无效吗?

 

(2)表达式中的优先级有误吗?

 

(3)逻辑判断结果颠倒吗? 

 

 

四、工作记录表.

项目

预计

实际

设计时间

4小时内

5小时

编码时间

2小时

3小时左右

测试时间

半小时

半小时

代码行数

300

313

测试代码行数

18

18

错误数量

0

0

错误修复时间

0

0

开发总时间

3小时

4小时

测试时候照片

 

测试时候照片

 

2.2选做题实验过程

 

GitHub代码地址:https://github.com/666wuhu/shiyan2xuanzuoti

 

 结对伙伴代码是以新型冠状病毒(Covid-19)引发了全球大流行疫情。疫情扩散对全球航空、旅游、体育、能源、金融市场等方面造成巨大影响。该传染病的变异性和传染性极强,且具有14天的潜伏期,详细掌握人员的流动、住所、接种疫苗及联系方式等信息对疫情控制显得尤为重要。所以,十分有必要在校园内设计一套功能丰富的学生疫情信息管理系统。

系统概述:

1)数据的处理可采用结构体数组(或链表),数据的存储要求使用文件读写的知识。

2)个人信息中应至少包括姓名、学号、联系方式、寝室号、入校日期、14日内途径地(数组)、是否接种过疫苗、3日内的体温记录。

功能概述:

1)文件读入功能——可以从jichu.dat文件中读入至少2名同学的人员信息,作为系统的基础数据。

2)数据输入、存储功能——可随时录入新的学生信息,具有输入提示;并将全部信息存入student.dat文件中。

3)查找和修改功能——可根据学号、姓名查询人员信息,并可以修改联系方式、寝室号等信息。将变动后的人员信息同步到student.dat文件中。

4)筛选功能——假设某地为风险地区,筛出14日内有此地途径史的学生,同时筛出此学生“同寝室其他人”的姓名/寝室号(人员列表中至少包含3个寝室,毎寝室至少4),将以上人员信息输出到guanzhu.dat文件中。

 

结对伙伴代码的检查

检查表

序号

重要性

审查项

结论

1

重要

头文件是否使用了 ifndef/define/endif 预处理块?

2

不重要

   头文件中是否只存放“声明”而不存放“定义”

3

不重要

   空行是否得体?

4

不重要

长行拆分是否得体?

5

重要

Ifforwhiledo等语句自占一行,不论执行语句多少都要加 “{}”

6

重要

一行代码是否只做一件事?如只定义一个变量,只写一条语句。

7

重要

   程序中是否出现相同的局部变量和全部变量?

8

重要

如果代码行中的运算符比较多,是否已经用括号清楚地确定表达式的操作顺序

9

重要

如果某一常量与其它常量密切相关,是否在定义中包含了这种关系?

10

不重要

参数的书写是否完整?不要贪图省事只写参数的类型而省略参数名字

11

重要

   数组或指针的下标是否越界?

12

重要

构造函数中是否遗漏了某些初始化工作?

13

重要

由于精度原因导致比较无效吗?

14

重要

        忘记进行错误处理吗?

15

重要

对不存在的或者错误的文件进行操作吗?

16

重要

文件以不正确的方式打开吗?

17

重要

文件结束判断不正确吗?

18

重要

没有正确地关闭文件吗? 循环终止条件不正确吗?

19

重要

错误地修改循环变量吗?

20

重要

存在误差累积吗?        

 

对同伴的代码写一篇500字以上的评论,介绍同伴的优缺点

我的搭档是一个17大高个的阳光女孩,很善良非常乐于助人,他之前不是学这个专业的,通过这次合作让我非常感到惊讶,并没有什么写代码的能力,刚开始我还以为他写不出来,但是在这个互联网时代,经过他的不懈努力,他完成了代码,虽然刚开始写出开了很多bug,但是在我们不断查资料的学习下完成了代码的编写。

   通过有坚持不懈的意志力,做每一件事情都很认真做完。优秀的人都会有共同的特点,而且他每次上课都有在认认真真听讲。从来没有溜号过。通过这段时间一起做实验的经历,他影响了我。虽然她是是一个女生,他不仅很细心,还有意志力,那种永不言败的精神。

在此期间,在我们对问题的交流,让我们不解决了问题,还发现了可以通过类似的方法去解决一系列的问题。做这个实验二人缺一不可团队的合作真的起了很大的作用,发挥了1+1>2的效果。

但是每个人都会有缺点,对所学的知识掌握不全面,总是对知识的是零零散散的,不经常系统的去复习知识点,希望在以后他可以改掉这些毛病,也希望以后有这样的机会,能够与他合作,还可以思考交流,在以后的学习中也可以互相交流学习互相帮助。


3 总结与体会

通过这次实训,我收获了很多,一方面学习到了许多以前没学过的专业知识与知识的应用,另一方面还提高了自我动手做项目的潜力。本次实训,是对我潜力的进一步锻炼,也是一种考验。从中获得的诸多收获,也是很可贵的,是十分有好处的。

在实训中我学到了许多新的知识。是一个让我把书本上的理论知识运用于实践中的好机会,原先学的时候感叹学的资料太难懂,此刻想来,有些其实并不难,关键在于理解。

在这次实训中还锻炼了我其他方面的潜力,提高了我的综合素质。首先,它锻炼了我做项目的潜力,提高了独立思考问题、自我动手操作的潜力,在工作的过程中,复习了以前学习过的知识,并掌握了一些应用知识的技巧等。其次,实训中的项目作业也使我更加有团队精神从那里,我学会了下面几点找工作的心态:

继续学习,不断提升理论涵养

在信息时代,学习是不断地汲取新信息,获得事业进步的动力。作为一名青年学子更就应把学习作为持续工作用心性的重要途径。走上工作岗位后,我会用心响应单位号召,结合工作实际,不断学习理论、业务知识和社会知识,用先进的理论武装头脑,用精良的业务知识提升潜力,以广博的社会知识拓展视野。

二、努力实践,自觉进行主角转化.

只有将理论付诸于实践才能实现理论自身的价值,也只有将理论付诸于实践才能使理论得以检验。

同样,一个人的价值也是透过实践活动来实现的,也只有透过实践才能锻炼人的品质,彰显人的意志。

务必在实际的工作和生活中潜心体会,并自觉的进行这种主角的转换。

posted on 2022-11-14 18:55  sc刘勇  阅读(53)  评论(0编辑  收藏  举报