zoukankan      html  css  js  c++  java
  • 第二次结对编程作业

    链接

    张雨同学博客链接

    宋娟同学博客链接

    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进行打包,并对代码进行改进|

  • 相关阅读:
    解决:npm中 下载速度慢 和(无法将“nrm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确, 然后再试一次)。
    maven(一) maven到底是个啥玩意~
    Luogu3959 NOIP2017宝藏(状压dp)
    Luogu3953 NOIP2017逛公园(最短路+拓扑排序+动态规划)
    Luogu3952 NOIP2017时间复杂度
    BZOJ4753 JSOI2016最佳团体(分数规划+树形dp)
    BZOJ1975 SDOI2010魔法猪学院(启发式搜索+最短路+堆)
    BZOJ4105 THUSC2015平方运算(线段树)
    BZOJ5109 CodePlus 2017大吉大利,晚上吃鸡!(最短路+拓扑排序+bitset)
    Luogu3731 HAOI2017新型城市化(二分图匹配+强连通分量)
  • 原文地址:https://www.cnblogs.com/zy159/p/11680303.html
Copyright © 2011-2022 走看看