• 第二次结对编程作业


    链接

    张雨同学博客链接

    宋娟同学博客链接

    GitHub仓库链接1

    GitHub仓库链接2

    具体分工

    刚开始我们非常迷茫,所以我们没有非常明确的分工,大家一起讨论,做难受了就对换看看……
    说实话这样效率不高,但是有人在旁边一起的感觉和一个人学习是不一样的

    PSP表格


    ||||||||||||||
    |:--|:--|:--|:--|
    | PSP2.1| Personal Software Process Stages |预估耗时(分钟)|实际耗时(分钟)|
    | Planning |计划|60|80|
    | Estimate |估计这个任务需要多少时间|5|5|
    | Development |开发|1000|1100|
    |Analysis |需求分析 (包括学习新技术)|500|550|
    | Design Spec |生成设计文档|20|30|
    | Design Review |设计复审|15|15|
    | Coding Standard |代码规范 (为目前的开发制定合适的规范)|20|15|
    | Design |具体设计|300|350|
    | Coding |具体编码|600|800|
    | Code Review |代码复审|120|180|
    | Test |测试(自我测试,修改代码,提交修改)|180|120|
    | Reporting |报告|30|30|
    | Test Repor |测试报告|100|30|
    | Size Measurement |计算工作量|5|5|
    | Postmortem & Process Improvement Plan |事后总结, 并提出过程改进计划|60|30|
    | |合计|2950|3255|
    解题思路描述与设计实现说明

    网络接口的使用

    主要是参考python中requests库的post请求

    例如调用登录的接口:

    conn = http.client.HTTPSConnection("api.shisanshui.rtxux.xyz")
    payload = json1_idmm
    headers = {'content-type': "application/json"}
    conn.request("POST", "/auth/login", payload, headers)
    res = conn.getresponse()
    data = res.read()
              
    

    代码组织与内部实现设计

    算法的关键与关键实现部分流程图

    ##登录
    class logindialog(QDialog):
        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
            self.setWindowTitle('登录界面')
            self.resize(200, 150)
            self.setFixedSize(self.width(), self.height())
            self.setWindowFlags(Qt.WindowCloseButtonHint)
    
            ###### 设置界面控件
            self.frame = QFrame(self)
            self.verticalLayout = QVBoxLayout(self.frame)
    
            self.lineEdit_account = QLineEdit()
            self.lineEdit_account.setPlaceholderText("请输入账号")
            self.verticalLayout.addWidget(self.lineEdit_account)
    
            self.lineEdit_password = QLineEdit()
            self.lineEdit_password.setPlaceholderText("请输入密码")
            self.verticalLayout.addWidget(self.lineEdit_password)
    
            self.pushButton_enter = QPushButton()
            self.pushButton_enter.setText("确定")
            self.verticalLayout.addWidget(self.pushButton_enter)
    
            self.pushButton_quit = QPushButton()
            self.pushButton_quit.setText("取消")
            self.verticalLayout.addWidget(self.pushButton_quit)
    
            ###### 绑定按钮事件
            self.pushButton_enter.clicked.connect(self.on_pushButton_enter_clicked)
            self.pushButton_quit.clicked.connect(self.accept)
    
    
        def on_pushButton_enter_clicked(self):
            yhid = self.lineEdit_account.text()
            yhmm = self.lineEdit_password.text()
            print('123456')
            if yhid and yhmm:
                data1 = {'username': yhid, 'password': yhmm}
                json1_idmm = json.dumps(data1)
                conn = http.client.HTTPSConnection("api.shisanshui.rtxux.xyz")
                payload = json1_idmm
                headers = {'content-type': "application/json"}
                conn.request("POST", "/auth/login", payload, headers)
                res = conn.getresponse()
                data = res.read()
                global text
                text = json.loads(data.decode("utf-8"))
                print(text)
                print(text['status'])
                if text["status"]==0:
                    self.accept()
                    myksjm.show()
                elif text["status"]==1001:
                    print('!用户名已被使用!')
                elif text["status"] == 1002:
                    print('!学号已绑定!')
                elif text["status"]==1003:
                    print('!教务处认证失败!')
                else:
                    print('!w无法登录!')
                    return 0
    
            else:  # id密码没有输入完整无法登录!
                print('!无法登录!')
                self.accept()
                return 0
    

    Github的代码签入记录

    遇到的代码模块异常或结对困难及解决方法

    • 问题描述

    1、对前端开发几乎是一无所知
    2、不知道如何调用技术助教给的接口,后来看到如何完成python中requests库的post请求的教程,再加上大佬的指导一步一步完成

    • 做过的尝试

    请教大佬,然后听大佬说PyQt5比较好做ui,就通过看b站上面的PyQt5实战速成视频,来完成一些,然后实操中遇到问题就看CSDN上的大佬解答的

    • 是否解决

    基本解决

    • 有何收获

    软工实践真的是一门十分考验学习能力的科目,遇到困难的时候疯狂百度,疯狂问大佬,疯狂看教程,基本学会了PyQt5和pyinstaller的使用,以及对接口的请求和调用也多了一层理解

    评价我的队友

    • 值得学习的地方:我队友做事特别认真,而且学习能力也很强,初次接触PyQt能做到这样,很棒
    • 需要改进的地方:哈哈哈可能下次应该早点开始做,就不用后面几天这样赶了,国庆有点快乐

    学习进度条

    ||||||||||||||
    |:--|:--|:--|:--|:--|:--|
    |第N周|新增代码(行)|累积代码(行)|本周学习耗时(小时)|累积学习耗时(小时)|重要成长|
    |1|0|0|10|10|第一次认识了Axure RP,并学习使用|
    |2|200+|200+|8|18|讨论并分工,开始思考算法思路和实现方法|
    |3|300+|500+|20|38|学习了PyQt5的使用,对UI的设计和实现有了更深的了解|
    |4|100+|600+|40|78|学习了如何用pyinstaller进行打包,并对代码进行改进|

  • 相关阅读:
    VS2010 自动跳过代码现象
    Reverse Linked List II 【纠结逆序!!!】
    Intersection of Two Linked Lists
    Linked List Cycle II
    Remove Nth Node From End of List 【另一个技巧,指针的指针】
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Remove Duplicates from Sorted List
    Linked List Cycle
    Dungeon Game
  • 原文地址:https://www.cnblogs.com/zy159/p/11680303.html
Copyright © 2020-2023  润新知