• 第二次结对编程作业


    一、链接及地址

    江列湫博客链接
    彭佳伟博客链接
    github链接

    二、具体分工

    我负责写前端ui

    三、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 基本完成
  • 相关阅读:
    vue插件(还真是第一次接触)
    Vue父组件向子组件传值以及data和props的区别
    Vue v-bind与v-model的区别
    vue 异步渲染
    vue动态加载不同的组件(分内部和外部组件)
    vue自定义组件的递归
    作用域插槽模板迭代的次数,取决于组件内部独立slot的数量
    说说 Vue.js 中的 v-cloak 指令
    C语言 system
    C语言 有符号、无符号
  • 原文地址:https://www.cnblogs.com/031702141pjw/p/11768349.html
Copyright © 2020-2023  润新知