`## 学生信息管理系统(python),用文件写入写出,
import os
import shutil
import time
from datetime import datetime
stu_info = []
def date_base_read():
global stu_info
f1=open(‘infor_mation_base.txt’,‘r+’)
returmed_list_from_file = f1.readlines()
f1.close()
for str_splited1 in returmed_list_from_file :
str_splited_use_blanke=str_splited1.split()
# 每一行的元素分割为列表,空格分隔开来【name:likang,tel:123,。。。。。】就是其中一个元素
info1 = {}
for str_splited in str_splited_use_blanke:
# 列表进行迭代,
if str_splited.split(':')[0]=="名字":
info1['name'] =str_splited.split(':')[1]
elif str_splited.split(':')[0] == "电话号码":
info1['tel'] = str_splited.split(sep=':')[1]
elif str_splited.split(':')[0] == "学号":
info1['xuehao'] = (str_splited.split(sep=':'))[1]
elif str_splited.split(':')[0] == "性别":
info1['sex'] = str_splited.split(sep=':')[1]
elif str_splited.split(':')[0] == "年龄":
info1['age'] = str_splited.split(sep=':')[1]
elif str_splited.split(':')[0] == "班级":
info1['class'] = str_splited.split(sep=':')[1]
elif str_splited.split(':')[0] == "籍贯":
info1['from'] = str_splited.split(sep=':')[1]
# (str_splited.split(sep=':'))[1] 其中这个是两个元素的列表,索引第二个元素
#
stu_info.append(info1)
# print(stu_info)
定义一个列表,用来存储所有的学生信息(每个学生是一个字典)
def datebase():
# print(stu_info)
f1 = open(‘infor_mation_base.txt’, ‘w+’)
for str1 in stu_info:
f1.write('名字:')
f1.write(str1['name'])
f1.write('\t')
f1.write('电话号码:')
f1.write(str1['tel'])
f1.write('\t')
f1.write('学号:')
f1.write(str1['xuehao'])
f1.write('\t')
f1.write('性别:')
f1.write(str1['sex'])
f1.write('\t')
f1.write('年龄:')
f1.write(str1['age'])
f1.write('\t')
f1.write('班级:')
f1.write(str1['class'])
f1.write('\t')
f1.write('籍贯:')
f1.write(str1['from'])
f1.write('\n')
f1.close()
文件形似存储
主菜单键
def print_menu():
print("---------------------------")
print(" 学生管理系统 V1.0")
print(" 1:添加学生")
print(" 2:删除学生")
print(" 3:修改学生")
print(" 4:查询学生")
print(" 5:显示所有学生")
print(" 6:保存数据")
print(" 7:退出系统")
print("---------------------------")
ok
def option(option_number):
if option_number == 1:
METHOD.add_info()
elif option_number == 2:
METHOD.del_info()
elif option_number == 3:
METHOD.modify_info()
elif option_number == 4:
METHOD.query_info()
elif option_number == 5:
METHOD.show_all()
elif option_number == 6:
datebase()
elif option_number == 7:
print(“成功退出系统”)
else:
print(“没有这个选项”)
ok
class METHOD(object):
# 封装各类数据,方法
@staticmethod
def add_info():
“”“添加学生信息”“”
global stu_info # 学生信息列表成为全局变量
add_name = input("请输入姓名:")
add_tel = input("请输入电话号码:")
add_xuehao= input("请输入学号:")
add_sex = input("请输入性别")
add_class = input("请输入班级")
add_from = input("请输入来自哪个省市")
add_age = input("请输入年龄")
# 判断是否可以添加(所要添加的名字在列表中没有才可以添加)
# for info in stu_info:
# # 遍历列表
# if info["xuehao"] == add_xuehao:
# print("此学号名已经被占用,请重新输入")
# return # 如果一个函数只有 return ,就相当于让函数结束,没有返回值
# 定义一个字典,用来存储添加的学生信息
info = {}
# 向字典中添加数据
info["name"] = add_name
info["tel"] = add_tel
info["xuehao"] = add_xuehao
info["sex"] = add_sex
info["class"] = add_class
info["age"] = add_age
info["from"] = add_from
# 向列表中添加这个字典(一个字典代表一个学生)
stu_info.append(info)
print("添加成功,按6保存后按5查看")
# print(stu_info)
@staticmethod
def del_info():
"""删除学生信息"""
global stu_info
del_id = int(input("请输入要删除的序号:"))
# 判断是否可以删除,(删除的学号范围限制)
if 0 <= del_id < len(stu_info):
del_flag = input("确定删除?yes or no:")
if del_flag == 'yes':
del stu_info[del_id]
print("删除成功,按6保存后按5查看")
else:
print("输入序号有误,请重新输入")
@staticmethod
def modify_info():
"""修改学生信息"""
global stu_info
modify_id = int(input("请输入要修改的序号:"))
# 判断是否可以修改(输入的学号范围限制)
if 0 <= modify_id < len(stu_info):
print("你要修改的信息是:")
print("name:%s,tel:%s,学号:%s,性别:%s,年龄:%s,班级:%s,籍贯:%s" %
(stu_info[modify_id]["name"], stu_info[modify_id]["tel"], stu_info[modify_id]["xuehao"]
,stu_info[modify_id]['sex'] ,stu_info[modify_id]['age'] ,stu_info[modify_id]['class'] ,stu_info[modify_id]['from'] ))
# mod_info = input("您要修改的信息是:")
# stu_info[modify_id][mod_info] = input("请输入新的%s:" % mod_info)
stu_info[modify_id]['name'] = input("请输入新的姓名:")
stu_info[modify_id]['tel'] = input("请输入新的电话:")
stu_info[modify_id]['xuehao'] = input("请输入新的学号")
stu_info[modify_id]['sex'] = input("请输入新d性别")
stu_info[modify_id]['age'] = input("请输入新的年龄")
stu_info[modify_id]['class'] = input("请输入新的班级")
stu_info[modify_id]['from'] = input("请输入新的籍贯")
print("修改成功,按6保存后按5查看")
else:
print("输入序号有误:请重新输入")
@staticmethod
def query_info():
"""查询学生信息"""
query_name = input("请输入要查询学生姓名:")
for info in stu_info:
if info["name"] == query_name:
print("查询到的信息如下")
print("name:%s,tel:%s,学号:%s,性别:%s,班级:%s,籍贯:%s,年龄:%s"
% (info["name"], info["tel"], info["xuehao"],info["sex"],info["class"],info["from"]
,info["age"]))
break # 如果不使用break结束循环,else后的语句一定会被打印
else:
print("没有您要找的信息")
@staticmethod
def show_all():
"""显示所有学生信息"""
print("序号\t\t姓名\t\t手机号\t\t学号\t\t性别\t\t班级\t\t籍贯\t\t年龄")
global i
i = 0
序号
for info in stu_info:
# print(info)
print("%d\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s" % (i,info["name"], info["tel"], info["xuehao"],info["sex"],info["class"],info["from"],info["age"]))
i += 1
def main():
while 1:
date_base_read()
print_menu()
temp = int(input(“小老弟输入你的选项”))
if temp>=0 and temp<=7:
option_number= temp
option(option_number)
if option_number == 7:
break
else :
print("选项超过范围,没有这个选项哦")
date_base_read()
# 更新次数在文件中显示,方便以后查找历史的更新时间
# 主框架 运行的主程序,,将各个模块封装,调用方法,文件数据,类方法简单清晰显示程序
main()
主函数
import os
import shutil
import time
from datetime import datetime
stu_info = []
def date_base_read():
global stu_info
f1=open('infor_mation_base.txt','r+')
returmed_list_from_file = f1.readlines()
f1.close()
for str_splited1 in returmed_list_from_file :
str_splited_use_blanke=str_splited1.split()
# 每一行的元素分割为列表,空格分隔开来【name:likang,tel:123,。。。。。】就是其中一个元素
info1 = {}
for str_splited in str_splited_use_blanke:
# 列表进行迭代,
if str_splited.split(':')[0]=="名字":
info1['name'] =str_splited.split(':')[1]
elif str_splited.split(':')[0] == "电话号码":
info1['tel'] = str_splited.split(sep=':')[1]
elif str_splited.split(':')[0] == "学号":
info1['xuehao'] = (str_splited.split(sep=':'))[1]
elif str_splited.split(':')[0] == "性别":
info1['sex'] = str_splited.split(sep=':')[1]
elif str_splited.split(':')[0] == "年龄":
info1['age'] = str_splited.split(sep=':')[1]
elif str_splited.split(':')[0] == "班级":
info1['class'] = str_splited.split(sep=':')[1]
elif str_splited.split(':')[0] == "籍贯":
info1['from'] = str_splited.split(sep=':')[1]
# (str_splited.split(sep=':'))[1] 其中这个是两个元素的列表,索引第二个元素
#
stu_info.append(info1)
# print(stu_info)
# 定义一个列表,用来存储所有的学生信息(每个学生是一个字典)
def datebase():
# print(stu_info)
f1 = open('infor_mation_base.txt', 'w+')
for str1 in stu_info:
f1.write('名字:')
f1.write(str1['name'])
f1.write('\t')
f1.write('电话号码:')
f1.write(str1['tel'])
f1.write('\t')
f1.write('学号:')
f1.write(str1['xuehao'])
f1.write('\t')
f1.write('性别:')
f1.write(str1['sex'])
f1.write('\t')
f1.write('年龄:')
f1.write(str1['age'])
f1.write('\t')
f1.write('班级:')
f1.write(str1['class'])
f1.write('\t')
f1.write('籍贯:')
f1.write(str1['from'])
f1.write('\n')
f1.close()
# 文件形似存储
# 主菜单键
def print_menu():
print("---------------------------")
print(" 学生管理系统 V1.0")
print(" 1:添加学生")
print(" 2:删除学生")
print(" 3:修改学生")
print(" 4:查询学生")
print(" 5:显示所有学生")
print(" 6:保存数据")
print(" 7:退出系统")
print("---------------------------")
# ok
def option(option_number):
if option_number == 1:
METHOD.add_info()
elif option_number == 2:
METHOD.del_info()
elif option_number == 3:
METHOD.modify_info()
elif option_number == 4:
METHOD.query_info()
elif option_number == 5:
METHOD.show_all()
elif option_number == 6:
datebase()
elif option_number == 7:
print("成功退出系统")
else:
print("没有这个选项")
# ok
class METHOD(object):
# 封装各类数据,方法
@staticmethod
def add_info():
"""添加学生信息"""
global stu_info # 学生信息列表成为全局变量
add_name = input("请输入姓名:")
add_tel = input("请输入电话号码:")
add_xuehao= input("请输入学号:")
add_sex = input("请输入性别")
add_class = input("请输入班级")
add_from = input("请输入来自哪个省市")
add_age = input("请输入年龄")
# 判断是否可以添加(所要添加的名字在列表中没有才可以添加)
# for info in stu_info:
# # 遍历列表
# if info["xuehao"] == add_xuehao:
# print("此学号名已经被占用,请重新输入")
# return # 如果一个函数只有 return ,就相当于让函数结束,没有返回值
# 定义一个字典,用来存储添加的学生信息
info = {}
# 向字典中添加数据
info["name"] = add_name
info["tel"] = add_tel
info["xuehao"] = add_xuehao
info["sex"] = add_sex
info["class"] = add_class
info["age"] = add_age
info["from"] = add_from
# 向列表中添加这个字典(一个字典代表一个学生)
stu_info.append(info)
print("添加成功,按6保存后按5查看")
# print(stu_info)
@staticmethod
def del_info():
"""删除学生信息"""
global stu_info
del_id = int(input("请输入要删除的序号:"))
# 判断是否可以删除,(删除的学号范围限制)
if 0 <= del_id < len(stu_info):
del_flag = input("确定删除?yes or no:")
if del_flag == 'yes':
del stu_info[del_id]
print("删除成功,按6保存后按5查看")
else:
print("输入序号有误,请重新输入")
@staticmethod
def modify_info():
"""修改学生信息"""
global stu_info
modify_id = int(input("请输入要修改的序号:"))
# 判断是否可以修改(输入的学号范围限制)
if 0 <= modify_id < len(stu_info):
print("你要修改的信息是:")
print("name:%s,tel:%s,学号:%s,性别:%s,年龄:%s,班级:%s,籍贯:%s" %
(stu_info[modify_id]["name"], stu_info[modify_id]["tel"], stu_info[modify_id]["xuehao"]
,stu_info[modify_id]['sex'] ,stu_info[modify_id]['age'] ,stu_info[modify_id]['class'] ,stu_info[modify_id]['from'] ))
# mod_info = input("您要修改的信息是:")
# stu_info[modify_id][mod_info] = input("请输入新的%s:" % mod_info)
stu_info[modify_id]['name'] = input("请输入新的姓名:")
stu_info[modify_id]['tel'] = input("请输入新的电话:")
stu_info[modify_id]['xuehao'] = input("请输入新的学号")
stu_info[modify_id]['sex'] = input("请输入新d性别")
stu_info[modify_id]['age'] = input("请输入新的年龄")
stu_info[modify_id]['class'] = input("请输入新的班级")
stu_info[modify_id]['from'] = input("请输入新的籍贯")
print("修改成功,按6保存后按5查看")
else:
print("输入序号有误:请重新输入")
@staticmethod
def query_info():
"""查询学生信息"""
query_name = input("请输入要查询学生姓名:")
for info in stu_info:
if info["name"] == query_name:
print("查询到的信息如下")
print("name:%s,tel:%s,学号:%s,性别:%s,班级:%s,籍贯:%s,年龄:%s"
% (info["name"], info["tel"], info["xuehao"],info["sex"],info["class"],info["from"]
,info["age"]))
break # 如果不使用break结束循环,else后的语句一定会被打印
else:
print("没有您要找的信息")
@staticmethod
def show_all():
"""显示所有学生信息"""
print("序号\t\t姓名\t\t手机号\t\t学号\t\t性别\t\t班级\t\t籍贯\t\t年龄")
global i
i = 0
# 序号
for info in stu_info:
# print(info)
print("%d\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s" % (i,info["name"], info["tel"], info["xuehao"],info["sex"],info["class"],info["from"],info["age"]))
i += 1
def main():
while 1:
date_base_read()
print_menu()
temp = int(input("小老弟输入你的选项"))
if temp>=0 and temp<=7:
option_number= temp
option(option_number)
if option_number == 7:
break
else :
print("选项超过范围,没有这个选项哦")
date_base_read()
# 更新次数在文件中显示,方便以后查找历史的更新时间