Python學生管理系統(控制檯版)
阿新 • • 發佈:2019-02-09
# -*- encoding:utf-8 -*-
"""
@作者:小思
@檔名:BaseDao.py
@時間:2018/10/19 8:51
@文件說明:連線資料庫和關閉資料庫的方法
"""
import pymysql
import com.zs.entity.Student as student
s = student.Student()
# 1.查詢所有學生資訊
def getAll():
connect = pymysql.connect(host="192.168.43.21", user="user", passwd="1234", db="zs")
cursor = connect.cursor()
cursor.execute("select * from Student")
data = cursor.fetchall()
connect.close()
return data
# 根據學生姓名查詢學生資訊
def getStudentBySname(s):
connect = pymysql.connect(host="192.168.43.21", user="user", passwd="1234", db="zs")
cursor = connect.cursor()
sql = "select * from Student where sname='%s'" % (s.getSname())
cursor.execute(sql)
data = cursor.fetchall()
connect.close()
return data
# 根據sid查詢單個學生資訊
def getStudentBySid(s):
connect = pymysql.connect(host="192.168.43.21", user="user", passwd="1234", db="zs")
cursor = connect.cursor()
sql = "select * from Student where sid=%d" % (s.getSid())
cursor.execute(sql)
data = cursor.fetchone()
connect.close()
return data
# 新增學生資訊
def addStudent(s):
connect = pymysql.connect(host="192.168.43.21", user="user", passwd="1234", db="zs")
cursor = connect.cursor()
sql = "insert into Student values(null,'%s','%s','%d')" % (s.getSname(), s.getSsex(), s.getSage())
cursor.execute(sql)
connect.commit()
connect.close()
# 刪除學生資訊
def delStudent(s):
connect = pymysql.connect(host="192.168.43.21", user="user", passwd="1234", db="zs")
cursor = connect.cursor()
sql = "delete from Student where sid=%d" % (s.getSid())
cursor.execute(sql)
connect.commit()
connect.close()
# 修改學生資訊
def updStudent(s):
connect = pymysql.connect(host="192.168.43.21", user="user", passwd="1234", db="zs")
cursor = connect.cursor()
sql = "update Student set sname='%s',ssex='%s',sage=%d where sid=%d" % (
s.getSname(), s.getSsex(), s.getSage(), s.getSid())
cursor.execute(sql)
connect.commit()
connect.close()
# 測試查詢所有學生資訊
# d=getAll()
# print(d)
# 測試查詢單個學生資訊
# stu = student.Student()
# stu.setSname("小明")
# sd = getStudentBySname(stu)
# print(sd)
# 測試新增學生資訊
# s= student.Student()
# s.setSname("小明")
# s.setSsex("男")
# s.setSage(19)
# addStudent(s)
# 測試刪除學生資訊
# stu = student.Student()
# stu.setSid(9)
# delStudent(stu)
# 測試修改
# s= student.Student()
# s.setSid(15)
# s.setSname("小d")
# s.setSsex("男")
# s.setSage(19)
# updStudent(s)
entity包的Student類:
# -*- encoding:utf-8 -*-
"""
@作者:小思
@檔名:Student.py
@時間:2018/10/19 0:43
@文件說明:學生的實體類
"""
class Student:
__sid = 0
__sname = ""
__ssex = ""
__sage = 0
def setSid(self, sid):
self.__sid = sid
def getSid(self):
return self.__sid
def setSname(self, sname):
self.__sname = sname
def getSname(self):
return self.__sname
def setSsex(self, ssex):
self.__ssex = ssex
def getSsex(self):
return self.__ssex
def setSage(self, sage):
self.__sage = sage
def getSage(self):
return self.__sage
main包下的main類
# -*- encoding:utf-8 -*-
"""
@作者:小思
@檔名:main.py
@時間:2018/10/19 11:16
@文件說明:執行的主介面
"""
import com.zs.dao.BaseDao as bd
import com.zs.entity.Student as student
import re
# 歡迎的方法
def welcome():
print("*****************************************歡迎使用《學生資訊管理系統》******************************************")
print("1.查詢所有學生資訊 2.查詢單個學生資訊 3.新增學生資訊 4.刪除學生資訊 5.修改學生資訊 6.退出系統")
def main():
try:
while True:
welcome()
# 接收使用者填寫的序號進行功能判斷
key = int(input("請輸入操作編號:"))
if key == 1:
students1 = bd.getAll()
print('*' * 40)
print("學號 姓名 性別 年齡")
print("-" * 40)
for s1 in students1:
print(s1[0], ' ', s1[1], ' ', s1[2], ' ', s1[3])
print("-"*40)
print('*' * 40)
elif key == 2:
sname2 = input("請輸入要查詢的學生姓名:")
# 判斷是否有該學生的資訊
contain = 0
s2 = student.Student()
s2.setSname(sname2)
students2 = bd.getStudentBySname(s2)
for ss2 in students2:
# 不能寫ss2.getSname()
if ss2[1] == s2.getSname():
contain = 1
if contain == 0:
print("查詢失敗,沒有此學生的資訊,請重新輸入!")
else:
print('*' * 40)
print("學號 姓名 性別 年齡")
print("-" * 40)
for f in students2:
print(int(f[0]), ' ', f[1], ' ', f[2], ' ', f[3])
print("-" * 40)
print('*' * 40)
elif key == 3:
sname3 = input("請輸入學生姓名:")
ssex3 = input("請輸入學生性別:")
sage3 = int(input("請輸入學生年齡:"))
print('*' * 40)
print("姓名 性別 年齡")
print("-" * 40)
print(sname3, ' ',ssex3, ' ', sage3)
print('*' * 40)
isAdd = input("確認要將此資訊新增嗎?Y/N")
if isAdd == 'Y':
s3 = student.Student()
s3.setSname(sname3)
s3.setSsex(ssex3)
s3.setSage(sage3)
bd.addStudent(s3)
print("新增成功")
elif isAdd == 'N':
print("您已取消新增")
else:
print("您輸入有誤,請重新輸入")
print('*' * 40)
print("學號 姓名 性別 年齡")
print("-" * 40)
for st in bd.getAll():
print(st[0], ' ', st[1], ' ', st[2], ' ', st[3])
print("-" * 40)
print('*' * 40)
elif key == 4:
sid = int(input("請輸入要刪除學生的編號:"))
s4 = student.Student()
s4.setSid(sid)
# 查詢是否有該學生
r=bd.getStudentBySid(s4)
if r==None:
print("沒有查詢到該學生的資訊,無法進行刪除!")
else:
isTure = input("確認要刪除該學生資訊嗎?Y/N")
students4 = bd.getAll()
if isTure == 'Y':
bd.delStudent(s4)
print("刪除成功")
print('*' * 40)
print("學號 姓名 性別 年齡")
print("-" * 40)
for ss4 in bd.getAll():
print(ss4[0], ' ', ss4[1], ' ', ss4[2], ' ', ss4[3])
print("-" * 40)
print('*' * 40)
elif isTure == 'N':
print("您已取消刪除")
print('*' * 40)
print("學號 姓名 性別 年齡")
print("-" * 40)
for ss4 in students4:
print(ss4[0], ' ', ss4[1], ' ', ss4[2], ' ', ss4[3])
print("-" * 40)
print('*' * 40)
else:
print("您輸入有誤,請重新輸入")
elif key == 5:
sid=int(input("請輸入要修改學生的編號:"))
s5 = student.Student()
s5.setSid(sid)
# 查詢是否有該學生
t = bd.getStudentBySid(s5)
if t == None:
print("沒有查詢到該學生的資訊,無法進行修改!")
else:
print('*' * 40)
print("學號 姓名 性別 年齡")
print("-" * 40)
print(t[0], ' ', t[1], ' ', t[2], ' ', t[3])
print('*' * 40)
sname5=input("名字修改後為:")
ssex5= input("性別修改後為:")
sage5=int(input("年齡修改後為:"))
s5.setSname(sname5)
s5.setSsex(ssex5)
s5.setSage(sage5)
bd.updStudent(s5)
print('*' * 40)
print("學號 姓名 性別 年齡")
print("-" * 40)
print(sid, ' ', sname5, ' ', ssex5, ' ', sage5)
print('*' * 40)
isTure=input("確認要修改嗎?Y/N")
if isTure=="Y":
upd = bd.getStudentBySid(s5)
print("修改成功")
print('*' * 40)
print("學號 姓名 性別 年齡")
print("-" * 40)
for stu5 in bd.getAll():
print("-" * 40)
print(stu5[0], ' ', stu5[1], ' ', stu5[2], ' ', stu5[3])
print('*' * 40)
elif isTure=="N":
print("您已取消修改")
print('*' * 40)
print("學號 姓名 性別 年齡")
print("-" * 40)
for stu5 in bd.getAll():
print("-" * 40)
print(stu5[0], ' ', stu5[1], ' ', stu5[2], ' ', stu5[3])
print('*' * 40)
else:
print("您輸入有誤,請重新輸入")
elif key == 6:
sel=input("您確定要離開我了嗎?Y/N")
if sel=="Y":
print("感謝您的使用!")
break
elif sel=="N":
main()
else:
print("您輸入有誤,請重新輸入")
else:
print("沒有此操作,請輸入正確編號!")
except ValueError:
print("您的操作可能存在錯誤,原因如下:\n(1)請您輸入操作之後再進行回車\n(2)您輸入的值欄位值不匹配,請重新輸入!")
main()
# 主頁面呼叫主方法
main()
在主介面執行即可
專案執行介面圖:
說在最後的話:編寫實屬不易,若喜歡或者對你有幫助記得點贊+關注或者收藏哦~