您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章将为大家详细讲解有关如何使用python实现教务管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
Login.py
#-*- coding:utf-8 -*- #####系统登录 import os import MySQLdb import time class Login: def __init__(self,conn): self.account = '' self.password = '' self.level = 2 self.conn = conn def LoginSurface(self,info): os.system('cls') width = 50 title = 'LOGIN' body1 = '[A]Admin' body2 = '[T]Teacher' body3 = '[S]Student' body4 = '[Q]Quit' print '=' * width print ' ' * ((width-len(title))/2), title print ' ' * ((width-len(body1))/2),body1 print ' ' * ((width-len(body1))/2),body2 print ' ' * ((width-len(body1))/2),body3 print ' ' * ((width-len(body1))/2),body4 print ' ' * ((width-len(info))/2), info print '-' * width def MainFunc(self): err = '' while True: self.LoginSurface(err) level = raw_input('Access:') level = level.upper() if level == 'A':self.level = 0 elif level == 'T': self.level = 1 elif level == 'S': self.level = 2 elif level =='Q': return False else : err = 'Error Action!' continue self.account = raw_input('Account:') self.password = raw_input('Password:') if self.CheckAccount(): err = 'Login Success!' self.LoginSurface(err) print 'Please wait...' time.sleep(3) return True; else : err = 'Login Failed!' def GetLoginAccount(self): return [self.account,self.password,self.level] def CheckAccount(self): cur = self.conn.cursor() sqlcmd = "select Account,Password,AccountLevel from LoginAccount where Account = '%s'" % self.account if cur.execute(sqlcmd) == 0: return False temp = cur.fetchone() cur.close() if temp[1] == self.password and temp[2] == self.level: return True else: return False def Quit(self): pass if __name__ == '__main__': conn = MySQLdb.connect(user='root',passwd = '',db = 'DB_EducationalManagementSystem'); a = Login(conn) a.MainFunc() a.Quit() conn.close()
main.py
#-*- coding:utf-8 -*- ####系统入口 import os import MySQLdb import Student import Teacher import Login import SystemManager if __name__ == '__main__': conn = MySQLdb.connect(user='root',passwd = '',db = 'db_educationalmanagementsystem') log = Login.Login(conn) if log.MainFunc(): account = log.GetLoginAccount() if account[2] == 0: usr = SystemManager.SystemManager(conn,account[0],account[1]) usr.MainFunc() elif account[2] == 1: usr = Teacher.Teacher(conn,account[0],account[1]) usr.MainFunc() elif account[2] == 2: usr = Student.Student(conn,account[0],account[1]) usr.MainFunc() else : conn.close() raise exception() conn.close()
Student.py
#-*- coding:utf-8 -*-
####学生账号
import MySQLdb
import os
class Student:
def __init__(self,conn,account,passwd):
###构造,conn连接数据库
cur = conn.cursor()
sqlcmd = "select Name,Gender,Birth,Academy,Major,Grade,TeacherNo from StudentInfo where StudentNo = '%s'" % account
cur.execute(sqlcmd)
res = cur.fetchone()
sqlcmd = "select Name from TeacherInfo where TeacherNo = '%s'" % res[6]
cur.execute(sqlcmd)
TeacherName = cur.fetchone()
cur.close()
self.width = 150
self.conn = conn
self.account = account
self.Password= passwd
self.Name = res[0]
self.Gender = res[1]
self.Birth = res[2]
self.Accademy= res[3]
self.Major = res[4]
self.Grade = res[5]
self.Teacher = TeacherName[0]
def MainFunc(self):
###主要执行函数
info = ''
while True:
self.MainSurface(info)
choice = raw_input('What to do?')
choice = choice.upper()
if choice != 'P' and choice != 'M' and choice != 'Q':
info = 'Error Action!'
continue
if choice == 'P':
info = self.PersonalInfo()
elif choice == 'M':
info = self.OperatMessage()
else : break
def PersonalInfo(self):
###个人信息
info = ''
while True:
self.PersonalInfoSurface(info)
choice = raw_input('What to do?')
choice = choice.upper()
if choice != 'C' and choice != 'Q':
info = 'Error Action!'
continue
if choice == 'C':
info = self.ChangePersonalInfo()
else : break
return info
def ChangePersonalInfo(self):
###修改个人信息
NewGender = self.Gender
NewBirth = self.Birth
NewPw = self.Password
while True:
choice = raw_input('Change Gender?(y/n)')
choice = choice.lower()
if choice == 'y':
NewGender = raw_input('New Gender:')
break
elif choice == 'n': break
else : pass
while True:
choice = raw_input('change Born Date?(y/n)')
choice = choice.lower()
if choice == 'y':
NewBirth = raw_input('New Born Date:')
break
elif choice == 'n': break
else : pass
while True:
choice = raw_input('change Password?(y/n)')
choice = choice.lower()
if choice == 'y':
NewPw = raw_input('New Password:')
break
elif choice == 'n': break
else : pass
info = 'Change Success!'
cur = self.conn.cursor()
if NewGender != self.Gender or NewBirth != self.Birth:
sqlcmd = "update StudentInfo set Gender = '%s',Birth = '%s' where StudentNo = '%s'" % (NewGender,NewBirth,self.account)
if cur.execute(sqlcmd) == 0:
self.conn.rollback()
cur.close()
return 'Change Fail!'
if NewPw != self.Password:
sqlcmd = "update LoginAccount set Password = '%s' where Account='%s'" % (NewPw,self.account)
if cur.execute(sqlcmd) == 0:
self.conn.rollback()
cur.close()
return 'Change Fail!'
else :
self.conn.commit()
self.Gender = NewGender
self.Birth = NewBirth
self.Password = NewPw
cur.close()
return 'Change Success!'
def OperatMessage(self):
info = ''
while True:
self.MessageSurface(info)
self.MessageList()
choice = raw_input('What to do?')
choice = choice.upper()
if choice == 'M':
msg = input('Message Id:')
info = self.MessageInfo(msg)
elif choice == 'Q': break;
else : info = 'Error Action!'
return info
def MessageList(self):
###查看消息列表
cur = self.conn.cursor()
print ''
sqlcmd = "select Id,SenderName,SendTime,Title from AllMessage where statu = 'pass' and MsgLevel = 1"
if cur.execute(sqlcmd) == 0: return
print '-' * self.width
while True:
temp = cur.fetchone()
if not temp: break;
print '%3d%-20s%-50s%s' % (temp[0],temp[1],temp[3],temp[2])
print '-' * self.width
cur.close()
def MessageInfo(self,MsgNo):
###查看详细消息, No消息编号
cur = self.conn.cursor()
sqlcmd = "select SenderName,SendTime,Title,Content from AllMessage where Id = %d" % MsgNo
if cur.execute(sqlcmd) == 0:
cur.close()
return 'Read Fail!'
article = cur.fetchone()
cur.close()
os.system('cls')
print '=' * self.width
print ' ' * ((self.width - len(article[2]))/2) , article[2]
head = article[0] + ' ' + str(article[1])
print ' ' * ((self.width - len(head))/2) , head
print '-' * self.width
print article[3]
print '=' * self.width
raw_input('Press any key to return!')
return ''
def Quit(self):
###退出
pass
def MainSurface(self,info):
###主界面
os.system('cls')
print '=' * self.width
title = 'Welcome %s!' % self.Name
body1 = '[P]Personal Information'
body2 = '[M]Message'
body3 = '[Q]Quit'
print ' ' * ((self.width - len(title))/2),title
print ' ' * ((self.width - len(body1))/2),body1
print ' ' * ((self.width - len(body1))/2),body2
print ' ' * ((self.width - len(body1))/2),body3
print ' ' * ((self.width - len(info))/2),info
print '=' * self.width
def MessageSurface(self,info):
###消息界面
os.system('cls')
print '=' * self.width
title = 'MESSAGES'
body1 = '[M]Message Detail'
body2 = '[Q]Quit'
print ' ' * ((self.width - len(title))/2),title
print ' ' * ((self.width - len(body1))/2),body1
print ' ' * ((self.width - len(body1))/2),body2
print ' ' * ((self.width - len(info))/2),info
print '=' * self.width
def PersonalInfoSurface(self,info):
###个人信息界面
os.system('cls')
print '=' * self.width
title = 'PERSONAL INFORMATION'
body1 = '[C]Change Information'
body2 = '[Q]Quit'
print ' ' * ((self.width - len(title))/2),title
print ' ' * ((self.width - len(body1))/2),body1
print ' ' * ((self.width - len(body1))/2),body2
print ' ' * ((self.width - len(info))/2),info
print '-' * self.width
body3 = ' Name: %s' % self.Name
body4 = 'Student Number: %s' % self.account
body5 = ' Gender: %s' % self.Gender
body6 = ' Birth: %s' % self.Birth
body7 = ' Accademy: %s' % self.Accademy
body8 = ' Major: %s' % self.Major
body9 = ' Grade: %s' % self.Grade
body10= ' Teacher: %s' % self.Teacher
print ' ' * ((self.width - len(body6))/2),body3
print ' ' * ((self.width - len(body6))/2),body4
print ' ' * ((self.width - len(body6))/2),body5
print ' ' * ((self.width - len(body6))/2),body6
print ' ' * ((self.width - len(body6))/2),body7
print ' ' * ((self.width - len(body6))/2),body8
print ' ' * ((self.width - len(body6))/2),body9
print ' ' * ((self.width - len(body6))/2),body10
print '=' * self.width
if __name__ == '__main__':
conn = MySQLdb.connect(user='root',passwd = '',db = 'db_educationalmanagementsystem')
stu = Student(conn,'0000001','123456')
stu.MainFunc()
conn.close()关于“如何使用python实现教务管理系统”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。