物件導向和執行緒 住宿查詢大作業

2021-10-08 11:57:06 字數 2452 閱讀 2679

kaifanglist.txt中記錄使用者住宿記錄,包括:姓名,身份證號,性別,生日,家庭住址,郵編,手機號,座機號,單位**,qq號,其他資訊,記錄中有些資訊沒有值,一行就是乙個住宿記錄。請你根據檔案內容完成以下功能:

(1)讀入檔案內容,對資料清洗,把沒有值的記錄補齊,例如生日沒有值,則填入』無』;值是』-『替換為』無』;其他資訊沒有的則填入0

(2)一行生成乙個物件,物件所屬的類自己定義

(3)根據使用者輸入的使用者名稱或身份證號,查詢住宿記錄,包括所有的記錄

(4)可以連續查詢

(5)結束程式時,建立乙個執行緒,把修改後的資料寫入原始檔

**如下:

import csv

class person:

definit(self,**info):

# 屬性賦值

self.dict.update(info)

# 重寫的關係運算子 <

def __lt__(self, other):

return self.no < other.no

def __str__(self):

res= ''

for key in self.__dict__:

res += self.__dict__[key] + '\t'

return res

class querymanagement:

definit(self,filename):

self.filename = filename

self.personlist =

self.load_file() # 載入查詢檔案

# 載入檔案

def load_file(self):

with open(self.filename,encoding='utf8') as fp:

reader = csv.reader(fp)

next(reader) # 跳過標題

for line in reader:

# 補齊11個屬性

line = line + ['無']*(11-len(line))

line = ['無' if value=='' or value=='-' else value for value in line]

line[-1] = '0'

def generate_object(self,values):

keys = ['name','id','***','birthday','address','zipcode','phone','telephone','workcell','qq','other']

info = dict(zip(keys,values))

return person(**info)

def display(self):

for person in self.personlist:

print(person)

def find_by_name(self,name):

res =

for person in self.personlist:

if person.name.lower() == name.lower():

return res

def find_by_id(self,id):

res =

for person in self.personlist:

if person.id == id:

return res

# 查詢

def query(self):

while 1:

print("1.按姓名查詢")

print("2.按身份證號查詢")

print("0.退出")

choice = int(input("請輸入你的選擇:"))

if choice == 0:

break

elif choice == 1:

name = input("請輸入查詢的姓名:")

res = self.find_by_name(name)

for person in res:

print(person)

elif choice == 2:

id = input("請輸入身份證號:")

res= self.find_by_id(id)

for person in res:

print(person)

else:

print("沒有該選項,請重新選擇")

ifname== 『main』:

res = querymanagement(「kaifanglist.txt」)

res.query()

物件導向大作業 自主選題

任務姓名 物件導向設計 前期調查與功能設計 傅肇楊編碼規範 部落格製作 楊振鵬公選課選課系統,實現乙個選課系統,學生可以進行選課,退課,檢視課程,老師可以增加課程,控制人數 1.學生選課,退課,檢視課程 2.老師管理課程,可以對課程修改,控制學術人數 功能1 學生選課,刪課 功能2 學生刪課 功能3...

物件導向設計大作業第二階段

以上截自 小木屋圖書 由上圖可知除了查書,借書,還書功能外,還包含 補充 由於線上圖書借閱的細節並沒有線下圖書館的多,所以我稍作補充。uml圖 簡述 dao模式的介面 方法 簡述 librarydao介面方法的實現 簡述 圖書類,包含圖書的資訊以及簡單的操作。屬性 方法 構造方法以及各個屬性的set...

物件導向設計大作業第二階段

功能調查 圖書館管理系統中使用者有有普通使用者和管理員使用者,分別執行不同的操作。普通使用者登陸時只有查書,借書,還書的功能。管理員使用者登入時有查書,增加書籍,刪除書籍的功能。系統功能框架圖 ui.login類 整個程式的入口,包含了main函式,以及介面的設計,登入資訊的儲存等 model.bo...