目錄
一、基礎界面實現
?1、主函數
2、保持循環,獲取用戶需求
?二、函數實現模塊功能
1、添加學生信息
2、刪除學生信息
?3、修改學生信息
4、查找全部學生信息
5、退出系統
三、整合代碼
1、 完整代碼
2、完整實現過程
實現
打印功能菜單、添加學生信息、刪除學生信息、修改學生信息、顯示學生信息、退出系統,并且需要接收用戶的輸入,在根據輸入內容調用相應函數實現相應功能,模板圖如下:
一、基礎界面實現
?1、主函數
定義主函數main,并通過定義print_menu()函數輸打印學生管理系統菜單
#打印功能菜單
def print_menu():print('='*30)print('學生管理系統')print('1.添加學生信息')print('2.刪除學生信息')print('3.修改學生信息')print('4.顯示所有學生信息')print('0.退出系統')print('')#定義主函數
def main():print_menu()
if __name__ == "__main__":main()
2、保持循環,獲取用戶需求
(1)while True循環:使系統菜單一直保持循環,為后面實現用戶選擇退出系統后,系統才結束循環作鋪墊
(2)變量key:將獲取到的用戶需要實現的功能進行存儲
(3)if循環:多分支循環,再分別實現各個模塊的功能
#定義主函數
def main():while True:print_menu()key = input('請輸入功能對應的數字:')if key == '1':#添加學生信息passelif key == '2':#刪除學生信息passelif key == '3':#修改學生信息passelif key == '4':#查找全部學生信息passelif key == '0':#退出系統passelse:print('輸入有誤')
?二、函數實現模塊功能
1、添加學生信息
(1)name,sex,phone:存儲用戶輸入的新學生的姓名,性別,手機號碼信息
(2)new_info():定義成一個字典,通過鍵值對的形式,存儲當前學生的所有信息
(3)append():列表的添加,將當前的字典存入列表,作為列表的一個元素
(4)stu_info:定義了一個列表用來存儲所有的學生信息
#定義一個列表來存儲所有學生信息
stu_info = []#添加學生信息
def add_stu_info():name = input('請輸入新學生的姓名:')sex = input('請輸入新學生的性別:')phone = input('請輸入新學生的手機號碼:')new_info = dict()#定義一個字典new_info['name'] = namenew_info['sex'] = sexnew_info['phone'] = phonestu_info.append(new_info)
2、刪除學生信息
(1)len():進入刪除操作前先判斷學生信息表是否為空
①為空:輸出學生信息表為空,直接跳出刪除操作
②不空:通過del_num變量記錄用戶需要刪除的學生序號
(2)記錄好要刪除的學生序號還需要進一步判斷輸入的序號是否有誤
①為flase:輸出要刪除的序號有誤,跳出刪除操作
②為true:通過del列表的刪除操作進行刪除對應序號的學生信息,并輸出刪除成功
#刪除學生信息
def del_stu_info(student):if len(stu_info) != 0:del_num = int(input('請輸入要刪除的序號:')) - 1if del_num < len(stu_info):del student[del_num]print(f'刪除指定序號:{del_num+1}成功')else:print('要刪除的序號有誤')else:print('學生信息表為空')
?3、修改學生信息
(1)len():進入修改操作前先判斷學生信息表是否為空
①為空:輸出學生信息表為空,直接跳出修改操作
②不空:通過rev_num變量記錄用戶需要修改的學生序號
(2)記錄好要修改的學生序號還需要進一步判斷輸入的序號是否有誤
①為flase:輸出要修改的序號有誤,跳出修改操作
②為true:通過rev_name、rev_sex、rev_phone變量記錄修改后學生的信息
(3)stu_info[][]:通過列表修改元素的方法,將新的信息替換舊的信息
#修改學生信息
def rev_stu_info():if len(stu_info) != 0:rev_num = int(input('請輸入要修改學生的序號:')) - 1if rev_num >= len(stu_info):print("要修改的序號有誤")else:rev_name = input('請輸入要修改學生的姓名:')rev_sex = input('請輸入要修改學生的性別:')rev_phone = input('請輸入要修改學生的手機:')stu_info[rev_num]['name'] = rev_namestu_info[rev_num]['sex'] = rev_sexstu_info[rev_num]['phone'] = rev_phoneelse:print('學生信息表為空')
4、查找全部學生信息
(1)len():進入查找操作前先判斷學生信息表是否為空
①為空:輸出學生信息表為空,直接跳出查找操作
②不空:輸出學生信息如下
(2)i:序號,記錄并輸出學生數量
(3)for循環:逐個輸出列表元素
#查找全部學生信息
def show_stu_info():if len(stu_info) != 0:print('學生的信息如下:')print('=' * 30)print('序號 姓名 性別 手機號碼')i = 1for temp_info in stu_info:print("%d %s %s %s" %(i,temp_info['name'],temp_info['sex'],temp_info['phone']))i += 1else:print('學生信息表為空')
5、退出系統
(1)quit_confirm:再次詢問用戶是否退出,并記錄
(2)if循環:判斷用戶輸入的是Yes還是No
①break:用戶輸入Yes,即確定退出,跳出while True這個死循環
②coninue:用戶輸入No,即不退出,則繼續新一輪的while True循環
#定義主函數
def main():while True:print_menu()key = input('請輸入功能對應的數字:')if key == '1':#添加學生信息passelif key == '2':#刪除學生信息passelif key == '3':#修改學生信息passelif key == '4':#查找全部學生信息passelif key == '0':#退出系統quit_confirm = input('親,真的要退出么?(Yes/No):')if quit_confirm == 'Yes':breakelif quit_confirm == 'No':continueelse:print('輸入有誤,請重新輸入')else:print('輸入有誤')
三、整合代碼
1、 完整代碼
#定義一個列表來存儲所有學生信息
stu_info = []#打印功能菜單
def print_menu():print('=' * 30)print('學生管理系統')print('1.添加學生信息')print('2.刪除學生信息')print('3.修改學生信息')print('4.顯示所有學生信息')print('0.退出系統')print('=' * 30)#添加學生信息
def add_stu_info():name = input('請輸入新學生的姓名:')sex = input('請輸入新學生的性別:')phone = input('請輸入新學生的手機號碼:')new_info = dict()#定義一個字典new_info['name'] = namenew_info['sex'] = sexnew_info['phone'] = phonestu_info.append(new_info)#刪除學生信息
def del_stu_info(student):if len(student) != 0:del_num = int(input('請輸入要刪除的序號:')) - 1if del_num < len(stu_info):del student[del_num]print(f'刪除指定序號:{del_num+1}成功')else:print('要刪除的序號有誤')else:print('學生信息表為空')#修改學生信息
def rev_stu_info():if len(stu_info) != 0:rev_num = int(input('請輸入要修改學生的序號:')) - 1if rev_num >= len(stu_info):print("要修改的序號有誤")else:rev_name = input('請輸入要修改學生的姓名:')rev_sex = input('請輸入要修改學生的性別:')rev_phone = input('請輸入要修改學生的手機:')stu_info[rev_num]['name'] = rev_namestu_info[rev_num]['sex'] = rev_sexstu_info[rev_num]['phone'] = rev_phoneelse:print('學生信息表為空')#查找全部學生信息
def show_stu_info():if len(stu_info) != 0:print('學生的信息如下:')print('=' * 30)print('序號 姓名 性別 手機號碼')i = 1for temp_info in stu_info:print("%d %s %s %s" %(i,temp_info['name'],temp_info['sex'],temp_info['phone']))i += 1else:print('學生信息表為空')#定義主函數
def main():while True:print_menu()key = input('請輸入對應的功能的數字:')if key == '1':#添加學生信息add_stu_info()elif key == '2':#刪除學生信息del_stu_info(stu_info)elif key == '3':#修改學生信息rev_stu_info()elif key == '4':#顯示所有學生信息show_stu_info()elif key == '0':#退出系統quit_confirm = input('親,真的要退出么?(Yes/No):')if quit_confirm == 'Yes' or quit_confirm == 'yes' or quit_confirm == 'YES':breakelif quit_confirm == 'No' or quit_confirm == 'no' or quit_confirm == 'NO':continueelse:print('輸入有誤,請重新輸入')else:print('輸入有誤,請重新輸入')if __name__=='__main__':main()