python大作业——列车管理系统

      这学期学了python,结果学的还是很浅,然后就写了个简单的大作业,学习一下。这是个简单的操作系统,然后设计了一个简单的界面,还是有很多粗糙的地方,后面还是需要好好学习,好好干,继续学。

import os
import re
import numpy as np
from tkinter import *


root=Tk()
root.title('列车查询系统')
root.geometry('500x240')
tralist =[]
s=''

class Train: #定义一个列车类
    def __init__(self):
        self.forname = ''
        self.ID =''
        self.lastname = ''
        self.time = 0.0
        self.price = 0
        self.seating = 0

def Init(tralist):  #初始化函数
    print ("初始化......")
    file_object = open('train.txt', 'r')
    for line in file_object:
        tra = Train()
        line = line.strip("\n")
        s = line.split(" ")
        tra.ID = s[0]
        tra.forname = s[1]
        tra.lastname = s[2]
        tra.time = s[3]
        tra.price = s[4]
        tra.seating = s[5]
        tralist.append(tra)
    file_object.close()
    print ("初始化成功!")





class SEA():  
    def Search_f(self):
        roob=Toplevel(root)
        roob.title('列车信息查询')
        roob.geometry('650x150')

        lb4 = Label(roob, text='请输入列车车次')
        lb4.place(relx=0.2, rely=0.1, relwidth=0.4, relheight=0.2)
        d_text=StringVar()
        d_text.set("")
        self.inp4 = Entry(roob,textvariable =d_text)
        self.inp4.place(relx=0.6, rely=0.1, relwidth=0.2, relheight=0.2)

        self.bt=Button(roob,text="查询",command=self.Search)
        self.bt.place(relx=0.1, rely=0.3, relwidth=0.2, relheight=0.2)
        
        self.btClose=Button(roob,text='关闭',command=roob.destroy)
        self.btClose.place(relx=0.5, rely=0.3, relwidth=0.2, relheight=0.2)
        
        self.txt = Text(roob)
        self.txt.place(relx=0.1, rely=0.6, relwidth=0.8, relheight=0.2)

    def Search(self):
        ID=self.inp4.get()
        if self.searchByID(tralist, ID) == False:
            self.txt.delete(1.0,END)
            self.txt.insert(END,'没有该列车信息!' )
            self.inp4.delete(0, END)
            return
        
        self.txt.delete(1.0,END)
        self.txt.insert(END,"{0:^6}\t{1:{6}^6}\t{2:{6}^6}\t{3:{6}^6}\t{4:{6}^6}\t{5:{6}^6}".format("车次","起点","终点","时间","票价","座位数",chr(12288)))
        for item in tralist:
            if item.ID == ID:
                self.txt.insert(END,"{0:^8}\t{1:{6}^6}\t{2:{6}^6}\t{3:^12}\t{4:^12}\t{5:^8}".format(item.ID,item.forname,item.lastname,item.time,item.price,item.seating,chr(12288)))
                self.inp4.delete(0, END)
                break

    def searchByID(self,tralist,ID):
        for item in tralist:
            if item.ID == ID:
                return True
        return False

class CHA():
    def Change_f(self):
        roob=Toplevel(root)
        roob.title('列车信息修改')
        roob.geometry('600x240')

        lb = Label(roob, text='请输入列车车次')
        lb.place(relx=0.1, rely=0, relwidth=0.4, relheight=0.1)
        d_text=StringVar()
        d_text.set("")
        self.inp = Entry(roob,textvariable =d_text)
        self.inp.place(relx=0.5, rely=0, relwidth=0.2, relheight=0.1)

        self.bt=Button(roob,text="查询",command=self.sal)
        self.bt.place(relx=0.8, rely=0, relwidth=0.2, relheight=0.1)
        
        self.txt = Text(roob)
        self.txt.place(relx=0.1, rely=0.1, relwidth=0.8, relheight=0.1)

    
        
        lb1 = Label(roob, text='请输入列车的车次')
        lb1.place(relx=0.1, rely=0.2, relwidth=0.5, relheight
  • 11
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
#这只是一个半成品,只是实现了,一个完整的订票过程,对于,如果刷票,自己研究 #简单过程 # 第一、getRandAndCookie() 获得cook 和一个随机数用于登录 # 第二、getEnterRandCode() 得到登录时的识别码 # 第三、setuseandpassword(randcode,use,password) 发送随机数、识别码和用户及密码。由于随机数只在内部使用,所以定义成了全局变量, # 第四、GetTrainList() 得到所有车站列表,'@bjb|北京北|VAP|beijingbei|bjb|0' 其中有中文、拼音、拼音缩写、所一个ID(唯一),其主要是可以,通过上面的列表,找到它的唯一ID,TranCityToId('南昌') # 第五、GetTrainNumList(date,fromstationid,tostationid,starttime) 得到哪到哪的所在车次,消息格式如下,其中所以,一下车次的的ID:"id":"650000K1060I" # {"end_station_name":"北京西","end_time":"16:18","id":"650000K1060I","start_station_name":"深圳","start_time":"10:54","value":"K106"} # 通过ChangeToTrainNumId('K106')得到车次ID # 第六、QueryTrain(fromstationid,tostationid,date,stationNum,starttime) 就是点击查询按键,得到是否有能预订,格式如下 #       南昌         20:12,    北京西        07:38,11:26,--,--,--,--,10,有,有,--,有,有,--,<a name='btn130_2' class='btn130_2' # 通过choiceSubmitNum(stationNum,trainsubmitinfo)提取出getSelected()消息 # 第七、submitRequest(choiceSubmitNum(stationNum,trainsubmitinfo),date,starttime) 就是点击预订按钮 # 第八、getrandCheckCode()得到提交订单的识别码 # 第十、CheckInMyTicket(info,randcode,peoples)点击提交,如果成功的话,就会返回{"errMsg":"Y"} # 出于,网络是UTF8格式,所以,必须# -*- coding: utf-8 -*-,(当然,自己转换也是可以的) # 出于这一个控制台信息,所以,识别码的图片在脚本同一目录 #得到头信息

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值