宠物管理系统CLI版本(Python实现/内附完整代码)
這里寫目錄標題
- 一、名詞解釋
- 1.1 什么是CLI?
- 1.2 什么是GUI?
- 二、項目目的
- 三、寵物信息管理系統
- 3.1 項目背景
- 3.2 需求分析
- 3.2.1 系統描述
- 3.2.2 功能結構
- 3.3 主要功能描述
- 3.3.1 主界面:
- 3.3.2 新建寵物信息
- 3.3.3 顯示全部寵物信息
- 3.3.4 查詢寵物信息
- 3.3.5 修改寵物信息
- 3.3.6 刪除寵物信息
- 3.4 不足與擴展
- 四、項目制作
- 4.1 框架搭建
- 4.2 新增寵物信息
- 4.3 顯示全部寵物信息
- 4.4 查詢寵物信息
- 4.5 修改寵物信息
- 4.6 刪除寵物信息
- 4.7 發布與運行
- 五、完整代碼實現
- 六、運行實例
一、名詞解釋
1.1 什么是CLI?
命令行界面(英語:command-line interface,縮寫:CLI)是在圖形用戶界面得到普及之前使用最為廣泛的用戶界面,它通常不支持鼠標,用戶通過鍵盤輸入指令,計算機接收到指令后,予以執行。也有人稱之為字符用戶界面CUI。
1.2 什么是GUI?
圖形用戶界面(Graphical User Interface,簡稱 GUI,又稱圖形用戶接口)是指采用圖形方式顯示的計算機操作用戶界面。
二、項目目的
- 應用Python基礎知識,理解命令行交互方式,學習軟件設計與分析方法
- 通過函數定義與調用,掌握代碼提取與復用的概念
- 綜合運用基本數據結構和字符串處理等技能
- 了解需求提出、需求拆解、框架梳理、代碼調試的思路與流程
三、寵物信息管理系統
Pet Information Management System,簡稱 PIMS。(自己定義的)
3.1 項目背景
隨著消費能力的提升,人口結構的變化等原因,寵物市場規模在逐年增加,越來越多的寵物店、寵物醫院發展了起來。為了提升對于寵物信息的管理效率,提高用戶滿意度,寵物信息管理系統的需求也會越來越多。主要功能包括:寵物信息錄入、查詢、修改;寵物服務記錄的增加與查詢,寵物服務的報價與消費記錄查詢等。
3.2 需求分析
3.2.1 系統描述
系統1.0版本,主要功能為寵物基本信息的錄入、編輯、刪除、查詢功能。
核心功能包括:新增寵物信息、顯示全部寵物信息、查詢寵物信息、修改或刪除寵物信息,退出系統。
3.2.2 功能結構
3.3 主要功能描述
3.3.1 主界面:
******寵物信息管理系統 V1.0****** 1. 新增寵物信息 2. 顯示全部信息 3. 搜索寵物信息 0. 退出系統 ****************************** 請選擇希望執行的操作:根據用戶輸入的功能序號,顯示對應操作的引導信息或結果
例如:如果用戶輸入數字0,則顯示歡送信息并退出系統。
3.3.2 新建寵物信息
用戶如果錄入數字1,則提示用戶輸入寵物的昵稱、年齡、性別和體重。
并在輸入完成后,提示輸入成功信息。
3.3.3 顯示全部寵物信息
用戶如果錄入數字2,則顯示現有寵物信息列表。
請選擇希望執行的操作:2 您選擇的操作是:2 =========顯示所有寵物信息======== 昵稱 年齡 性別 體重 ------------------------------- 咯咯 3 雄性 15如沒有任何寵物信息,則顯示提示信息,如下:
請選擇希望執行的操作:2 您選擇的操作是:2 =========顯示所有寵物信息========= 【當前沒有任何的寵物信息記錄,請使用新增功能添加寵物信息!】3.3.4 查詢寵物信息
用戶如果錄入數字3,則提示用戶輸入要搜索的寵物昵稱,并根據昵稱進行搜索。
搜索到對應信息,以列表形式顯示:
如果沒有搜索到,顯示提示消息:
==========搜索寵物信息========== 請輸入要搜索的昵稱:妞妞 抱歉,沒有找到 妞妞3.3.5 修改寵物信息
在搜索結果顯示后,根據提示輸入數字1,進入修改寵物信息的環節,
如果沒有錄入任何信息,直接回車,則默認保留原有信息;錄入信息,則覆蓋原有信息。
修改成功后,顯示修改成功消息提示。
3.3.6 刪除寵物信息
在搜索結果顯示后,根據提示輸入數字2,刪除對應的寵物信息,并顯示刪除成功的消息提示。
請選擇要執行的操作 [1] 修改 [2] 刪除 [0] 返回上級菜單2 【刪除寵物信息成功!】3.4 不足與擴展
本系統主要側重核心流程搭建,功能不多,且未作輸入校驗與異常處理。
未來可以補充的部分有:
輸入的校驗與異常處理
更多維度信息的管理,更多功能
數據持久化:保存到文件或者數據庫中
用戶交互升級為圖形界面版
四、項目制作
4.1 框架搭建
自頂向下:從框架入手,逐一拆分為具體的業務邏輯,最后細化功能代碼。
函數注釋:寫在函數定義下方的注釋。可以通過help函數顯示。
TODO:Pycharm工具,可以記錄、定位需要完成的代碼功能與位置
數據存儲結構:
pets_info 是一個列表,用來存儲寵物信息;每個寵物的信息使用字典格式來存儲。
每個函數都要對這個列表進行操作,所以適合做全局變量。
4.2 新增寵物信息
- 提示用戶輸入寵物信息
- 將輸入的信息,保存為一個字典
- 將寵物信息的字典追加到列表中
- 提示用戶添加成功
4.3 顯示全部寵物信息
- 判斷寵物信息列表中是否為空
- 打印表頭
- 逐一打印列表中的每個寵物信息
4.4 查詢寵物信息
- 引導用戶輸入要搜索的寵物昵稱
- 在寵物信息列表中查找對應昵稱的寵物信息
- 如果找到了,就打印輸出列表
- 如果沒找到,就打印輸出提示信息
- 提示用戶對于找到的信息,進行操作選擇
4.5 修改寵物信息
- 提示用戶輸入要修改的信息
- 將新錄入的信息,替換原有寵物信息
- 如果輸入空格就默認保留原有寵物信息
4.6 刪除寵物信息
- 將指定寵物信息從列表中移除
4.7 發布與運行
- 檢查并補充文檔和函數注釋
- 運行結束時停止在命令提示符界面:添加input語句
五、完整代碼實現
主程序:
""" 這是寵物信息管理系統的主程序 """ from pet_tools import *#1.顯示系統菜單 #2.根據用戶輸入,調用不同的功能(函數) #3.不斷的執行上述操作 (循環)def main():while True:# 1.顯示系統菜單 #在這里演示TODO的作用,并為后面的pass位置也加上#TODO("liuxu")show_menu() #TODO后面可以寫上小括號,包含(姓名/郵箱)標注責任人#2.根據用戶輸入,調用不同的功能(函數)action = input("請選擇希望執行的操作:")if action in ["1","2","3"]:#if action == 1 or action ==2 or action == 3:if action == "1": #寫完循環后,使用debug進行代碼調試# 新建寵物信息#print("新建寵物信息")new_pet() #搭建框架的時候,就把函數名確定下來#pass #并在pet_tools中定義出來,需要寫出函數注釋elif action == "2":# 顯示全部寵物信息#print("顯示全部寵物信息")show_all()#passelif action == "3":# 查詢寵物信息#print("查詢寵物信息")search_pet()#passelif action == "0":# 退出系統# print("退出系統")print("歡迎再次使用【寵物信息管理系統】")input("按下回車,關閉窗口")breakelse:print("【您輸入的不正確,請重新選擇】")#3.不斷的執行上述操作 (循環)if __name__ == '__main__':main()功能程序
""" 這是寵物信息管理系統的工具程序 """pets_info = [] #用來保存寵物信息 #pets_info = [{'nickname':'咯咯','age':3,'sex':'雄性','weight':15}] header = ["昵稱","年齡","性別","體重"]''' ******寵物信息管理系統 V1.0******1. 新增寵物信息 2. 顯示全部信息 3. 搜索寵物信息0. 退出系統 ****************************** ''' def show_menu():'''顯示主菜單'''print("寵物信息管理系統 V1.0".center(25,'*'))print()print("1. 新增寵物信息")print("2. 顯示全部信息")print("3. 搜索寵物信息")print()print("0. 退出系統")print("*"*30)def new_pet():'''新建寵物信息'''print("新建寵物信息".center(24,"="))'''請輸入昵稱:咯咯請輸入年齡:3請輸入性別(雄性/雌性):雄性請輸入體重(kg):15'''#1.提示用戶輸入寵物信息nickname = input("請輸入昵稱:")age = input("請輸入年齡:")sex = input("請輸入性別(雄性/雌性):")weight = input("請輸入體重(kg):")# 2.將輸入的信息,保存為一個字典# 3.將寵物信息的字典追加到列表中# 4.提示用戶添加成功#2.將輸入的信息,保存為一個字典pet = {"nickname":nickname,"age":age,"sex":sex,"weight":weight}#3.將寵物信息的字典追加到列表中pets_info.append(pet)#print(pets_info)#4.提示用戶添加成功print(f"【添加 {nickname} 信息成功】")def show_all():'''顯示全部寵物信息'''print("顯示全部寵物信息".center(24,"="))# 判斷寵物信息列表中是否為空# 打印表頭# 逐一打印列表中的每個寵物信息#判斷寵物信息列表中是否為空if len(pets_info) == 0:print("【當前沒有任何的寵物信息記錄,請使用新增功能添加寵物信息!】")returnfor title in header:print(title,end="\t\t")print()print("-"*30)#逐一打印列表中的每個寵物信息for pet in pets_info:#print(f"{pet['nickname']}\t\t{pet['age']}\t\t{pet['sex']}\t\t{pet['weight']}")for value in pet.values():print(f"{value}",end="\t\t")print()def deal_pet(find_pet):"""處理查找到的寵物信息:param find_pet: 查找到的寵物信息"""action = input("請選擇要執行的操作:[1] 修改 [2] 刪除 [0] 返回上級菜單")if action == "1":#執行修改操作# find_pet["nickname"] = input("昵稱:")# find_pet["age"] = input("年齡:")# find_pet["sex"] = input("性別(雄性/雌性):")# find_pet["weight"] = input("體重(kg):")find_pet["nickname"] = input_pet_info(find_pet["nickname"],"昵稱:[回車不修改]")find_pet["age"] = input_pet_info(find_pet["age"],"年齡:[回車不修改]")find_pet["sex"] = input_pet_info(find_pet["sex"],"性別(雄性/雌性):[回車不修改]")find_pet["weight"] = input_pet_info(find_pet["weight"],"體重(kg):[回車不修改]")print("【修改寵物信息成功!】")elif action == "2":#執行刪除操作pets_info.remove(find_pet)print("【刪除寵物信息成功!】")def input_pet_info(pet_value,tip):"""輸入寵物信息信息:param pet_value: 字典中原有的值:param tip: 輸入的提示文字:return: 如果用戶輸入了內容,就返回內容,否則返回字典中原有的值"""#1.提示用戶輸入信息result = input(tip)#2.用戶輸入的內容不為空,返回輸入的值if len(result)>0:return result#3.如果用戶輸入的為空,返回寵物信息原有的值else:return pet_valuedef search_pet():'''查詢寵物信息'''print("查詢寵物信息".center(24,"="))#1.引導用戶輸入要搜索的寵物昵稱find_name = input("請輸入要搜索的昵稱:")#2.在寵物信息列表中查找對應昵稱的寵物信息for pet in pets_info:if pet["nickname"] == find_name:# print("昵稱\t\t年齡\t\t性別\t\t體重")for title in header:print(title, end="\t\t")print()print("-" * 30)#print(f"{pet['nickname']}\t\t{pet['age']}\t\t{pet['sex']}\t\t{pet['weight']}")for value in pet.values():print(f"{value}", end="\t\t")print()#提示用戶對于找到的信息,進行操作選擇deal_pet(pet)breakelse:print(f"【抱歉,沒有找到 {find_name} 】")#3.如果找到了,就打印輸出列表#4.如果沒找到,就打印輸出提示信息測試文件程序:
#test_doc.py import pet_main import pet_tools help(pet_main) #help(pet_tools) NAMEpet_main - 這是寵物信息管理系統的主程序FUNCTIONSmain()DATAheader = ['昵稱', '年齡', '性別', '體重']pets_info = []FILEe:\itsishu\python_workspace\pims\pet_main.py六、運行實例
添加:
修改:
顯示:
退出:
總結
以上是生活随笔為你收集整理的宠物管理系统CLI版本(Python实现/内附完整代码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Google SVN托管和使用学习笔记
- 下一篇: Windows平台WebRTC编译-VS