链接
张雨同学博客链接
宋娟同学博客链接
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进行打包,并对代码进行改进|