Python語言課程設(shè)計名片管理系統(tǒng)

      網(wǎng)友投稿 1029 2022-05-30

      目標(biāo):搭建名片管理系統(tǒng) 框架結(jié)構(gòu)

      通過本項目的學(xué)習(xí),學(xué)員可以了解項目開發(fā)的流程,掌握項目需求分析、設(shè)計與功能的代碼實現(xiàn)。提高同學(xué)們獨立分析需求與功能實現(xiàn)的能力。

      項目知識點:變量、流程控制、函數(shù)、模塊等python基礎(chǔ)中常用的知識點。

      使用python設(shè)計一個名片管理系統(tǒng),能提供下列服務(wù):

      程序啟動,顯示名片管理系統(tǒng)歡迎界面,并顯示功能菜單

      用戶用數(shù)字選擇不同的功能

      根據(jù)功能選擇,執(zhí)行不同的功能

      用戶名片需要記錄用戶的?姓名、電話、QQ、郵件

      如果查詢到指定的名片,用戶可以選擇?修改?或者?刪除?名片

      程序源碼

      card_list = [] def card(): print('新增名片') name = input('姓名:') phone = input('電話:') qq = input('qq:') email = input('郵箱:') card_d = {'name': name, 'phone': phone,'qq': qq,'email': email} card_list.append(card_d) print('成功添加%s的名片' % card_d['name']) def show(): print('顯示全部') if len(card_list) == 0: print('沒有任何名片記錄') return print('姓名\t\t電話\t\t\t\tQQ\t\t\t\t郵箱') for card_d in card_list: print('%s\t\t%s\t\t%s\t\t%s\t\t' % (card_d['name'],card_d['phone'],card_d['qq'],card_d['email'])) def search(): print('搜索名片') find_name = input('請輸入要搜索的姓名:') for card_d in card_list: if card_d['name'] == find_name: print('姓名\t\t電話\t\t\t\tQQ\t\t\t\t郵箱') print('%s\t\t%s\t\t%s\t\t%s' % (card_d['name'],card_d['phone'],card_d['qq'],card_d['email'])) deal_card(card_d) break else: print('沒有找%s的名片' % find_name) def deal_card(find_d): b = input('請選擇要進(jìn)行的操作:1.修改 2.刪除 3.返回主菜單') if b == '1': find_d['name'] = input("姓名") find_d['phone'] = input("電話") find_d['qq'] = input("qq") find_d['email'] = input("郵箱") print('修改名片成功') elif b == '2': card_list.remove(find_d) print('刪除名片成功') def paixu(): print("請輸入排序的項目:\n1.根據(jù)電話號碼排序\n2.根據(jù)qq排序\n3.根據(jù)郵箱排序") b = input() if b in ['1', '2', '3', ]: if b == '1': card_list.sort(key=lambda s: int(s["phone"][:])) print('姓名\t\t電話\t\t\t\tQQ\t\t\t\t郵箱') for card_d in card_list: print('%s\t\t%s\t\t%s\t\t%s\t\t' % (card_d['name'], card_d['phone'], card_d['qq'], card_d['email'])) if b == '2': card_list.sort(key=lambda s: int(s["qq"][:])) print('姓名\t\t電話\t\t\t\tQQ\t\t\t\t郵箱') for card_d in card_list: print('%s\t\t%s\t\t%s\t\t%s\t\t' % (card_d['name'], card_d['phone'], card_d['qq'], card_d['email'])) if b == '3': card_list.sort(key=lambda s: int(s["email"][:8])) print('姓名\t\t電話\t\t\t\tQQ\t\t\t\t郵箱') for card_d in card_list: print('%s\t\t%s\t\t%s\t\t%s\t\t' % (card_d['name'], card_d['phone'], card_d['qq'], card_d['email'])) while True: print("—"*10) print("歡迎使用名片管理系統(tǒng)\n1.新增名片\n2.顯示全部\n3.搜索名片\n4.排序系統(tǒng)\n0.退出系統(tǒng)") a = input("請選擇序號:") if a in ["1", "2", "3","4"]: if a == "1": card() elif a == "2": show() elif a == "3": search() elif a == "4": paixu() elif a == "0": print("已退出") break else: print("輸入錯誤,請重新輸入:")

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      62

      63

      64

      65

      66

      67

      68

      69

      70

      71

      72

      73

      74

      Python語言課程設(shè)計名片管理系統(tǒng)

      75

      76

      77

      78

      79

      1.1引言

      傳統(tǒng)的手工方式,數(shù)據(jù)容易丟失,在統(tǒng)計時易發(fā)生錯誤高,速度慢。而使用計算機(jī)可以提高工作速度以及數(shù)據(jù)的準(zhǔn)確性。從而提高了管理效率。在計算機(jī)聯(lián)網(wǎng)后,數(shù)據(jù)在網(wǎng)上傳遞,可以實現(xiàn)數(shù)據(jù)共享,避免重復(fù)勞動,名片管理系統(tǒng)以計算機(jī)為工具,通過對所需信息的管理,把管理員從繁瑣的數(shù)據(jù)計算處理中解脫出來。為用戶節(jié)省很多時間跟精力,提高用戶的工作效率。

      隨著計算機(jī)的普及,越來越多的管理系統(tǒng)應(yīng)運而生。同時,隨著人們交往范圍的不斷擴(kuò)大,我們需要同更多的人保持交流和聯(lián)系,尤其是已經(jīng)參加了工作的公司職員,除了熟悉的朋友,還有很多的客戶,我們都要時不時的同他們保持聯(lián)系,這時個人名片管理系統(tǒng)就可以派上用場了。

      個人名片管理系統(tǒng)是用于輔助個人完成其名片有序管理的計算機(jī)軟件系統(tǒng),系統(tǒng)實施的目的旨在幫助用戶完成其私人名片管理的數(shù)字化,以提供較手工方式下更高的效率和更低的出錯率。

      電子名片管理系統(tǒng)要實現(xiàn)的目標(biāo)是:

      將用戶目前在處理名片管理工作時所采用的手工處理方式進(jìn)行計算機(jī)化,從而與整個辦公自動化系統(tǒng)的數(shù)字化趨勢相協(xié)調(diào),以求為用戶提供更為專業(yè)和高效的個人管理服務(wù)。

      1.2任務(wù)概述

      本系統(tǒng)屬于人員信息管理系統(tǒng)中名片管理模塊,實現(xiàn)網(wǎng)絡(luò)管理系統(tǒng)中關(guān)于名片管理的子功能。通過此軟件,提高用軟件工程分析問題、解決問題的能力,同時增強(qiáng)對數(shù)據(jù)庫和python的使用能力。

      目標(biāo):搭建名片管理系統(tǒng) 框架結(jié)構(gòu)

      準(zhǔn)備文件,確定文件名,保證能夠 在需要的位置 編寫代碼

      編寫 主運行循環(huán),實現(xiàn)基本的 用戶輸入和判斷

      1.3數(shù)據(jù)描述

      1.靜態(tài)數(shù)據(jù):

      所謂靜態(tài)數(shù)據(jù),指在運行過程中主要作為參考的數(shù)據(jù),它們在很長的一段時間內(nèi)不會變化,一般不隨運行而改變。

      2.動態(tài)數(shù)據(jù):

      所謂動態(tài)數(shù)據(jù).包括所有在運行中要發(fā)生變化的數(shù)據(jù)以及在運行中要輸入、輸出的數(shù)據(jù)。

      3.系統(tǒng)流程圖:

      1.4功能需求

      程序啟動,顯示名片管理系統(tǒng)歡迎界面,并顯示功能菜單

      用戶用數(shù)字選擇不同的功能

      根據(jù)功能選擇,執(zhí)行不同的功能

      用戶名片需要記錄用戶的 姓名、電話、QQ、郵件

      將用戶輸入的數(shù)據(jù)排序,可以對電話,QQ,郵件的大小排序

      如果查詢到指定的名片,用戶可以選擇 修改 或者 刪除 名片

      提示用戶依次輸入名片信息

      將名片信息保存到一個字典

      將字典添加到名片列表

      提示名片添加完成

      1.5性能需求

      用戶進(jìn)入系統(tǒng)在終端輸入0~4數(shù)字序號,如果輸入其他字符會顯示“輸入錯誤,請重新輸入”,輸出會以字符型輸出相關(guān)內(nèi)容。在名片管理模塊中,我們可以新建名片,可以修改名片,可以刪除名片資料,對名片列表進(jìn)行了顯示,提高用戶體驗。

      1.6運行需求

      (1)、數(shù)據(jù)精確度

      進(jìn)行操作請求時,如:名片錄入、名片刪除、名片修改、名片查詢時,應(yīng)保證輸入數(shù)據(jù)與數(shù)據(jù)庫數(shù)據(jù)的相匹配性。而在滿足用戶請求時,系統(tǒng)應(yīng)保證所響應(yīng)數(shù)據(jù)的正確性和全而性。

      (2)、時間性

      為滿足用戶高效要求,數(shù)據(jù)的響應(yīng)時間、更新處理時間、數(shù)據(jù)轉(zhuǎn)換與傳輸時間、運行時間都應(yīng)在可接受范圍之內(nèi)。

      第二章概要設(shè)計

      2.1總體設(shè)計

      設(shè)計主函數(shù)和部分功能的子函數(shù),包括運行時的主菜單。首先函數(shù)運行時會彈出一個主菜單,然后輸入數(shù)字選擇操作,如圖2.1.1主菜單。

      圖2.1.1 主菜單

      1

      2.2數(shù)據(jù)類型定義

      def card(): 新增名片函數(shù)

      def show(): 顯示全部名片函數(shù)

      def search(): 搜索名片函數(shù)

      def deal_card(find_d): 刪除名片函數(shù)

      def xiugai(c,d): 修改名片函數(shù)

      def paixu(): 對名片進(jìn)行排序

      2.3接口設(shè)計

      表2.3:函數(shù)列表

      函數(shù)名 函數(shù)格式 //即函數(shù)首部 函數(shù)功能

      card def card(): 新增名片

      show def show(): 顯示全部名片

      search def search(): 搜索名片

      deal_card def deal_card(find_d): 刪除名片

      xiugai def xiugai(c,d): 修改名片

      paixu def paixu(): 名片排序

      2.4運行界面設(shè)計

      以“—”為分割線,運行頁面以簡便友好的初衷設(shè)計,讓用戶可以輕松使用。

      代碼實現(xiàn):

      print("—"*10)

      print(“歡迎使用名片管理系統(tǒng)\n1.新增名片\n2.顯示全部\n3.搜索名片\n4.排序系統(tǒng)\n0.退出系統(tǒng)”)

      a = input(“請選擇序號:”)

      if a in [“1”, “2”, “3”,“4”]:

      if a == “1”:

      card()

      elif a == “2”:

      show()

      elif a == “3”:

      search()

      elif a == “4”:

      paixu()

      elif a == “0”:

      print(“已退出”)

      break

      else:

      print(“輸入錯誤,請重新輸入:”)

      第三章詳細(xì)設(shè)計

      3.1添加模塊設(shè)計

      使用 字典 記錄 每一張名片 的詳細(xì)信息

      使用 列表 統(tǒng)一記錄保存所有的 名片字典

      根據(jù)步驟實現(xiàn)代碼:

      def card():

      print(‘新增名片’)

      name = input(‘姓名:’)

      phone = input(‘電話:’)

      qq = input(‘qq:’)

      email = input(‘郵箱:’)

      card_d = {‘name’: name, ‘phone’: phone,‘qq’: qq,‘email’: email}

      card_list.append(card_d)

      print(‘成功添加%s的名片’ % card_d[‘name’])

      3.2顯示全部名片模塊設(shè)計

      首先提示進(jìn)入顯示所有名片模塊,然后將card_list中的信息循環(huán)輸出,如果鏈表為空,則提示沒有任何名片錄入。

      代碼實現(xiàn):

      def show():

      print(‘顯示全部’)

      if len(card_list) == 0:

      print(‘沒有任何名片記錄’)

      return

      print(‘姓名\t\t電話\t\t\t\tQQ\t\t\t\t郵箱’)

      for card_d in card_list:

      print(’%s\t\t%s\t\t%s\t\t%s\t\t’ % (card_d[‘name’],card_d[‘phone’],card_d[‘qq’],card_d[‘email’]))

      3.3查詢模塊設(shè)計

      提示用戶要搜索的姓名,根據(jù)用戶輸入的姓名遍歷列表,搜索到指定的名片后,再執(zhí)行后續(xù)的操作。

      代碼實現(xiàn)

      def search():

      print(‘搜索名片’)

      find_name = input(‘請輸入要搜索的姓名:’)

      for card_d in card_list:

      if card_d[‘name’] == find_name:

      print(‘姓名\t電話\tQQ\t郵箱’)

      print(’%s\t%s\t%s\t%s’ % (card_d[‘name’],card_d[‘phone’],card_d[‘qq’],card_d[‘email’]))

      deal_card(card_d)

      break

      else:

      print(‘沒有找%s的名片’ % find_name)

      3.4刪除和修改名片模塊設(shè)計

      3.4.1刪除模塊

      查詢成功后刪除名片,由于找到的字典記錄已經(jīng)在列表中保存,要刪除名片記錄,只需要把列表中對應(yīng)的字典刪除即可。

      代碼實現(xiàn):

      elif b == ‘2’:

      card_list.remove(find_d)

      print(‘刪除名片成功’)

      3.4.2修改模塊

      由于找到的字典記錄已經(jīng)在列表中保存要修改名片記錄,只需要把列表中對應(yīng)的字典中每一個鍵值對的數(shù)據(jù)修改即可。

      代碼實現(xiàn):

      if b == ‘1’:

      find_d[‘name’] = xiugai(find_d[‘name’], ‘姓名:’)

      find_d[‘phone’] = xiugai(find_d[‘phone’], ‘電話:’)

      find_d[‘qq’] = xiugai(find_d[‘qq’], ‘QQ:’)

      find_d[‘email’] = xiugai(find_d[‘email’], ‘郵箱:’)

      print(‘修改名片成功’)

      3.5排序模塊

      根據(jù)鏈表card_list,只要使用sort快排函數(shù)即可完成排序,card_list.sort(key=lambda s: int(s[“phone”][:]))。首先設(shè)b來獲取需要排序的項目,實現(xiàn)對電話號,qq,郵箱的排序功能。

      代碼實現(xiàn):

      print(“請輸入排序的項目:\n1.根據(jù)電話號碼排序\n2.根據(jù)qq排序\n3.根據(jù)郵箱排序”)

      b = input()

      if b in [‘1’, ‘2’, ‘3’, ]:

      if b == ‘1’:

      card_list.sort(key=lambda s: int(s[“phone”][:]))

      print(‘姓名\t\t電話\t\t\t\tQQ\t\t\t\t郵箱’)

      for card_d in card_list:

      print(’%s\t\t%s\t\t%s\t\t%s\t\t’ % (card_d[‘name’], card_d[‘phone’], card_d[‘qq’], card_d[‘email’]))

      if b == ‘2’:

      card_list.sort(key=lambda s: int(s[“qq”][:]))

      print(‘姓名\t\t電話\t\t\t\tQQ\t\t\t\t郵箱’)

      for card_d in card_list:

      print(’%s\t\t%s\t\t%s\t\t%s\t\t’ % (card_d[‘name’], card_d[‘phone’], card_d[‘qq’], card_d[‘email’]))

      if b == ‘3’:

      card_list.sort(key=lambda s: int(s[“email”][:8]))

      print(‘姓名\t\t電話\t\t\t\tQQ\t\t\t\t郵箱’)

      for card_d in card_list:

      print(’%s\t\t%s\t\t%s\t\t%s\t\t’ % (card_d[‘name’], card_d[‘phone’], card_d[‘qq’], card_d[‘email’]))

      第四章測試分析

      4.1測試程序執(zhí)行情況

      4.2出現(xiàn)的問題和解決的方法

      修改完之后,修改的程序無法運行,認(rèn)真檢查之后發(fā)現(xiàn)代碼中有一個變量打錯了,導(dǎo)致整個子函數(shù)無法運行,修改之后,正常運行。在測試中發(fā)現(xiàn)在主頁面如果輸入非0~3字符會報錯,添加else語句進(jìn)行提示就解決了這個問題。

      while True:

      print(“歡迎使用名片管理系統(tǒng)\n1.新增名片\n2.顯示全部\n3.搜索名片\n0.退出系統(tǒng)”)

      if a in [“1”, “2”, “3”,“4”]:

      if a == “1”:

      card()

      elif a == “2”:

      show()

      elif a == “3”:

      search()

      elif a == “4”:

      paixu()

      elif a == “0”:

      print(“已退出”)

      break

      else:

      print(“輸入錯誤,請重新輸入:”)

      break

      else:

      print(“輸入錯誤,請重新輸入:”)

      第五章實訓(xùn)總結(jié)

      一周的課程設(shè)計結(jié)束了,在這次的課程設(shè)計中不僅檢驗了我所學(xué)習(xí)的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情的方法和技巧。在設(shè)計過程中,和同學(xué)們相互探討,相互學(xué)習(xí),相互監(jiān)督。我學(xué)會了運籌帷幄,學(xué)會了寬容,學(xué)會了理解,也學(xué)會了做人與處世,這次課程設(shè)計對我來說受益良多。

      課程設(shè)計是我們專業(yè)課程知識綜合應(yīng)用的實踐訓(xùn)練,著是我們邁向社會,從事職業(yè)工作前一個必不少的過程.“千里之行始于足下”,通過這次課程設(shè)計,我深深體會到這句千古名言的真正含義.我今天認(rèn)真的進(jìn)行課程設(shè)計,學(xué)會腳踏實地邁開這一步,就是為明天能穩(wěn)健地在社會大潮中奔跑打下堅實的基礎(chǔ)。我這次設(shè)計的科目是名片管理系統(tǒng)。

      通過這次設(shè)計,我在多方面都有所提高。

      很多程序在結(jié)構(gòu)上是獨立的,但是本此設(shè)計的程序功能不是零散的,它有一個連接是的程序是一個整體對以后的學(xué)習(xí)充滿了信心和期待通過這次的課程設(shè)計,更是讓我深刻認(rèn)識到自己在學(xué)習(xí)中的不足,同時也找到了克服這些不足的方法,這也是一筆很大的資源。在以后的時間中,我們應(yīng)該利用更多的時間去上機(jī)實驗,加強(qiáng)自學(xué)的能力,多編寫程序,相信不久后我們的編程能力都會有很大的提高能設(shè)計出更多的更有創(chuàng)新的作品。

      Python 項目管理 ProjectMan

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:全網(wǎng)首發(fā)!超詳細(xì)的SparseR-CNN實戰(zhàn)
      下一篇:Redis源碼剖析之?dāng)?shù)據(jù)過期(expire)
      相關(guān)文章
      亚洲伊人久久大香线蕉| 亚洲一区电影在线观看| 亚洲AV永久无码精品一福利| 亚洲乱码在线观看| 91丁香亚洲综合社区| 亚洲一区二区影视| 亚洲一区二区三区免费在线观看| 亚洲春黄在线观看| 亚洲成a人片在线观看中文app| 亚洲经典在线中文字幕| 亚洲天堂一区二区三区| 亚洲伊人久久大香线焦| 亚洲精品福利你懂| 亚洲色大18成人网站WWW在线播放| 中文无码亚洲精品字幕| 亚洲精品无AMM毛片| mm1313亚洲国产精品无码试看| 亚洲a无码综合a国产av中文| va亚洲va日韩不卡在线观看| 亚洲不卡AV影片在线播放| 亚洲欧洲日本在线| 亚洲精品中文字幕乱码三区| 亚洲成A人片在线观看WWW| 亚洲天天做日日做天天看| 亚洲欧洲日产国码二区首页| 激情综合亚洲色婷婷五月APP| 亚洲天然素人无码专区| 色天使色婷婷在线影院亚洲| 亚洲色欲久久久久综合网| 国产成人精品日本亚洲专区61| 亚洲国产精品无码久久一区二区| 久久亚洲精品中文字幕无码| 亚洲黄色三级网站| 亚洲天堂2017无码中文| 色窝窝亚洲av网| 亚洲午夜久久久久妓女影院| 久久亚洲一区二区| 亚洲国产精品成人精品小说| 亚洲色欲色欱wwW在线| 亚洲А∨精品天堂在线| 亚洲大尺度无码无码专区|