中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何實現通訊錄管理系統

發布時間:2022-05-16 15:56:55 來源:億速云 閱讀:325 作者:iii 欄目:開發技術

這篇“python如何實現通訊錄管理系統”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“python如何實現通訊錄管理系統”文章吧。

一. 項目要求

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

二.項目步驟

1.使用自定義函數實現每個功能

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

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

用列表作為全局變量,當列表信息發生變化,調用保存函數

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

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

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

三、項目代碼要求:

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

代碼

1.代碼說明

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

2.manage.py

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

2021/6/16

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

'''


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

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

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


#添加信息
def add():
        print("請輸入需要添加到姓名、手機號,以空格隔開:")
        #列表
        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'))  #創建文件,并寫入文件  如果存在同名文件,則原內容會被覆蓋
        #字典
        # A = input().split(" ")
        # Name.append(A[0])
        # d[A[0]] = A[1]
        # print("添加成功")
        # save(A[0])  # 更新學生信息

#刪除信息
def delete():
    print("請輸入需要刪除的姓名:")
    name = input()
    #字典刪除
    # del d[name]
    # Name.remove(name)
    #從文件中刪除學生信息
    exist = 0
    for i in range(len(Student)):
        #存在該學生
        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  #判斷學生是否存在的標簽
                break
        else :
            exist = 0
    if exist == 0:
         print("未找到該學生的信息!")


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

        #從文件中刪除學生信息
        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("查詢結果:",name,d[name])
    exist = 0
    for i in range(len(Student)):
        #存在該學生 這一步判斷有點多余 但是為了簡化打印未找到的結果還是這樣做了
        if Student[i].count(name) > 0:
            if name == Student[i][0]:
                print("查詢結果: ")
                for temp in Student[i]:
                    print(temp,end=" ")
                print()
                exist = 1  # 判斷學生是否存在的標簽
                break
        else:
                exist = 0
    if exist == 0:
                print("未找到該學生的信息!")

#更改文件信息
def change_file():
    print("輸入需要修改信息的學生姓名:")
    name = input()
    exist = 0
    for i in range(len(Student)):
        #存在該學生
        if Student[i].count(name) > 0:
            if name == Student[i][0]:
                # 找到了該學生
                # 下面進行修改信息的操作
                file_name = path + name + ".txt"
                print("輸入修改后該學生的所有信息:")
                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'))  # 創建文件,并重新寫入文件
                print("修改成功")
                exist = 1  # 判斷學生是否存在的標簽
                break
        else:
                exist = 0
    if exist == 0:
                print("未找到該學生的信息!")


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

3.main.py

import manage

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

    print("請輸入需要執行的操作(輸入'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

以上就是關于“python如何實現通訊錄管理系統”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛浦县| 忻州市| 上蔡县| 砚山县| 马山县| 中牟县| 涿鹿县| 庆阳市| 丽水市| 剑阁县| 土默特右旗| 瑞丽市| 台湾省| 公主岭市| 凯里市| 汽车| 建昌县| 丰城市| 利川市| 梧州市| 正阳县| 当涂县| 三门县| 临西县| 磴口县| 乐亭县| 莎车县| 开远市| 京山县| 安平县| 两当县| 清丰县| 屯留县| 甘洛县| 吉林省| 祁连县| 滁州市| 改则县| 容城县| 宁国市| 兴文县|