亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python實現(xiàn)通訊錄管理系統(tǒng)

 更新時間:2022年05月16日 14:35:04   作者:雪人見花  
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python實現(xiàn)通訊錄管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

題目

期末項目 

一. 項目要求

利用函數(shù)實現(xiàn)通訊錄管理系統(tǒng),通訊錄的內(nèi)容包含姓名、聯(lián)系方式、微信號、電子郵箱等需要保存的信息。至少要包含姓名和聯(lián)系方式兩種。管理系統(tǒng)的功能包括信息的添加、刪除、修改、查詢、顯示、保存的功能。

二.項目步驟

1.使用自定義函數(shù)實現(xiàn)每個功能

(1)功能菜單:顯示項目應(yīng)該具有的功能
(2)添加:輸入要添加的信息 
(3)刪除:輸入要刪除的聯(lián)系人姓名,刪除其所有的信息
(4)修改:輸入要修改的聯(lián)系人姓名,修改其信息
(5)查詢:輸入要查詢的聯(lián)系人姓名,遍歷列表,得到其信息
(6)顯示:顯示所有的聯(lián)系人信息
(7)保存:將數(shù)據(jù)保存到文件中
(8)主函數(shù):先顯示菜單,提示用戶輸入要進(jìn)行的操作代碼,調(diào)用相應(yīng)的函數(shù)

2. 當(dāng)添加、刪除、修改了信息后,要同步保存到文件中

用列表作為全局變量,當(dāng)列表信息發(fā)生變化,調(diào)用保存函數(shù)

3.編寫一個模塊,在主函數(shù)中調(diào)用該模塊,測試其功能。完成一個,測試一個,保證所有模塊能正確運(yùn)行,信息存儲在文本文件中。

4.可以用列表,元組,字典存儲通訊錄信息。假如,現(xiàn)在只存儲姓名和手機(jī)號,這里選擇字典,轉(zhuǎn)換為元組放在列表里保存。

5.初始時,先創(chuàng)建了一個文本文件,文件名為學(xué)生姓名,并輸入空列表[]。

三、項目代碼要求:

1. 代碼要有必要的注釋,說明其功能。
2. 要有每個模塊的測試結(jié)果。
3. 若有截圖,截圖要清晰。

代碼

1.代碼說明

題目要求從模塊中調(diào)用函數(shù),因此需要在同一個文件夾下建立兩個python文件:manage.py和main.py. 其中,manage.py中設(shè)計函數(shù),main.py中調(diào)用manage.py中的函數(shù)并實現(xiàn)功能。

2.manage.py

'''
注意:
1.要求輸入的姓名默認(rèn)全部為合理輸入,并未對輸入內(nèi)容進(jìn)行判斷和過濾
2.默認(rèn)打開的文件已經(jīng)存在,并沒對文件狀態(tài)進(jìn)行判斷,而是以列表信息中是否存在該學(xué)生為依據(jù)
3.沒有使用字典的任何操作
4.如果希望將所有學(xué)生信息保存在同一個txt文件中,只需將每個函數(shù)中file_name重新命名的部分注釋掉
5.修改信息采用的方法是:將原內(nèi)容刪除,并重新寫入新內(nèi)容,這么做的原因是電腦要沒電了,這個可以作為自己的測試板塊,重新設(shè)計編寫
6.實驗步驟的最后一步 不知道是什么目的,并所以沒有這樣做
7.因為都是采用列表來判斷學(xué)生內(nèi)容,所以文件保存成功后重新運(yùn)行程序列表清空,即不可再查詢到信息
8.打印所有信息可以采取文件夾下多文件讀取的方法,遍歷該目錄下的所有txt文件,讀出內(nèi)容并打印,請自行編寫

2021/6/16

新增注意:
1.修改文件內(nèi)容時,如果將姓名一同修改,則會出現(xiàn)文件名與文件內(nèi)容中的姓名不同的情況
2.修改文件內(nèi)容時,如果將該姓名修改為另一個已經(jīng)出現(xiàn)過的姓名,在列表中將會出現(xiàn)重名情況
3.先沒有處理重名情況的操作
4.同名情況下,如果修改該名字的信息,則將修改第一次出現(xiàn)該名稱的位置的信息
5.因此,如果錯誤1和錯誤2同時發(fā)生,文件就會,嗯...串了,就亂套了

'''


#d = {} ?#字典儲存信息

Student = []
path = "D:\\" ?#文件保存路徑 默認(rèn)為空即保存在當(dāng)前文件夾下 建議新建文件夾并修改路徑
file_name = path + "student.txt" #文件默認(rèn)保存位置

#顯示命令
def print_message():
? ? print("**************************************")
? ? print(" ? ? **1.添加學(xué)生信息")
? ? print(" ? ? **2.刪除學(xué)生信息")
? ? print(" ? ? **3.修改學(xué)生信息")
? ? print(" ? ? **4.查找學(xué)生信息")
? ? print(" ? ? **5.查看所有信息")
? ? print(" ? ? **6.查看操作菜單")


#添加信息
def add():
? ? ? ? print("請輸入需要添加到姓名、手機(jī)號,以空格隔開:")
? ? ? ? #列表
? ? ? ? A = input().split(" ")
? ? ? ? temp_str = ""
? ? ? ? for i in A:
? ? ? ? ? ? temp_str += i+" ?"
? ? ? ? if temp_str != '/n': #防止錯誤輸入
? ? ? ? ? ? ?Student.append(A) ?#加入列表
? ? ? ? ? ? ?file_name = path+A[0] +".txt"
? ? ? ? ? ? ?print(temp_str, file=open(file_name, 'w')) ?#創(chuàng)建文件,并寫入文件 ?如果存在同名文件,則原內(nèi)容會被覆蓋
? ? ? ? #字典
? ? ? ? # A = input().split(" ")
? ? ? ? # Name.append(A[0])
? ? ? ? # d[A[0]] = A[1]
? ? ? ? # print("添加成功")
? ? ? ? # save(A[0]) ?# 更新學(xué)生信息

#刪除信息
def delete():
? ? print("請輸入需要刪除的姓名:")
? ? name = input()
? ? #字典刪除
? ? # del d[name]
? ? # Name.remove(name)
? ? #從文件中刪除學(xué)生信息
? ? exist = 0
? ? for i in range(len(Student)):
? ? ? ? #存在該學(xué)生
? ? ? ? if Student[i].count(name) > 0:
? ? ? ? ? ? if name == Student[i][0]:
? ? ? ? ? ? ? ? file_name = path + name + ".txt"
? ? ? ? ? ? ? ? #刪除列表中的信息
? ? ? ? ? ? ? ? Student.pop(i)
? ? ? ? ? ? ? ? #刪除文件中的信息
? ? ? ? ? ? ? ? lines = [l for l in open(file_name, "r") if l.find(name, 0, len(name)) != 0] #暫時的刪除方式
? ? ? ? ? ? ? ? fd = open(file_name, "w") ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#如: 要刪除'張三‘,但‘張三四'也會被刪除
? ? ? ? ? ? ? ? fd.writelines(lines)
? ? ? ? ? ? ? ? fd.close()
? ? ? ? ? ? ? ? print("刪除成功")
? ? ? ? ? ? ? ? exist = 1 ?#判斷學(xué)生是否存在的標(biāo)簽
? ? ? ? ? ? ? ? break
? ? ? ? else :
? ? ? ? ? ? exist = 0
? ? if exist == 0:
? ? ? ? ?print("未找到該學(xué)生的信息!")


def delete_2(name,f_n):
? ? ? # 從列表里刪除該學(xué)生
? ? ? ? for i in range(len(Student)):
? ? ? ? ? ? # 存在該學(xué)生
? ? ? ? ? ? if Student[i].count(name) > 0:
? ? ? ? ? ? ? ? if name == Student[i][0]:
? ? ? ? ? ? ? ? ? ? del Student[i]
? ? ? ? ? ? ? ? ? ? break

? ? ? ? #從文件中刪除學(xué)生信息
? ? ? ? lines = [l for l in open(f_n, "r") if l.find(name, 0, len(name)) != 0]
? ? ? ? fd = open(f_n, "w")
? ? ? ? fd.writelines(lines)
? ? ? ? fd.close()


#查詢信息
def search():
? ? print("請輸入需要查詢的姓名:")
? ? name ?= input()
? ? #字典查詢
? ? #print("查詢結(jié)果:",name,d[name])
? ? exist = 0
? ? for i in range(len(Student)):
? ? ? ? #存在該學(xué)生 這一步判斷有點多余 但是為了簡化打印未找到的結(jié)果還是這樣做了
? ? ? ? if Student[i].count(name) > 0:
? ? ? ? ? ? if name == Student[i][0]:
? ? ? ? ? ? ? ? print("查詢結(jié)果: ")
? ? ? ? ? ? ? ? for temp in Student[i]:
? ? ? ? ? ? ? ? ? ? print(temp,end=" ")
? ? ? ? ? ? ? ? print()
? ? ? ? ? ? ? ? exist = 1 ?# 判斷學(xué)生是否存在的標(biāo)簽
? ? ? ? ? ? ? ? break
? ? ? ? else:
? ? ? ? ? ? ? ? exist = 0
? ? if exist == 0:
? ? ? ? ? ? ? ? print("未找到該學(xué)生的信息!")

#更改文件信息
def change_file():
? ? print("輸入需要修改信息的學(xué)生姓名:")
? ? name = input()
? ? exist = 0
? ? for i in range(len(Student)):
? ? ? ? #存在該學(xué)生
? ? ? ? if Student[i].count(name) > 0:
? ? ? ? ? ? if name == Student[i][0]:
? ? ? ? ? ? ? ? # 找到了該學(xué)生
? ? ? ? ? ? ? ? # 下面進(jìn)行修改信息的操作
? ? ? ? ? ? ? ? file_name = path + name + ".txt"
? ? ? ? ? ? ? ? print("輸入修改后該學(xué)生的所有信息:")
? ? ? ? ? ? ? ? A = input().split(" ")
? ? ? ? ? ? ? ? temp_str = ""
? ? ? ? ? ? ? ? for i in A:
? ? ? ? ? ? ? ? ? ? temp_str += i + " ?"
? ? ? ? ? ? ? ? if temp_str != '/n': ?# 防止錯誤輸入
? ? ? ? ? ? ? ? ? ? Student.append(A) ?# 加入列表
? ? ? ? ? ? ? ? ? ? delete_2(name,file_name) # 先刪除該信息

? ? ? ? ? ? ? ? ? ? print(temp_str, file=open(file_name, 'a')) ?# 創(chuàng)建文件,并重新寫入文件
? ? ? ? ? ? ? ? print("修改成功")
? ? ? ? ? ? ? ? exist = 1 ?# 判斷學(xué)生是否存在的標(biāo)簽
? ? ? ? ? ? ? ? break
? ? ? ? else:
? ? ? ? ? ? ? ? exist = 0
? ? if exist == 0:
? ? ? ? ? ? ? ? print("未找到該學(xué)生的信息!")


#顯示信息
def printf():
? ? print("所有信息如下:")
? ? for i in Student:
? ? ? ? for j in i:
? ? ? ? ? ? print(j,end=" ")
? ? ? ? print()

3.main.py

import manage

print("**************************************")
print(" ? ?歡迎來到學(xué)生信息管理系統(tǒng)")
manage.print_message() #打印命令指令
print("**************************************")
while(True):

? ? print("請輸入需要執(zhí)行的操作(輸入'q‘退出程序):")
? ? choice = input()
? ? if choice == '1':
? ? ? ? manage.add() ? #增
? ? if choice == '2':
? ? ? ?manage.delete() #刪
? ? if choice == '3':
? ? ? ?manage.change_file() ?#改
? ? if choice == '4':
? ? ? ?manage.search() ?#查
? ? if choice == '5':
? ? ? ?manage.printf() ?#打印
? ? if choice == '6':
? ? ? ? manage.print_message() ?# 打印命令指令
? ? if choice == 'q':
? ? ? ? print("退出!")
? ? ? ? break

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論