精华内容
下载资源
问答
  • 比较简单一点 适用于学生期末实训,有源代码
  • 1 了解各式窗体的特性。 2. 掌握常用窗体控件的属性。 3. 掌握常用窗体控件的事件与方法。 4. 掌握各式窗体的常用布局。 5. 熟练掌握窗体设计的方法与步骤。
  • 用python编写教务处查成绩电脑窗体应用,并生成exe文件的过程

    一、麻雀虽小,五脏俱全

    本系统用到的python库:
    tkinter——用于创建windows窗体
    requests——用于请求获取数据
    PIL——用于处理验证码图片
    lxml——用于处理获得的数据
    xlwt——用于将数据保存为Excel文件
    pyinstaller——用于将python文件转为exe文件

    二、思维导图

    1)分析需求,建立大致方向
    2)学习相关知识,学以致用
    3)分析网页数据,并记录关键点
    4)建立测试代码,得到满意结果为止
    5)根据需求建立窗体大致模型
    6)组合代码,不断运行
    7)处理bug
    8)生成exe
    9)测试exe
    10)分享exe

    三、经验总结

    1、窗体问题

    1)创建窗体

    from tkinter import *
    root = Tk()
    root.title("成绩查询系统")    #标题
    root.geometry('360x300')
    root.maxsize(360,300)       # 限制窗口大小
    root.minsize(360,300)
    root.mainloop()
    

    简简单单五行代码就创建了一个不含任何控件的大小为360x300(中间为小写的x)的窗体
    在这里插入图片描述
    -----------窗体属性---------

    2)窗体中的控件

    #定义退出按钮命令
    def exit():
        root.quit()
    btn1 = Button(root, text='退出系统', command=exit)
    btn1.grid(column=0,row=0)
    

    定义了一个按钮,放在root窗体,显示名称为 退出系统, command理解为按钮点击时执行的函数;.grid()为一种排列方式,另外还有 .place() , .pack()
    在这里插入图片描述
    -----------------窗体控件---------------------

    3)动态设置控件属性(文本)

    zh = Entry(root)
    zh.grid(column=3, row=2)
    zh.insert(0,'2016200000') #通过该语句可向输入框中插入字符串
    
    keyword = Entry(root,show='*') # 若为密码则输入的字符将显示为 *
    keyword.grid(column=3, row=4)
    
    keyword['show']=''  # 该语句会修改显示方式(即显示输入的文本)
    

    4)制作表格

    from tkinter import ttk, messagebox
    from tkinter import *
    root = Tk()
    root.title('全部成绩')
    root.geometry('800x600')
    root.maxsize(800,600)
    root.minsize(800,600)
    
    columns = ('学期','科目','学分','课程属性','成绩')
    
    tv = ttk.Treeview(root, show='headings',columns=columns)
    tv.column('学期', width=200, anchor='center')
    tv.column('科目',width=300,anchor='center')
    tv.column('学分',width=100,anchor='center')
    tv.column('课程属性',width=100,anchor='center')
    tv.column('成绩',width=100,anchor='center')
    
    tv.heading('学期', text='学期')
    tv.heading('科目',text='科目')
    tv.heading('学分',text='学分')
    tv.heading('课程属性',text='课程属性')
    tv.heading('成绩',text='成绩')
    tv.pack(side=LEFT,fill=BOTH)
    
    root.mainloop()
    

    2、爬虫问题

    import requests
    #请求头
    header = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0'
        }
    #请求数据
    data = {
        'zjh':'',
        'mm':'',
        'v_yzm':''
    }
    
    brower = requests.session() # 创建session对象
    
    cookie = brower.cookies.get_dict()  # 获取cookie值
    
    res = brower.post(url1,data=data,headers=header,cookies=cookie).text 
    

    3、保存到Excel

    import xlwt
    
    columns = ('学期','科目','学分','课程属性','成绩')
    
    dir = '我的成绩单.xlsx'   # 文件路径
    f = xlwt.Workbook()    # 创建工作簿
    sheet1 = f.add_sheet('成绩单') #创建成绩单工作表
    sheet1.col(0).width = 256*50 #设置单元格宽度
    sheet1.col(1).width = 256 * 50
    sheet1.col(2).width = 256 * 10
    sheet1.col(3).width = 256 * 10
    sheet1.col(4).width = 256 * 10
    row0 = list(columns) 
    for i in range(5):
        sheet1.write(0,i,row0[i])# 向工作表第一行写数据作为表头
    f.save(dir)  # 保存文件到指定路径
    

    4、生成exe

    1)安装pyinstaller

    pip install pyinstaller
    

    2)打包

    cmd 命令行切换到项目目录,执行下列语句

    pyinstaller -F -w main.py   # 此处应注意大小写
    

    最后一行看到successful字样,即可在项目根目录的dist目录下找到exe文件,双击即可执行

    3)部分错误

    若exe文件因错误无法打开
    尝试以下语句

    pyinstaller -F main.py   # 此处应注意大小写
    

    完成后双击exe文件会有一个黑框一闪而过,需要用到截屏将黑框截图,里面显示了错误信息,根据错误信息对症下药。

    在这里插入图片描述
    在这里插入图片描述
    -------------参数说明---------------

    四、全部代码

    1、代码已上传到GitHub

    GitHub地址https://github.com/helloboy236/score.git

    2、pyinstaller 生成的exe文件包

    链接:https://pan.baidu.com/s/1LClBmu54FlwvZcOvgbk2-A 提取码:izp3
    复制这段内容后打开百度网盘手机App,操作更方便哦

    展开全文
  • 本系列讲讲Excel中使用窗体实现一个简单的小项目:学习成绩查询 目前需要实现的功能已经全部实现,但是每次启动的时候都需要手动点击按钮,并且仍然能看到Excel界面,不够酷 如何实现类似一个独立软件的感觉 Part ...

    微信公众号原文

    系统:Windows 7
    软件:Excel 2016

    • 本系列讲讲Excel中使用窗体实现一个简单的小项目:学习成绩查询
    • 目前需要实现的功能已经全部实现,但是每次启动的时候都需要手动点击按钮,并且仍然能看到Excel界面,不够酷
    • 如何实现类似一个独立软件的感觉

    Part 1:实现功能

    1. 点击文件,只弹出界面窗口,不显示Excel文件,有点独立软件的既视感

    动图
    1.gif

    静图
    2.png

    Part 2: 实现方式

    1. 实现逻辑:工作簿打开的时候,不显示Excel,直接显示用户窗体
    2. 代码实现:在工作簿打开事件中,加入以下代码即可
    • 双击ThisWorkBook,在代码区按以下顺序选择,会自动生成一个open事件过程,动图如下
    • Application.Visible = False表示不显示Excel界面
    • UserForm1.Show 0显示用户窗体,UserForm1是用户窗体的名称

    open事件
    2.gif

    Private Sub Workbook_Open()
        Application.Visible = False
        UserForm1.Show 0
    End Sub
    
    

    代码截图
    3.png

    用户窗体名称
    5.png

    Part 3: 如何取消该功能

    1. 现在每次点击Excel文件就只是弹出窗体,那么此时想修改代码,或者需要打开Excel界面怎么办?
    2. 方法1:按住shift键,再打开Excel文件,以前好像管用,现在好像不太管用,不知道为啥?还是我记错了
    3. 方法2:重新新建一个Excel文件,使用以下代码打开窗体Excel文件
      • Application.EnableEvents = False禁用Excel事件
    Sub 打开()
        excel_address = "Excel文件绝对地址"
        Application.EnableEvents = False
        Workbooks.Open Filename:=excel_address, ReadOnly:=False
        Application.EnableEvents = True
    End Sub
    
    

    • 更多学习交流,可加小编微信号learningBin

    更多精彩,请关注微信公众号
    扫描二维码,关注本公众号

    公众号底部二维码.jpg

    展开全文
  • ①收集学生基本信息。学生信息包括学号,姓名,性别,出生年月,所属班级和籍贯(用组合框)。要求:学号,姓名,所属班级不能为空;若出生年月有输入,则必须为日期型。... ②收集课程基本信息。课程基本信息包括课程号...
  • 本系列讲讲Excel中使用窗体实现一个简单的小项目:学习成绩查询 今天继续介绍控件ListView,介绍获取鼠标选中行的信息 Part 1:实现功能 选中ListView的任意一行,实时获取选中行的信息 这里涉及到一个事件,即...

    微信公众号原文

    系统:Windows 7
    软件:Excel 2016

    • 本系列讲讲Excel中使用窗体实现一个简单的小项目:学习成绩查询
    • 今天继续介绍控件ListView,介绍获取鼠标选中行的信息

    Part 1:实现功能

    1. 选中ListView的任意一行,实时获取选中行的信息
    2. 这里涉及到一个事件,即选中ListView任意一行的点击事件

    动图
    1.gif

    静图
    1.png

    Part 2: 界面设置

    1. 分别添加3个标签和3个文本框控件
    2. 修改3个标签控件的Caption属性,分别为:选中学生姓名,科目,成绩
    3. 修改3个文本框的名称属性:studentNameSelectedcourseNameSelectedexamNoteSelected

    控件设置
    3.png

    Part 3: 代码

    主代码

    Private Sub outputListView_Click()
        Set ctrl = Me.Controls("outputListView")
        rowSelected = ctrl.SelectedItem.Index
        firstCol = ctrl.ListItems(rowSelected).Text
        studentName = ctrl.ListItems(rowSelected).SubItems(1)
        courseName = ctrl.ListItems(rowSelected).SubItems(2)
        examNote = ctrl.ListItems(rowSelected).SubItems(4)
        
        Set ctrl = Me.Controls("studentNameSelected")
        ctrl.Value = studentName
        
        Set ctrl = Me.Controls("courseNameSelected")
        ctrl.Value = courseName
        
        Set ctrl = Me.Controls("examNoteSelected")
        ctrl.Value = examNote
        
    End Sub
    
    

    代码截图
    4.png

    Part 4: 部分代码解读

    1. 在VBE的窗体界面中双击ListView控件,打开默认事件,选择Click事件,自动会生成一个Sub过程outputListView_Click,将以上代码写入。在这里可以发现ListView支持很多其它事件
    2. rowSelected = ctrl.SelectedItem.Index获取当前ListView被选择的行号
    3. firstCol = ctrl.ListItems(rowSelected).Text获取被选择行第1列信息
    4. studentName = ctrl.ListItems(rowSelected).SubItems(1)获取被选择行第2列信息,列号从0开始
    5. ctrl.Value = studentName给文本框中写入信息

    5.png


    • 更多学习交流,可加小编微信号learningBin

    更多精彩,请关注微信公众号
    扫描二维码,关注本公众号

    公众号底部二维码.jpg

    展开全文
  • 本系列讲讲Excel中使用窗体实现一个简单的小项目:学习成绩查询 今天继续介绍控件ListView,介绍如何按列排序和格式化显示 Part 1:实现功能 根据成绩进行排序 新增日期/实数/百分数/货币,格式化显示 按成绩...

    微信公众号原文

    系统:Windows 7
    软件:Excel 2016

    • 本系列讲讲Excel中使用窗体实现一个简单的小项目:学习成绩查询
    • 今天继续介绍控件ListView,介绍如何按列排序和格式化显示

    Part 1:实现功能

    1. 根据成绩进行排序
    2. 新增日期/实数/百分数/货币,格式化显示

    按成绩排序
    3.png

    Part 2: 代码

    主代码

    Private Sub outputSearchV_Click()
        Set ctrlStudent = Me.Controls("outputStudentNameV")
        studentName = ctrlStudent.Value
        
        Set ctrlCourse = Me.Controls("outputCourseNameV")
        courseName = ctrlCourse.Value
        
        Set ctrlExam = Me.Controls("outputWhichExamV")
        exam = ctrlExam.Value
        
        If studentName = "" And courseName = "" And exam = "" Then
            MsgBox "请输入查询条件"
            Exit Sub
        End If
        
        Set ctrl = Me.Controls("outputListView")
        
        ' 清空原标题
        ctrl.ColumnHeaders.Clear
        ' 加上标题
        ctrl.ColumnHeaders.Add , , "序号", 30, lvwColumnLeft
        ctrl.ColumnHeaders.Add , , "姓名", 50, lvwColumnLeft
        ctrl.ColumnHeaders.Add , , "科目", 60, lvwColumnCenter
        ctrl.ColumnHeaders.Add , , "第几次模拟考", 30, lvwColumnRight
        ctrl.ColumnHeaders.Add , , "成绩"
        ctrl.ColumnHeaders.Add , , "日期"
        ctrl.ColumnHeaders.Add , , "实数"
        ctrl.ColumnHeaders.Add , , "百分数"
        ctrl.ColumnHeaders.Add , , "货币"
    
        ctrl.View = lvwReport
        ctrl.FullRowSelect = True
        ctrl.Gridlines = True
        
        '清空其它数据
        ctrl.ListItems.Clear
    
        Set shtDb = ThisWorkbook.Worksheets("学生成绩db")
        maxRow = shtDb.Cells(Rows.Count, "B").End(xlUp).Row
        
        inputNum = 1
        flag = 0
        arr1 = Array("2020-01-05", "2020-02-05", "2020-03-05", "2020-04-05", "2020-05-05")
        arr2 = Array(0.563, 0.1, 0.63932, 0.5862, 2)
    
        For i = 2 To maxRow Step 1
            existStudent = shtDb.Cells(i, "B")
            existCourse = shtDb.Cells(i, "C")
            existExam = CInt(shtDb.Cells(i, "D"))
            
            check = 条件检测(existStudent, existCourse, existExam, studentName, courseName, exam)
            
            If check = True Then
                existNote = shtDb.Cells(i, "E")
                
                Set Item = ctrl.ListItems.Add()
                Item.Text = inputNum
                Item.SubItems(1) = existStudent
                Item.SubItems(2) = existCourse
                Item.SubItems(3) = existExam
                Item.SubItems(4) = existNote
    
                Item.SubItems(5) = Format(arr1(inputNum - 1), "YYYY-MM-DD")
                Item.SubItems(6) = Format(arr2(inputNum - 1), "#0.000")
                Item.SubItems(7) = Format(arr2(inputNum - 1), "0.00%")
                Item.SubItems(8) = Format(arr2(inputNum - 1), "Currency")
                x = Format(arr2(inputNum - 1), "Currency")
                Debug.Print (x)
                inputNum = inputNum + 1
    
                flag = 1
            End If
        Next i
        
        
        If flag = 1 Then
            ctrl.Sorted = True
            ctrl.SortKey = 4
            MsgBox "查询完毕,请从下表查看结果"
        Else
            MsgBox "未查询到满足条件的结果"
        End If
    End Sub
    
    

    代码截图
    5.png
    6.png
    7.png

    Debug.print输出结果
    8.png

    条件检测 函数

    Function 条件检测(existStudent, existCourse, existExam, studentName, courseName, exam)
        result = True
    
        If studentName <> "" Then
            If studentName <> existStudent Then
                result = False
            End If
        End If
        
        If courseName <> "" Then
            If courseName <> existCourse Then
                result = False
            End If
        End If
        
        If exam <> "" Then
            If CInt(exam) <> existExam Then
                result = False
            End If
        End If
        
        条件检测 = result
        
    End Function
    

    代码截图
    1.png

    Part 3: 部分代码解读

    1. Item.SubItems(5) = Format(arr1(inputNum - 1), "YYYY-MM-DD") ,控制输出的格式为年-月-日
    2. Item.SubItems(8) = Format(arr2(inputNum - 1), "Currency"),输出货币格式。格式化输出的核心在于Format函数,Debug.Print的输出效果是一致的
    ctrl.Sorted = True
    ctrl.SortKey = 4
    

    打开排序功能,并以第4列为排序依据,从0开始计数

    1. 修改为第6列排序ctrl.SortKey = 6,结果如下,默认都是升序排列
      1.png

    • 更多学习交流,可加小编微信号learningBin

    更多精彩,请关注微信公众号
    扫描二维码,关注本公众号

    公众号底部二维码.jpg

    展开全文
  • 用C#窗体编写,环境是vs2015、SQL 2015,实现管理员登录、注册,对学生信息表、课程表、成绩表有增删改查的权限,亮点是有分页显示功能。
  • 窗体中放入了文本框和子窗体控件和“查询”按钮,要求在文本框输入查询内容,单击“查询”按钮,查询的结果在子窗体中实现?
  • 1.构建登录界面添加控件 2.编写验证码功能 //定义一个函数 private void GetVerifyCode() { //创建位图 Bitmap Bmp = new Bitmap(121, 39); //根据新建的Bitmap位图,创建画布 ... //创建随机数对象(不重
  • 筛选数据的方法有好多,如下面的示例《access用宏筛选子窗体的数据》《Access动态设置子窗体及筛选子窗体数据的技巧》这里介绍一下用DAO做窗体的筛选:如这样的窗体,我们通过输入课程或者学生来查询数据详细代码...
  • C#窗体学生成绩管理系统

    千次阅读 2018-01-25 09:09:00
    c#学生成绩管理系统 ...所有成绩查询、个人成绩查询 管理员审核、添加、删除用户 项目源码GIT:https://github.com/soulsjie/StuScoreMa.git 转载于:https://www.cnblogs.com/soulsjie/p/8349527.html...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,607
精华内容 1,842
关键字:

如何创建窗体成绩查询