鱼C论坛

 找回密码
 立即注册
查看: 3793|回复: 8

[分享] 写了一个剪发次卡管理软件,大家见笑了

[复制链接]
发表于 2016-12-7 20:59:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. import pickle
  2. pickle_file = open("customer_data.pkl", 'rb')
  3. vip = pickle.load(pickle_file)

  4. print("|---欢迎进入会员卡管理系统---|")
  5. print("|------1:查询会员资料--------|")
  6. print("|------2:添加新会员----------|")
  7. print("|------3:消费划卡 -----------|")
  8. print("|------4:关闭程序 -----------|")

  9. def oper():#更新数据库
  10.         pickle_file_new = open('customer_data.pkl', 'wb')
  11.         vip1 = vip
  12.         pickle.dump(vip1, pickle_file_new)
  13.         pickle_file_new.close()

  14. class Type:
  15.     def inp_num(self):
  16.         self.num = int(input("请输入编码:"))
  17.         return self.num
  18.     def inp_name(self):
  19.         self.name = input("请输入客户姓名:")
  20.         return self.name
  21.     def inp_count(self):
  22.         self.count = int(input("请输入充值次数:"))
  23.         return self.count

  24.    
  25. while 1:
  26.     print() #空一格
  27.     oper()
  28.     a = Type()
  29.     instr = a.inp_num()

  30.     if instr == 3:
  31.         name = a.inp_name()
  32.         if name in vip:
  33.             if input("该客人剩余%s次,是否消费一次(YES/NO):" % vip[name]) == 'YES':
  34.                 vip[name] -= 1
  35.                 print("%s客人剩余%d次" % (name, vip[name]))

  36.     if instr == 2:
  37.         name = a.inp_name()
  38.         if name in vip:
  39.             print("该客人已存在-->", end = "")
  40.             print("%s客人剩余:%d次" % (name, vip[name]))
  41.             if input("是否修改充值卡次数(YES/NO):") == 'YES':
  42.                 vip[name] += int(a.inp_count())
  43.                 print("%s客人剩余%d次" % (name, vip[name]))
  44.             
  45.         else:
  46.             vip[name] = a.inp_count()

  47.     if instr == 4:
  48.         break
  49.    
  50.     if instr == 1:
  51.         name = a.inp_name()
  52.         print("%s用户剩余%d次" % (name, vip[name]))        

  53. print("|---感谢您的使用---|")


复制代码



目前的小问题是,如果遇到重名的人怎么办? 希望知道的朋友能指导指导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-7 23:28:09 | 显示全部楼层
Python字典其实支持一键多值,看你怎么操作了。
你在创建字典的时候调用dict.setdefault()方法
然后把值以列表的形式加入就可以了。比如:
  1. dict1 = {}
  2. name = "王麻子"
  3. list1 = ["老王的账号","小王的账号","大王的账号"]
  4. dict1.setdefault(name,0)
  5. dict1["王麻子"] = list1
复制代码


三个重名,老王小王中王都是王麻子,怎么访问各自的账号呢?
很简单
  1. dict1["王麻子"][0]
复制代码


结果是:
  1. '老王的账号'
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-8 14:17:37 | 显示全部楼层
zua 发表于 2016-12-7 23:28
Python字典其实支持一键多值,看你怎么操作了。
你在创建字典的时候调用dict.setdefault()方法
然后把值 ...

谢谢,有点难我研究研究
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-8 14:55:14 | 显示全部楼层
cdikop 发表于 2016-12-8 14:17
谢谢,有点难我研究研究

就是创建字典,值用列表写入,毕竟每个列表可以扔很多个数据。
然后调用key的时候 就对应一个列表,然后再调取列表中的每个数据就可以了。读取列表是很简单的,下标就可以。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-8 15:17:30 | 显示全部楼层
zua 发表于 2016-12-8 14:55
就是创建字典,值用列表写入,毕竟每个列表可以扔很多个数据。
然后调用key的时候 就对应一个列表,然后 ...

瞬间懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-8 15:18:25 | 显示全部楼层
zua 发表于 2016-12-8 14:55
就是创建字典,值用列表写入,毕竟每个列表可以扔很多个数据。
然后调用key的时候 就对应一个列表,然后 ...

非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-12-8 16:03:34 | 显示全部楼层

最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-14 20:33:17 | 显示全部楼层
厉害了word姐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-25 11:22:37 | 显示全部楼层
其实直接丢入数据库是最好的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 23:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表