zoukankan      html  css  js  c++  java
  • 智学网电脑端查分小工具 已更新V2.2

    本文作者MiserWeyte

    特别鸣谢这段代码的源作者,我的大佬同学(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
    Metalkg李子豪编写,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中私信我获取。

  • 相关阅读:
    51nod1432 独木舟
    51nod1126 求递推序列的第N项
    Alice, Bob, Oranges and Apples CodeForces
    区间dp
    平面几何基础
    图的割点、桥与双连通分支
    hihocoder 1305 区间求差
    hdu 2444 The Accomodation of Students 【二分图匹配】
    状压dp
    hdu 1525 Euclid's Game【 博弈论】
  • 原文地址:https://www.cnblogs.com/miserweyte/p/11656574.html
Copyright © 2011-2022 走看看