第二次结对编程作业

链接

张雨同学博客链接

宋娟同学博客链接

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

原文地址:https://www.cnblogs.com/zy159/p/11680303.html