1. CMS首页
  2. 技术杂文

Python简单的信息管理系统课设

# -*- coding: UTF-8 -*-
# *********   学生信息管理系统    *********
class I:
    __i=0
    __opt=0
    __continue=""
    __str=""
    __list0=[]
    __find=False
    def __init__(self):
        self.main()
    #读取信息                                      
    def read(self):
        file = open("datam.txt", "r")
        self.__list0 = file.read()  
        file.close()
        if self.__list0.strip()=="":
            self.__list0=[]
        else:
            self.__list0 = eval(self.__list0)
    #显示主菜单
    def display(self):
        print("*" * 20)
        print("*欢迎使用学生信息管理系统*
*1.添加学生信息     *
*2.删除学生信息     *
*3.修改学生信息     *
*4.查询学生信息     *
*5.退出系统         *")
        print("*" * 20)
    #获取选项
    def get_opt(self):
        self.__opt=input("请输入相应指令:")
    #判断选项
    def check_opt(self):
        if self.__opt=="1" :
            self.add_info()
        elif self.__opt=="2" :
            self.delete_info()
        elif self.__opt=="3" :
            self.modify_info()
        elif self.__opt=="4" :
            self.find_info()
        elif self.__opt=="5" :
            exit()
        else:
            print("请按照提示进行输入!")
            self.main()
    #添加函数
    def add_info(self):
        info={}
        info["姓名"]=input("请输入姓名: ")
        info["性别"]=input("请输入性别: ")
        info["学号"]=input("请输入学号: ")
        self.__list0.append(info)
        self.save_info(self.__list0)
        self.__continue=input("输入1继续,其他键返回主菜单: ")
        if self.__continue=="1":
            self.read()
            self.add_info()
        else:
            self.main()
    #删除函数
    def delete_info(self):
        self.find_info_public()
        if self.__find:
            del self.__list0[self.__i]
            print("操作成功!")
            self.save_info(self.__list0)
            
        else:
            print("抱歉,未找到任何信息!")

        self.__continue=input("输入1继续,其他键返回主菜单: ")
        if self.__continue=="1":
            self.delete_info()
        else:
            self.main()
    #修改函数
    def modify_info(self):
        self.find_info_public()
        if self.__find:
            self.__list0[self.__i]["姓名"]=input("请输入修改后的姓名: ")
            self.__list0[self.__i]["性别"]=input("请输入修改后的性别: ")
            self.__list0[self.__i]["学号"]=input("请输入修改后的学号: ")
            print("操作成功!") 
            self.save_info(self.__list0)
        else:
            print("抱歉,未找到任何信息!")
        self.__continue=input("输入1继续,其他键返回主菜单: ")
        if self.__continue=="1":
            self.modify_info()
        else:
            self.main()
    #公用查找函数
    def find_info_public(self):
        self.__i=0
        self.__find=False
        self.__str=input("请输入学生的姓名或学号: ")
        list_length=len(self.__list0)
        while list_length>self.__i:
            for j in self.__list0[self.__i].values():
                if self.__str in j:
                    print("学生姓名: "   self.__list0[self.__i]["姓名"])
                    print("学生性别: "   self.__list0[self.__i]["性别"])
                    print("学生学号: "   self.__list0[self.__i]["学号"])
                    print("已为您找到以上信息!")
                    self.__find=True
                    return self.__find
                    return self.__i
                    break
            self.__i =1

    #查找函数
    def find_info(self):
        self.find_info_public()
        if self.__find:
            pass
        else:
            print("抱歉,未找到任何信息!")
        self.__continue=input("输入1继续,其他键返回主菜单: ")
        if self.__continue=="1":
            self.find_info()
        else:
            self.main()
    #保存函数
    def save_info(self,data):
        self.__continue=input("是否需要保存数据?输入1保存,其他键取消:")
        if self.__continue=="1":
            file=open("datam.txt","w")
            file.write(str(self.__list0))
            file.close()
            print("操作已保存")
        else:
            print("操作已取消")
    #主函数
    def main(self):
        self.read()
        self.display()
        self.get_opt()
        self.check_opt()  
if __name__=="__main__":
    p=I()    <br>

运行环境:python3.4.*需要有datam.txt文件,并且在同一目录,这个bug也可以去掉的,但是已经不想改了,要改的话没一二十个文件也是不敢说是完善的。
答辩的时候问我 if __name__=="__main__": 这句调用了什么方法,一下子没回答上来,百度搜下。

__name__

__name__是内置变量,可用于反映一个包的结构。假设我们有一个包a,包的结构如下:

a
├── b
│   ├── c.py
│   └── __init__.py
└── __init__.py

如果一个.py文件(模块)被直接运行时,则其没有包结构,其__name__值为__main__,即模块名为__main__。
所以,if __name__ == "__main__"的意思是:当.py文件被直接运行时,if __name__ == "__main__"之下的代码块将被运行;当.py文件以模块形式被导入时,if __name__ == "__main__"之下的代码块不被运行。

发表评论

用户名: