特别鸣谢这段代码的源作者,我的大佬同学\(MetalkgLZH\)。由于我没有做什么工作,这篇随笔基本不含相关技术细节。

再次强调,这个程序的主要部分由\(MetalkgLZH\)完成。技术细节与源码可以在他的官网(貌似正在维护)查看。这个程序与\(MetalkgLZH\)、\(MiserWeyte\)(我)开发的所有后续版本遵守\(GPL~V3\)协议。


Latest update 2019.10.14:

版本V2.2:

1、添加了密码错误以及网络错误时的提示;

2、成绩输出框可手动修改的bug已修复。

公开V2.2源码:

点击查看:ZhiXue.py

#ZhiXue.py

-- coding: utf-8 --

import libguizxw

from zhixuewang import Zhixuewang

import wx

import time class zxw_main(libguizxw.MyFrame1):

def init(self,parent):

libguizxw.MyFrame1.init(self,parent)

def button_click(self,event):

kaohao = str(self.m_textCtrl1.GetValue())

mima = str(self.m_textCtrl2.GetValue())

try:

zxw = Zhixuewang(kaohao,mima)

score = zxw.get_self_mark()

self.m_textCtrl3.SetValue(str(score))

except Exception as err:

if "Connection" in str(err):

self.m_textCtrl3.SetValue("网络异常,请检查网络连接情况")

return

if "用户名" in str(err):

self.m_textCtrl3.SetValue("用户名或密码错误")

return app = wx.App(False)

zxwgui = zxw_main(None)

zxwgui.Show(True)

start the applications

app.MainLoop()

The software included in this product contains copyrighted software that is licensed under the GPLv3.

点击查看:libguizxw.py

#libguizxw.py

-- coding: utf-8 --

###########################################################################

Python code generated with wxFormBuilder (version Jun 17 2015)

http://www.wxformbuilder.org/

PLEASE DO NOT EDIT THIS FILE!

########################################################################### import wx

import wx.xrc ###########################################################################

Class MyFrame1

########################################################################### class MyFrame1 ( wx.Frame ):
def __init__( self, parent ):
wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"zxw查分器V2.2", pos = wx.DefaultPosition, size = wx.Size( 400,500 ), style = wx.DEFAULT_FRAME_STYLE|wx.WANTS_CHARS ) self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
self.SetExtraStyle( wx.WS_EX_BLOCK_EVENTS|wx.WS_EX_PROCESS_IDLE|wx.WS_EX_PROCESS_UI_UPDATES|wx.WS_EX_TRANSIENT|wx.WS_EX_VALIDATE_RECURSIVELY ) bSizer2 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, u"本程序使用wxpython构建GUI,zhixuewang pip库构建API\nMetalkg李子豪编写,MiserWeyte(徐行健)重构", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText4.Wrap( -1 )
bSizer2.Add( self.m_staticText4, 0, wx.ALL, 5 ) self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, u"本程序完全遵循GPL V3协议,并已开放程序源代码", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText5.Wrap( -1 )
bSizer2.Add( self.m_staticText5, 0, wx.ALL, 5 ) self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, u"输入学号:", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText2.Wrap( -1 )
bSizer2.Add( self.m_staticText2, 0, wx.ALL, 5 ) self.m_textCtrl1 = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.Point( 40,40 ), wx.Size( 400,-1 ), 0 )
self.m_textCtrl1.SetMaxLength( 8 )
bSizer2.Add( self.m_textCtrl1, 0, wx.ALL, 5 ) self.m_staticText3 = wx.StaticText( self, wx.ID_ANY, u"输入密码:", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText3.Wrap( -1 )
bSizer2.Add( self.m_staticText3, 0, wx.ALL, 5 ) self.m_textCtrl2 = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 400,-1 ), wx.TE_PASSWORD )
bSizer2.Add( self.m_textCtrl2, 0, wx.ALL, 5 ) self.m_panel1 = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
bSizer2.Add( self.m_panel1, 1, wx.EXPAND |wx.ALL, 5 ) self.m_button1 = wx.Button( self, wx.ID_ANY, u"查分", wx.Point( -1,-1 ), wx.Size( 600,-1 ), 0 )
bSizer2.Add( self.m_button1, 0, wx.ALL, 5 ) self.m_textCtrl3 = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 600,620 ), wx.TE_MULTILINE | wx.TE_READONLY )
bSizer2.Add( self.m_textCtrl3, 0, wx.ALL, 5 ) # menuBar = wx.MenuBar()# 创建一个菜单栏
# menu = wx.Menu()# 创建一个菜单
# menuBar.Append(menu, "关于")# 添加菜单到菜单栏
# self.SetMenuBar(menuBar) self.SetSizer( bSizer2 )
self.Layout() self.Centre( wx.BOTH ) # Connect Events
self.m_button1.Bind( wx.EVT_BUTTON, self.button_click ) def __del__( self ):
pass # Virtual event handlers, overide them in your derived class
def button_click( self, event ):
event.Skip()

The software included in this product contains copyrighted software that is licensed under the GPLv3.

V2.2程序release:

度盘(25.9 MB) 提取码t5hr


由于sd智学网取消了网页端查分,只能在手机段操作,于是我们想在机房查分就只能装模拟器啥的……于是\(lzh\)在\(github\)上发现了一个python库\(zhixuewang\),用于爬取智学网后端api。这个库的github页面

于是他在几个月前自学了两小时python完成了只有cmd页面的查分器。只要输入考号和密码,就可以返回最近一次考试的所有相关成绩信息,甚至包括智学网原版前端页面不展示的部分排名信息。(在此声明,不鼓励考试排名行为,对于该程序使用者的任何行为,本人与其他开发者不承担责任。)

最近\(lzh\)完成了这个程序的gui界面,基于\(wxpython\)。本人进行了部分优化与重构。

由于相关责任问题,这里不公开发布程序的V2.1版本。源码及可运行的程序release请见MetalkgLZH的官网。若无法进入,可以在cnblog中私信我获取。

智学网电脑端查分小工具 已更新V2.2的更多相关文章

  1. java操作数据库增删改查的小工具1--TxQueryRunner

    在java程序中,一般使用jdbc连接数据库,比较麻烦,在看传智教程时学了一个工具类,用于简化与数据库之间的操作步骤,就是TxQueryRunner,他是QueryRunner的子类,用起来和他是一样 ...

  2. JS查错小工具-三生有幸【推荐】

    H5和CSS语言在开发者官网上都有在线查错工具,同样的,更加复杂的JavaScript也需要一个查错工具,(别指望DreamWeaver了,debug功能做的太垃圾,还不如Firefox自带的强..) ...

  3. java操作数据库增删改查的小工具2--TxQueryRunner

    当涉及到多表查询时,如数据库中有两张表分别为t_person和t_address,表结构如下: 其中t_person的外键为t-address的主键aid, 新建两个javaBean类,Person ...

  4. 基于web端去除空格小工具

    读论文时,不时需要抓取PDF版的段落,可是复制到word的时候会出现很多空格,利用javascript强大的功能,几行命令实现了去除段落里的空格,实现如下: <!DOCTYPE html PUB ...

  5. django项目实际工作中的配置以及一些有用的小工具(持续更新)

    常用pycharm快捷键:   https://www.cnblogs.com/luolizhi/p/5610123.html   Ctrl + F1  显示错误 Ctrl + Alt + Space ...

  6. 新手福音︱正则表达式小工具RegExr

    由于之前在做NLP的内容,势必会接触正则表达式,但是呢,又觉得这个学不明白- 于是,这个工具还是蛮不错的,相当于在线正则速查+验证小工具,对于我这样的新手值得去玩玩. github:https://g ...

  7. QML-AES加解密小工具

    Intro 为了解码网课视频做的小工具,QML初学者可以参考一下. 项目地址 Todo 在插入新条目时,ListView不会自动根据section进行重排,因此出现同一个文件夹重复多次的现象.目测强行 ...

  8. 数据库表转换成javaBean对象小工具

    package test.utils; import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter; ...

  9. 洛谷P1993 小 K 的农场(查分约束)

    /* 加深一下对查分约束的理解 建图的时候为了保证所有点联通 虚拟一个点 它与所有点相连 权值为0 然后跑SPFA判负环 这题好像要写dfs的SPFA 要不超时 比较懒 改了改重复进队的条件~ */ ...

随机推荐

  1. ssrf漏洞学习(PHP)

    自己最近原本是想深入的学习一下关于xss.csrf的东西的,可是感觉这些东西需要有很好的js的基础来进行学习..还有感觉自己感觉也差不多该要学习内网渗透了..正好ssrf在内网这一块也是比较有用的.于 ...

  2. MIPI CSI2-TX接口基于FPGA实现

    MIPI CSI2-TX用途: 跟海思的3559A芯片进行图像数据传输: MIPI CSI2-TX接口特性: xilinx 7系列芯片最大支持1.25Gbps: 最大支持lanes数量为4: 支持的图 ...

  3. 02-14 scikit-learn库之逻辑回归

    目录 scikit-learn库之逻辑回归 一.LogisticRegression 1.1 使用场景 1.2 代码 1.3 参数详解 1.4 属性 1.5 方法 二.LogisticRegressi ...

  4. IntelliJ IDEA使用JUnit单元测试

    转载:https://www.cnblogs.com/huaxingtianxia/p/5563111.html 前言 单元测试的基本使用 一.环境配置 使用idea IDE 进行单元测试,首先需要安 ...

  5. 跑的比谁都快 51Nod - 1789

    香港记者跑的比谁都快是众所周知的常识.   现在,香港记者站在一颗有  nn 个点的树的根结点上(即1号点),编号为  ii 的点拥有权值  a[i]a[i] ,数据保证每个点的编号都小于它任意孩子结 ...

  6. 引入flask_cache时出现ModuleNotFoundError: No module named 'flask.ext'

    环境: centos 7.3 python 3.6 flask 1.0.2 flask-cache 0.13.1 引入flask_cache后运行时,出现以下错误 Traceback (most re ...

  7. 章节十七章、2- 给执行失败的case截图

    一.案例演示 1.首先我们把截图的方法单独进行封装方便以后调用. package utilities; import java.io.File; import java.io.IOException; ...

  8. 流水线机制、滑动窗口协议、GBN、SR

    一.滑动窗口协议 为了解决停等操作的性能问题(发了一个分组之后一直等到确认了这个分组才发下一个),推出了流水线机制,提供资源利用率.就是允许发送方在收到对方的ACK前,发送多个分组 其中窗口是一个范围 ...

  9. MySQL基础(四)常用函数

    转载自 http://blog.csdn.net/evankaka MySQL数据库中提供了很丰富的函数.MySQL函数包括数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数.加密函数. ...

  10. Python开发【第十一篇】函数

    函数 什么是函数? 函数是可以重复执行的语句块,可以重复调用并执行函数的面向过程编程的最小单位. 函数的作用: 函数用于封装语句块,提高代码的重用性,定义用户级别的函数.提高代码的可读性和易维护性. ...