python飞机订票系统
生活随笔
收集整理的這篇文章主要介紹了
python飞机订票系统
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基于python開發的小課設(飛機訂票系統)
代碼大概六七百行
包括錄入顯示查詢刪除修改顯示清空訂票退票我的排序等11個功能
設計的時候采取控制臺控制,文件存儲,未使用數據庫,GUI
需預先建立對應的文本文檔,否則無法運行
有用就點贊關注一下吧
import random class Car():endName = ""hNumber = ""fNumber = ""p = ""Time_ = ""AllHave = 0Have = 0NotHave = 0pMoney = 0def __init__(self):passcheckP = 0 # 設置輸入檢查監視哨 flag2 = 0 temp_0 = {} temp_1 = {} temp_2 = {} temp_3 = {} temp_4 = {} temp_5 = {} temp_6 = {} temp_7 = {} temp_8 = {} def searchSystem():flag = len(open("carInf.txt", "r",encoding="utf-8").readlines())print("歡迎使用查詢系統")print("1->目的地查詢/2->車次查詢")choice_search = int(input())if choice_search == 1 :print("請輸入目的地")cNumber = input()with open("carInf.txt", "r",encoding="utf-8") as fp:fp.readline()for i in range(1, flag):temp_4[i] = str(fp.readline())stc = temp_4[i].split(",")if cNumber == stc[0]:print("找到了要查詢的目的地")index = ibreakif i == flag - 1 and cNumber != stc[0]:print("沒有查詢到要查詢的數據,查詢失敗")else:with open("carInf.txt", "r",encoding="utf-8") as fp:for i in range(0, flag):temp_5[i] = str(fp.readline())sh = str(temp_5[index]).split(",")print("目的地:{0},車牌號:{1},車次號:{2},已訂票乘客姓名:{3},行駛時間:{4}".format(sh[0], sh[1], sh[2], sh[3], sh[4], sh[5]))print("查詢完畢")else:print("請輸入車次")cNumber = input()i = 0with open("carInf.txt", "r",encoding="utf-8") as fp:fp.readline()for i in range(1, flag):temp_4[i] = str(fp.readline())stc = temp_4[i].split(",")if cNumber == stc[2]:print("找到了要查詢的目的地")index = ibreakif i == flag - 1 and cNumber != stc[2]:print("沒有查詢到要查詢的數據,查詢失敗")else:with open("car3.txt","r",encoding="utf-8") as fp:s = fp.readline()with open("carInf.txt", "r",encoding="utf-8") as fp:for i in range(0, flag):temp_5[i] = str(fp.readline())sh = str(temp_5[index]).split(",")print("目的地:{0},車牌號:{1},車次號:{2},已訂票乘客姓名:{3},行駛時間:{4},乘客姓名:張三,總{5},我的已定:{6},總余票{7}".format(sh[0], sh[1], sh[2], sh[3], sh[4], sh[5],s,sh[8]))print("查詢完畢")#刪除系統 def deleteAll():fp = open("carInf.txt","w",encoding="UTF-8").close()fp = open("car_2.txt", "w",encoding="UTF-8").close()fp = open("xx.txt", "w",encoding="UTF-8").close()print("清除全部信息完畢")# 錄入系統------def inPut():flag = 0print("進入錄入系統")with open("carInf.txt", "r+",encoding="utf-8") as fp:fp.seek(0)if not fp.read():fp.write("按照終點站名,車牌號,車次號,已訂票乘客姓名,時間,成員定額,已定票,票價,余票量展示")while True:print("請輸入終點站名")while True:endName = input() # 終點站名count = 0for ch in endName:count = count + 1if count < 0:print("終點站名字小于0個字,請重新輸入")else:with open("carInf.txt", "a+",encoding="utf-8") as fp:fp.write("\n")fp.write(endName)fp.writelines(",")breakprint("請輸入車牌號")hNumber = input()with open("carInf.txt", "a+",encoding="utf-8") as fp:fp.writelines(hNumber)fp.writelines(",")print("請輸入車次號(數字)")fNumber = input()with open("carInf.txt", "a+",encoding="utf-8") as fp:fp.writelines(fNumber)fp.writelines(",")print("請輸入已訂票乘客姓名")fDay = input()with open("carInf.txt", "a+",encoding="utf-8") as fp:fp.writelines(fDay)fp.writelines(",")with open("xx.txt", "a",encoding="utf-8") as fp:fp.writelines(fDay)fp.writelines(",")print("請輸入汽車的行駛時間")fTime = input()with open("carInf.txt", "a+",encoding="utf-8") as fp:fp.writelines(fTime)fp.writelines(",")print("請輸入汽車的成員定額")while True:fMax = int(input())if fMax < 0:print("成員定額小于0,錄入無效,請重新錄入")else:with open("carInf.txt", "a+",encoding="utf-8") as fp:fp.writelines(str(fMax))fp.writelines(",")breakprint("請輸入汽車的已定票額")while True:dNumber = int(input())if dNumber > fMax:print("訂票額已經超過了成員載量,不合理請重新輸入")else:with open("carInf.txt", "a+",encoding="utf-8") as fp:fp.writelines(str(dNumber))fp.writelines(",")breakprint("請輸入汽車的票價")while True:pMoney = int(input())if pMoney < 0:print("價格小于0,錄入無效,請重新錄入")else:with open("carInf.txt", "a+",encoding="utf-8") as fp:fp.writelines(str(pMoney))fp.writelines(",")breakyNumber = fMax - dNumberwith open("carInf.txt","a+",encoding="utf-8") as fp:fp.write(str(yNumber))print("訂票人數為{}".format(dNumber))print("請繼續輸入{}人的名字".format(dNumber))for im in range(0,dNumber):it = input("姓名:")with open("xx.txt","a",encoding="UTF-8") as fp:fp.write(it)fp.write(",")print("該車牌信息錄入完畢,是否繼續錄入下一個車牌?")flag = flag + 1# clearBlankLine()c = input("'y/Y'->yes\t'n/N'->no")if c == 'y' or c == 'Y':continueelse:print("成功退出錄入系統")break# 顯示系統def showSystem():print("歡迎使用顯示系統")with open("carInf.txt", "r",encoding="utf-8") as fp:for it in fp:print(it, end="")print()print("訂票的人: ")# -*- coding:utf-8 -*-with open("xx.txt","r",encoding="utf-8") as fp:Name_R = fp.readline()Name_R_list = Name_R.split(",")with open("carInf.txt","r",encoding="utf-8") as fp:fp.readline()res = fp.readlines()sum = 0for it in res:Nums = 0res_N = it.split(",")Nums = int(res_N[6])sum += Nums# print(Name_R_list)for it in range(0,sum):# im = random.randint(0, len(Name_R_list)-1)print(Name_R_list[it])# 刪除系統------輸入待刪除的 ,然后讀取后臺文件,一行一行的讀,因為向后臺錄入的時候, 是第2個元素,所以分割逗號之后第二個元素就是 ,遍歷 ,找到結果,執行刪除, # 所謂刪除就是數組遷移,刪除第i個元素,就是i后面的元素前移,然后頂掉idef delSystem():flag = len(open("carInf.txt", "r").readlines())print("歡迎使用刪除系統")print("請輸入待刪除的汽車的車次號")delNumber = int(input())with open("carInf.txt", "r",encoding="utf-8") as fp:fp.readline()for i in range(1, flag):temp_0[i] = str(fp.readline())stc = temp_0[i].split(",")if delNumber == int(stc[2]):print("找到了要刪除的數據")index = ibreakif i == flag - 1 and delNumber != int(stc[2]):print("沒有查詢到要刪除的數據,刪除失敗")else:with open("carInf.txt", "r",encoding="utf-8") as fp:for i in range(0, flag):temp_1[i] = str(fp.readline())for j in range(index, flag - 1):temp_1[j] = temp_1[j + 1]with open("carInf.txt", "w",encoding="utf-8") as fp:for i in range(0, flag - 1):fp.write(temp_1[i])print("刪除完成")# 修改系統------輸入待修改的 ,然后讀取后臺文件,一行一行的讀,因為向后臺錄入的時候, 是第2個元素,所以分割逗號之后第二個元素就是 ,遍歷 ,找到結果,重新錄入修改位置的結果 def change():flag = len(open("carInf.txt", "r").readlines())print("歡迎使用修改系統")print("請輸入待修改的汽車的車次號")while True:changeNumber = input()if changeNumber == '' :print("輸入的車次號為空,錄入無效,請重新輸入")else:breakwith open("carInf.txt", "r",encoding="utf-8") as fp:fp.readline()for i in range(1, flag):temp_2[i] = str(fp.readline())stc = temp_2[i].split(",")if changeNumber == stc[2]:print("找到了要修改的數據")index = ibreakif i == flag - 1 and changeNumber != stc[2]:print("沒有查詢到要修改的數據,修改失敗")else:with open("carInf.txt", "r",encoding="utf-8") as fp:for i in range(0, flag):temp_3[i] = str(fp.readline())print("請輸入終點站名")while True:endName = input() # 終點站名count = 0for ch in endName:count = count + 1if count < 0:print("終點站名字小于0個字,請重新輸入")else:breakprint("請輸入車牌號")hNumber = input()print("請輸入車次號")fNumber = input()print("請輸入汽車的行駛日期")fDay = input()print("請輸入已訂票乘客姓名")fTime = input()print("請輸入汽車的成員定額")while True:fMax = int(input())if fMax < 0:print("成員定額小于0,錄入無效,請重新錄入")else:breakprint("請輸入汽車的已定票額")while True:dNumber = int(input())if dNumber > fMax:print("訂票額已經超過了成員載量,不合理請重新輸入")else:breakprint("請輸入汽車的票價")while True:pMoney = int(input())if pMoney < 0:print("價格小于0,錄入無效,請重新錄入")else:breakyNumber = fMax - dNumbertemp_3[index] = str(endName) + ',' + str(hNumber) + ',' + str(fNumber) + ',' + str(fDay) + ',' + str(fTime) + ',' + str(fMax) + ',' + str(dNumber) + ',' + str(pMoney) + ',' + str(yNumber) + '\n'with open("carInf.txt", "w",encoding="utf-8") as fp:for i in range(0, flag):fp.write(temp_3[i])print("修改完成")# clearBlankLine()def preP():# clearBlankLine()flag = len(open("carInf.txt", "r",encoding="UTF-8").readlines())print("歡迎使用訂票系統")print("請輸入車次號")userP = input()Mars = "xx"with open("carInf.txt", "r",encoding="utf-8") as fp:fp.readline()i = 0# stk = {}for i in range(1, flag):temp_6[i] = str(fp.readline())stk = temp_6[i].split(",")if userP == stk[2]:index = iprint("找到了")print("請輸入您的姓名確認")Mars = input()breakif i == flag - 1 and userP != stk[2] or Mars !="張三":print("訂票失敗")else:with open("carInf.txt", "r",encoding="utf-8") as fp:for i in range(0, flag):temp_6[i] = str(fp.readline())shl = str(temp_6[index]).split(",")print("車牌號{}的成員定額是{},已定{},余{},票價:{}".format(shl[1],shl[5],shl[6],shl[8],shl[7]))while True:print("請輸入訂票額")userE = int(input())if userE <= 0:print("訂票額小于等于0,輸入不合法,請重新輸入")else:breakif userE > int(shl[8]):print("訂的票數超過了余票,訂票失敗,已返回主菜單")else:temp = int(shl[8])temp -= userEshl[8] = str(temp)temp = int(shl[6])temp += userEshl[6] = str(temp)print("訂票成功,正在更新數據......")global checkPcheckP += userEtemp_6[index] = str(shl[0])+','+str(shl[1]) + ',' + str(shl[2]) + ',' + str(shl[3]) + ',' + str(shl[4]) + ',' + str(shl[5]) + ',' + str(shl[6]) + ',' + str(shl[7]) + ',' + str(shl[8]) + '\n'with open("carInf.txt", "w",encoding="utf-8") as fp:for i in range(0, flag):fp.write(temp_6[i])with open("car_2.txt","w",encoding="utf-8") as fp:fp.write(temp_6[index])with open("car3.txt","w",encoding="utf-8") as fp:fp.write(str(userE))print("successful~~~~~~~")def main_of_Information():print("我的信息:")print("當前已訂車牌如下:")flag2 = len(open("car_2.txt", "r",encoding="UTF-8").readlines())if flag2 == 0:print("當前還沒有訂單,請先訂票再來查看")else:print("個人信息如下:")with open("car3.txt","r",encoding="utf-8") as fp:shX = fp.readlines()with open("car_2.txt",encoding="utf-8") as fp:for i in range(0, flag2):temp_7[i] = str(fp.readline())sh = str(temp_7[i]).split(",")print("目的地:{0},車牌號:{1},車次號:{2},已訂票乘客姓名:{3},行駛時間:{4},已定:{5}".format(sh[0], sh[1], sh[2], sh[3], sh[4],shX))print("打印完畢")def offP():# clearBlankLine()flag = len(open("car_2.txt", "r",encoding="UTF-8").readlines())print("歡迎使用退票系統")print("請輸入車次號")userP = input()Mars = "張三"i = 0index = 0with open("car_2.txt", "r",encoding="utf-8") as fp:for i in range(0, flag):temp_6[i] = str(fp.readline())stk = temp_6[i].split(",")if userP == stk[2]:index = iprint("找到了")print("請輸入您的姓名來確認")Mars= input()breakif i == flag - 1 and userP != stk[2] or Mars != "張三":print("退票失敗")else:with open("car3.txt","r",encoding="utf-8") as fp:shX = fp.readlines()shl = str(temp_6[index]).split(",")print("車牌號{}的成員定額是{},已定{},余{},票價:{},我的訂票:{}".format(shl[1], shl[5], shl[6], shl[8], shl[7],shX))while True:print("請輸入退票的數目")userE = int(input())if userE <= 0:print("退票額小于等于0,輸入不合法,請重新輸入")else:breakif userE > checkP:print("退的票數超過了訂的票,退票失敗,已返回主菜單")else:temp = int(shl[6])temp -= userEshl[6] = str(temp)temp = int(shl[8])temp += userEshl[8] = str(temp)print("退票成功,正在更新數據......")temp_6[index] = str(shl[0]) + ',' + str(shl[2]) + ',' + str(shl[3]) + ',' + str(shl[4]) + ',' + str(shl[5]) + ',' + str(shl[6]) + ',' + str(shl[7]) + ',' + str(shl[8]) + '\n'print("提示"+temp_6[index])with open("car_2.txt", "w",encoding="utf-8") as fp:for i in range(0, flag):# print("--------")# print(temp_6[i])fp.write(temp_6[i])# 在更新一下主index2 = 0with open("car3.txt","r",encoding="utf-8") as f:q = f.readlines()Have = int(q[0])flag2 = len(open("carInf.txt", "r").readlines())with open("car3.txt","w",encoding="utf-8") as fp:fp.write(str(Have-userE))with open("carInf.txt","r",encoding="utf-8") as fp:fp.readline()for it in range(1,flag2):temp_8[i] = fp.readline()sl = str(temp_8[i]).split(",")if sl[1] == userP:index2 = itemp_8[index2] = str(shl[0])+','+str(shl[1]) + ',' + str(shl[2]) + ',' + str(shl[3]) + ',' + str(shl[4]) + ',' + str(shl[5]) + ',' + str(shl[6]) + ',' + str(shl[7]) + ',' + str(shl[8]) + '\n'with open("carInf.txt","w",encoding="utf-8") as fp :fp.write("按照終點站名,車牌號,車次號,已訂票乘客姓名,時間,成員定額,已定票,票價,余票量展示\n")for it in range(1, flag2):fp.write(temp_8[i])print("successful~~~~~~~")def orderedFun():#排序print("歡迎使用排序功能")with open("carInf.txt","r",encoding="utf-8") as fp:res = fp.readlines()app = list()endApp = list()endApp2 = list()for i in res:res_1 = i.replace("\n","")res_1 = res_1.replace("按照終點站名,車牌號,車次號,已訂票乘客姓名,時間,成員定額,已定票,票價,余票量展示","")if res_1 != "":res_2 = res_1.split(",")# print(res_2)app.append(res_2[8])endApp.append(res_2[8])endApp2.append(res_2[2])T = 0j = 0a = {}for it in app:Temp = int(it)a[j] = Tempj += 1for m in range(0,j-1):for n in range(0,j-m-1):if a[n] < a[n+1]:T = a[n]a[n] = a[n+1]a[n+1] = Tprint("排序之后車次是:{}".format(endApp2))print("具體:")for k in range(0,j):if k != j-1:print("{}and".format(a[k]),end="")else:print(a[k])# 主函數使用無限循環,保證程序不會因執行完一個模塊之后就退出,除非輸入6退出程序,不然執行完錄入系統,還可以重新選擇其他功能,不會退出 if __name__ == '__main__':while True:print(" ==-----汽車訂票系統-----==")print("|| 1---------錄入信息--------- ||")print("|| 2---------刪除信息--------- ||")print("|| 3---------修改信息--------- ||")print("|| 4---------顯示全部--------- ||")print("|| 5---------查詢信息--------- ||")print("|| 6---------退出程序--------- ||")print("|| 7---------清空全部信息----- ||")print("|| 8---------訂票系統-------- ||")print("|| 9---------退票系統-------- ||")print("|| 10---------我的-------- ||")print("|| 11---------排序-------- ||")print("請輸入您的選擇")choice = int(input())if choice == 1:inPut()elif choice == 2:delSystem()elif choice == 3:change()elif choice == 4:showSystem()elif choice == 5:searchSystem()elif choice == 6:print("退出成功")breakelif choice == 7:deleteAll()elif choice == 8:# clearBlankLine()preP()elif choice == 9:offP()elif choice == 10:main_of_Information()elif choice == 11:orderedFun()else:print("輸入格式錯誤,請重新輸入")總結
以上是生活随笔為你收集整理的python飞机订票系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三菱PLC自带FIFO操作指令编程应用
- 下一篇: spotify电脑下载歌曲_Spotif