python学生信息管理系统登录_python实现学生信息管理系统(从浅到深)

题目

本文只是一个小练习题,功能不是很多,只是简单实现增删改查

使用自定义函数,完成对程序的模块化

学生信息至少包含:姓名、年龄、学号,除外可以适当添加自己想要的信息

必须完成系统的:添加、删除、修改、查询、退出

v1.0版

通过list和字典保存

# -*- coding:utf-8 -*-

# 学生管理系统v1.0

# 添加学生信息

def addStu(array):

"添加学生信息"

stuDict = {} #定义字典保存单个学生信息

try:

id = input("请输入学生学号:")

for i in range(len(array)):

if array[i]['id'] == id:

print("该学号已存在,不能重复添加")

return

name = input("请输入学生姓名:")

age = input("请输入学生年龄:")

stuDict['id'] = id

stuDict['name'] = name

stuDict['age'] = age

array.append(stuDict) #把单个学生添加到总列表中

print("添加成功")

except BaseException:

print("发生异常,添加失败")

# 删除学生信息

def delStu(array):

"删除学生信息"

try:

id = input("请输入要删除的学生学号:")

for i in range(len(array)):

if array[i]['id'] == id:

del array[i]

return 0

return 1

except BaseException:

print("发生异常,删除失败")

return 2

# 修改学生信息

def updateStu(array):

"修改学生信息"

try:

id = input("请输入要修改的学生学号:")

for i in range(len(array)):

if array[i]['id'] == id:

name = input("请输入要修改的学生姓名:")

age = input("请输入要修改的学生年龄:")

array[i]['name'] = name

array[i]['age'] = age

print("修改成功")

return

print("找不到该学号,没法修改")

except BaseException:

print("发生异常,修改失败")

# 查询学生信息

def selectStu(array):

"查询学生信息"

try:

id = input("请输入要查询的学生学号:")

for i in range(len(array)):

if array[i]['id'] == id:

print("查询到的学生信息:",array[i])

return

print("查询失败,查不到该学生信息")

return

except BaseException:

print("发生异常,查询失败")

return

print("=="*30)

print("欢迎使用学生管理系统")

print("1.添加学生信息")

print("2.删除学生信息")

print("3.修改学生信息")

print("4.查询学生信息")

print("5.退出系统")

print("=="*30)

flag = 0

array = [] #定义list用于保存学生信息

while flag != 1:

step = input("请输入你的操作:")

try:

step = int(step)

except BaseException:

print("发生异常,输入的不是数字类型")

break

if step == 1:

addStu(array)

print("学生信息打印:", array)

elif step == 2:

num = delStu(array)

if num == 0:

print("删除成功")

elif num == 1 or num == 2:

print("删除失败")

print("学生信息打印:", array)

elif step == 3:

updateStu(array)

print("学生信息打印:", array)

elif step == 4:

selectStu(array)

else:

flag = 1

print("退出系统成功")

运行结果:

============================================================

欢迎使用学生管理系统

1.添加学生信息

2.删除学生信息

3.修改学生信息

4.查询学生信息

5.退出系统

============================================================

请输入你的操作:1

请输入学生学号:123

请输入学生姓名:ww

请输入学生年龄:11

添加成功

学生信息打印: [{'id': '123', 'age': '11', 'name': 'ww'}]

请输入你的操作:1

请输入学生学号:111

请输入学生姓名:qq

请输入学生年龄:12

添加成功

学生信息打印: [{'id': '123', 'age': '11', 'name': 'ww'}, {'id': '111', 'age': '12', 'name': 'qq'}]

请输入你的操作:3

请输入要修改的学生学号:111

请输入要修改的学生姓名:wq

请输入要修改的学生年龄:14

修改成功

学生信息打印: [{'id': '123', 'age': '11', 'name': 'ww'}, {'id': '111', 'age': '14', 'name': 'wq'}]

请输入你的操作:4

请输入要查询的学生学号:111

查询到的学生信息: {'id': '111', 'age': '14', 'name': 'wq'}

请输入你的操作:2

请输入要删除的学生学号:111

删除成功

学生信息打印: [{'id': '123', 'age': '11', 'name': 'ww'}]

请输入你的操作:5

退出系统成功

Process finished with exit code 0

v2.0版

通过文件保存

# -*- coding:utf-8 -*-

# 学生管理系统v2.0

import os

import json

# 添加学生信息

def addStu(array):

"添加学生信息"

stuDict = {} # 定义字典保存单个学生信息

id = input("请输入学生学号:")

for i in range(len(array)):

if array[i]['id'] == id:

print("该学号已存在,不能重复添加")

return

name = input("请输入学生姓名:")

age = input("请输入学生年龄:")

stuDict['id'] = id

stuDict['name'] = name

stuDict['age'] = age

array.append(stuDict) # 把单个学生添加到总列表中

print("添加成功")

# 删除学生信息

def delStu(array):

"删除学生信息"

id = input("请输入要删除的学生学号:")

for i in range(len(array)):

if array[i]['id'] == id:

del array[i]

return 0

return 1

# 修改学生信息

def updateStu(array):

"修改学生信息"

id = input("请输入要修改的学生学号:")

for i in range(len(array)):

if array[i]['id'] == id:

name = input("请输入要修改的学生姓名:")

age = input("请输入要修改的学生年龄:")

array[i]['name'] = name

array[i]['age'] = age

print("修改成功")

return

print("找不到该学号,没法修改")

# 查询学生信息

def selectStu(array):

"查询学生信息"

id = input("请输入要查询的学生学号:")

for i in range(len(array)):

dict1 = array[i]

if dict1['id'] == id:

print("查询到的学生信息:",array[i])

return

print("查询失败,查不到该学生信息")

return

print("=="*30)

print("欢迎使用学生管理系统")

print("1.添加学生信息")

print("2.删除学生信息")

print("3.修改学生信息")

print("4.查询学生信息")

print("5.退出系统")

print("=="*30)

flag = 0

array = [] #定义list用于保存学生信息

filename = 'write_data.txt' #文件名

if not os.path.exists(filename) : # 判断文件是否存在

file = open(filename, 'w') # 不存在就创建文件

file.close()

f = open(filename, "r")

content = f.readlines()

print("文件内容:",content)

array.extend(content)

array_temp = [] # 临时变量

for i in range(len(array)): # 遍历转成字典

print("第"+str(i)+"行:", array[i])

if isinstance(array[i], str): # 判断是否为字符串

dict1 = json.loads(array[i].replace("'", "\"")) # 字符串转字典(json)

array_temp.append(dict1)

del array

array = array_temp

while flag != 1:

# try:

step = input("请输入你的操作:")

step = int(step)

if step == 1:

addStu(array)

print("学生信息打印:", array)

elif step == 2:

num = delStu(array)

if num == 0:

print("删除成功")

elif num == 1 or num == 2:

print("删除失败")

print("学生信息打印:", array)

elif step == 3:

updateStu(array)

print("学生信息打印:", array)

elif step == 4:

selectStu(array)

elif step == 5:

flag = 1

with open(filename, 'w') as f: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!

for i in range(len(array)):

if i == len(array)-1 :

f.write(str(array[i]).replace("\n", ""))

else:

f.write(str(array[i]).replace("\n", "") + "\n")

f.close()

else:

print("输入指令错误,请重新输入!!")

''' except BaseException as result:

flag = 1

with open(filename, 'w') as f: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!

for i in range(len(array)):

if i== len(array)-1 :

f.write(str(array[i]).replace("\n", ""))

else:

f.write(str(array[i]).replace("\n", "") + "\n")

f.close()

print("发生异常")

print("异常信息是:" , result)'''

print("退出系统成功")

操作跟1.0版就不演示了,文件保存内容如下:

{'name': 'tom', 'id': '123', 'age': '15'}

{'name': '111', 'id': '111', 'age': '111'}

{'name': '11', 'age': '11', 'id': '145'}

{'name': '444', 'age': '444', 'id': '444'}

v3.0版

使用学生类替换字典保存学生信息

# -*- coding:utf-8 -*-

# 学生管理系统v3.0

import os

#定义学生类

class Student:

#类似java的构造器

def __init__(self,id,name,age):

self.id = id

self.name = name

self.age = age

#相当于java的toString()方法

def __str__(self):

#msg = "{'id':" + "'"+self.id +"'"+ ",'name':" + "'" +self.name + "'" + ",'age':" + "'" + self.age+"'}"

msg = "学生信息:id=" + self.id + ",name=" + self.name + ",age=" + self.age

return msg

#获取id

def getId(self):

return self.id

#获取name

def getName(self):

return self.name

#获取age

def getAge(self):

return self.age

#设置name

def setName(self,name):

self.name = name

#设置age

def setAge(self,age):

self.age = age

# 添加学生信息

def addStu(array):

"添加学生信息"

id = input("请输入学生学号:")

for i in range(len(array)):

stu2 = array[i]

if id == stu2.getId():

print("该学号已存在,不能重复添加")

return

name = input("请输入学生姓名:")

age = input("请输入学生年龄:")

stu = Student(id,name,age)

array.append(stu) # 把单个学生添加到总列表中

print("添加成功:",stu)

# 删除学生信息

def delStu(array):

"删除学生信息"

id = input("请输入要删除的学生学号:")

for i in range(len(array)):

stu2 = array[i]

if id == stu2.getId():

del array[i]

return 0

return 1

# 修改学生信息

def updateStu(array):

"修改学生信息"

id = input("请输入要修改的学生学号:")

for i in range(len(array)):

stu2 = array[i]

if id == stu2.getId():

name = input("请输入要修改的学生姓名:")

age = input("请输入要修改的学生年龄:")

stu2.setName(name)

stu2.setAge(age)

print("修改成功")

return

print("找不到该学号,没法修改")

# 查询学生信息

def selectStu(array):

"查询学生信息"

id = input("请输入要查询的学生学号:")

for i in range(len(array)):

stu2 = array[i]

if id == stu2.getId():

print("查询到的学生信息:",stu2)

return

print("查询失败,查不到该学生信息")

return

#打印学生信息

def printStuInfo(array):

for i in range(len(array)):

stu = array[i]

print(stu)

print("=="*30)

print("欢迎使用学生管理系统")

print("1.添加学生信息")

print("2.删除学生信息")

print("3.修改学生信息")

print("4.查询学生信息")

print("5.退出系统")

print("=="*30)

flag = 0

array = [] #定义list用于保存学生信息

filename = 'write_data.txt' #文件名

if not os.path.exists(filename) : # 判断文件是否存在

file = open(filename, 'w') # 不存在就创建文件

file.close()

f = open(filename, "r")

content = f.readlines()

print("文件内容:",content)

array.extend(content)

array_temp = [] # 临时变量

for i in range(len(array)): # 遍历转成学生对象

print("第"+str(i)+"行:", array[i])

if isinstance(array[i], str): # 判断是否为字符串

strArray = str(array[i]).split(",")

id = strArray[0]

name = strArray[1]

age = strArray[2].replace("\n","")

student = Student(id,name,age)#创建学生对象

array_temp.append(student)

del array

array = array_temp

while flag != 1:

step = input("请输入你的操作:")

step = int(step)

if step == 1:

addStu(array)

#print("学生信息打印:", array)

elif step == 2:

num = delStu(array)

if num == 0:

print("删除成功")

elif num == 1 or num == 2:

print("删除失败")

printStuInfo(array)

elif step == 3:

updateStu(array)

printStuInfo(array)

elif step == 4:

selectStu(array)

elif step == 5:

flag = 1

with open(filename, 'w') as f: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!

for i in range(len(array)):

if i == len(array)-1 :

stu =array[i]

f.write(stu.getId() + ","+stu.getName()+","+stu.getAge())

else:

stu = array[i]

f.write(stu.getId() + ","+stu.getName()+","+stu.getAge() + "\n")

f.close()

else:

print("输入指令错误,请重新输入!!")

print("退出系统成功")

v4.0版

把学生信息保存到mysql数据库中

第一步创建表

CREATE TABLE `stu` (

`id` varchar(10) NOT NULL,

`name` varchar(30) DEFAULT NULL,

`age` varchar(10) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

下面是python代码:

需要安装pymysql模块,

执行安装命令是:

pip install PyMySQL

# -*- coding:utf-8 -*-

# 学生管理系统v4.0

import os

import pymysql

#定义学生类

class Student:

#类似java的构造器

def __init__(self,id,name,age):

self.id = id

self.name = name

self.age = age

#相当于java的toString()方法

def __str__(self):

msg = "学生信息:id=" + self.id + ",name=" + self.name + ",age=" + self.age

return msg

#获取id

def getId(self):

return self.id

#获取name

def getName(self):

return self.name

#获取age

def getAge(self):

return self.age

#设置name

def setName(self,name):

self.name = name

#设置age

def setAge(self,age):

self.age = age

# 添加学生信息

def addStu():

"添加学生信息"

id = input("请输入学生学号:")

conn = pymysql.connect(host='localhost', port=3306, db='test', user='root', passwd='123456', charset='utf8')

cursor = conn.cursor()

params = [id]

sql = "select * from stu where id=%s"

cursor.execute(sql,params)

stu = cursor.fetchone()

print("sql返回值:" ,stu)

if stu != None:

if id == stu[0]:

print("该学号已存在,不能重复添加")

conn.close()

return

name = input("请输入学生姓名:")

age = input("请输入学生年龄:")

params = [id,name,age]

sql = "insert into stu(id,name,age) value(%s,%s,%s)"

cursor.execute(sql, params) # 把单个学生添加到总列表中

# 向数据库提交

conn.commit()

# 关闭连接

conn.close()

print("添加成功:")

# 删除学生信息

def delStu():

"删除学生信息"

id = input("请输入要删除的学生学号:")

conn = pymysql.connect(host='localhost', port=3306, db='test', user='root', passwd='123456', charset='utf8')

cursor = conn.cursor()

params = [id]

sql = "delete from stu where id=%s"

try:

cursor.execute(sql, params)

# 向数据库提交

conn.commit()

conn.close()

return 0

except Exception as e:

conn.rollback()

conn.close()

print(e)

return 1

# 修改学生信息

def updateStu():

"修改学生信息"

id = input("请输入要修改的学生学号:")

conn = pymysql.connect(host='localhost', port=3306, db='test', user='root', passwd='123456', charset='utf8')

cursor = conn.cursor()

params = [id]

sql = "select * from stu where id=%s"

cursor.execute(sql, params)

stu = cursor.fetchone()

if stu != None:

if id == stu[0]:

name = input("请输入要修改的学生姓名:")

age = input("请输入要修改的学生年龄:")

sql = "update stu set name=%s,age=%s where id=%s"

params = [name,age,id]

try:

cursor.execute(sql, params)

conn.commit()

conn.close()

print("修改成功")

except Exception as e1:

# 发生错误时回滚

conn.rollback()

conn.close()

print("修改失败")

print(e1)

return

print("找不到该学号,没法修改")

# 查询学生信息

def selectStu():

"查询学生信息"

id = input("请输入要查询的学生学号:")

conn = pymysql.connect(host='localhost', port=3306, db='test', user='root', passwd='123456', charset='utf8')

cursor = conn.cursor()

params = [id]

sql = "select * from stu where id=%s"

cursor.execute(sql, params)

stu = cursor.fetchone()

if stu != None:

student = Student(stu[0],stu[1],stu[2])

print("查询到的学生信息:",student)

else:

print("查询失败,查不到该学生信息")

print("=="*30)

print("欢迎使用学生管理系统")

print("1.添加学生信息")

print("2.删除学生信息")

print("3.修改学生信息")

print("4.查询学生信息")

print("5.退出系统")

print("=="*30)

flag = 0

while flag != 1:

step = input("请输入你的操作:")

step = int(step)

if step == 1:

addStu()

elif step == 2:

num = delStu()

if num == 0:

print("删除成功")

elif num == 1:

print("删除失败")

elif step == 3:

updateStu()

elif step == 4:

selectStu()

elif step == 5:

flag = 1

else:

print("输入指令错误,请重新输入!!")

print("退出系统成功")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值