欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用python写的一个小系统

程序员文章站 2022-05-25 08:56:21
...

最近在学习python写了一个学生管理系统,参考https://blog.csdn.net/weixin_45650412/article/details/103107054(感谢大牛的分享),不过小编对部分代码可读性进行了调整并新增了部分逻辑如姓名重复、手机号格式简单处理、查询、显示、新增、修改、删除之后的回调学生信息以及删除和修改学生信息的友好提示,以及不删除不修改进行回调。下面贴出我自己的源码,供大家学习交流。本人对python小白一个。望大家指正

#!/usr/bin/python3
# coding=utf-8

"""使用python创建学生管理系统"""
""" 1.Python函数式编程实现思路 """
""" 使用字典把学生的姓名、qq、微信进行封装 """
""" 使用列表(list)装学生的信息 """
""" 实现对列表中字典数据进行增、删、改、查 """
import random

class StudentsSys(object):

    def __init__(self):
        self.names = []
        self.info = "1:新增|2:删除|3:修改|4:查找|5:显示|6:退出系统"

    def print_menu(self):
        """学生管理系统菜单"""
        print("="*50)
        print("\t学生管理系统菜单")
        print("\t1:添加学生信息")
        print("\t2:删除学生信息")
        print("\t3:修改学生信息")
        print("\t4:查找学生信息")
        print("\t5:显示学生信息")
        print("\t6:退出学生管理系统")
        print("=" * 50)

    def caozuo_zhiling(self):
        print("\n")
        print("~"*50)
        print(self.info)
        print("~"*50)

    def addInfo(self):
        self.students = {}
        self.students['name'] = input("请输入学生姓名:")
        for name in self.names:
            if self.students["name"] == name["name"]:
                print("姓名重复,请重新输入!")
                self.start()

        self.students['phone'] = input("请输入学生的手机号:")
        if len(self.students['phone']) != 11:
            print("请输入正确格式的手机号!")
            return
        self.students['email'] = input("请输入学生的邮箱:")
        self.names.append(self.students)
        #print(self.names)
        self.saveInfo()
        self.showInfo()

    def delInfo(self):
        def_name = input("请输入您要删除的学生姓名:")
        print("您确定要删除该学生信息吗?删除属于不可逆操作,请您仔细考虑!")
        msg = input("确认删除,请按'y',返回请按'n'")
        if msg == "y":
            for name in self.names:
                if def_name == name.get("name"):
                    self.names.remove(name)
            self.saveInfo()
            self.showInfo()
        else:
            self.showInfo()

    def modifyInfo(self):
        modify_name = input("请输入您要修改的学生姓名:")
        flag = 0
        msg = input("确认修改,请按'y',返回请按'n'")
        if msg == "y":
            for name in self.names:
                if modify_name == name["name"]:
                    new_name = input("请输入新的名字:")
                    name["name"] = new_name
                    flag = 1
                    self.showInfo()
            if flag == 0:
                print("该名学生%s不存在" % modify_name)
                self.showInfo()
        else:
            self.showInfo()

    def findInfo(self):
        find_name = input("请输入你要查找的姓名:")
        flag = 0
        for name in self.names:
            for value in name.values():
                if find_name == value:
                    flag = 1
                    print("找到了:{}".format(find_name))
                    break
        if flag == 0:
            print("没有找到:{}".format(find_name))


    def loadInfo(self):
        file = open("students.txt","a+")
        file.seek(0,0)
        content = file.read()
        if len(content) > 0:
            self.names = eval(content)

    def saveInfo(self):
        file = open("students.txt","w")
        file.write(str(self.names))
        file.close()
    def showInfo(self):
        print("\n")
        print("\t当前学生系统信息")
        print("~"*50)
        print("\t姓名\t\t手机号\t\t邮箱")
        for name in self.names:
            msg = "\t"+name.get("name")+"\t\t"+name.get("phone")+"\t"+name.get("email")
            print(msg)
        print("~"*50)

    def numberIsdigit(self):
        number = input("请输入指令:")
        if number.isdigit():
            number = int(number)
            if number == 1:
                self.addInfo()
            elif number == 2:
                self.delInfo()
            elif number == 3:
                self.modifyInfo()
            elif number == 4:
                self.findInfo()
            elif number == 5:
                self.showInfo()
            elif number == 6:
                msg = input("您确定要退出学生管理系统吗?,如果您确定退出请输入'y',继续使用请输入'n':")
                if msg == "y":
                    print("成功退出学生管理系统,欢迎您的下次使用!")
                if msg == "n":
                    self.start()
        else:
            print("请输入正确的指令,指令为1-6的纯数字!")

    def start(self):
        self.print_menu()
        self.loadInfo()
        self.caozuo_zhiling()
        self.numberIsdigit()




s = StudentsSys()
s.start()

效果图:

使用python写的一个小系统

相关标签: Python3 python3