"""用户信息管理系统:基于sqlite3"""
import os
import sqlite3
DBFILE = 'jwxt.db' # sqlite3数据库,全局变量
def get_create_db(db_filename):
"""打开本地数据库文件db_filename,并返回数据库连接con
如果本地数据库文件db_filename,在创建数据库和UserInfo表"""
if os.path.exists(db_filename):
con = sqlite3.connect(db_filename)
else:
con = sqlite3.connect(db_filename)
# 在该数据库下创建用户信息表
sql_create_UserInfo = '''CREATE TABLE UserInfo (
USERID VARCHAR(20) PRIMARY KEY,
USERNAME VARCHAR(20) NOT NULL,
GENDER VARCHAR(2),
BIRTHDAY VARCHAR(11),
DEPARTMENT VARCHAR(50),
PHONE VARCHAR(20),
USERTYPE VARCHAR(2),
PASSWORD VARCHAR(20) NOT NULL);'''
con.execute(sql_create_UserInfo)
sql_insert_UserInfo = '''INSERT INTO UserInfo VALUES
('J001','张教务','女','1988/5/2','物理系','13912345678','教务','123456');'''
con.execute(sql_insert_UserInfo)
con.commit()
# 在该数据库下创建课程信息表
sql_create_COURSE = '''CREATE TABLE Course (
COURSEID VARCHAR (20) PRIMARY KEY,
COURSENAME VARCHAR (20) NOT NULL,
CREDIT INT,
DESCRIPTION VARCHAR (100));'''
# con.execute(sql_create_Student)
# 在该数据库下创建教学班号表
sql_create_JXB = ''' CREATE TABLE JXB(
JXBID VARCHAR(20) PRIMARY KEY,
COURSEID VARCHAR(20) NOT NULL,
USERID VARCHAR(20) NOT NULL,
DESCRIPTION VARCHAR(100));'''
# 在该数据库下创建学生成绩表
sql_create_JXB = ''' CREATE TABLE Grades (
JXBID VARCHAR (20),
USERID VARCHAR (20),
SCORE INT,
PRIMARY KEY (
JXBID,
USERID));'''
return con # 返回数据库连接
def check_login(userid, password, usertype):
"""检查用户登录信息是否正确"""
con = get_create_db(DBFILE)
try:
sql_pattern = '''SELECT USERNAME FROM UserInfo WHERE USERID="{0}"
AND PASSWORD="{1}" AND USERTYPE="{2}"'''
sql = sql_pattern.format(userid, password, usertype)
cur = con.execute(sql)
row = cur.fetchone()
if row:
r = tuple(row)
return r[0]
else:
return False
finally:
con.close()
def change_password(userid, password):
"""修改用户密码"""
con = get_create_db(DBFILE)
try:
sql_pattern = '''UPDATE UserInfo SET PASSWORD="{1}"
WHERE USERID="{0}"'''
sql = sql_pattern.format(userid, password)
con.execute(sql)
con.commit()
finally:
con.close()
############用户管理#########################################################################
def check_user_id(userid):
"""检查UserInfo中是否存在userid"""
con = get_create_db(DBFILE)
try:
sql_pattern = '''SELECT USERID, USERNAME FROM UserInfo WHERE USERID="{0}"'''
sql = sql_pattern.format(userid)
cur = con.execute(sql)
row = cur.fetchone()
if row:
return row[1] #返回用户名
else:
return False
finally:
con.close()
def get_user_list(user_type):
"""查找数据库UserInfo表,获取类型为user_type的用户信息列表"""
con = get_create_db(DBFILE)
try:
sql_pattern = '''SELECT USERID, USERNAME, GENDER, DEPARTMENT, PHONE, BIRTHDAY
FROM UserInfo
WHERE USERTYPE="{0}"'''
sql = sql_pattern.format(user_type)
results = con.execute(sql)
users = results.fetchall()
user_list = []
for user in users:
user_list.append(user)
return user_list
finally:
con.close()
def insert_user(usertype,userid, username, gender, birthday, department, phone):
"""插入一条记录到UserInfo表"""
con = get_create_db(DBFILE)
try:
sql = '''INSERT INTO UserInfo(USERID, USERNAME, GENDER, BIRTHDAY, DEPARTMENT, PHONE,USERTYPE, PASSWORD)
VALUES (?,?,?,?,?,?,?,?)'''
con.execute(sql, (userid, username, gender, birthday, department, phone, usertype, '123456'))
con.commit()
finally:
con.close()
def update_user(userid, username, gender, birthday, department, phone):
"""更新一条记录到UserInfo表"""
con = get_create_db(DBFILE)
try:
sql = '''UPDATE UserInfo
SET USERNAME = ?
,GENDER = ?
,BIRTHDAY = ?
,DEPARTMENT = ?
,PHONE = ?
WHERE USERID = ?'''
con.execute(sql, (username, gender, birthday, department, phone, userid))
con.commit()
finally:
con.close()
def delete_user(userid):
"""从UserInfo表中删除一条记录"""
con = get_create_db(DBFILE)
try:
sql = '''DELETE FROM UserInfo
WHERE USERID = ?'''
con.execute(sql, (userid, ))
con.commit()
finally:
con.close()
############课程管理#########################################################################
def check_course_id(courseid):
"""检查Course表中是否存在courseid"""
con = get_create_db(DBFILE)
try:
sql_pattern = '''SELECT COURSEID, COURSENAME FROM COURSE WHERE COURSEID="{0}"'''
sql = sql_pattern.format(courseid)
cur = con.execute(sql)
row = cur.fetchone()
if row:
return row[1] #返回课程名称
else:
return False
finally:
con.close()
def get_course_list():
"""查找数据库Course表,获取课程信息列表"""
con = get_create_db(DBFILE)
try:
sql = '''SELECT COURSEID, COURSENAME, CREDIT, DESCRIPTION
FROM Course'''
results = con.execute(sql)
courses = results.fetchall()
course_list = []
for course in courses:
course_list.append(course)
return course_list
finally:
con.close()
def insert_course(courseid, coursename, credit, description):
"""插入一条记录到Course表"""
con = get_create_db(DBFILE)
try:
sql = '''INSERT INTO COURSE(COURSEID, COURSENAME, CREDIT,DESCRIPTION)
VALUES (?,?,?,?)'''
con.execute(sql, (courseid, coursename, credit, description))
con.commit()
finally:
con.close()
def update_course(courseid, coursename, credit, description):
"""更新一条记录到COURSE表"""
con = get_create_db(DBFILE)
try:
sql = '''UPDATE COURSE
SET COURSENAME = ?
,CREDIT = ?
,DESCRIPTION = ?
WHERE COURSEID = ?'''
con.execute(sql, (coursename, credit, description, courseid))
con.commit()
finally:
con.close()
def delete_course(courseid):
"""从COURSE表中删除一条记录"""
con = get
python基于wx的GUI教务系统(模板).rar
需积分: 0 127 浏览量
更新于2020-12-26
7
收藏 68KB RAR 举报
Python是一种广泛使用的高级编程语言,尤其在Web开发、数据分析、机器学习等领域有着广泛的应用。而wxPython是Python中一个流行的GUI(图形用户界面)库,它允许开发者创建原生跨平台的用户界面,使得Python程序可以拥有美观且功能丰富的交互式窗口。本教务系统就是基于wxPython库构建的,旨在提供一种直观且易于操作的方式来管理和处理教务工作。
GUI(图形用户界面)是计算机系统与用户交互的主要方式,通过图标、菜单、按钮等可视化元素,使得非专业用户也能轻松操作复杂的软件。wxPython库是Python中的一个GUI工具包,它实现了wxWidgets库的绑定,wxWidgets是C++库,用于创建跨平台的GUI应用程序。wxPython的优势在于其代码可移植性,可以在Windows、Linux、macOS等多个操作系统上运行,保持一致的外观和感觉。
在教务系统中,wxPython被用来创建各种组件,如文本框、列表框、复选框、单选按钮等,这些组件可以用来输入、显示和处理教务信息。例如,教师可以使用文本框输入学生姓名,列表框展示课程列表,复选框选择学生是否出席等。同时,通过事件处理机制,开发者可以响应用户的点击、输入等操作,实现动态的交互。
在教务系统的实现中,"splite3"库可能被用来处理数据库操作。SQLite是一个轻量级的、嵌入式的SQL数据库引擎,常用于需要持久化存储数据的项目。通过SQLite,教务系统可以将学生信息、课程信息、成绩等数据结构化存储,方便查询、更新和管理。
此外,"excel"标签可能意味着系统支持与Microsoft Excel文件的交互。Python中的pandas库或openpyxl库可以用来读取和写入Excel文件,这使得教务系统能够导入或导出Excel格式的数据,便于数据交换和备份。
在实际的教务系统中,可能包含以下功能模块:
1. 学生管理:包括学生信息录入、修改、删除以及搜索等功能。
2. 课程管理:设置课程信息,安排教学计划,管理任课教师等。
3. 成绩管理:录入、查看、统计学生的考试成绩。
4. 出勤管理:记录并统计学生的出勤情况。
5. 教师管理:管理教师信息,包括教师的个人信息、授课课程等。
6. 通知公告:发布和查看学校或教务相关的通知。
7. 数据分析:基于收集到的数据进行统计分析,如平均分、及格率等。
这个基于Python和wxPython的教务系统是一个综合性的应用,结合了GUI设计、数据库操作和数据处理,为学校的日常教务管理工作提供了便利。通过不断的优化和完善,可以进一步提高教务工作的效率和准确性。
Blockchain_KT
- 粉丝: 9250
- 资源: 6
最新资源
- 图片处理领域的视觉特效时间序列分析
- 基于Verilog的8位CPU设计实现及其指令系统-学生设计项目计划
- 中微子数据分析大赛.zip
- 中文的word2vec以及doc2vec模型,使用维基百度的数据训练 供大家参考.zip
- 2-Word批量修改样式的插件
- 京东金融全球数据探索者大赛-算法组猪脸识别.zip
- 人大金仓Kingbase数据库Docker镜像制作.zip
- can-bus.zipcdfrgrgtth
- 低代码,在线表单,工作流程,智能报表,大屏设计,应用设计,自动化运维,数据治理,商业智能,任务编排 .zip
- JSP与Servlet程序设计实践教程(讲义)
- EMC VNX Recover SP Boot Image
- 使用Hive进行大数据分析实战.zip
- 2-成分喵 V1.4:扫码知商品内涵
- comsol岩石裂隙流热固耦合
- 使用容器搭建大数据架构微服务.zip
- comsol水力压裂相场模拟(垂直裂缝) pde接口+达西定律+固体力学