当前位置:博客首页>>Python >> 阅读正文

python基础练习-基于文本存取的学员管理’系统’

作者: 郑晓 分类: Python 发布于: 2013-11-26 19:30 浏览(12,843) 评论(6)


这是python吧上一个吧友提出的问题,感觉自己可以用已学过的知识去做出来,就做了出来。 初学python,写的比较冗余和绕弯,估计过个半来月回来看会感觉写的就是一坨翔。。。。
题目如下:
设计一个学生基本信息系统
基本要求:设计一个Student类,属性至少包括学号、姓名、班级等信息,提供添加、查询删除操作。
1、添加:输入一条学生信息,存入student.txt文件中;
2、查询:能分别按学号、姓名、班级属性查询学生信息。
3、删除:根据学号删除学生信息

dbname = 'db.txt'
class Student :
    #构造方法 输出提示信息、获取用户输入的命令
    def __init__(self) :
        print('''
************欢迎!************
* 添加:add number name age *
* 删除:delete number       *
* 搜索:search number       *
*****************************
'''
)
        while 1:
            inp = input("请输入命令:")
            inp = inp.strip().split(' ')
            if inp[0] == 'add': #调用添加方法
                self.add(number=inp[1], name=inp[2], age=inp[3])
            elif inp[0] == 'delete':
                self.delete(inp[1])
            elif inp[0] == 'search':
                li = [x.split('=') for x in inp[1:]]
                self.search(li)
            else:
                print('命令错误,请重新输入!')
    #添加学生信息
    def add(self,number,name,age) :
        f = open(dbname, 'a')
        f.write(str(number) + '|' + name + '|' + str(age)+'\n')
        f.close()
    #按number删除学生信息
    def delete(self, number) :
        f = open(dbname, 'r')
        tmp = ''
        for line in f:
            line_list = line.strip().split('|')
            if line_list[0] == number :
                continue
            tmp += line
        f.close()
        f = open(dbname, 'w')
        f.write(tmp)
        f.close()
        print("成功删除")
    #搜索符合相关条件的学生信息
    def search(self,arg) :
        f = open(dbname, 'r')
        result = []
        for line in f:
            line_list = line.strip().split('|')
            flag = 0
            for con in arg:
                if con[0] == 'all':
                    flag=1
                    break
                if con[0] == 'number':
                    if line_list[0] == con[1] :flag=1
                    else:
                        flag=0
                        break;
                if con[0] == 'name':
                    if line_list[1] == con[1] :flag=1
                    else:
                        flag=0
                        break;
                if con[0] == 'age':
                    if line_list[2] == con[1] :flag=1
                    else:
                        flag=0
                        break;
            if flag:
                result.append(line_list)
        f.close()
        if len(result)>0:
            print("搜索完成:")
            print('\n'.join([' '.join(x) for x in result]))
        else:
            print("未找到符合条件的学生")
Student()

运行结果:

python基础练习-学生管理系统

       

本文采用知识共享署名-非商业性使用 3.0 中国大陆许可协议进行许可,转载时请注明出处及相应链接。

本文永久链接: https://www.zh30.com/python-text-access-system.html

python基础练习-基于文本存取的学员管理’系统’:目前有6 条留言

用户评论头像 bet365发表于 2013年12月17日 09:39[回复]

他已经消失,但他却要顽固地留在你心里,成为记忆的一部分,时时刻刻提醒你,让你在将来的某一刻还会恍然大悟:原来我今天懂得幸福,只是因为曾经失去过你

用户评论头像 情诗网发表于 2013年12月05日 14:32[回复]

不错的代码搜藏啦! :mrgreen:

用户评论头像 情侣网名发表于 2013年12月03日 23:48[回复]

谢谢大神分享,支持哦

用户评论头像 jesse发表于 2013年11月28日 15:19[回复]

楼主博客做的挺漂亮

用户评论头像 神经大爆炸发表于 2013年11月26日 22:31[回复]

抢沙发 膜拜PHP大神

    用户评论头像 郑晓发表于 2013年11月27日 08:12[回复]

    菜鸟而已。。