您现在的位置是:网站首页> 编程资料编程资料
python实现列车管理系统_python_
2023-05-25
453人已围观
简介 python实现列车管理系统_python_
本文实例为大家分享了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=0.1) a_text=StringVar() a_text.set("") self.inp1 = Entry(roob,textvariable =a_text) self.inp1.place(relx=0.6, rely=0.2, relwidth=0.3, relheight=0.1) lb2 = Label(roob, text='请输入列车的起点') lb2.place(relx=0.1, rely=0.3, relwidth=0.5, relheight=0.1) b_text=StringVar() b_text.set("") self.inp2 = Entry(roob,textvariable =b_text) self.inp2.place(relx=0.6, rely=0.3, relwidth=0.3, relheight=0.1) lb3 = Label(roob, text='请输入列车的终点') lb3.place(relx=0.1, rely=0.4, relwidth=0.5, relheight=0.1) c_text=StringVar() c_text.set("") self.inp3 = Entry(roob,textvariable =c_text) self.inp3.place(relx=0.6, rely=0.4, relwidth=0.3, relheight=0.1) lb4 = Label(roob, text='请输入列车的时间') lb4.place(relx=0.1, rely=0.5, relwidth=0.5, relheight=0.1) d_text=StringVar() d_text.set("") self.inp4 = Entry(roob,textvariable =d_text) self.inp4.place(relx=0.6, rely=0.5, relwidth=0.3, relheight=0.1) lb5 = Label(roob, text='请输入列车的票价') lb5.place(relx=0.1, rely=0.6, relwidth=0.5, relheight=0.1) e_text=StringVar() e_text.set("") self.inp5 = Entry(roob,textvariable =e_text) self.inp5.place(relx=0.6, rely=0.6, relwidth=0.3, relheight=0.1) lb6 = Label(roob, text='请输入列车的座位数') lb6.place(relx=0.1, rely=0.7, relwidth=0.5, relheight=0.1) f_text=StringVar() f_text.set("") self.inp6 = Entry(roob,textvariable =f_text) self.inp6.place(relx=0.6, rely=0.7, relwidth=0.3, relheight=0.1) self.bt1=Button(roob,text="清空数据",command=self.Delete) self.bt1.place(relx=0.1, rely=0.9, relwidth=0.1, relheight=0.1) self.bt2=Button(roob,text="修改",command=self.Change) self.bt2.place(relx=0.7, rely=0.8, relwidth=0.2, relheight=0.1) self.btClose=Button(roob,text='关闭',command=roob.destroy) self.btClose.place(relx=0.7, rely=0.9, relwidth=0.2, relheight=0.1) self.txt1 = Text(roob) self.txt1.place(relx=0.1, rely=0.8, relwidth=0.4, relheight=0.1) def sal(self): ID=self.inp.get() if self.searchByID(tralist, ID) == False: self.txt.delete(1.0,END) self.txt.insert(END,'没有该列车信息!' ) self.inp.delete(0, END) return self.txt.delete(1.0,END) 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))) break def searchByID(self,tralist,ID): for item in tralist: if item.ID == ID: return True return False def Delete(self): self.inp1.delete(0, END) self.inp2.delete(0, END) self.inp3.delete(0, END) self.inp4.delete(0, END) self.inp5.delete(0, END) self.inp6.delete(0, END) def Change(self): ID=self.inp.get() for item in tralist: if item.ID == ID: tralist.remove(item) file_object = open("train.txt", "w") for tra in tralist: file_object.write(tra.ID) file_object.write(" ") file_object.write(tra.forname) file_object.write(" ") file_object.write(tra.lastname) file_object.write(" ") file_object.write(str(tra.time)) file_object.write(" ") file_object.write(str(tra.price)) file_object.write(" ") file_object.write(str(tra.seating)) file_object.write("\n") file_object.close() tra = Train() tra.ID=str(self.inp1.get()) tra.forname=str(self.inp2.get()) tra.lastname=str(self.inp3.get()) tra.time=str(self.inp4.get()) tra.price=str(self.inp5.get()) tra.seating=str(self.inp6.get()) self.Add(tralist,tra) print(tra.ID) def Add(self,tralist,tra): if self.searchByID(tralist, tra.ID) == True: self.txt1.delete(1.0,END) self.txt1.insert(END,'车次重复,修改失败' ) return tralist.append(tra) file_object = open("train.txt", "a") file_object.write(tra.ID) file_object.write(" ") file_object.write(tra.forname) file_object.write(" ") file_object.write(tra.lastname) file_object.write(" ") file_object.write(tra.time) file_object.write(" ") file_object.write(tra.price) file_object.write(" ") file_object.write(tra.seating) file_object.write("\n") file_object.close() self.txt1.delete(1.0,END) self.txt1.insert(END,'修改成功' ) return class DIS(): def display(self): roob=Toplevel(root) roob.title('列车信息显示') roob.geometry('600x300') self.txt = Text(roob) self.txt.place(relwidth=1, relheight=1) 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}\n".format("车次","起点","终点","时间","票价","座位数",chr(12288))) size = os.path.getsize('train.txt') if size == 0: self.txt.insert(END,'没有车次信息') return self.Sort(tralist) for item in tralist: self.txt.insert(END,"{0:^8}\t{1:{6}^6}\t{2:{6}^6}\t{3:^12}\t{4:^12}\t{5:^8}\n".format(item.ID,item.forname,item.lastname,item.time,item.price,item.seating,chr(12288))) def Sort(self,tralist): tra = [] time_count = [] for li in tralist: temp = [] temp.append(li.ID) temp.append(li.forname) temp.append(li.lastname) temp.append(float(li.time)) temp.append(int(li.price)) temp.append(int(li.seating)) time_count.append(float(li.time)) tra.append(temp) self.insertSort(time_count,tralist) def insertSort(self,a, tralist): for i in range(len(a)-1): for j in range(i+1,len(a)): if a[i]>a[j]: temp = tralist[i] tralist[i] = tralist[j]
相关内容
- Python面向对象编程之区间的插入详解_python_
- Python中对字典的几个处理方法分享_python_
- python使用pika库调用rabbitmq交换机模式详解_python_
- 利用Python实现自动工作汇报的脚本分享_python_
- python使用pika库调用rabbitmq参数使用详情_python_
- Python Opencv实战之文字检测OCR_python_
- Flask sqlalchemy一对多与多对一与一对一及多对多关系介绍_python_
- 基于Python轻松制作一个股票K线图网站_python_
- Python日期时间处理库dateutil详解_python_
- Python利用docx模块实现快速操作word文件_python_
点击排行
本栏推荐
