<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了Python編寫車票訂購系統,Python實現快遞收費系統的具體程式碼,供大家參考,具體內容如下
要求:
1.上網查詢鄭州到北京,西安,石家莊,濟南,太原,武漢的距離及票價,用資料庫儲存車次資訊
2.要求輸入目的地,能夠查詢到里程和票價
3.用資料庫儲存每一次售票記錄,包括售票流水號,起點站,終點站,里程,金額等資料,並統計所有儲存記錄的總售票金額及各站的旅客流量(進站流量+出站流量)
4.能夠列印票據資訊,包括訂票人資訊,票價,票據號,車次等資訊
import sqlite3 import os import time def createDB(): """ 建立並初始化資料庫 """ # 原始資料 info = [("G1564", "鄭州", "北京", "309", "693"), ("G802", "鄭州", "北京", "315", "693"), ("G564", "鄭州", "北京", "326.5", "693"), ("G2025", "鄭州", "西安", "239", "479.3"), ("D311", "鄭州", "西安", "159", "479.3"), ("G857", "鄭州", "西安", "229", "479.3"), ("G1286", "鄭州", "石家莊", "189.5", "417.9"), ("G2070", "鄭州", "石家莊", "196", "417.9"), ("G430", "鄭州", "石家莊", "208", "417.9"), ("G2074", "鄭州", "濟南", "303", "446"), ("G258", "鄭州", "濟南", "312.5", "446"), ("G1844", "鄭州", "濟南", "298.5", "446"), ("D290", "鄭州", "太原", "189", "432.7"), ("D3348", "鄭州", "太原", "153", "432.7"), ("D2782", "鄭州", "太原", "171", "432.7"), ("G1991", "鄭州", "武漢", "244", "509.8"), ("G3203", "鄭州", "武漢", "314", "509.8"), ("G8171", "鄭州", "武漢", "248", "509.8")] con = sqlite3.connect("DB.db")#連線到資料庫 cur = con.cursor() # 建立遊標物件 # 建立欄位,num是車次,station是始發站,destination是目的地,price票價,distance是距離 cur.execute("create table test(num primary key, station, destination, price, distance)") for i in info: cur.execute("insert into test values(?,?,?,?,?)", i) con.commit() cur.close() con.close() def CreateSaleDB(): """ 建立銷售資料庫 """ con = sqlite3.connect("sale.db") cur = con.cursor() # 欄位依次為流水號,起點站,終點站,金額,里程 cur.execute("create table sheet(num,station,destination,price,distance)") con.commit() cur.close() con.close() # 根據目的地查詢車票資訊 def Query(dest): con = sqlite3.connect("DB.db") cur = con.cursor() item = cur.execute("select * from test where destination=?", (dest,)) print("--------------------------查詢到的資訊--------------------------") for i in item.fetchall(): print("車次:%s %s==>%s 票價:%s元 距離:%skm" % (i[0], i[1], i[2], i[3], i[4])) print("--------------------------------------------------------------") cur.close() con.close() def SaveSaleRecord(num, SerialNumber): con = sqlite3.connect("DB.db") cur = con.cursor() item = cur.execute("select * from test where num=?", (num,)) data = [] data.append(SerialNumber) for i in item.fetchall(): data.append(i[1]) data.append(i[2]) data.append(i[3]) data.append(i[4]) cur.close() con.close() data = tuple(data) con = sqlite3.connect("sale.db") cur = con.cursor() cur.execute("insert into sheet values(?,?,?,?,?)", data) con.commit() cur.close() con.close() return data def Statistics(): con = sqlite3.connect("sale.db") cur = con.cursor() item = cur.execute("select * from sheet") total_sale = 0 # 進出站客流量統計列表,進站/出站 zhengzhou = [0, 0] beijing = [0, 0] xian = [0, 0] shijiazhuang = [0, 0] jinan = [0, 0] taiyuan = [0, 0] wuhan = [0, 0] for i in item.fetchall(): temp = float(i[3]) total_sale = temp + total_sale # 流水號,起點站,終點站,金額,里程 # 進站統計 if i[1] == '鄭州': zhengzhou[0] += 1 elif i[1] == '北京': beijing[0] += 1 elif i[1] == '西安': xian[0] += 1 elif i[1] == '濟南': jinan[0] += 1 elif i[1] == '石家莊': shijiazhuang[0] += 1 elif i[1] == '武漢': wuhan[0] += 1 elif i[1] == '太原': taiyuan[0] += 1 # 出站統計 if i[2] == '鄭州': zhengzhou[1] += 1 elif i[2] == '北京': beijing[1] += 1 elif i[2] == '西安': xian[1] += 1 elif i[2] == '濟南': jinan[1] += 1 elif i[2] == '石家莊': shijiazhuang[1] += 1 elif i[2] == '武漢': wuhan[1] += 1 elif i[2] == '太原': taiyuan[1] += 1 print("--------進出站統計--------") print(" 進站 出站") print("鄭州 %d %d" % (zhengzhou[0], zhengzhou[1])) print("北京 %d %d" % (beijing[0], beijing[1])) print("石家莊 %d %d" % (shijiazhuang[0], shijiazhuang[1])) print("西安 %d %d" % (xian[0], xian[1])) print("太原 %d %d" % (taiyuan[0], taiyuan[1])) print("濟南 %d %d" % (jinan[0], jinan[1])) print("武漢 %d %d" % (wuhan[0], wuhan[1])) print("------------------------") print("總銷售額:%.2f元" % total_sale) cur.close() con.close() def PrintData(data, num): """ 列印票據資訊 """ print("--------票據資訊--------") print("車次:%s" %num) print("票據號:%s" %data[0]) print("票價:%s元" %data[3]) print("----------------------") if __name__ == '__main__': # 建立資料庫DB.db if os.path.exists("DB.db"): pass else: # 建立資料庫並初始化 createDB() # 建立銷售資料庫,儲存銷售記錄 if os.path.exists("sale.db"): pass else: CreateSaleDB() flag = 1 while(flag): print("********歡迎使用車票訂購系統*******") print('請選擇您的進一步操作') print('1.查詢車次資訊') print('2.售票記錄和票據資訊') print('3.各站旅客流量統計') print('4.退出系統') a = int(input("請輸入選項:")) if a == 1: dest = input("請輸入目的地:") Query(dest) # num, SerialNumber = Query(dest) # num是購買的車次,SerialNumber是流水號 elif a == 2: num = input("請輸入要購買的車次:") SerialNumber = time.strftime("%Y%m%d%H%M%S", time.localtime()) # 作為流水號 data = SaveSaleRecord(num, SerialNumber) # 儲存售票記錄,返回購票資訊以供列印票據用 PrintData(data, num) # 列印票據資訊 elif a == 3: Statistics() # 統計 elif a == 4: break else: print('輸入錯誤,請重新輸入!!!')
程式執行結果如圖所示:
還有一個是快遞收費系統,要求啥的找不到了,只剩程式碼
import sqlite3 #定義區域快遞費 q=[10,10,15,15,15] x=[3,4,5,6.5,10] #開啟資料庫 def opendb(): #建立全域性變數方便其他函數呼叫 global conn global cur conn=sqlite3.connect('customer.db') cur=conn.cursor() cur.execute('''create table if not exists customers(num,name,distance)''') #新增資料 p0 = [('0', "上海", "同城"), ('1', "江蘇", "臨近兩省"), ('1', "浙江", "臨近兩省"), ('2', "北京", "1500公里(含)以內"), ('2', "天津", "1500公里(含)以內"), ('2', "河北", "1500公里(含)以內")] p1 = [('2', "河南", "1500公里(含)以內"), ('2', "安徽", "1500公里(含)以內"), ('2', "陝西", "1500公里(含)以內"), ('2', "湖北", "1500公里(含)以內"), ('2', "江西", "1500公里(含)以內"), ('2', "湖南", "1500公里(含)以內")] p2 = [('2', "福建", "1500公里(含)以內"), ('2', "廣東", "1500公里(含)以內"), ('2', "山西", "1500公里(含)以內"), ('3', "吉林", "1500-2500公里"), ('3', "甘肅", "1500-2500公里"), ('3', "四川", "1500-2500公里")] p3 = [('3', "重慶", "1500-2500公里"), ('3', "青海", "1500-2500公里"), ('3', "廣西", "1500-2500公里"), ('3', "雲南", "1500-2500公里"), ('3', "海南", "1500-2500公里"), ('3', "內蒙古", "1500-2500公里")] p4 = [('3', "黑龍江", "1500-2500公里"), ('3', "貴州", "1500-2500公里"), ('3', "遼寧", "1500-2500公里"), ('4', "新疆", "2500公里以上"), ('4', "西藏", "2500公里以上")] cur.executemany('''insert into customers values(?,?,?)''',p0) cur.executemany('''insert into customers values(?,?,?)''',p1) cur.executemany('''insert into customers values(?,?,?)''',p2) cur.executemany('''insert into customers values(?,?,?)''',p3) cur.executemany('''insert into customers values(?,?,?)''',p4) #輸出分隔線 def interval(): print('**************************************') #計算快遞費 def Calculation(): num=int(input('請輸入區域編碼(0-4):')) if num<=4: weight = float(input('請輸入快遞重量(公斤):')) #不足1公斤按1公斤計算 if weight!=int(weight): weight=int(weight)+1 s=q[num]+(weight-1)*x[num] print('所需快遞費為:%.2f'%s) interval() else: print('區域編號錯誤!請重新輸入!') Calculation() #修改區域快遞費 def modify(): #輸出目前區域快遞費方便修改 print("目前區域快遞費為:") Inquire2() num=int(input('請輸入要修改的區域編碼(0-4):')) if num<=4: q[num]=float(input('請輸入修改後的起重費:')) x[num]=float(input('請輸入修改後的續重費:')) print('修改成功!') #修改完成後輸出修改後的區域快遞費 print('修改後的地區快遞費為:') Inquire2() interval() else: print('區域編號錯誤!請重新輸入!') modify() #查詢地區編碼 def Inquire1(): global cur cur.execute('''select * from customers order by num asc''') print('地區編碼tt地區名稱tt地區距離') for i in cur: print('%-5stt%-5stt%-5s'%(i[0],i[1],i[2])) interval() #查詢地區快遞費 def Inquire2(): print('地區編碼tt起重費(元)tt續費(元/公斤)') for i in range(5): print(i,"ttt%.2fttt%.2f"%(q[i],x[i])) #刪除資料 def delete(): a=input('請輸入要刪除的地區名稱:') global cur cur.execute('''select * from customers where name="%s"'''%a) print('地區編碼tt地區名稱tt地區距離') for i in cur: print('%-5stt%-5stt%-5s'%(i[0],i[1],i[2])) print('1.確認刪除') print('2.取消') b=int(input()) if b==1: cur.execute('''delete from customers where name="%s"'''%a) print('刪除成功!') else: print('取消刪除!') #新增資料 def add(): global cur a = input('請輸入要新增的地區編號:') b = input('請輸入要新增的地區名稱:') c = input('請輸入要新增的地區距離:') s=[(a,b,c)] cur.executemany('''insert into customers values(?,?,?)''',s) print('新增成功!') opendb() print('**********歡迎使用快遞費計算系統**********') while 1>0: print('請選擇您的進一步操作') print('1:新增資料') print('2:計算快遞費') print('3:查詢地區編碼') print('4:查詢區域快遞費') print('5:修改區域快遞費') print('6:刪除資料') print('7:退出系統') a=int(input()) if a==1: add() elif a==2: Calculation() elif a==3: Inquire1() elif a==4: Inquire2() interval() elif a==5: modify() elif a==6: delete() elif a==7: break else: print('輸入錯誤!請重新輸入!') interval() conn.commit() cur.close() conn.close()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45