# 1. 题目描述
现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。
现在需要你用程序来判断IP是否合法。
输入描述:输入一个ip地址
输出描述:返回判断的结果YES or NO
示例1
输入: 10.138.15.1
输出: YES
#2. 题目描述
1 总体说明
考生需要模拟实现一个简单的自动售货系统,实现投币、购买商品、退币、查询库存商品及存钱盒信息的功能。
系统初始化时自动售货机中商品为6种商品,商品的单价自定义,存钱盒内放置1元、2元、5元、10元钱币,商品数量和钱币张数通过初始化命令设置。
商品:每种商品包含商品名称、单价、数量三种属性,其中商品名不重复。不能修改商品名称和单价,初始化命令设置商品数量。
# 3. ATM
ATM柜员机管理系统
实现功能:
1. 当用户在登陆界面输入卡号和密码能登陆;
2. 实现开户功能;
3. 与机器交互实现取款, 存款, 转账, 查询余额,
现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。
现在需要你用程序来判断IP是否合法。
输入描述:输入一个ip地址
输出描述:返回判断的结果YES or NO
示例1
输入: 10.138.15.1
输出: YES
程序:
#!/usr/bin/env python
#coding:utf-8
ip = raw_input("IP:")
for i in ip.split("."):
if not (0 < int(i) < 255):
print "NO"
break
else:
print "YES"
测试:
#2. 题目描述
1 总体说明
考生需要模拟实现一个简单的自动售货系统,实现投币、购买商品、退币、查询库存商品及存钱盒信息的功能。
系统初始化时自动售货机中商品为6种商品,商品的单价自定义,存钱盒内放置1元、2元、5元、10元钱币,商品数量和钱币张数通过初始化命令设置。
商品:每种商品包含商品名称、单价、数量三种属性,其中商品名不重复。不能修改商品名称和单价,初始化命令设置商品数量。
# 3. ATM
ATM柜员机管理系统
实现功能:
1. 当用户在登陆界面输入卡号和密码能登陆;
2. 实现开户功能;
3. 与机器交互实现取款, 存款, 转账, 查询余额,
冻结账户, 修改密码等功能;
#!/usr/bin/env python
#coding:utf-8
""" ATM柜员机管理系统
实现功能:
1. 当用户在登陆界面输入卡号和密码能登陆;
2. 实现开户功能;
3. 与机器交互实现取款, 存款, 转账, 查询余额,
冻结账户, 修改密码等功能;
"""
usermask = {}
userinfo = {610001:{"name":"bzc","password":199612,"money":1000}}
cardids = []
for i in range(1, 101):
a = "610%.3d" %(i)
cardids.append(int(a))
def main():
while True:
print """
ATM柜员机管理系统
****欢迎使用****
1.登陆 2.开户 3.退卡
"""
choice = input("输入选项:")
if choice == 1:
loginuser()
elif choice == 2:
createuser()
elif choice == 3:
exit()
else:
print "请输入正确选项..."
def loginuser():
trycount = 0
while trycount < 3:
cardid = input("卡号:")
if not (cardid in usermask):
if cardid in userinfo:
password = input("密码:")
if userinfo[cardid]["password"] == password:
print "登陆成功,欢迎使用"
while True:
print """
ATM柜员机管理系统
****欢迎使用****
1.存款 2.取款
3.转账 4.查询
5.改密 6.退卡
"""
choice = input("选择所需服务:")
if choice == 1:
i = input("输入存款金额:")
j = userinfo[cardid]["money"]
userinfo[cardid]["money"] = i+j
print "存款成功,当前余额:%d" %(userinfo[cardid]["money"])
elif choice == 2:
i = input("输入取款金额:")
if i > userinfo[cardid]["money"]:
print "卡内余额不足..."
else:
j = userinfo[cardid]["money"]
userinfo[cardid]["money"] = i-j
print "取款成功,当前余额:%d" %(userinfo[cardid]["money"])
elif choice == 3:
pass
elif choice == 4:
print """
用户信息
卡号:%d
用户名:%s
余额:%d
""" %(cardid,userinfo[cardid]["name"],userinfo[cardid]["money"])
elif choice == 5:
pass
elif choice == 6:
print "请收好您的卡片"
exit()
else:
print "密码错误..."
trycount += 1
else:
print "该卡号未开户..."
else:
print "该账户已被锁定"
else:
print "连续输入三次错误,账户将被锁定"
usermask[cardid] = userinfo.pop(cardid)
def createuser():
while True:
name = raw_input("用户名:")
password1 = input("设置密码(6位数字组成):")
if len(str(password1)) == 6:
password2 = input("确认密码:")
else:
print "密码不合规范"
if password1 != password2:
print "两次输入的密码不一致..."
else:
cardid = cardids.pop()
print "您注册的卡号为%d" %(cardid)
userinfo[cardid] = {"name":name,"password":password1}
break
main()