9.29 python 物资管理实例1

 0.完整代码

class Thing:
 
    def __init__(self, sname, name, detaction, state = 0):
        self.sname = sname
        self.name = name
        self.detaction = detaction
        self.state = state
 
    def __str__(self):
        status = '未借出'
        if self.state == 1:
            status = '已借出'
        return '缩写:(%s) 全称:%s 描述:%s\n状态:%s ' % (self.sname, self.name, self.detaction, status)
 
class ThingManager:

    things = []
    def __init__(self):
        thing1 = Thing('jsq','计算器','卡西欧')
        self.things.append(thing1)
        
 
    def menu(self):
        print('欢迎使用物资管理系统\n')
        while True:
            print('1.查询所有物资\n2.添加物资\n3.借物资\n4.归还物资\n5.退出系统\n')
            choice = int(input('请输入选择对应的功能:'))
            if choice == 1:
                self.show_all_thing()
            elif choice == 2:
                self.add_thing()
            elif choice == 3:
                self.lend_thing()
            elif choice == 4:
                self.return_thing()
            else:
                print('感谢使用!')
                break
 
    def show_all_thing(self):
        print('物资信息如下:')
        for thing in self.things:
            print(thing)
            print('')

    def add_thing(self):
        new_sname = input('请输入物资缩写:')
        new_name =  input('请输入全称:')
        new_detaction = input('请输入物资描述:')
        new_thing = Thing(new_sname, new_name, new_detaction)
        self.things.append(new_thing)
        print('物资录入成功!\n')

    def check_thing(self,sname):
        for thing in self.things:
            if thing.sname == sname:
                 return thing 
        else:
            return None

    def lend_thing(self):
        sname = input('请输入物资的缩写:')
        res = self.check_thing(sname)

        if res != None:
            if res.state == 1:
                print('已经被借走')
            else:
                print('成功')
                res.state = 1
        else:
            print('物资暂时没有收录在系统里')
    
    def return_thing(self):
        sname = input('请输入归还物资的缩写:')
        res = self.check_thing(sname)
        if res == None:
            print('没有该物资')
        else:
            if res.state == 0:
                print('物资没有被借走')
            else:
                print('归还成功!')
                res.state = 0
 
manager = ThingManager()
manager.menu()

1.解释 

class Thing:
 
    def __init__(self, sname, name, detaction, state = 0):
        self.sname = sname
        self.name = name
        self.detaction = detaction
        self.state = state
 
    def __str__(self):
        status = '未借出'
        if self.state == 1:
            status = '已借出'
        return '缩写:(%s) 全称:%s 描述:%s\n状态:%s ' % (self.sname, self.name, self.detaction, status)

首先创建一个类(class),然后对类进行描述(def)

内容包括sname(缩写)name(全称)detaction(描述 “英文是随便打的。。。”)

state(状态)  1借出      0未借出

_init_ 代表对实例属性的初始化

_str_代表直接打印其中返回(return)值,就是print(Thing)后会直接显示return中的值

class ThingManager:

    things = []
    def __init__(self):
        thing1 = Thing('jsq','计算器','卡西欧')
        self.things.append(thing1)

定义菜单

增加物资描述(直接导入物资的话)

每个物资都应该有thing1 = Thing('s','n','d')和self.things.append(thing1)

 def menu(self):
        print('欢迎使用物资管理系统\n')
        while True:
            print('1.查询所有物资\n2.添加物资\n3.借物资\n4.归还物资\n5.退出系统\n')
            choice = int(input('请输入选择对应的功能:'))
            if choice == 1:
                self.show_all_thing()
            elif choice == 2:
                self.add_thing()
            elif choice == 3:
                self.lend_thing()
            elif choice == 4:
                self.return_thing()
            else:
                print('感谢使用!')
                break

菜单主界面定义

def show_all_thing(self):
        print('物资信息如下:')
        for thing in self.things:    #遍历表格,打印物资
            print(thing)
            print('')

    def add_thing(self):    #新建物资
        new_sname = input('请输入物资缩写:')
        new_name =  input('请输入全称:')
        new_detaction = input('请输入物资描述:')
        new_thing = Thing(new_sname, new_name, new_detaction)
        self.things.append(new_thing)
        print('物资录入成功!\n')

    def check_thing(self,sname):   #查看物资状态
        for thing in self.things:
            if thing.sname == sname:
                 return thing 
        else:
            return None

    def lend_thing(self):
        sname = input('请输入物资的缩写:')
        res = self.check_thing(sname)

        if res != None:
            if res.state == 1:
                print('已经被借走')
            else:
                print('成功')
                res.state = 1
        else:
            print('物资暂时没有收录在系统里')
    
    def return_thing(self):
        sname = input('请输入归还物资的缩写:')
        res = self.check_thing(sname)
        if res == None:
            print('没有该物资')
        else:
            if res.state == 0:
                print('物资没有被借走')
            else:
                print('归还成功!')
                res.state = 0

这样一个简陋的物资管理程序就做好了,当然还可以加入信息录入人,借出人信息,再读取一个表格来储存信息。

上一篇:2019CCPC秦皇岛站网络赛-1008-Fishing Master(贪心+思维)


下一篇:python list元素复杂排序