基于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飞机订票系统相关推荐

  1. python 模拟飞机订票系统

    本文包括以下内容 模拟订票系统的各个模块说明 运行截图 可能出现的Bug 解决方案 模拟订票系统需要有以下几个部分组成 一.添加飞机信息 二.删除飞机信息 三.航班信息查询 四.航班信息显示 五.修改 ...

  2. 飞机订票系统 python实现(大二上数据结构课设)

    说明: 本博客是从课设报告中截取的重要部分.这个飞机订票系统是本人大二上的数据结构课设,功能相对完善,界面相对美观.图形界面,本来想用Qt5(python中一个图形界面的类库,风格偏向于win10)去 ...

  3. web类协议脚本-飞机订票系统示例

    以下是LR自带的飞机订票系统的Demo,希望能帮助大家. Action() {int iRand;int iTmp;char *strTmpA;char *strTmpB;char *strTmpC; ...

  4. 飞机订票系统的html模板,飞机订票系统程序设计

    <飞机订票系统程序设计.doc>由会员分享,可免费在线阅读全文,更多与<飞机订票系统程序设计>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索. 1.\ ...

  5. 【性能测试】Loadrunner12.55(二)-飞机订票系统-脚本录制

    1.1 飞机订票系统 Loadrunner 12.55不会自动安装飞机订票系统,要自己手动安装. 我们需要下载Web Tools以及一个小插件strawberry https://marketplac ...

  6. C语言的飞机订票系统

    C语言的飞机订票系统,适合初学者.其中包含文件的输入输出操作,代码便于阅读.与我的另一篇银行的管理有相同的思想. #include<stdio.h> #include<string. ...

  7. 软件自动化测试订飞机票,飞机订票系统自动化测试方案[教学知识]

    <飞机订票系统自动化测试方案[教学知识]>由会员分享,可在线阅读,更多相关<飞机订票系统自动化测试方案[教学知识](18页珍藏版)>请在人人文库网上搜索. 1.飞机订票系统自动 ...

  8. c语言飞机订票信息查询,C语言飞机订票系统

    <C语言飞机订票系统>由会员分享,可在线阅读,更多相关<C语言飞机订票系统(11页珍藏版)>请在人人文库网上搜索. 1.课程设计课程:数据结构专业班级:XX软件工程XX班姓名: ...

  9. 软件测试剧场订票系统背景,软件测试教学资源学生作品飞机订票系统的功能测试项目报告...

    软件测试教学资源学生作品飞机订票系统的功能测试项目报告 <软件测试>课程项目库学生作品 项目名称飞机订票系统的功能测试 院 系计算机与软件学院 专 业 软件技术(测试) 班 级软件 093 ...

  10. 飞机订票系统c语言大作业,C语言知识学习飞机订票系统

    C语言知识学习飞机订票系统 课程设计 课程:数据结构 专业班级:xx软件工程 xx班 姓名:xx 学号:xxx 姓名:xxx 学号:xxx 设计时间:xxx 指导老师:xxx 课程设计题:飞机订票系统 ...

最新文章

  1. Java 多线程爬虫及分布式爬虫架构探索
  2. html中右侧三角形代码,如何使用css在标签的右侧添加一个三角形?
  3. PHP mysql_real_escape_string() 函数
  4. KG—Linux添加新的环境变量以及对PATH环境变量的修改
  5. docker pull理解误区
  6. Java 中 notify 和 notifyAll 有什么区别?
  7. cesium 原生抛物线
  8. python自动化测试学习笔记-4内置函数,处理json
  9. 换SSD,WIN10系统备份镜像迁移GHOST入坑,DISM好用,修复WINRE,绿联集线器导致USB硬盘供电不足
  10. 软件项目管理 2.3.项目章程
  11. 《概率论与数理统计》(浙大第四版)第七章总结笔记(纯手写)
  12. 解决Echarts官网无法访问的问题
  13. 机器视觉 计算机专业,机器视觉属于什么专业
  14. 单片机中段程序_80C51单片机中断的编程使用方法介绍
  15. Mybatis的代码
  16. erlang游戏服务器
  17. VS2013,MFC,在视图类里添加鼠标左键响应函数OnLButtonDown
  18. c语言数据类型与表达式,C语言的基本数据类型与表达式.ppt
  19. 2022-2028全球与中国企业上云市场现状及未来发展趋势
  20. 详解Discuz插件开发之自定义页面嵌入点

热门文章

  1. java 去停用词_Lucene学习之——停用词
  2. 智能家居通信协议科普,什么户型选择什么产品一文看懂
  3. java转换投影坐标_GeoTools坐标转换(投影转换和仿射变换)
  4. 英语音标和Unicode
  5. mysql 敏感词_过滤敏感词方式
  6. java敏感词过滤_java敏感词过滤
  7. md5和sha256算法的区别,哪个比较安全
  8. lammps基础教程:Ovito标记原子内部运动方法介绍
  9. 易语言大漠插件模块制作使用系统字库找字
  10. Windows任务管理器被procexp(Process Explorer)取代后如何恢复