2022.06.17-13.34.07

依赖的库函数

wxPython                        4.1.1
pyodbc                          4.0.30
pip                             22.0.3

tip:如何使用pip安装特定版本的python第三方包参考博文

模块化设计

例:from database.数据库 import database

如何导入数据库文件参考博文

# #主函数
if __name__=='__main__':solve=database()try:class wxGUI(wx.App):# #***********************学生功能开始******************************>>#教材费用def OnLookmoney(self,event):solve.cur.execute(select_reserved, self.name)  # 执行查询预定语句,传入姓名result = solve.cur.fetchall()  # result是list类型list1=[]sum=0.0for i in range(len(result)):list1.append(result[i][1])#所有已预订的教材的书名for i in list1:solve.cur.execute(book_price,i)#根据书名到books表中找到对应的价格priceprice=solve.cur.fetchone()# print(price)price1=re.findall(r"\d+\.?\d*",str(price))#正则表达式找到str类型的浮点数部分sum+=float(price1[0])#转化为浮点数sum=round(sum,1)wx.MessageBox("学生"+self.name+"的教材总费用为:"+str(sum))# 查看个人信息def OnLookstu(self, event):solve.cur.execute(select_stu, self.name)result = solve.cur.fetchone()print(type(result))wx.MessageBox(str(result))# 征订部分def OnReserve(self, event,):solve.cur.execute(look_book)result = solve.cur.fetchall()book_name = []for i in range(len(result)):book_name.append(result[i][1])print(book_name)self.frame_Reserve = wx.Frame(None, -1, title="征订书籍", size=(500, 300))self.panel_Reserve = wx.Panel(self.frame_Reserve, -1)self.label13 = wx.StaticText(self.panel_Reserve, -1, '教材名称', pos=(20, 80), style=wx.ALIGN_LEFT)self.combobox3 = wx.ComboBox(self.panel_Reserve, value="请选择教材", \choices=book_name, pos=(100, 80), size=(150, 30))self.label14 = wx.StaticText(self.panel_Reserve, -1, '征订数量', pos=(20, 120), style=wx.ALIGN_LEFT)self.Number = wx.ComboBox(self.panel_Reserve, choices=["1"], pos=(100, 120), size=(150, 20))self.button_Reserve = wx.Button(self.panel_Reserve, -1, 'OK', pos=(175, 160))# 绑定事件类型EVT_BUTTON,事件内容Onbutton_Reserve,按钮button_Buyself.Bind(wx.EVT_BUTTON, self.Onbutton_Reserve, self.button_Reserve)self.frame_Reserve.Show()#展示框架def Onbutton_Reserve(self, event):#执行sql语句reserve_book,传入姓名,书名和预定数量solve.cur.execute(reserve_1,(self.name,self.combobox3.GetValue()))result=solve.cur.fetchone()if result:self.ltime = datetime.datetime.now()  # 购买时间self.ltimes = self.ltime.strftime('%Y-%m-%d %H:%M:%S')  # 设置时间格式wx.MessageBox("该教材已征订!\n"+"征订失败时间:"+self.ltimes)else:res = reserve('', '', '')res.setSname(self.name)res.setCname(self.combobox3.GetValue())res.setNumber(self.Number.GetValue())solve.cur.execute(reserve_book,(res.getSname(),res.getCname(),res.getNumber()))solve.conn.commit()solve.cur.execute(select_reserved, self.name)  # 执行查询预定语句,传入姓名result = solve.cur.fetchall()  # result是list类型list1 = []sum = 0.0for i in range(len(result)):list1.append(result[i][1])  # 所有已预订的教材的书名for i in list1:solve.cur.execute(book_price, i)  # 根据书名到books表中找到对应的价格priceprice = solve.cur.fetchone()print(price)price1 = re.findall(r"\d+\.?\d*", str(price))  # 正则表达式找到str类型的浮点数部分# print(price1)sum += float(price1[0])  # 转化为浮点数sum = round(sum, 1)# print(sum)solve.cur.execute(select_cost1, self.name)  # 根据学生姓名找cost表里是否有对应的行result = solve.cur.fetchone()# print(result)if result:  # 如果有,更新该学生的教材费用solve.cur.execute(update_cost, (sum, self.name))else:  # 如果没有,创建该学生的教材费用cost=cost('','')cost.setSname(self.name)cost.setSmoney(sum)solve.cur.execute(insert_cost, (cost.getSname(),cost.getMoney()))solve.conn.commit()self.ltime = datetime.datetime.now()  # 购买时间self.ltimes = self.ltime.strftime('%Y-%m-%d %H:%M:%S')  # 设置时间格式message2 = "征订成功! \n" + "书名:" + self.combobox3.GetValue() + "\n" + "征订时间:" + self.ltimeswx.MessageBox(message2)  # wx.MessageBox()里是str# self.frame_Reserve.Destroy()# 退订部分def OnBack(self, event):solve.cur.execute(reserved_name,self.name)result = solve.cur.fetchall()book_name = []for i in range(len(result)):book_name.append(result[i][1])self.frame_Back = wx.Frame(None, -1, title="Back Books", size=(500, 300))self.panel_Back = wx.Panel(self.frame_Back, -1)self.label15 = wx.StaticText(self.panel_Back, -1, '教材名称', pos=(20, 80), style=wx.ALIGN_LEFT)self.combobox5 = wx.ComboBox(self.panel_Back, value="请选择教材", \choices=book_name, pos=(100, 80), size=(150, 30))self.label16 = wx.StaticText(self.panel_Back, -1, '退订数量', pos=(20, 120), style=wx.ALIGN_LEFT)self.textBack_Number = wx.ComboBox(self.panel_Back, choices=["1"], pos=(100, 120), size=(150, 20))self.button_Back = wx.Button(self.panel_Back, -1, 'OK', pos=(175, 160))self.Bind(wx.EVT_BUTTON, self.OnButton_Back, self.button_Back)#ok控件绑定退订功能self.frame_Back.Show()def OnButton_Back(self, event):solve.cur.execute(back_book,(self.name,self.combobox5.GetValue()))#语句执行solve.conn.commit()#连接数据库实现solve.cur.execute(select_reserved, self.name)  # 执行查询预定语句,传入姓名result = solve.cur.fetchall()  # result是list类型list1 = []sum = 0.0for i in range(len(result)):list1.append(result[i][1])  # 所有已预订的教材的书名for i in list1:solve.cur.execute(book_price, i)  # 根据书名到books表中找到对应的价格priceprice = solve.cur.fetchone()#print(price)price1 = re.findall(r"\d+\.?\d*", str(price))  # 正则表达式找到str类型的浮点数部分sum += float(price1[0])  # 转化为浮点数sum = round(sum, 1)# print(sum)solve.cur.execute(update_cost, (sum, self.name))#更新该学生的教材费用solve.conn.commit()self.ltime2 = datetime.datetime.now()  # 借出时间self.ltimes2 = self.ltime2.strftime('%Y-%m-%d %H:%M:%S')message3 = "退订成功! \n" + "书名:" + self.combobox5.GetValue() + "\n" + "退订时间:" + self.ltimes2wx.MessageBox(message3)#Wx.MessageBox()里是str#查询已预订部分def OnSelect(self,event):solve.cur.execute(select_reserved,self.name)#执行查询预定语句,传入姓名result=solve.cur.fetchall()#result是list类型x=str(result).split("),")#用str的split方法切分字符串# print(x)s=""for i in x:s=s+i+"\n"   #i是str类型wx.MessageBox(s)# 切换登陆def OnSwitch_stu(self, event):self.frame_Stu.Destroy()self.Login()# 退出def OnOut_stu(self, event):wx.MessageBox("谢谢您的使用!")self.frame_Stu.Destroy()# # <<--------------------学生功能结束--------------------------------# # ***************************************************************>>

源码链接
如果你要对本系统感兴趣,可以点击此链接

python实现图形界面设计+数据库(pyodbc)教材征订系统相关推荐

  1. Python学习:图形界面设计01

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: Python实现输入电影名字自动生成豆瓣评论词云图 ...

  2. QT4.7下的UI图形界面设计用例——银行排队系统

    这里写自定义目录标题 QT4.7的UI界面设计功能 效果展示 文件机制 UI功能详述 信号与槽机制(非常重要) 添加新文件 顶部菜单栏设定 菜单界面与点击下拉栏选项后界面切换 弹窗显示 主界面与弹窗界 ...

  3. 教材订购模块java代码实现,java毕业设计_springboot框架的教材征订系统

    这是一个基于java的毕业设计项目,毕设课题为springboot框架的教材征订系统, 是一个采用b/s结构的javaweb项目, 开发工具eclipsei/eclipse, 项目框架jsp+spri ...

  4. Python之GUI:基于Python的GUI界面设计的一套AI课程学习(机器学习、深度学习、大数据、云计算等)推荐系统(包括语音生成、识别等前沿黑科技)

    Python之GUI:基于Python的GUI界面设计的一套AI课程学习(机器学习.深度学习.大数据.云计算等)推荐系统(包括语音生成.识别等前沿黑科技) 导读 基于Python的GUI界面设计的一套 ...

  5. Python GUI图形界面开发学习

    Python图形化界面设计 窗体控件布局 #coding:utf-8from tkinter import * root= Tk() root.title('我的第一个Python窗体') root. ...

  6. Qt用户图形界面设计应用(闹钟)

    Qt用户图形界面设计应用(闹钟) 一.Qt介绍 什么是Qt Qt 是一个跨平台的 C++ 图形用户界面库,由挪威 TrollTech 公司于 1995 年底出品,并于 2008年6月17日被NOKIA ...

  7. python的电脑推荐_推荐8款常用的Python GUI图形界面开发框架

    作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...

  8. python使用界面-推荐8款常用的Python GUI图形界面开发框架

    作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...

  9. java图形界面的监听_非专业码农 JAVA学习笔记 用户图形界面设计与实现-所有控件的监听事件...

    用户图形界面设计与实现-监听事件 System.applet.Applet (一)用户自定义成分 1.绘制图形 Public voit piant(Ghraphics g){  g.drawLine等 ...

最新文章

  1. Android Support v4、v7、v13的区别和应用场景
  2. 用matlab解公式,怎么用matlab解这个公式A MATLAB script that solves the differential e
  3. python叫什么-python中文叫什么
  4. 大神TP_英雄联盟:男枪瞬秒大龙,佐伊遍地TP,新版本BUG谁来监管?
  5. 提交官方MapReduce作业到YARN
  6. oracle大于当前月,oracle 现阶段年 当前月 当前周 当前日
  7. 新手上路之django项目开发(二)-----引入静态文件
  8. 利用C++语言设计可扩展线程池
  9. cgi硬盘安装器_系统镜像安装CGI备份还原
  10. RabbitMQ(五) 订阅发布者模式介绍以及代码实现
  11. 二维声波方程的有限差分法数值模拟
  12. 解决php保存文件时文件名乱码问题
  13. Spring框架入门(一)
  14. 贾俊平《统计学基于R》(第三版)第八章方差分析习题答案
  15. 计算机基础知识及键盘熟悉实验报告,微型计算机组成和键盘操作 实验报告
  16. 基于U2000北向(TL1)的OLT手机管理app,自动注册光猫神器!
  17. 工作半年就迷茫,给你一盏明灯
  18. 南京java程序员工资_2019年一二线城市java程序员工资大调查
  19. hdu 5745 La Vie en rose 2016多校第二场1012
  20. Code4app素材网站

热门文章

  1. 2019年珠江三角洲主要城市国民经济主要指标
  2. 只有一条路不能拒绝——那就是成长的路
  3. EHCI主机控制器-- 队列头(qh)
  4. Redis(4)Redis事务
  5. 【matplotlib绘图】matplotlib.pyplot与axes的关系
  6. JavaSE、JavaEE、JavaWeb分不清?
  7. C语言,期末救急输入三个系数,判断一元二次方程的解(代码逐行逐句的解释,看到最后有知识的总结)
  8. 7. css重要概念
  9. 贪心算法之找硬币问题
  10. EN 622-1 纤维板规范第一部分:一般要求