歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Python寫的ATM小程序

准備好好學學Python了,要不快沒飯吃了,這兩個禮拜看了一些視頻教程和書籍,遂拿這個ATM小程序練練手。

文件結構

程序共有6個py文件和3個文本文件

cashin.py  -- 還款模塊
goods_list  -- 商品列表
login.py -- 主文件
menu.py -- 菜單模塊
printlist.py  -- 記錄打印模塊
record_tran.txt  -- 用戶操作記錄
shopping.py -- 購買模塊
user_list -- 用戶列表
withdraw.py -- 提現模塊

源代碼: 

login.py

#!/usr/bin/python 

import sys

from menu import menu_show

 

while True:

    user = str(raw_input("\033[1;32;40mPlease input your name:\033[0m"))

    f = open('user_list','r+')

    for line in f.readlines():

        n = str(line.split()[0])

        p = str(line.split()[1])

        if user == n:

            while True:

                password = str(raw_input("\033[1;32;40mPlease input your password:\033[0m"))

                if password != p:

                    print "\033[1;31;40mThe password is incorrect\033[0m"

                    continue

                else:

                    print "\033[1;32;40myes let you in.\033[0m"

                    global money

                    money_total = 15000

                    while True:

                        print "\033[1;33;40mYou total money is: \033[0m",money_total

                        money_total = menu_show(user,money_total)

        else:

            print "\033[1;31;40mThe user is not vaild, please re-input:\033[0m"

            continue 

menu.py

#!/usr/bin/python

 

import sys

import os

from shopping import show_shopping_list

from printlist import print_list

from withdraw import with_draw

from cashin import cash_in

 

def menu_show(n,mo):

    print "Welcome %s, This is the ATM system:" %n

    print "Select what you want to do:"

    print " 1. Shopping"

    print " 2. Withdraw"

    print " 3. Cash in"

    print " 4. Print list"

    print " 5. Exit"

    user_input = int(raw_input("Input 0 ~ 5 "))

    global current_user

    current_user = n

    mo = menu_select(user_input,mo)

    return mo

 

def menu_select(input,money):

    if input == 1:

        money = show_shopping_list(current_user,money)

    if input == 2:

        money = with_draw(current_user,money)

    if input == 3:

        money = cash_in(current_user,money)

    if input == 4:

        print_list(current_user)

    if input == 5:

        print "\033[1;33;40mThank you for using ATM, Good bye!\033[0m"

        sys.exit()

    return money

shopping.py

#!/usr/bin/python

 

import sys

import time

 

def show_shopping_list(n,m):

   

    #read the file to a dictionary

    goods_dict={}

    goods = open('goods_list','r+')

    for line in goods.readlines():

        key = line.split()[0]

        value = line.split()[1]+' '+line.split()[2]

        goods_dict[key] = value

   

    #print the goods list

    print "The current user is %s." %n

    print goods_dict 

   

    #decrease the money

    buy_number = int(raw_input("Please select which one you want to buy:"))

    goods_name = goods_dict[`buy_number`].split()[0]

    goods_value = int(goods_dict[`buy_number`].split()[1])

   

    m = calculate(int(m),goods_value)

   

    #record the log

    shopping_file_write(n,goods_name,goods_value,0)

   

    return m

def calculate(qian,pri):

    new_qian = qian - pri

    return new_qian

   

def shopping_file_write(user,name,price,fee):

    tran_time=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))

    spath = "record_tran.txt"

    f = open(spath,'a')

    f.write("%s|%s|%s|%d|%d  \n"  %(user,tran_time,name,price,fee))

    f.close() 

withdraw.py

#!/usr/bin/python

 

import time

 

#withdraw function

 

def with_draw(n,m):

    print "Hello %s, you account have %d RMB." %(n,m)

    print "Attention: There are 5% fee per withdraw !"

    draw = int(raw_input("Please input how much money you want to with draw:"))

    m = m - draw * 1.05

   

    #record to the log

   

    withdraw_file_write(n,draw)

   

    return m

 

def withdraw_file_write(user,withdraw):

    shouxufei = cash * 0.05

    tran_time=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))

    spath = "record_tran.txt"

    f = open(spath,'a')

    f.write("%s|%s|withdraw|%d|%d  \n" %(user,tran_time,withdraw,shouxufei))

    f.close()

cashin.py

#!/usr/bin/python

import time

#cash in function

def cash_in(n,m):

    print "Hello %s, your account have %d RMB now." %(n,m)

    cash = int(raw_input("Please input how much money you want to save in :"))

    m = m + cash

    cashin_file_write(n,cash)

    return m

 

def cashin_file_write(user,cashin):

    tran_time=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))

    spath = "record_tran.txt"

    f = open(spath,'a')

    f.write("%s|%s|cashin|%d|0  \n"  %(user,tran_time,cashin))

    f.close()

printlist.py

#!/usr/bin/python

#select current user's bill

def print_list(n):

    print "Hello %s, Here is your bill:" %n

    print "Account|Date|Goods|Price|Fee"

    spath1 = "./record_tran.txt"

    f1 = open(spath1,'r')

    for line in f1.readlines():

        if line.split('|')[0] == n:

            print line

user_list

user1 123

user2 456

goods_list

1  Car  250000

2  Clothes  399

3  Shoes  199

4  Iphone5s  4999

5  Coffee  35

6  Foods    68

7  Bicycle  1688

example of record_tran.txt

user1|2014-07-08 16:59:27|Iphone5s|4999|0 

user2|2014-07-08 16:59:31|withdraw|1000|50 

user1|2014-07-08 16:59:56|withdraw|500|25 

user2|2014-07-09 14:38:33|cashin|3456|0 

user2|2014-07-09 14:39:10|Coffee|35|0

《Python核心編程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm

《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視頻+代碼] http://www.linuxidc.com/Linux/2013-11/92693.htm

Python腳本獲取Linux系統信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

在Ubuntu下用Python搭建桌面算法交易研究環境 http://www.linuxidc.com/Linux/2013-11/92534.htm

Python 語言的發展簡史 http://www.linuxidc.com/Linux/2014-09/107206.htm

Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved