软件综合实践专题--结对编程
软件工程实践专题
---------第二次作业:结对编程
小组成员:金宇杰 1759220,陈黄浩 1759222
金宇杰:负责系统化的架构这个程序
陈黄浩:负责切实地实现功能
作业要求:小学老师要每周给同学出300道四则运算练习题。这个程序有很多种实现方式。C/C++C#/VB.net/javaExcelUnix ShellEmacs/Powershell/VbscnptPython两个运算符100以内的数字,不需要写答案。【估计时同t】现在估计写这个程序需要的时间马上把代码写出来
需要写答案,并且保证答案在0 100之间【估计时间t】
摘要:两个运算符, Python
一. 概要
1实验内容:两个人通过结对编程方式运用要求中的一种语言实现四则运算,且不重复,并保证最后的答案在【0-100】的区间中。
二. 人员分工
此次老师要求我们采用结对编程的方式进行代码的编写和需求的实现,我们由于都是第一次进行这种方式的编程模式,于是上网查了一下结对编程到底是什么。
结对编程:结对编程技术是指两位程序员坐在同一工作台前开发软件。与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码。
(ps:当然这是团队作业,肯定是两个人所有模块都有参与啦)
三. 语言选择
在几种语言当中,我们最后还是选择了方便简洁的Python,对比其他语言,Python既支持面向过程,又支持面向对象,这样编程就更加灵活。于是经过商讨,便确定下来了。
四. 合作过程
毕竟是第一次实行结对编程,所以难免会有很多不合以及有很多差强人意的地方,一开始选择语言的时候,我们本来想选择我们较为熟悉的Java语言,但是由于Java的编写较为繁琐,要定义几个类,并且对于变量必须进行显示说明,但是Python却不需要,在编写代码的时候总会有一些问题,大部分问题我们还是依靠万能的百度来解决,总之为了用Python写好这个程序,也顺便学了一些Python的基本知识。
五. 代码实现
一.这个程序最麻烦的应该就是运算式子不能重复,虽然它随机函数重复的概率较低,但是为了避免百分百没有重复的,我们首先创建了一个空的列表
list_history=[]
if list_history.count(formula)==0 and sum<=100 and formula.__len__()>3:
最后通过对于这个空列表的条件限制来完成无重复式子运算。
二.为了方便小学生运算,我们把生成的式子导出到了一个txt文件中
首先确定文件路径:os.chdir("C:\\Users\\75201\\Desktop\\arithmetic")
打开文件:f=open("arithmetic.txt","a")
关闭文件:f.close()
六. 源代码
import random import os list_history=[] list_operation=['+','-','*','/'] os.chdir("C:\\Users\\75201\\Desktop\\arithmetic") f=open("arithmetic.txt","a") j=1 for i in range(300): formula = '' random_number = random.randint(1,100) formula = formula + str(random_number) sum=random_number operation=random.randint(1,4) random_number= random.randint(1, 100) if operation==1: sum=sum+random_number if operation==2: sum=sum-random_number if operation==3: sum=sum*random_number if operation==4: if random_number==0: continue sum=sum/random_number if sum>=100: continue formula = formula+str(list_operation[operation-1]) + str(random_number) if list_history.count(formula)==0 and sum<=100 and formula.__len__()>3: f.write(formula + '=' + '\t') j=j+1 if j%10==0: f.write('\n') j=1 list_history.append(formula) f.close()
七.心得体会
结对编程是我第一次听说到的一个编程方式,结对编程就是两个人组成一个小队伍进行编程,是一种新的编程思想。结对编程的优点有以下这几点第一点,就是思考问题的角度,一个人思考问题肯定没有两个人思考问题来的明白,看的清楚。当一个东西你理解了,并且还能清楚的表达的时候,那么思路会更清晰。第二点,就是加强交流,使得知识能够更快的再整个团队传播,使得代码全员共享。第三点就是所有的代码都会有备份,防止丢失。但结对编程也是有缺点的,首先是编码的效率低下问题。接下来是结对对象的交换,因为结对编程是在一个小组成员中进行,所以结对对象的交换最好是在一组结对成员完成阶段任务后再进行交换,避免结对对象思想的缺乏。