首页 > 编程语言 >结对编程 电梯调度

结对编程 电梯调度

时间:2022-11-16 17:33:46浏览次数:68  
标签:结对 重要 1.2 是否 代码 编程 电梯 实验

软件工程基础》上机实验报告撰写要求

 

一、 纸张与页面要求

1. 采用国际标准A4型打印纸或复印纸,纵向打印。

2. 封页和页面按照下面模板书写(正文为:小四宋体1.5倍行距)。

3. 图表及图表标题按照模板中的表示书写。

二、 实验报告书的内容应包括以下各个部分:(按照以下顺序装订)

1. 封页(见报告模版)

2. 目录

3. 正文

 

 

 

 

 

 


 

沈阳航空航天大学

 

 

    工  程  基  础

实 验 报 告

 

实验名称:实验二

实验题目:结对项目

 

 

 

专    业

软件工程

学    号

223201062232

姓    名

王瑜

 

 

   指导教师

孟桂英

   成    绩

 

 

 

 


目    录

沈阳航空航天大学

1 实验内容及要求

1.1  教学内容及要求

1.2  实验要求

1.2.1 实验题目

1.2.2实验要求

1.2.3选做题

2 实验步骤

2.1实验过程

2.1.1实验代码

2.1.2实验过程

2.2选做题实验过程

3 总结与体会

 

 


 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工作记录表

项目

预计

实际

设计时间

      

 

编码时间

 

 

测试时间

 

 

代码行数

 

 

测试代码行数

 

 

错误数量

 

 

错误修复时间

 

 

开发总时间

10h

15h

1.2.3选做题

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

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

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

表1.2代码审查表

 序号

重要性

审查项

结论

1

不重要

函数、变量命名规范

2

不重要

头文件和定义文件的名称是否合理?

 

 

3

重要

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

 

 

 

4

不重要

空行是否得体?

 

5

不重要

长行拆分是否得体

6

重要

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

 

 


2 实验步骤

2.1实验过程

2.1.1实验代码

代码Github https://github.com/wsdtq/aa/blob/main/dtqrg2.cpp2.1.2

本人担任角色为导航员 结对伙伴是杜天麒 学号是223201062227

测试用例

使用语句覆盖 使用Java Junit的单元测试

 

1.1单元测试代码1

 

 

1.2单元测试代码2

 

1.3测试通过

 

代码检查表

 序号

重要性

审查项

结论

1

不重要

函数、变量命名规范

2

不重要

头文件和定义文件的名称是否合理?

 

3

重要

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

 

 

 

4

重要

if语句独占一行不管执行语句多少都要加大括号

5

不重要

注释是否清晰并且必要

6

重要

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

7

重要

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

8

不重要

函数名变量名书写格式是否遵循一定的规则

9

不重要

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

10

不重要

参数命名顺序是否合理

11

不重要

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

12

不重要

参数个数是否太多

13

不重要

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

14

不重要

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

15

不重要

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

 

工作记录表

表1.1工作记录表

项目

预计

实际

设计时间

      

 

编码时间

 

 

测试时间

3h

9h

代码行数

35

51

测试代码行数

30

50

错误数量

0

0

错误修复时间

0

0

开发总时间

10h

15h

评价与总结

杜天麒同学学习认真,上进心强,刻苦钻研,在困难面前不屈不挠,在编程遇到困难时,他总是到处翻阅资料直至能解决问题和bug 虽然在遵守编程规范上还不是很规范 但是在本次的实验过中也积极根据标准进行修改

我的收获如下

1.在结对编程过程中要学会倾听,除了自己的看法还要注重合作同伴意见与看法

2.在刚开始做实验的时候,每个人都会有自己的思路和想法,需要多沟通。对不同方法进行比较。

3.如果再代码上有矛盾,那就讲两个人的想法都赋予实现,比较哪个更好一点就选哪个

在安装Java环境的时候由于缺乏经验花费了大量时间 学习了Junit单元测试的基本用法 由于刚开始学习没有掌握C的代码向Java完全转换使用所以单元测试只是测试了代码中的简单的分支循环正确与否 希望以后能熟练掌握Java和C之类一些例如 结构体转换为的Java类的知识。

2.2选做题实验过程

选做题Github地址 https://github.com/wsdtq/aa/blob/main/dtqRGFuJia.cpp

 

 

表1.2代码审查表

 序号

重要性

审查项

结论

1

不重要

函数、变量命名规范

2

不重要

头文件和定义文件的名称是否合理?

 

3

重要

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

 

 

 

4

重要

if语句独占一行不管执行语句多少都要加大括号

5

不重要

注释是否清晰并且必要

6

重要

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

7

重要

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

8

不重要

函数名变量名书写格式是否遵循一定的规则

9

不重要

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

10

不重要

参数命名顺序是否合理

11

不重要

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

 

 

 

3 总结与体会

本次我审查了杜天麒的数据结构顺序图基本操作的代码 通过本次实验我掌握了基本的测试手册规范和重要和不重要的点分别是哪些 并且在再检查过程中发现他的代码实际运行 没有问题 在代码的功能性上完成的较好 但是代码的变量命名很不规范  经常出现中文拼音或者是无意义的变量命名 后来在检查的过程中他逐渐用规范的命名替换掉了原来并不规范的命名,由于缺乏必要的注释 在以后复习的过程中可能会忘记原来的想法 并且根据规范手册 的规定 在最后的代码中加入了需要的注释 根据以前看过的阿里的编程规范 将大部分注释翻到了每行代码的上面 

 

 

 

 

 

 

标签:结对,重要,1.2,是否,代码,编程,电梯,实验
From: https://www.cnblogs.com/drinkwater111/p/16896683.html

相关文章

  • 网络编程2 TCP、UDP协议 与socket模块
    TCP与UDP协议1.TCP协议(重点)"""凡事必须有回复才能继续"""三次握手连接-1.TCP协议也称为可靠协议,数据不容易丢失数据不容易丢失的原因......
  • masm32编程判断当前帐户是否拥有管理员权限方法1
    ; Function: Demo the way to determine if you have administrator privileges;   Author: Purple Endurer;      Dev: Win XP SP2 + MASM32......
  • 《Unix/Linux系统编程》第14章学习笔记
    第14章MySQL数据库系统MySQL(MySQL2018)是一个关系数据库系统。在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联,表也可能与其他表有关联。......
  • 服务器端信号编程
    服务器端程序通常需要处理信号,关于信号的概念不多说,linux操作系统默认有64个信号,用kill-l可列出所有信号,信号是个异步机制的东西,我们这里的信号指的是操作系统给进程或者......
  • 如何运用并行编程Parallel提升任务执行效率
    《.NET并发变成实战》读后感:并行编程Parallel手打目录:一、前言二、任务并行库(TPL)的介绍三、Parallel.Invoke的使用四、Parallel.For的使用五、Parallel.ForEach+Partitioner......
  • Linux下Socket编程(转)
    什么是SocketSocket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解So......
  • Linux 下Socket编程基础(转)
    1、 引言Linux的兴起可以说是Internet创造的一个奇迹。Linux作为一个完全开放其原代码的免费的自由软件,兼容了各种UNIX标准(如POSIX、UNIX System V 和 BSD UNIX ......
  • 丰富的素材网站;编程学习网站
     欢迎加入技术交流QQ群80669150(附加信息:珠海-"Lzw )一起学习!HTML丶CSS丶JS特效 ​​http://www.99447.com/​​免费模板网 ​​http://www.wangjie.org/css-code/​......
  • 第2章 C++编程入门、输入/输出和运算符(笔记)
    2.1简介说明接下来的程序是对数据的获取、处理(算术运算)、显示。2.2第一个C++程序:输出一行文本用一个简单的程序说明C++语言的几个重要特征。注释、预处理指令、空行......
  • Java反应式编程(2)
    您好,我是湘王,这是我的51CTO博客,欢迎您来,欢迎您再来~看了前面对反应式编程的说明,可能很多人都会打退堂鼓了。Lambda都已经够难理解的了,又来了一个反应式编程!实在卷不动了~其实......