Python编写车票订购系统|Python编写车票订购系统 Python实现快递收费系统

本文实例为大家分享了Python编写车票订购系统,Python实现快递收费系统的具体代码,供大家参考,具体内容如下
要求:
1.上网查询郑州到北京,西安,石家庄,济南,太原,武汉的距离及票价,用数据库保存车次信息
2.要求输入目的地,能够查询到里程和票价
3.用数据库存储每一次售票记录,包括售票流水号,起点站,终点站,里程,金额等数据,并统计所有存储记录的总售票金额及各站的旅客流量(进站流量+出站流量)
4.能够打印票据信息,包括订票人信息,票价,票据号,车次等信息

import sqlite3import osimport timedef 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 = https://www.it610.com/article/[]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 datadef 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] += 1elif i[1] == '北京':beijing[0] += 1elif i[1] == '西安':xian[0] += 1elif i[1] == '济南':jinan[0] += 1elif i[1] == '石家庄':shijiazhuang[0] += 1elif i[1] == '武汉':wuhan[0] += 1elif i[1] == '太原':taiyuan[0] += 1# 出站统计if i[2] == '郑州':zhengzhou[1] += 1elif i[2] == '北京':beijing[1] += 1elif i[2] == '西安':xian[1] += 1elif i[2] == '济南':jinan[1] += 1elif i[2] == '石家庄':shijiazhuang[1] += 1elif i[2] == '武汉':wuhan[1] += 1elif i[2] == '太原':taiyuan[1] += 1print("--------进出站统计--------")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.dbif os.path.exists("DB.db"):passelse:# 创建数据库并初始化createDB()# 创建销售数据库,存储销售记录if os.path.exists("sale.db"):passelse:CreateSaleDB()flag = 1while(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 = https://www.it610.com/article/SaveSaleRecord(num, SerialNumber)# 保存售票记录,返回购票信息以供打印票据用PrintData(data, num)# 打印票据信息elif a == 3:Statistics()# 统计elif a == 4:breakelse:print('输入错误,请重新输入!!!')

程序运行结果如图所示:
Python编写车票订购系统|Python编写车票订购系统 Python实现快递收费系统
文章图片

Python编写车票订购系统|Python编写车票订购系统 Python实现快递收费系统
文章图片

Python编写车票订购系统|Python编写车票订购系统 Python实现快递收费系统
文章图片

还有一个是快递收费系统,要求啥的找不到了,只剩代码
import sqlite3#定义区域快递费q=[10,10,15,15,15]x=[3,4,5,6.5,10]#打开数据库def opendb():#创建全局变量方便其他函数调用global connglobal curconn=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)+1s=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 curcur.execute('''select * from customers order by num asc''')print('地区编码\t\t地区名称\t\t地区距离')for i in cur:print('%-5s\t\t%-5s\t\t%-5s'%(i[0],i[1],i[2]))interval()#查询地区快递费def Inquire2():print('地区编码\t\t起重费(元)\t\t续费(元/公斤)')for i in range(5):print(i,"\t\t\t%.2f\t\t\t%.2f"%(q[i],x[i]))#删除数据def delete():a=input('请输入要删除的地区名称:')global curcur.execute('''select * from customers where name="%s"'''%a)print('地区编码\t\t地区名称\t\t地区距离')for i in cur:print('%-5s\t\t%-5s\t\t%-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 cura = 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:breakelse:print('输入错误!请重新输入!')interval()conn.commit()cur.close()conn.close()

【Python编写车票订购系统|Python编写车票订购系统 Python实现快递收费系统】以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    推荐阅读