ATM管理系统
博客班级 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19
作业要求 [https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11477](
作业目标 做出ATM管理系统
学号 3170704414
题目要求
编写一个ATM管理系统,语言不限,要求应包括以下主要功能:
(1)开户,销户
(2)查询账户余额
(3)存款
(4)取款
(5)转账(一个账户转到另一个账户)等...、
1.连接MySQL数据库、建立数据表、给数据表中插入数据:
coding=utf-8
import MySQLdb
conn = MySQLdb.connect(host='127.0.0.1',port=3306,user='root',passwd='971012',db='test',charset="utf8") #连接mysql数据库
cursor = conn.cursor() #获取游标来进行查询
##########创建数据表用来存放用户信息###########
sql = '''CREATE TABLE IF NOT EXISTS userinfoes (
user VARCHAR(20),
password VARCHAR(6),
age VARCHAR(3),
sex VARCHAR(5),
mobile VARCHAR(11),
balance FLOAT(12,2))'''
cursor.execute(sql)
sql = '''INSERT INTO userinfoes(user,
password,age,sex,mobile,balance)
VALUES ('luu','123456','19','woman','12345678900',10000)'''
cursor.execute(sql)
2.实现登录验证、
def login():
##########判断用户名##########
print u'请输入你的用户名:'
k=3 #记录输错次数
while k:
global username
username = raw_input()
userinfoes = "SELECT * FROM userinfoes WHERE user='%s'"%username #查询该用户是否存在
j = cursor.execute(userinfoes) #满足该条件的数据条数
if username == '':
print u'用户名不能为空!'
elif j == 0:
k-=1
if k!=0:
print u'用户名错误,请重新输入:'
else:
print u'你已输错三次!'
conn.close()
cursor.close()
exit()
else:
break
##########判断密码##########
print u'请输入你的密码:'
k = 3
while k:
password = raw_input()
userinfoes = "SELECT * FROM userinfoes WHERE user='%s' and password='%s'"%(username,password) #查询输入的密码是否与用户匹配
j = cursor.execute(userinfoes)
if password == '':
print u'密码不能为空!'
elif j == 0:
k-=1
if k!=0:
print u'密码错误,请重新输入:'
else:
print u'你已输错三次!'
conn.close()
cursor.close()
exit()
else:
print u'恭喜你,登录成功!'
break
3.实现用户注册
##########注册##########
def enroll():
print u'请输入用户名(长度<=20):' #用户名
while 1:
username = raw_input()
userinfoes = "SELECT * FROM userinfoes WHERE user='%s'"%username #查询该用户是否存在
j = cursor.execute(userinfoes) #满足此条件的数据条数
if j1:
print u'该用户名已经存在,请重新输入!'
elif username'':
print u'用户名不能为空!'
else:
break
def judge():
while(1):
password = raw_input()
if len(password)!=6:
print u'长度不正确,请重新输入:'
else:
break
return password
while 1:
print u'请输入密码(长度=6):'
p = judge()
print u'请再次确认密码:'
q = judge()
if p!=q:
print u'两次输入的密码不相等,请重新输入!'
else:
break
print u'请输入你的年龄:'
while 1:
age = raw_input()
if age=='':
print u'年龄不能为空,请重新输入!'
elif len(age)>3:
print u'请输入有效年龄!'
else:
break
print u'请输入你的性别(man/woman):'
while 1:
sex = raw_input()
if sex!='man' and sex!='woman':
print u'请输入正确信息!'
else:
break
print u'请输入你的电话号码:'
while 1:
mobile = raw_input()
j=0
for i in mobile:
if i<'0' or i>'9':
j+=1
if len(mobile)!=11 or j!=0:
print u'请输入有效信息!'
else:
break
sql = "INSERT INTO userinfoes(user,password,age,sex,mobile,balance)VALUES('%s','%s','%s','%s','%s','%f')" % (username,p,age,sex,mobile,5000.00)
try:
cursor.execute(sql)
conn.commit()
print u'注册成功,获得5000元余额!'
judge1()
except:
conn.rollback()
4.系统退出
conn.close()
cursor.close()
5.主菜单界面
def Home_page():
print u'''欢迎使用蜗牛ATM无限制存取款系统
==请输入你的选项,1:登录 2:注册 3:退出=
==========================================='''
##########主菜单##########
def judge1():
Home_page()
while 1:
judge_1 = raw_input()
if judge_1=='1': #登录
login()
judge2()
elif judge_1 == '2': #注册
enroll()
elif judge_1=='3': #退出
print u'感谢你的使用!'
conn.close()
cursor.close()
exit()
else:
print u'请输入有效数字!'
6.登陆后副菜单界面(实现余额查询、转账、取款、存款等)
def Home_page_2():
print u'''请输入你的选项=
1:查询余额 2:转账 3:取款 4:存款 5:返回主菜单 6:退出
========================================='''
##########副菜单##########
def judge2():
while 1:
Home_page_2()
judge_2 = raw_input()
if judge_2'1':#余额
print u'你的余额为:%0.2f'%user_balance(username)
continue
elif judge_2'2': #转账
print u'请输入对方用户名:'
while 1:
other_username = raw_input()
userinfoes = "SELECT * FROM userinfoes WHERE user='%s'"%other_username #查询该用户是否存在
j = cursor.execute(userinfoes) #满足该条件的数据条数
if other_username == '':
print u'用户名不能为空!'
elif j0:
print u'用户名不存在,请输入有效用户名;'
else:
print u'请输入转账金额:'
sum = float(raw_input())
M_balance = user_balance(username)
O_balance = user_balance(other_username)
if M_balance-sum >= 0:
sq1 = "UPDATE userinfoes SET balance=%0.2f WHERE user='%s'" % (M_balance-sum, username)
sq2 = "UPDATE userinfoes SET balance=%0.2f WHERE user='%s'" % (O_balance+sum, other_username)
try:
cursor.execute(sq1)
cursor.execute(sq2)
conn.commit()
print u'转账成功!'
except:
conn.rollback()
print u'转账失败'
else:
print u'转账失败,你余额不足!'
break
continue
elif judge_2'3': #取款
print u'请输入你的取款金额:'
sum = float(raw_input())
M_balance = user_balance(username)
if M_balance-sum >= 0:
sq1 = "UPDATE userinfoes SET balance='%0.2f' WHERE user='%s'"%(M_balance-sum, username)
try:
cursor.execute(sq1)
conn.commit()
print u'取款成功!'
except:
conn.rollback()
else:
print u'你的余额不足!'
continue
elif judge_2'4': #存款
print u'请输入你的存款金额(金额<100,000,000.00):'
sum = raw_input()
if ',' in sum:
sum = sum.replace(',','')
sum = float(sum)
sq1 = "UPDATE userinfoes SET balance=balance+'%0.2f' WHERE user='%s'"%(sum, username)
try:
cursor.execute(sq1)
conn.commit()
print u'存款成功!'
except:
conn.rollback()
print u'存款失败!'
continue
elif judge_2'5': #返回主菜单
judge1()
elif judge_2'6': #退出
print u'感谢你的使用!'
conn.close()
cursor.close()
exit()
else:
print u'请输入有效数字!'
continue
break
##########余额###########
def user_balance(h):
userinfoes = "SELECT * FROM userinfoes WHERE user='%s'"%h
j = cursor.execute(userinfoes)
k = cursor.fetchmany(j)
for i in k:
return i[5]
judge1()
运行截图
项目小结
使用python解决问题,进一步了解调用函数以及复习python