第二次结队编程作业
一、链接及地址
二、具体分工
基本都是我在报我队友大腿,我负责小修小改和写博客。
三、PSP表格
PSP2.1 | Personal Software Process stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 45 | 60 |
Estimate | 估计这个任务需要多少时间 | 45 | 60 |
Developments | 开发 | 850 | 1150 |
Analysis | 需求分析(包括学习新技术) | 200 | 250 |
Design Review | 设计复审 | 30 | 45 |
Coding Standard | 代码规范(为目前的开发制定或选择合适的规范) | 0 | 0 |
Design | 具体设计 | 200 | 250 |
Coding | 具体编码 | 0 | 0 |
Code Review | 代码审查 | 0 | 0 |
Test | 测试(自我测试、修改代码、提交修改) | 20 | 20 |
Reporting | 报告 | 100 | 80 |
Test Report | 测试报告 | 100 | 80 |
Size Mesurement | 计算工作量 | 30 | 30 |
Postmortem&Process Improvement Plan | 时候总结、并提出改进计划 | 20 | 40 |
合计 | 1000 | 1200 |
四、解题思路描述与设计实现说明
使用py 的requests库实现接口使用和tkinter 库实现图形化。
1、网络接口使用
(1)注册
def regiseter(username, password, student_number, student_password):
url = 'http://www.revth.com:12300/auth/register2'
form_data = {
"username": username,
"password": password,
"student_number": student_number,
"student_password": student_password
}
headers = {'Content-Type': "application/json"}
res = requests.post(url=url, headers=headers, data=json.dumps(form_data), verify=False)
print(res.text)
data = res.json()
statu = data['status']
return statu
(2)登录
def sign_in(username, password):
global user_token
global user_id
url = 'http://api.revth.com/auth/login'
form_data = {
"username": username,
"password": password
}
headers = {'Content-Type': "application/json"}
response = requests.post(url=url, headers=headers, data=json.dumps(form_data), verify=False)
resp = response.json()
if resp['status'] == 0:
data = resp['data']
user_id = data['user_id']
user_token = data['token']
return resp['status']
(3)注销
def login_out():
global user_token
url = 'http://api.revth.com/auth/logout'
headers = {"X-Auth-Token": user_token}
r = requests.post(url=url, headers=headers)
print(r.text)
(4)排行榜
def history_list(player_id, page):
global user_token
url = 'http://api.revth.com/history'
data = {
"player_id": player_id,
"limit": 20,
"page": page
}
headers = {"X-Auth-Token": user_token}
r = requests.get(url=url, data=data, headers=headers)
resp = r.json()
if resp['status'] == 0:
res = r.json()
d = res['data']
return d
return 1
(5)历史战绩
def history_detail(battleid):
global user_token
url = 'http://api.revth.com/history/'
url = url+battleid
headers = {"X-Auth-Token": user_token}
r = requests.get(url=url, headers=headers)
thisdetail = r.json()
if thisdetail['status'] == 0:
data = thisdetail['data']
return data
return 1
2、类图
3、流程图
五、关键代码解释
def regiseter(username, password, student_number, student_password):
url = 'http://www.revth.com:12300/auth/register2'
form_data = {
"username": username,
"password": password,
"student_number": student_number,
"student_password": student_password
}
headers = {'Content-Type': "application/json"}
res = requests.post(url=url, headers=headers, data=json.dumps(form_data), verify=False)
print(res.text)
data = res.json()
statu = data['status']
return statu
通过python的requests模块中的get和post请求从服务器接口获得和传输数据
六、性能分析与改进
(1)性能分析图
(2)改进思路
能力所限暂时没有想到,后续会继续改进。
七、单元测试
1、单元测试
(1)receive origin card: #6 $K $8 *8 #Q #A &10 &8 *2 #5 *6 &J $Q
number of game: 13338
--------------------------------
*2 #5 $Q
$K #Q #A &10 &J
#6 $8 *8 &8 *6
(2)receive origin card: *8 *Q *J #3 #Q $A &10 $3 #10 *9 #A *7 $5
number of game: 13456
--------------------------------
&10 #10 $5
#3 #Q $A $3 #A
*8 *Q *J *9 *7
2、构造思路
尽量想了一些特殊的情况
八、代码签入
九、遇到的代码模块异常或结对困难及解决方法
1、遇到的问题
(1)开始两人都不会前端,以为只要搞好后端就行,前端很好学,但后来发现不知道怎么通过api使用服务器接口。
2、解决办法
(1)花了很长时间去网上了解,学习了xtml+css+js但还不是很理解,后来发现py相对简单易学,于是花几天学习py,了解到了py 的requests库实现接口使用和tkinter 库实现图形化。
(2)询问同学。
3、是否解决
是
4、有何收获
知道了自主学习的重要性,初步学习了python,css,js等。
十、评价你的队友
1、值得学习的地方
自学能力很强,大部分工作都是由他完成。
2、需要改进的地方
我们两个没有进行很好的沟通。
十一、学习进度条
第N周 | 新增代码(行) | 累计代码(行) | 本周学习耗时(小时) | 累计学习耗时(小时) | 重要成长 |
---|---|---|---|---|---|
1 | 0 | 0 | 5 | 5 | 学会了axure的基本操作。 |
2 | 0 | 0 | 7 | 12 | 了解学习py |
3 | 450 | 450 | 6 | 18 | 开始编写ui |
4 | 600 | 1050 | 5 | 23 | 基本完成 |