2020-12-05

`## 学生信息管理系统(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()
        # 更新次数在文件中显示,方便以后查找历史的更新时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值