久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

瀏覽:146日期:2022-07-18 18:43:40

寫(xiě)在前面

大家好,我是第一次python學(xué)了一個(gè)學(xué)期,期末要完成一個(gè)畢業(yè)生信息管理系統(tǒng)大作業(yè)的小韓了,由于上次沒(méi)有仔細(xì)看開(kāi)發(fā)實(shí)現(xiàn)的要求,實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的畢業(yè)生信息管理系統(tǒng),而這次專(zhuān)門(mén)整理了兩種使用文件進(jìn)行保存數(shù)據(jù)實(shí)現(xiàn)的畢業(yè)生信息管理系統(tǒng),因?yàn)槭堑谝淮螌W(xué)python,還不太熟悉python的寫(xiě)法, 而之前是學(xué) c 、c++,感覺(jué)我的這個(gè)寫(xiě)的有一股 c/c++的內(nèi)味:

1. 使用excel .xlsx 保存數(shù)據(jù)實(shí)現(xiàn)一個(gè)畢業(yè)生信息管理系統(tǒng)2. 使用文本文檔.txt保存數(shù)據(jù)實(shí)現(xiàn)一個(gè)畢業(yè)生信息管理系統(tǒng)

以下將會(huì)在代碼進(jìn)行詳細(xì)的介紹

一、 對(duì)excel表格操作實(shí)現(xiàn)一個(gè)畢業(yè)生信息管理系統(tǒng)

開(kāi)發(fā)要求

1. 采用 python 語(yǔ)言實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)

2.實(shí)現(xiàn)基本的增刪改查的基本功能,還可以加上一些如排序,搜索的操作3. 采用文件保存數(shù)據(jù)(而不是每次從鍵盤(pán)輸入)

4. 各個(gè)功能界面循環(huán)調(diào)用環(huán)境以及

開(kāi)發(fā)軟件

1. python 3.7.0 版本

2. pycharm 2019 中文版

一、 函數(shù)模塊設(shè)計(jì):

1.主函數(shù)模塊

實(shí)現(xiàn)功能

查詢搜索畢業(yè)生信息列表 增加畢業(yè)生信息 修改畢業(yè)生信息 刪除畢業(yè)生信息 畢業(yè)生信息排序 退出畢業(yè)生信息管理系統(tǒng)

def main(): # 主函數(shù) arry = [0, 1, 2, 3, 4, 5] # 定義一個(gè)選項(xiàng)的列表 用于輸入判斷 Menu() # 先打印菜單 while 1: a = input('請(qǐng)輸入: ') if a.isdigit() and int(a) in arry: # 這里判斷輸入的是不是數(shù)字 且在不在選項(xiàng)的列表中 如果輸入合法再進(jìn)行功能調(diào)用 a = int(a) while a:if a == 1: PrintStudentList() # 查詢搜索畢業(yè)生信息功能 Menu() breakif a == 2: AddStudent() # 添加畢業(yè)生信息功能 Menu() breakif a == 3: ChangeStudent() # 修改畢業(yè)生信息功能 Menu() breakif a == 4: DeleteStudent() # 刪除畢業(yè)生信息功能 Menu() breakif a == 5: SortData() # 畢業(yè)生信息排序功能 Menu() breakelif a > 5 or a < 0: print('輸入有誤!') break if a == 0: # 按0退出該畢業(yè)生信息管理系統(tǒng)print('系統(tǒng)已退出!')exit() else: print('請(qǐng)輸入0--5!')main()

這里因?yàn)檫€沒(méi)有學(xué)到python中的字典那部分知識(shí),而pyhton中又沒(méi)有switch和case所以就使用這個(gè) if 進(jìn)行判斷 雖然比較繁瑣,但是看起來(lái)還是比較清晰易懂的

二、 數(shù)據(jù)文件設(shè)計(jì)

因?yàn)檫@里要采用文件進(jìn)行保存數(shù)據(jù),我第一個(gè)想到的就是excel表格,這種.xlsx文件保存數(shù)據(jù)一目了然,因此本次選擇了excel表格進(jìn)行數(shù)據(jù)保存,寫(xiě)入,讀取,修改,刪除等基本功能

主要信息:

本次實(shí)現(xiàn)的是一個(gè)畢業(yè)生信息管理系統(tǒng),因此給每個(gè)畢業(yè)生設(shè)計(jì)的個(gè)人信息如下:學(xué)號(hào) 姓名 電話 年級(jí) 學(xué)院 就業(yè) 就業(yè)公司 郵箱 月薪

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

關(guān)于對(duì)excel 表格使用則需要導(dǎo)入兩個(gè)包:

from openpyxl import Workbook # 導(dǎo)入操作 excel時(shí)所用的庫(kù)from openpyxl import load_workbook # 用于對(duì)本地已經(jīng)存在的excel文件操作

如果這里導(dǎo)入失敗的話,可能需要自己手動(dòng)進(jìn)行 openpyxl 的下載 下載方法具體如下

點(diǎn)擊 文件 -->> 點(diǎn)擊設(shè)置(setting) -->> 點(diǎn)擊自己的項(xiàng)目 -->> 點(diǎn)擊第一個(gè)選項(xiàng) -->> 點(diǎn)擊頁(yè)面的右側(cè)的加號(hào) -->> 輸入 想要導(dǎo)入的包 (openpyxl) -->> 點(diǎn)擊左下角的 install Package 稍等一會(huì)即可完成安裝

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

2.增加畢業(yè)生信息模塊

從鍵盤(pán)獲取輸入的信息,信息校驗(yàn)成功后,先將信息保存在一個(gè)列表中,然后最后將整個(gè)列表插入到excel表格中,然后保存,這樣方便寫(xiě)入,否則頻繁的打開(kāi)關(guān)閉文件比較繁瑣,容易出現(xiàn)錯(cuò)誤。例如:下面插入 學(xué)號(hào) id

先建立一個(gè)空的列表 然后先對(duì)學(xué)號(hào)進(jìn)行校驗(yàn),首先校驗(yàn)學(xué)號(hào)是否合法,比如長(zhǎng)度要求,或者插入的是否和表中的是否重復(fù),當(dāng)校驗(yàn)成功后才將學(xué)號(hào)保存到 列表中

r = [] # 建立一個(gè)新的列表 在將這個(gè)列表插入到excel表中 ID = None wb = load_workbook(’StudentList.xlsx’) sheet = wb.active id = input('請(qǐng)輸入學(xué)號(hào):') if CheckIdIsRight(id): while 1: id = input('請(qǐng)輸入正確的學(xué)號(hào)!') if not CheckIdIsRight(id):ID = idbreak else: ID = id r.append(ID) # 將輸入的ID插入到列表中

其余的其他信息依次類(lèi)推最后將整個(gè)列表插入到excel表格中,然后關(guān)閉并保存文件

sheet.append(r) # 將整個(gè)列表插入到excel 表格中 即為插入一行數(shù)據(jù) wb.close() wb.save(’StudentList.xlsx’)

3. 查詢搜索畢業(yè)生信息模塊

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

該功能主要實(shí)現(xiàn)查詢和搜索的功能 ,比如查看所有信息列表 ,按相關(guān)信息查詢畢業(yè)生信息,例如:查詢所有畢業(yè)生信息:

def PrintAll(): wb = load_workbook(’StudentList.xlsx’) # 打開(kāi)現(xiàn)在已經(jīng)有的表 sheet = wb.active # 獲取當(dāng)前活躍的表 也就是當(dāng)前使用的表 for row in sheet.rows: # 循環(huán)每一行 for cell in row: # 循環(huán)每一行的單元格 print(cell.value, end=' ') # 打印出每一個(gè)單元格的數(shù)據(jù) print() print()

只需要將每一個(gè)單元格的按順序打印出來(lái)即可

例如:按學(xué)號(hào)查詢?cè)摦厴I(yè)生的信息

def SelectById(): id = input('請(qǐng)輸入需要查詢的學(xué)號(hào):') if id.isdigit() and not CheckIdIsRight(id): id1 = int(id) # 將輸入的str類(lèi)型的轉(zhuǎn)換為 int 類(lèi)型 wb = load_workbook(’StudentList.xlsx’) # 打開(kāi)現(xiàn)在已經(jīng)有的表 sheet = wb.active # 獲取當(dāng)前活躍的表 也就是當(dāng)前使用的表 r = FindId(id1) for i in range(1, 10):print(sheet.cell(1, i).value, end=' ') # 打印出表頭的信息 print() for i in range(1, 10):print(sheet.cell(r, i).value, end=' ') # 打印出該id對(duì)應(yīng)的信息 print() else: print('學(xué)號(hào)輸入錯(cuò)誤!')

首先應(yīng)該判斷一下輸入的學(xué)號(hào)是不是一串?dāng)?shù)字,而且 想要查詢的學(xué)生的學(xué)號(hào)是存在的,因?yàn)槲覀冞@里規(guī)定學(xué)號(hào)應(yīng)該是類(lèi)似于1700000000 這樣的一個(gè)數(shù)字,而python默認(rèn) input 輸入的是一個(gè) str 字符串類(lèi)型的 所以這里防止輸入錯(cuò)誤導(dǎo)致程序崩潰 因此加入了一些校驗(yàn),當(dāng)確認(rèn)合法之后 再將其 轉(zhuǎn)換為 int 類(lèi)型的變量 進(jìn)行使用。而具體的就是通過(guò)一個(gè)findid的函數(shù)來(lái)返回學(xué)號(hào)所在的行 這樣就可以將這一行的信息打印出來(lái)即可 ,打印學(xué)生信息的同時(shí)不要忘了打印表頭的信息,這樣看起來(lái)會(huì)更加的清晰。

4. 修改畢業(yè)生信息模塊

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

在修改該學(xué)生信息之前,同樣對(duì)其輸入的學(xué)號(hào)進(jìn)行校驗(yàn),校驗(yàn)完成之后進(jìn)行相關(guān)信息的修改修改的基本方法就是,通過(guò)學(xué)號(hào)找到該學(xué)生所在的行,然后對(duì)特定的列的信息修改(直接賦值),最后保存到文件即可例如 : 修改姓名

def changename(row, wb): # 修改姓名 # row 為其所在的信息的行 wb 是表格對(duì)象 name = input('請(qǐng)輸入修改之后的名字:') sheet.cell(row, 2, name) wb.save(’StudentList.xlsx’)

5. 畢業(yè)生信息排序

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

這里排序主要使用了一個(gè)冒泡排序的算法 對(duì)數(shù)據(jù)進(jìn)行排序,雖然python中是有內(nèi)置的排序算發(fā)法的,但是我這里還是自己實(shí)現(xiàn)了一個(gè)排序(升序),排完序了之后 也可以對(duì)升序的進(jìn)行一個(gè)反轉(zhuǎn) 得到一個(gè)降序的列表。 因?yàn)槭菍?duì)某一項(xiàng)的單一數(shù)據(jù)進(jìn)行排序,而排序結(jié)果是要求打印出所有信息的,因此先得到一個(gè)某一項(xiàng)數(shù)據(jù)排好序的列表,然后將列表對(duì)應(yīng)的信息進(jìn)行打印即可。例如: 按學(xué)號(hào)進(jìn)行排序冒泡排序:

def BubbleSort(l2): # 冒泡排序?qū)α斜碇械臄?shù)據(jù)進(jìn)行一個(gè)升序的排列 for i in range(0, len(l2)): count = 0 for j in range(1, len(l2)-i): if int(l2[j - 1]) > int(l2[j]):temp = l2[j]l2[j] = l2[j - 1]l2[j - 1] = tempcount = count + 1 if count == 0: # 算法優(yōu)點(diǎn) 當(dāng)已經(jīng)有序時(shí)就不再進(jìn)行排序 return l2 return l2 # 返回排好序的 列表

按學(xué)號(hào)從小到大排序并打印學(xué)生信息

def GetAllStudentById(): # 按學(xué)號(hào)排序打印出學(xué)生信息(升序) l = [] # 建立一個(gè)空的列表 wb = load_workbook(’StudentList.xlsx’) sheet = wb.active for column in list(sheet.columns)[0]: l.append(column.value) # 將學(xué)號(hào)插入到列表中 得到一個(gè)學(xué)號(hào)列表 l2 = l[1:] # 由于第一個(gè)是表頭 將第二個(gè)位置以后的范圍 拷貝給 l2 l3 = BubbleSort(l2) # 進(jìn)行 學(xué)號(hào)排序 # 3 是排好序的列表 for i in range(1, 10): print(sheet.cell(1, i).value, end=' ') # 打印出表頭的信息 print() for i in range(0, len(l3)): # 依次找到排好序的學(xué)號(hào)或年級(jí)對(duì)應(yīng)的學(xué)生信息即可 r = FindId(l3[i]) # 找到該行 for j in range(1, 10): print(sheet.cell(r, j).value, end=' ') # 打印出該id對(duì)應(yīng)的信息 print()

注意 :因?yàn)閷W(xué)號(hào)是唯一的,因此可以通過(guò)找道該行,然后通過(guò)行號(hào)進(jìn)行某一行的定向信息打印,但是像年級(jí) ,月薪信息是有可能重復(fù)的,就不能再像學(xué)號(hào)一樣查找,打印了,但是我們可以先將年級(jí)的列表排好序,然后進(jìn)行一個(gè)去重,這樣,就可以將符合滿足,排好序的年級(jí)列表中的年級(jí)對(duì)應(yīng)的學(xué)生,信息全部打印出來(lái)

6. 刪除畢業(yè)生信息

非常簡(jiǎn)單,只需要將要?jiǎng)h除的學(xué)生的學(xué)號(hào)輸入,然后學(xué)號(hào)校驗(yàn)合法且存在之后,找到對(duì)應(yīng)的該行,然后將這一行的數(shù)據(jù)刪除就可以了。

def DeleteStudent(): # 刪除學(xué)生信息 PrintAll() id = input('請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):') if not CheckIdIsRight(id): # 判斷學(xué)號(hào)為id的學(xué)生是否在StudentList.xlsx中 print('學(xué)號(hào)正確!') id = int(id) row = FindId(id) # 查找其所在的行 wb = load_workbook(’StudentList.xlsx’) sheet = wb.active isdelete = input('是否刪除該學(xué)生信息?輸入是或否:') if isdelete == ’是’: sheet.delete_rows(row, 1) # 刪除該行 wb.save(’StudentList.xlsx’) print('刪除成功!') else: print('刪除失敗!') else: print('學(xué)號(hào)輸入錯(cuò)誤!')

三、 測(cè)試

1. 查詢搜索測(cè)試

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

2. 添加測(cè)試

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

3.修改測(cè)試

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

4. 信息排序測(cè)試

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

5. 刪除信息測(cè)試

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

四、 源碼

from openpyxl import Workbook # 導(dǎo)入操作 excel時(shí)所用的庫(kù)from openpyxl import load_workbookIsJob = [’是’, ’否’]def Menu(): # 菜單主界面 print(end=' ' * 45) print(’*’ * 22) print(end=' ' * 45) print('* 查詢畢業(yè)生信息輸入: 1 *') print(end=' ' * 45) print('* 添加畢業(yè)生信息輸入: 2 *') print(end=' ' * 45) print('* 修改畢業(yè)生信息輸入: 3 *') print(end=' ' * 45) print('* 刪除畢業(yè)生信息輸入: 4 *') print(end=' ' * 45) print('* 查看排序統(tǒng)計(jì)請(qǐng)輸入: 5 *') print(end=' ' * 45) print('* 退出系統(tǒng)請(qǐng)輸入: 0 *') print(end=' ' * 45) print(’*’ * 22)def SelectStudentMenu(): print(end=' ' * 45) print(’*’ * 25) print(end=' ' * 45) print('* 查看所有信息請(qǐng)輸入: 1 *') print(end=' ' * 45) print('* 按學(xué)號(hào)查詢信息輸入: 2 *') print(end=' ' * 45) print('* 按年級(jí)查詢信息輸入: 3 *') print(end=' ' * 45) print('* 按是否就業(yè)查詢輸入: 4 *') print(end=' ' * 45) print('* 退出查詢功能請(qǐng)輸入: 0 *') print(end=' ' * 45) print(’*’ * 25)def FindId(id): # 在excel中找到該 id 所在的行 返回行數(shù) i = 0 wb = load_workbook(’StudentList.xlsx’) sheet = wb.active for column in list(sheet.columns)[0]: # 循環(huán)學(xué)號(hào)那一列的數(shù)據(jù) i = i + 1 if id == column.value: # 找到了返回 return i # 返回行數(shù)def BubbleSort(l2): # 冒泡排序?qū)α斜碇械臄?shù)據(jù)進(jìn)行一個(gè)升序的排列 for i in range(0, len(l2)): count = 0 for j in range(1, len(l2)): if int(l2[j - 1]) > int(l2[j]):temp = l2[j]l2[j] = l2[j - 1]l2[j - 1] = tempcount = count + 1 if count == 0: # 算法優(yōu)點(diǎn) 當(dāng)已經(jīng)有序時(shí)就不再進(jìn)行排序 return l2 return l2 # 返回排好序的 列表def GetAllStudentByGadeOrMoney(x): l = [] # 建立一個(gè)空的列表 用于存放數(shù)據(jù)進(jìn)行排序 wb = load_workbook(’StudentList.xlsx’) sheet = wb.active for column in list(sheet.columns)[x]: l.append(column.value) # 將薪資或年級(jí)插入到列表中 得到一個(gè)薪資或年級(jí)列表 l2 = l[1:] # 由于第一個(gè)是表頭 將第二個(gè)位置以后的范圍 拷貝給 l2 l3 = BubbleSort(l2) # 進(jìn)行 薪資或年級(jí)排序 # 3 是排好序的列表 i = 1 l3.reverse() # 進(jìn)行一個(gè)反轉(zhuǎn)列表 得到一個(gè)降序的列表 while i < len(l3): # 這是為了剔除列表中相同的元素 if l3[i] == l3[i - 1]: del l3[i - 1] else: i = i + 1 for i in range(1, 10): print(sheet.cell(1, i).value, end=' ') # 打印出表頭的信息 print() j = 0 while j < len(l3): # 按照排好序的列表對(duì)應(yīng)的值 在excel中查找 打印出對(duì)應(yīng)的信息 for row in sheet.rows: # 循環(huán)每一行 for cell in row: # 循環(huán)每一行的單元格if cell.value == l3[j]: # 找到年級(jí)符合的學(xué)生的信息 for cell in row: print(cell.value, end=' ') # 打印出這一行的信息 print() j = j + 1 print()def GetAllStudentById(): # 按學(xué)號(hào)排序打印出學(xué)生信息(升序) l = [] # 建立一個(gè)空的列表 wb = load_workbook(’StudentList.xlsx’) sheet = wb.active for column in list(sheet.columns)[0]: l.append(column.value) # 將學(xué)號(hào)插入到列表中 得到一個(gè)學(xué)號(hào)列表 l2 = l[1:] # 由于第一個(gè)是表頭 將第二個(gè)位置以后的范圍 拷貝給 l2 l3 = BubbleSort(l2) # 進(jìn)行 學(xué)號(hào)排序 # 3 是排好序的列表 for i in range(1, 10): print(sheet.cell(1, i).value, end=' ') # 打印出表頭的信息 print() for i in range(0, len(l3)): # 依次找到排好序的學(xué)號(hào)或年級(jí)對(duì)應(yīng)的學(xué)生信息即可 r = FindId(l3[i]) # 找到該行 for j in range(1, 10): print(sheet.cell(r, j).value, end=' ') # 打印出該id對(duì)應(yīng)的信息 print()def PrintAll(): wb = load_workbook(’StudentList.xlsx’) # 打開(kāi)現(xiàn)在已經(jīng)有的表 sheet = wb.active # 獲取當(dāng)前活躍的表 也就是當(dāng)前使用的表 for row in sheet.rows: # 循環(huán)每一行 for cell in row: # 循環(huán)每一行的單元格 print(cell.value, end=' ') # 打印出每一個(gè)單元格的數(shù)據(jù) print() print()def PrintStudentList(): # 打印excel文件中的數(shù)據(jù) def SelectById(): id = input('請(qǐng)輸入需要查詢的學(xué)號(hào):') if id.isdigit() and not CheckIdIsRight(id): id1 = int(id) wb = load_workbook(’StudentList.xlsx’) # 打開(kāi)現(xiàn)在已經(jīng)有的表 sheet = wb.active # 獲取當(dāng)前活躍的表 也就是當(dāng)前使用的表 r = FindId(id1) for i in range(1, 10):print(sheet.cell(1, i).value, end=' ') # 打印出表頭的信息 print() for i in range(1, 10):print(sheet.cell(r, i).value, end=' ') # 打印出該id對(duì)應(yīng)的信息 print() else: print('學(xué)號(hào)輸入錯(cuò)誤!') def SelectByGrade(): wb = load_workbook(’StudentList.xlsx’) # 打開(kāi)現(xiàn)在已經(jīng)有的表 sheet = wb.active # 獲取當(dāng)前活躍的表 也就是當(dāng)前使用的表 grade = input('請(qǐng)輸入要查詢的年級(jí):') if grade.isdigit(): for i in range(1, 10):print(sheet.cell(1, i).value, end=' ') # 打印出表頭的信息 print() # 這里也需要進(jìn)行優(yōu)化 for row in sheet.rows: # 循環(huán)每一行for cell in row: # 循環(huán)每一行的單元格 if cell.value == int(grade): # 找到年級(jí)符合的學(xué)生的信息 for cell in row: print(cell.value, end=' ') # 打印出這一行的信息 print() print() else: print('輸入不合法!') def SelectByIsJob(): wb = load_workbook(’StudentList.xlsx’) # 打開(kāi)現(xiàn)在已經(jīng)有的表 sheet = wb.active # 獲取當(dāng)前活躍的表 也就是當(dāng)前使用的表 isjob = input('請(qǐng)輸入要查詢的學(xué)生是否已經(jīng)就業(yè) :') if isjob in IsJob: # 檢查輸入是否正確 if isjob == ’是’: # 如果要查詢已經(jīng)就業(yè)的學(xué)生for i in range(1, 10): print(sheet.cell(1, i).value, end=' ') # 打印出表頭的信息print()for row in sheet.rows: # 循環(huán)每一行 for cell in row: # 循環(huán)每一行的單元格 if cell.value == ’是’: # 找到就業(yè)信息是 ’是’的學(xué)生的那一行 for cell in row:print(cell.value, end=' ') # 打印出這一行的信息 print()print() else: # 查詢 ’否’ 還沒(méi)有就業(yè)的學(xué)生for i in range(1, 10): print(sheet.cell(1, i).value, end=' ') # 打印出表頭的信息print()for row in sheet.rows: # 循環(huán)每一行 for cell in row: # 循環(huán)每一行的單元格 if cell.value == ’否’: # 找到就業(yè)信息是 ’否’的學(xué)生的那一行的內(nèi)容 for cell in row:print(cell.value, end=' ') # 打印出這一行的信息 print()print() else: print('輸入錯(cuò)誤!') arry = [0, 1, 2, 3, 4] while 1: # 循環(huán)查找直到退出 SelectStudentMenu() a = (input('請(qǐng)輸入想要執(zhí)行的操作:')) if a.isdigit() and int(a) in arry: a = int(a) while a:if a == 1: PrintAll() breakif a == 2: SelectById() breakif a == 3: SelectByGrade() breakif a == 4: SelectByIsJob() breakif a < 0 or a > 4: print('輸入錯(cuò)誤!請(qǐng)重新輸入:') break if a == 0:break else: print('請(qǐng)輸入0--4!')def CheckIdIsRight(id1): # 檢查學(xué)號(hào)ID是否存在或格式不正確 wb = load_workbook(’StudentList.xlsx’) sheet = wb.active if id1.isdigit(): id2 = int(id1) for column in list(sheet.columns)[0]: if id2 == column.value:print('學(xué)號(hào)存在')return False if id2 < 1000000000 or id2 > 10000000000: print('學(xué)號(hào)格式不正確!') return True else: print('學(xué)號(hào)應(yīng)該是數(shù)字!') return Truedef AddStudent(): # 添加學(xué)生信息模塊 r = [] # 建立一個(gè)新的列表 在將這個(gè)列表插入到excel表中 ID = None wb = load_workbook(’StudentList.xlsx’) sheet = wb.active id = input('請(qǐng)輸入學(xué)號(hào):') if CheckIdIsRight(id): while 1: id = input('請(qǐng)輸入正確的學(xué)號(hào)!') if not CheckIdIsRight(id):ID = idbreak else: ID = id r.append(ID) # 將輸入的ID插入到列表中 name = input('請(qǐng)輸入你的名字:') # 添加姓名信息 r.append(name) # 將姓名插入到列表中 tell = input('請(qǐng)輸入你的電話號(hào)碼:') while 1: if len(tell) != 11: print('電話號(hào)碼格式不正確!請(qǐng)重新輸入:') tell = input() if len(tell) == 11:print('輸入成功!')break if len(tell) == 11: break r.append(tell) # 將電話號(hào)碼插入到列表中 grade = int(input('請(qǐng)輸入你的年級(jí):')) # 添加年級(jí)信息 while 1: if grade < 2000: # 判斷年級(jí)是否正確范圍內(nèi) print('年級(jí)輸入不正確!請(qǐng)重新輸入:') grade = int(input()) if grade >= 2000:print('輸入成功!')break if grade >= 2000: break r.append(grade) # 將年級(jí)插入到列表中 institute = input('請(qǐng)輸入你的學(xué)院:') # 添加學(xué)院信息 r.append(institute) # 將學(xué)院信息插入到列表中 isjob = input('是否已經(jīng)工作:輸入 :是或否!') # 添加是否就業(yè)信息 當(dāng)其 是 ’是’時(shí)才能添加公司 while 1: if isjob in IsJob: r.append(isjob) break else: print('輸入錯(cuò)誤請(qǐng)重新輸入:') isjob = input() if r[5] == ’是’: # 添加公司信息 company = input('請(qǐng)輸入你的公司名 ') r.append(company) else: company = ’無(wú)’ r.append(company) e_mail = input('請(qǐng)輸入你的電子郵箱:') # 添加郵箱信息 r.append(e_mail) # 將電子郵箱信息插入到列表中 if r[5] == ’是’: money = input('請(qǐng)輸入你的月薪:') # 添加月薪信息 r.append(money) # 只有當(dāng)已經(jīng)就業(yè)時(shí)才可以添加月薪信息 if r[5] == ’否’: money = 0 # 否則 月薪默認(rèn)為 0 r.append(money) sheet.append(r) # 將整個(gè)列表插入到excel 表格中 即為插入一行數(shù)據(jù) wb.close() wb.save(’StudentList.xlsx’)def StudentPersonalMsg(): # 修改信息界面選擇 print(end=' ' * 45) print(’*’ * 23) print(end=' ' * 45) print('* 修改學(xué)生姓名請(qǐng)輸入: 1 *') print(end=' ' * 45) print('* 修改電話號(hào)碼請(qǐng)輸入: 2 *') print(end=' ' * 45) print('* 修改是否就業(yè)請(qǐng)輸入: 3 *') print(end=' ' * 45) print('* 修改就業(yè)公司請(qǐng)輸入: 4 *') print(end=' ' * 45) print('* 修改郵箱信息請(qǐng)輸入: 5 *') print(end=' ' * 45) print('* 修改月薪信息請(qǐng)輸入: 6 *') print(end=' ' * 45) print('* 退出修改請(qǐng)輸入: 0 *') print(end=' ' * 45) print(’*’ * 23)def ChangeStudent(): # 修改學(xué)生信息模塊 def changename(row, wb): # 修改姓名 # row 為其所在的信息的行 wb 是表格對(duì)象 name = input('請(qǐng)輸入修改之后的名字:') sheet.cell(row, 2, name) wb.save(’StudentList.xlsx’) def changetell(row, wb): # 修改電話號(hào)碼 同樣進(jìn)行信息格式校對(duì) tell = input('請(qǐng)輸入修改后的電話號(hào)碼:') while 1: if len(tell) != 11:print('電話號(hào)碼格式不正確!請(qǐng)重新輸入:')tell = input()if len(tell) == 11: print('輸入成功!') break if len(tell) == 11:break sheet.cell(row, 3, tell) wb.save(’StudentList.xlsx’) def changeisjob(row, wb): # 修改是否就業(yè)狀態(tài)信息 IsJob = [’是’, ’否’] isjob = input('是否已經(jīng)工作:輸入 :是或否!') while 1: if isjob in IsJob:sheet.cell(row, 6, isjob)wb.save(’StudentList.xlsx’)break else:print('輸入錯(cuò)誤請(qǐng)重新輸入:')isjob = input() def changecompany(row, wb): # 修改公司信息 if sheet.cell(row, 6).value == ’是’: # 判斷是否就業(yè) company = input('請(qǐng)輸入修改后的公司:') sheet.cell(row, 7, company) wb.save(’StudentList.xlsx’) else: print('請(qǐng)先修改是否就業(yè):') changeisjob(row, wb) changecompany(row, wb) def changemail(row, wb): # 修改學(xué)生郵箱信息 mail = input('請(qǐng)輸入修改之后的郵箱:') sheet.cell(row, 8, mail) wb.save(’StudentList.xlsx’) def changemoney(row, wb): # 修改月薪信息 if sheet.cell(row, 6).value == ’是’: # 判斷是否就業(yè) money = int(input('請(qǐng)輸入修改之后的月薪:')) sheet.cell(row, 9, money) wb.save(’StudentList.xlsx’) else: print('請(qǐng)先修改就業(yè)狀態(tài)及就業(yè)公司!') changeisjob(row, wb) changecompany(row, wb) changemoney(row, wb) PrintAll() arry = [0, 1, 2, 3, 4, 5, 6] id = input('請(qǐng)輸入你要修改的學(xué)生的學(xué)號(hào):') if not CheckIdIsRight(id): # 檢驗(yàn)學(xué)號(hào)是否存在 print('學(xué)號(hào)正確!') row = FindId(id) wb = load_workbook(’StudentList.xlsx’) sheet = wb.active StudentPersonalMsg() while 1: a = input('請(qǐng)輸入:') if a.isdigit() and int(a) in arry:a = int(a)while a > 0: if a == 1: changename(row, wb) print('修改成功!') break if a == 2: changetell(row, wb) print('修改成功!') break if a == 3: changeisjob(row, wb) print('修改成功!') break if a == 4: changecompany(row, wb) print('修改成功!') break if a == 5: changemail(row, wb) print('修改成功!') break if a == 6: changemoney(row, wb) print('修改成功!') break elif a > 6 or a < 0: print('輸入有誤!') breakif a == 0: break else:print('請(qǐng)輸入正確的選項(xiàng)0--6!')break else: print('請(qǐng)輸入正確的學(xué)號(hào)!')def DeleteStudent(): # 刪除學(xué)生信息 PrintAll() id = input('請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):') if not CheckIdIsRight(id): # 判斷學(xué)號(hào)為id的學(xué)生是否在StudentList.xlsx中 print('學(xué)號(hào)正確!') id = int(id) row = FindId(id) # 查找其所在的行 wb = load_workbook(’StudentList.xlsx’) sheet = wb.active isdelete = input('是否刪除該學(xué)生信息?輸入是或否:') if isdelete == ’是’: sheet.delete_rows(row, 1) # 刪除該行 wb.save(’StudentList.xlsx’) print('刪除成功!') PrintAll() else: print('刪除失敗!') else: print('學(xué)號(hào)輸入錯(cuò)誤!')def SortMenu(): print(end=' ' * 45) print(’*’ * 30) print(end=' ' * 45) print('* 按學(xué)號(hào)從小到大排序結(jié)果輸入: 1 *') print(end=' ' * 45) print('* 按年級(jí)從大到小排序結(jié)果輸入: 2 *') print(end=' ' * 45) print('* 按薪資從高到低排序結(jié)果輸入: 3 *') print(end=' ' * 45) print('* 退出此功能請(qǐng)輸入: 0 *') print(end=' ' * 45) print(’*’ * 30)def SortData(): SortMenu() arry = [0, 1, 2, 3] while 1: a = input('請(qǐng)輸入: ') if a.isdigit() and int(a) in arry: a = int(a) while a:if a == 1: GetAllStudentById() SortMenu() breakif a == 2: GetAllStudentByGadeOrMoney(3) SortMenu() breakif a == 3: GetAllStudentByGadeOrMoney(8) SortMenu() breakelif a > 3 or a < 0: print('輸入有誤!') break if a == 0:break else: print('請(qǐng)輸入正確的選項(xiàng)0--3')def main(): # 主函數(shù) arry = [0, 1, 2, 3, 4, 5] Menu() # 先打印菜單 while 1: a = input('請(qǐng)輸入: ') if a.isdigit() and int(a) in arry: a = int(a) while a:if a == 1: PrintStudentList() Menu() breakif a == 2: AddStudent() Menu() breakif a == 3: ChangeStudent() Menu() breakif a == 4: DeleteStudent() Menu() breakif a == 5: SortData() Menu() breakelif a > 5 or a < 0: print('輸入有誤!') break if a == 0: # 按0退出進(jìn)程print('系統(tǒng)已退出!')exit() else: print('請(qǐng)輸入0--5!')main()

文件:

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

注意:將表格excel文件放在代碼相同目錄下即可 ,否則應(yīng)該在使用文件時(shí)填上絕對(duì)路徑,否則會(huì)出現(xiàn)文件打不開(kāi),或者找不到等錯(cuò)誤,在系統(tǒng)運(yùn)行期間應(yīng)該講文件保存并關(guān)閉,否則當(dāng)文件處于打開(kāi)狀態(tài)時(shí)無(wú)法進(jìn)行修改,插入等操作,出現(xiàn)錯(cuò)誤。

二、 采用文本文檔保存數(shù)據(jù)實(shí)現(xiàn)的畢業(yè)生信息管理系統(tǒng)

基本思想與上述的相似,就不再這里闡述了,以下附上源碼。

源碼

StudentInfo = [’學(xué)號(hào)’, ’姓名’, ’性別’, ’畢業(yè)年級(jí)’, ’就業(yè)公司名稱(chēng)’, ’電話號(hào)碼(+86)’, ’家庭住址’]def GetList(): # 將 StudentMsg.txt 中的數(shù)據(jù) 拷貝到一個(gè)列表中 fiel = open(’StudentMsg.txt’, ’r’, encoding=’utf-8’) l = [] for line in fiel: l.append(line.strip()) # 將所有的信息以c字符形式插入到列表中 return ldef PrintAllMsg(): # 打印出所有的信息 l = GetList() print(StudentInfo) count = 0 for i in range(0, len(l)): # 將列表中的所有信息 按7條一行打印 count = count + 1 print(l[i], end=' ') if count % 7 == 0: print() print()def ModifyMenu(): print(’-’ * 22) print('# 修改姓名請(qǐng)輸入: 1 *') print('# 修改性別請(qǐng)輸入: 2 *') print('# 修改畢業(yè)年級(jí)請(qǐng)輸入: 3 *') print('# 修改公司信息請(qǐng)輸入: 4 *') print('# 修改電話號(hào)碼請(qǐng)輸入: 5 *') print('# 修改家庭住址請(qǐng)輸入: 6 *') print('# 退出修改請(qǐng)輸入: 0 *') print(’-’ * 22)def ModifyMsg(): def ModifyName(pos): f = open(’StudentMsg.txt’, ’r+’, encoding=’utf-8’) flist = f.readlines() name = input('輸入修改之后的姓名:') name += ’n’ flist[pos + 1] = name f = open(’StudentMsg.txt’, ’w+’, encoding=’utf-8’) f.writelines(flist) f.close() print('修改成功!') def ModifySex(pos): Sex = [’男’, ’女’] f = open(’StudentMsg.txt’, ’r+’, encoding=’utf-8’) flist = f.readlines() sex = input('輸入修改之后的性別:') if sex in Sex: sex += ’n’ flist[pos + 2] = sex f = open(’StudentMsg.txt’, ’w+’, encoding=’utf-8’) f.writelines(flist) f.close() print('修改成功!') else: print('輸入錯(cuò)誤!') print('修改失敗!') ModifySex(pos) def ModifyYear(pos): f = open(’StudentMsg.txt’, ’r+’, encoding=’utf-8’) flist = f.readlines() year = input('輸入修改之后的年級(jí):') if int(year) > 2000: year += ’n’ flist[pos + 3] = year f = open(’StudentMsg.txt’, ’w+’, encoding=’utf-8’) f.writelines(flist) f.close() print('修改成功!') else: print('輸入錯(cuò)誤!') print('修改失敗!') ModifyYear(pos) def Modifycompany(pos): f = open(’StudentMsg.txt’, ’r+’, encoding=’utf-8’) flist = f.readlines() company = input('輸入修改之后的公司:') company += ’n’ flist[pos + 4] = company f = open(’StudentMsg.txt’, ’w+’, encoding=’utf-8’) f.writelines(flist) f.close() print('修改成功!') def ModifyTell(pos): f = open(’StudentMsg.txt’, ’r+’, encoding=’utf-8’) flist = f.readlines() tell = input('輸入修改之后的電話號(hào)碼:') if len(tell) == 11: tell += ’n’ flist[pos + 5] = tell f = open(’StudentMsg.txt’, ’w+’, encoding=’utf-8’) f.writelines(flist) f.close() print('修改成功!') else: print('輸入錯(cuò)誤!') print('修改失敗!') ModifyTell(pos) def ModifyAddress(pos): f = open(’StudentMsg.txt’, ’r+’, encoding=’utf-8’) flist = f.readlines() address = input('輸入修改之后的地址:') address += ’n’ flist[pos + 6] = address f = open(’StudentMsg.txt’, ’w+’, encoding=’utf-8’) f.writelines(flist) f.close() print('修改成功!') PrintAllMsg() id = input('請(qǐng)輸入你要修改的學(xué)號(hào):') if id in IsIdRight(): l2 = GetList() pos = l2.index(id) while 1: ModifyMenu() a = int(input('請(qǐng)輸入: ')) while a:if a == 1: ModifyName(pos) breakif a == 2: ModifySex(pos) breakif a == 3: ModifyYear(pos) breakif a == 4: Modifycompany(pos) breakif a == 5: ModifyTell(pos) breakif a == 6: ModifyAddress(pos) break if a == 0: # 按0退出進(jìn)程breakdef DelMsg(): PrintAllMsg() id = input('請(qǐng)輸入你要?jiǎng)h除的學(xué)生的Id:') if id in IsIdRight(): pos = GetList().index(id) f = open(’StudentMsg.txt’, ’r+’, encoding=’utf-8’) flist = f.readlines() for i in range(0, 7): del flist[pos] f = open(’StudentMsg.txt’, ’w+’, encoding=’utf-8’) f.writelines(flist) f.close() print('刪除成功!') PrintAllMsg() else: print('學(xué)號(hào)輸入錯(cuò)誤!') DelMsg()def IsIdRight(): # 返回學(xué)號(hào)列表 l1 = GetList() l2 = [] i = 0 while i < len(l1): l2.append(l1[i]) i = i + 7 return l2def AddMsg(): # 添加信息 fiel = open(’StudentMsg.txt’, ’a’, encoding=’utf-8’) def Inputid(): # 添加學(xué)號(hào)判斷 id = (input('請(qǐng)輸入你的學(xué)號(hào):')) l1 = IsIdRight() if not (int(id) > 1000 and (id in l1)): fiel.write(’n’) fiel.writelines(id) else: if int(id) < 1000:print('學(xué)號(hào)輸入錯(cuò)誤!')Inputid() if id in IsIdRight():print('學(xué)號(hào)存在!')Inputid() def Inputname(): # 添加姓名判斷 name = input('請(qǐng)輸入你的姓名:') fiel.write(’n’) fiel.writelines(name) def InputSex(): # 添加性別判斷 sex = [’男’, ’女’] s1 = input('請(qǐng)輸入你的性別') if s1 in sex: fiel.write(’n’) fiel.writelines(s1) else: print('性別輸入錯(cuò)誤!') InputSex() def InputGaduYear(): # 添加畢業(yè)年級(jí)判斷 year = (input('請(qǐng)輸入你的畢業(yè)年級(jí):')) if int(year) > 2000: fiel.write(’n’) fiel.writelines(year) else: print('畢業(yè)年級(jí)輸入錯(cuò)誤!') InputGaduYear() def InputCompany(): # 添加公司信息 company = input('請(qǐng)輸入你的就業(yè)公司:') fiel.write(’n’) fiel.writelines(company) def InputTell(): # 添加電話判斷 tell = (input('請(qǐng)輸入你的電話號(hào)碼:')) if len(tell) == 11: fiel.write(’n’) fiel.writelines(tell) else: print('電話號(hào)碼輸入錯(cuò)誤!') InputTell() def InputAddress(): # 添加地址信息 add = input('請(qǐng)輸入你的家庭地址:') fiel.write(’n’) fiel.writelines(add) Inputid() Inputname() InputSex() InputGaduYear() InputCompany() InputTell() InputAddress() fiel.close() # 關(guān)閉文件def Menu(): # 菜單主界面 print(’-’ * 22) print('# 查看畢業(yè)生列表輸入: 1 *') print('# 添加畢業(yè)生信息輸入: 2 *') print('# 修改畢業(yè)生信息輸入: 3 *') print('# 查找畢業(yè)生信息輸入:4 *') print('# 刪除畢業(yè)生信息輸入: 5 *') print('# 退出系統(tǒng)請(qǐng)輸入 0 *') print(’-’ * 22)def FindMenu(): print(’-’ * 22) print('# 搜索學(xué)號(hào)請(qǐng)輸入: 1 *') print('# 搜索姓名請(qǐng)輸入: 2 *') print('# 退出搜所請(qǐng)輸入 0 *') print(’-’ * 22)def FindStu(): def FindMsgById(): id = input('請(qǐng)輸入你需要查找的學(xué)生的學(xué)號(hào):') if id in IsIdRight(): pos = GetList().index(id) flist = GetList() print(StudentInfo) for i in range(0, 7):print(flist[pos + i], end=' ') print() else: print('學(xué)號(hào)輸入錯(cuò)誤!') FindMsgById() def FindMsgByName(): name = input('請(qǐng)輸入你需要查找的學(xué)生的姓名:') if name in GetList(): pos = GetList().index(name) - 1 flist = GetList() print(StudentInfo) for i in range(0, 7):print(flist[pos + i], end=' ') print() else: print('姓名輸入錯(cuò)誤!') FindMsgByName() while 1: FindMenu() a = int(input('請(qǐng)輸入: ')) while a: if a == 1:FindMsgById()break if a == 2:FindMsgByName()break if a == 0: breakdef main(): Menu() while 1: a = int(input('請(qǐng)輸入: ')) while a: if a == 1:PrintAllMsg()Menu()break if a == 2:AddMsg()Menu()break if a == 3:ModifyMsg()Menu()break if a == 4:FindStu()Menu()break if a == 5:DelMsg()Menu()break if a == 0: # 按0退出進(jìn)程 exit()main()

相應(yīng)的簡(jiǎn)要測(cè)試:

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

相應(yīng)的文件:注意 該文本文件應(yīng)和代碼文件在同一個(gè)目錄下

Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

注意 : 這里采用分行進(jìn)行數(shù)據(jù)的存儲(chǔ),為了方便數(shù)據(jù)的準(zhǔn)確修改,不需要一整行的數(shù)據(jù)進(jìn)行修改那么麻煩,插入和修改也更為精確

到此這篇關(guān)于Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例的文章就介紹到這了,更多相關(guān)Python XX信息管理系統(tǒng)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 亚洲视频中文字幕 | 最新日韩av | 91久久精品日日躁夜夜躁欧美 | 亚洲国产精品一区 | 国产乱码精品一区二区三区av | 99精彩视频 | 色吧一区| www.国产精品| 国产日韩91 | 后进极品白嫩翘臀在线视频 | 国产免费色 | 日韩一区高清视频 | www.xxx免费| 黄色免费网址大全 | 一级黄免费看 | 中出片 | 午夜免费小视频 | 亚洲欧美激情另类 | av网站免费 | 毛片久久| 国产欧美日韩在线 | 仙踪林久久久久久久999 | 女人久久久久 | 亚洲一区av在线 | 欧美日韩久久久 | 免费av观看 | 热re99久久精品国产99热 | 国产高清一区二区 | 欧美在线观看视频 | 国产在线一级片 | 亚洲国产精品va在线看黑人 | 精品成人在线 | 乳色吐息在线观看 | 国产亚洲成av人片在线观看桃 | 欧美午夜精品久久久 | 国产中文在线 | 亚洲精品欧美精品 | 九九热精 | 免费成人av在线 | 99精品一级欧美片免费播放 | 久久久久久成人 | 欧美日韩精品一区二区在线播放 | 亚洲骚片 | 成人欧美一区二区三区在线观看 | 成人片网址 | 99精品国产高清一区二区麻豆 | 精品免费视频 | 婷婷中文字幕 | 久久国产精彩视频 | 91伊人| 欧美日韩综合视频 | 在线视频成人永久免费 | 亚洲成人久久久 | 午夜视频在线观看免费视频 | 日韩91| 冷水浴在线观看 | 91久久久www播放日本观看 | 亚洲精品第一区在线观看 | 国产a一三三四区电影 | 青青草一区 | 黄色网址大全在线观看 | 久久久久久亚洲精品 | 久久久一区二区三区 | 国产高清在线精品一区二区三区 | 久久伦理电影 | 日韩超级大片免费看国产国产播放器 | 精品人成| 在线观看国产视频 | 成人精品一区二区三区中文字幕 | 成人国产精品视频 | 日韩久久久久 | 欧美日本国产欧美日本韩国99 | 成人午夜视频在线观看 | 国内精品视频一区二区三区 | 四虎av | 日韩成人在线播放 | 欧美日韩视频一区二区 | 久在草视频 | 麻豆精品一区二区 | 亚洲综合大片69999 | 日韩一区二区三区精品 | 一二三区在线 | 国产高清在线 | 理论片免费在线观看 | 99久久免费精品国产男女性高好 | 亚洲一区二区三区爽爽爽爽爽 | 色视频www在线播放国产人成 | 天天爱爱网 | 亚洲国产精品久久人人爱 | 欧美精品福利 | 超碰人人99 | 日产精品久久久一区二区 | 狠狠爱天天操 | 日韩成人在线影院 | 久久99国产精品 | 日韩欧美一区二区三区久久婷婷 | 毛片黄色 | 国产日韩欧美一区 | 性视频一区二区 | 神马电影午夜 | 欧美一区免费 | 亚州av| 一区二区三区在线播放 | 久久777 | 久草热8精品视频在线观看 黄色片网站视频 | 亚洲不卡视频在线观看 | 欧美片网站免费 | 黄a在线| 成人h漫在线观看 | 国产精品影视 | 国产精品一区二区三区四区 | 日韩精品中文字幕一区二区三区 | 成人亚洲| 狠久久| 91av导航| 91精品国产乱码久久久久久 | 99在线精品视频 | 亚洲一区二区三区视频 | 国产人妖在线 | 亚洲韩国精品 | 日日夜夜天天干干 | 91麻豆精品久久久久蜜臀 | h视频在线免费 | 中文字幕自拍偷拍 | 亚洲永久免费观看 | 亚洲成人免费在线 | 精品久久久久久久 | 日本 欧美 三级 高清 视频 | 免费观看国产视频在线 | 韩日精品在线观看 | 精品一区二区不卡 | 午夜精品一区二区三区在线观看 | 日韩毛片一级 | 免费在线一区二区 | 欧美色欧美亚洲另类七区 | av黄色在线观看 | 黄视频网站免费观看 | 久久精品在线 | 最新国产毛片 | 日韩成人一区二区 | 欧美精品99 | 可以在线看的黄色网址 | 国产精久 | 亚洲无吗电影 | 亚洲精品成人网 | 成人亚洲精品 | 亚洲精选一区 | 国产精品美女久久久久久久久久久 | 日本大人吃奶视频xxxx | 综合 欧美 亚洲日本 | 亚洲国产精品久久久 | 国产69精品久久久久观看黑料 | 欧美一区在线视频 | 成年人精品视频 | 欧美一二三区在线 | 欧美日韩国产综合视频 | 一区二区三区国产 | 一区二区三区免费看 | 国产在线精品一区二区 | 亚洲国产二区 | 国产一区二区三区免费 | 亚洲一区av | 国内精品视频一区二区三区八戒 | 久久久久久中文字幕 | av资源中文在线天堂 | 中文字幕91 | 国产精品大全 | 亚洲免费小视频 | 成人午夜视频在线观看 | 97超碰站 | 国产乡下妇女做爰视频 | 91久久九色| 久久国产精品久久 | 麻豆视频国产 | 日韩另类 | 天天视频成人 | 国产成人综合av | 国产偷久久9977 | 亚洲精选一区二区 | 亚洲免费人成在线视频观看 | 一区二区不卡视频 | 国产一区二区三区免费 | 国产一区二区三区免费视频 | 一区二区三区播放 | 一区二区三区在线免费观看 | 亚洲 中文 欧美 日韩 在线观看 | 精品国产99| 久久久久国产 | 一级全黄性色生活片 | 色综合激情 | 亚洲97| 成人激情视频在线观看 | 日本久久精品一区 | 一级片国产 | 中文字幕在线观看2021 | 日韩精品专区在线影院重磅 | 国产成人高清在线 | 色婷婷一区二区三区四区 | 久久久久综合狠狠综合日本高清 | 精品久久久久久国产三级 | 久久久精品久久久久 | 久久2018 | 成人免费在线 | 91看片网 | 中文字幕网在线 | 黄色三及毛片 | 欧美一级视频在线观看 | 中文精品一区二区三区 | 男女污污网站 | 国变精品美女久久久久av爽 | 国产精品欧美一区二区三区 | 亚洲男人天堂2023 | 一级黄色录像视频 | 综合一区 | 成人欧美一区二区三区白人 | 99久久婷婷国产综合精品 | 日韩精品影院 | 亚洲高清在线观看 | 男女精品 | 欧美日韩国产在线 | av网站免费 | 另类色 | 欧美精品久久久久久久久久丰满 | 一级a毛片免费 | 精品欧美黑人一区二区三区 | 特一级毛片 | 精品一区二区三区四区五区 | 超碰人人干 | 日韩高清在线 | 欧美极品一区二区三区 | av网站观看 | 四虎影院最新地址 | 老司机精品福利视频 | 欧美成人精品激情在线观看 | 四虎影视免费在线观看 | 色综合久久天天综合网 | 亚洲精品一区二三区不卡 | 色综合天天综合网国产成人网 | 中文在线视频 | 中文字幕在线播放第一页 | 中文字幕国产在线视频 | 暖暖av| 狠狠人人| 黄色片一区 | 亚洲国产欧美一区二区三区久久 | 国产精品xxxx| 精品久久久久久国产 | 亚洲一区免费视频 | 亚洲最黄网站 | 国产亚洲精品久久久 | 日韩成人久久 | 中文字幕一二三区 | 日韩av电影免费 | 国产二区精品 | 久久久久一区二区三区 | 亚洲精品久久久一区二区三区 | 91爱爱视频| 噜噜噜噜噜在线视频 | 久久一区国产 | 成人免费av | 日日干日日操 | 成人精品在线视频 | 日韩精品视频在线观看一区二区 | 久久这里只有国产精品 | 99久久久无码国产精品 | 久久精品a一级国产免视看成人 | 久久久亚洲| 日韩电影在线 | 国产一级视频免费观看 | 日韩精品一区二区三区中文在线 | 精品久久久久久久久久久久久久 | 成人免费毛片嘿嘿连载视频 | av香港经典三级级 在线 | av片免费看| 激情毛片| 色婷婷综合久色 | 综合精品久久久 | 成全视频免费观看在线看黑人 | 男女小网站 | 国产精品久久久久久久久免费桃花 | 国产成人欧美一区二区三区的 | 国产精品久久九九 | 麻豆久久久久久 | 日本一区二区三区免费观看 | 精品无码久久久久久国产 | 男女精品 | 色综合av| 欧美日韩一区不卡 | 国产精品久久久久久久久久东京 | 日韩免费一区二区 | 天天操导航 | 国产亚洲精品美女久久久久久久久久 | 久久精品视频在线播放 | 一区二区三区四区日韩 | 免费在线观看一级毛片 | 国产视频久久精品 | 亚洲免费在线观看 | 国产精品美女久久久久久久久久久 | 久久精品久久久 | 69日影院 | 欧洲精品久久久 | 精品亚洲一区二区三区 | 欧美福利在线观看 | 欧美久久影视 | 国产精品99久久久久久宅男 | 97在线观看视频 | 日韩一区二区三区在线 | 天天久久综合网 | 自拍偷拍欧美 | 免费在线成人 | 国产精品精品视频一区二区三区 | 在线免费观看av片 | 成人超碰在线 | 欧美日韩专区 | 91九色最新 | 涩涩片影院 | 精品欧美 | 视频网站免费观看 | 蕉伊人| 成人免费在线视频 | 亚洲日本韩国在线观看 | 国产成人精品高清久久 | 日本精品一区二区三区在线观看 | 毛片黄色 | 亚洲视频观看 | 久久这里精品 | 91在线 | 亚洲 | 九九香蕉视频 | 国产高清自拍 | 亚洲cb精品一区二区三区 | 日韩在线一区二区 | 成人a在线视频 | 国产精品国产三级国产aⅴ9色 | 亚洲精品片| 中文字幕国产 | 国产片av| 国产精品久久久久婷婷二区次 | 免费国产一区二区 | 亚洲影视一区二区 | 成人一级片 | 成年视频在线观看福利资源 | 欧美激情精品 | 欧美涩涩网 | 久久人人爽爽爽人久久久 | 国产精品免费看 | 亚洲网在线 | 一区二区日韩 | 中文字幕一区二区在线观看 | 亚洲综合色自拍一区 | 国产精品www | 色婷婷综合久久久中字幕精品久久 | 永久91嫩草亚洲精品人人 | 免费v片| 免费一区二区三区 | 羞羞视频在线观看免费 | 2018狠狠干| 国产亚洲欧美在线 | 成人涩涩日本国产一区 | 在线不卡a资源高清 | 天天操免费 | 日日射av| 欧美电影一区二区三区 | 久久国产精品免费一区二区三区 | 欧美亚洲视频 | 亚洲九九九 | 欧美精品免费在线观看 | 爱爱日韩 | 香蕉久久一区二区不卡无毒影院 | 久久不卡| 夜夜爆操| 成人三级av| 国产精品毛片一区二区三区 | 日本一级毛片视频 | 日韩精品一区二区三区中文字幕 | 欧美影| 国产精品久久久久久久久福交 | 777xacom | 亚洲精品日韩激情欧美 | 久久丁香 | 久久午夜影院 | 亚洲不卡 | 欧美一区二区三区精品 | 亚洲狠狠爱一区二区三区 | 天天干夜夜爽 | 日韩在线成人 | 亚洲一区二区精品视频 | 欧美1区| 欧美日韩中文在线观看 | 日韩特级| 九九免费观看全部免费视频 | 日韩av高清在线 | 亚洲美女网站 | 国产免费av在线 | 在线视频一区二区三区 | 久久久久久91香蕉国产 | 日韩免费网站 | 欧美一区二区三区 | 成人免费视频观看视频 | 日韩一区二区在线播放 | 久一久久 | 国产精品亚洲成在人线 | 国产一级片 | 黄色片网站在线免费观看 | 男女做爰高清无遮挡免费视频 | 久久99精品视频在线观看 | 精品欧美激情在线观看 | 日韩一区二区在线播放 | 91色电影 | 欧美亚洲性视频 | 羞羞视频在线观免费观看 | 狠狠搞狠狠搞 | 国产激情一区二区三区成人免费 | 国产高清不卡 | 午夜影院在线观看版 | 精品国产欧美一区二区 | 国产日韩精品入口 | 国产精品成人国产乱一区 | 亚洲国内精品 | 成人精品网站在线观看 | 精品国产91乱码一区二区三区 | 亚洲精品久久 | 国产片在线观看 | 日韩欧美在线视频 | 国产精品久久久久久久午夜片 | 久久这 | 成人精品一区二区三区 | 久久久精品久久久久久 | 青草青草久热精品视频在线观看 | 欧美日韩一区二区在线播放 | 男人的天堂在线视频 | 欧洲一区| 国产一区二区三区在线看 | 九九精品在线 | 亚洲第一天堂无码专区 | 黄色一级片免费播放 | 日韩精品1区2区3区 成人黄页在线观看 | 亚洲国产欧美一区二区三区久久 | 欧美一级大片免费 | 欧美国产在线视频 | 国产精品毛片一区二区在线看 | 日韩欧美一区二区三区免费观看 | 欧美一性一交 | 国产成人涩涩涩视频在线观看 | 日韩第一区 | 久久久久久久久99精品 | 国产高清久久久 | 国产精品一区一区三区 | 国产在线一区二区 | 在线色av | 成人激情免费视频 | 日韩欧美国产一区二区三区 | 中文字幕av一区 | 99看| 黄色a在线观看 | 91网站在线播放 | av先锋资源 | 欧美一级高潮片免费的 | 欧洲免费毛片 | 福利视频一区 | 久久久久久午夜 | 九九热这里只有精品在线观看 | 真人女人一级毛片免费播放 | 欧美一级片在线观看 | 久久久久久久久综合 | 久在线 | 中字幕视频在线永久在线观看免费 | 色com| 乳色吐息在线观看 | 久久99精品久久久久久青青日本 | 久久伊人在 | 中文字幕一区在线观看视频 | 国产一级大片 | 中文视频在线 | 麻豆一区二区三区 | 懂色中文一区二区在线播放 | 亚洲综合无码一区二区 | 久久久久久久av | 亚洲国产精品成人综合色在线婷婷 | 欧洲成人午夜免费大片 | 五月天电影网 | 亚洲欧洲日韩在线 | 婷婷激情五月 | 天天精品在线 | 亚洲精品在线免费 | 欧美精品成人一区二区三区四区 | 91xxx在线观看| 人人叉人人 | 日韩欧美精品一区 | 伦理午夜电影免费观看 | 日韩成人短视频 | 在线成人国产 | 亚洲免费成人 | 午夜影院在线观看 | 国产欧美综合一区二区三区 | 日韩不卡av | 日韩在线中文字幕 | а_天堂中文最新版地址 | 精品国产一区二区三区av片 | 午夜国产一区 | 嫩草影院永久入口 | 亚洲精品在| 日韩在线看片 | www.麻豆av | 一级毛片免费网站 | 漂亮少妇videoshd忠贞 | 国产视频亚洲精品 | 欧美日韩精品一区二区三区 | www.成人 | 亚洲国产区| 国产九九精品 | 精品一区国产 | 欧美精品亚洲 | 日本午夜在线 | 亚洲精品一区二三区不卡 | 欧美午夜一区二区三区免费大片 | 国产丝袜一区二区三区免费视频 | 国产精品亚洲成人 | 天堂一区| 久久9999久久 | 91精品国产91久久综合桃花 | 欧美一区二区三区免费在线观看 | 亚洲欧美综合精品久久成人 | 欧美精品在线一区 | 我要看黄色一级大片 | 国产视频999 | 天天天天干 | 国产a√| 久久国产成人 | 日韩一区二区在线视频 | 亚洲在线视频 | 色综合久久久久久久久久久 | 一区二区三区亚洲 | 国产性色 | 欧美激情一区二区 | 亚洲高清视频一区 | 国产一区二区精品在线观看 | 亚洲 中文 欧美 日韩 在线观看 | 久久人爽| 欧美精品一二区 | 色婷婷影院 | 久久9国产偷伦 | 青青久久久| 亚洲成人日本 | 久久亚洲一区二区 | 午夜精品久久久久 | 在线国产一区二区 | 国产免费一区二区 | 色婷婷亚洲一区二区三区 | 久久久高清 | 欧美综合视频在线观看 | 国产成人片 | 一区二区三区在线播放 | 97人人做人人人难人人做 | 色鲁97精品国产亚洲 | 中文字幕日韩一区二区不卡 | 亚洲网站色 | 日韩一级片 | 一区二区三区国产 | 国产福利在线播放 | 国产一区二区三区在线免费观看 | 午夜国产一级 | 美女网站视频免费黄 | 日本成人中文字幕 | 国产精品久久久久久久久免费桃花 | 午夜国产精品成人 | 亚洲国产精品久久人人爱 | 欧美性久久 | 日韩视频在线观看一区二区 | 久久久久综合 | 中文字幕在线第一页 | 亚洲欧美国产一区二区三区 | 亚洲一区二区精品在线观看 | 色九九| 免费一区二区三区 | 国产成人在线免费观看视频 | 亚洲精品国产偷自在线观看 | 91中文在线观看 | 日韩精品一区二区三区 | 欧美日韩大片在线观看 | 96久久久久久| 欧美成人激情视频 | 求av网址 | 老牛影视av一区二区在线观看 | 一级a毛片 | 久久精品影视 | 中文字幕精品一区 | 欧美在线观看一区 | 欧美激情欧美激情在线五月 | 男人视频网站 | 一区三区在线观看 | 国产精品一区二区在线观看 | 欧美国产在线观看 | 亚洲精品视频在线 | 黄色av网站免费看 | 天堂一区二区三区 | 在线观看不卡一区 | 国产欧美精品一区二区 | 白浆在线播放 | 久久精品欧美一区二区三区不卡 | 亚洲精品国产一区 | 国产一级免费视频 | 中文在线一区二区 | 午夜激情免费在线观看 | 欧美精品1区2区3区 精品国产欧美一区二区 | 午夜免费视频 | 日韩成人在线播放 | 性色在线视频 | 欧美国产一区二区 | 一级黄色毛片a | 国产成人精品久久久 | 国产成人一区 | 国产精品1区2区 | 日韩视频在线观看 | 一级在线观看视频 | 欧美黄色激情 |