1. 程式人生 > >python基礎:案例:學生名片資訊管理系統

python基礎:案例:學生名片資訊管理系統

功能:
1.能迴圈輸入內容
2.展示功能
-1.新增名片
-2.顯示全部
-3.查詢名片
-0.退出系統
3.讓使用者輸入希望執行的操作 例如輸入1,2,3,0
4.新增列表

  • 提示使用者輸入姓名,
  • 輸入電話
  • 輸入qq號
  • 輸入郵箱
  • 提示新增名片成功。
    5.顯示全部
  • 將所有的名片打印出來,格式如下:
    姓名 電話 QQ 郵箱
    zs 110 1337765076 [email protected]

6.查詢名片

  • 提示請輸入要搜尋查詢使用者的姓名
    • 如果使用者存在—>顯示使用者的資訊
      -提示使用者【1】修改 【2】刪除 【0】返回上一級選單,請選擇要執行的操作。
      -修改操作,可以修改使用者名稱,電話,qq、郵箱。

      • 刪除操作,將使用者刪除。
      • 返回上一級操作,回到歡迎介面,讓使用者繼續操作。
    • 如果使用者不存在–>提示查詢的使用者不存在。

student_info_lst = [] # 儲存所有學生的資訊
def show_menu(): #顯示所有功能選單
‘’‘顯示所有功能選單’’’
print(‘歡迎來到學生資訊管理系統’)
print(‘新增學員請按【1】’)
print(‘顯示全部請按【2】’)
print(‘查詢學員請按【3】’)
print(‘退出系統請按【0】’)

  def add_student():        #這是新增學員功能
        '''這是新增學員功能'''
        print('-----新增學院功能')
    name = input('請輸入姓名:')
    age = input('請輸入年齡:')
    gender = input('請輸入性別:')
    phone = input('請輸入手機:')
    # 將使用者輸入的資訊儲存到字典中
    # print(name.age,gender,phone)
    dic = {}
    dic['name'] = name
    dic['age'] = age
    dic['gender'] = gender
    dic['phone'] = phone
    # print(dic)
    # 注意將使用者輸入的資訊儲存到全域性變數student_info_lst列表中,
    # 讓其他功能使用列表中的資訊
    student_info_lst.append(dic)
    print('新增成功了')
    print(student_info_lst)
    
    def alignment(s,space):
        '''動態獲取空格長度'''
        s1=s.encode('gbk')
        length=len(s1)
        space=space-length
        s=s+' '*space
        return s
    ret=alignment('name',20)
    print(ret)
def show_all_student():
print('-----顯示所有的學員資訊功能-----')
if not student_info_lst:  # 沒有學員資訊
    print('還沒有學員資訊呢,請先新增學員')
    return
# 顯示學員資訊
# print('name\tage\tgender\tphone\t')   #此種方法對不齊
name=alignment('name',15)
age=alignment('age',15)
gender=alignment('gender',15)
phone=alignment('phone',15)
print(name,age,gender,phone)
for dic in student_info_lst:
    # name = dic['name']
    # age = dic['age']
    # gender = dic['gender']
    # phone = dic['phone']
    # print('{}\t{}\t{}\t{}\t'.format(name, age, gender, phone))  此種方法對不齊
        name=alignment(dic['name'],15)
        age=alignment(dic['age'],15)
        gender=alignment(dic['gender'],15)
        phone=alignment(dic['phone'],15)
        print(name,age,gender,phone)
 def modify_student(old_value, msg):
        new_value = input(msg)
        if new_value.strip():  # 輸入的內容不為空
            return new_value
        else:
            return old_value


def deal_student(dic):  # 修改和刪除學員資訊
        action_str = input('【1】修改  【2】刪除 【0】返回上一級選單,請選擇執行的操作')
        if action_str == '1':
        name = modify_student(dic['name'], '請輸入姓名:')
        age = modify_student(dic['age'], '請輸入年齡:')
        gender = modify_student(dic['gender'], '請輸入性別:')
        phone = modify_student(dic['phone'], '請輸入電話:')
        dic['name'] = name
        dic['age'] = age
        dic['gender'] = gender
        dic['phone'] = phone
        print('------修改成功了--------')

    	elif action_str == '2':
            student_info_lst.remove(dic)
            print('-----刪除成功了-----')
        elif action_str == '0':
            pass
    
    
    def search_student_by_name():
        print('-----歡迎來到學生資訊查詢功能-------')
        if student_info_lst:
            name = input('請輸入要查詢學員的姓名:')
            for dic in student_info_lst:
                if dic['name'] == name:
                    print('name\tage\tgender\tphone\t')
                    name = dic['name']
                    age = dic['age']
                    gender = dic['gender']
                    phone = dic['phone']
                    print('{}\t{}\t{}\t{}\t'.format(name, age, gender, phone))
                    # 修改學員資訊
                    deal_student(dic)  # 需要將學員資訊傳遞到函式中
                    break
            else:
                print('沒有找到該學員姓名')
        else:
            print('沒有學員資訊,請先新增學員資訊')


while True:
    show_menu()
    action_str = input('請輸入您要選的數字:')
    lst = ['0', '1', '2', '3']
    if action_str in lst:
        # print('正確了')
        if action_str == '0':
            break
        elif action_str == '1':
            add_student()

elif action_str == '2':
    show_all_student()
elif action_str == '3':
    search_student_by_name()
else:
    print('--------sb,'
          '輸入錯了,請重新輸入--------')