Py学生信息管理系统 案例(优化版)
生活随笔
收集整理的這篇文章主要介紹了
Py学生信息管理系统 案例(优化版)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
# 第一題:設(shè)計一個全局變量,來保存很多個學(xué)生信息;學(xué)生(學(xué)號, 姓名,年齡);思考要用怎樣的結(jié)構(gòu)來保存;
# 第二題:在第一題基礎(chǔ)上,完成:讓用戶輸入一個新的學(xué)生信息(學(xué)號,姓名,年齡);你將其保存在全局變量中;并提供給用戶查看當(dāng)前有多少個學(xué)生的功能;
# 第三題:向用戶提供根據(jù)學(xué)號查看指定學(xué)員具體信息,指定學(xué)號刪除學(xué)員功能
# 定一個列表,用來存儲所有的學(xué)生信息(每個學(xué)生是一個字典)
info_list = []
def print_menu():
print("=" * 42)
print("*" * 10 + "簡單的學(xué)生信息管理系統(tǒng)" + "*" * 10)
print("=" * 42)
print("1.添加學(xué)生信息")
print("2.刪除學(xué)生信息")
print("3.給定學(xué)號查詢學(xué)生信息")
print("4.顯示當(dāng)前所有學(xué)生信息")
print("5.保存數(shù)據(jù)")
print("0.退出系統(tǒng)")
print("=" * 42)
def add_new_info():
"""添加學(xué)生信息"""
global info_list
new_sno = input("請輸入學(xué)生的學(xué)號:")
new_stuName = input("請輸入學(xué)生的姓名:")
new_sutAge = input("請輸入學(xué)生的年齡:")
for temp_info in info_list:
if temp_info['sno'] == new_sno:
print("此用戶名已經(jīng)被占用,請重新輸入")
return # 如果一個函數(shù)只有return就相當(dāng)于讓函數(shù)結(jié)束,沒有返回值
# 定義一個字典,用來存儲用戶的學(xué)生信息(這是一個字典)
info = {}
# 向字典中添加數(shù)據(jù)
info["sno"] = new_sno
info["name"] = new_stuName
info["age"] = new_sutAge
# 向列表中添加這個字典
info_list.append(info)
def del_info():
"""刪除學(xué)生信息"""
global info_list
del_sno = input("請輸入要刪除的學(xué)生學(xué)號:")
i = 0
for temp_info in info_list:
if temp_info['sno'] == del_sno:
del_flag = input("你確定要刪除么?(yes or no)")
if del_flag == "yes":
del info_list[i]
print("\n\n刪除成功!")
else:
print("輸入學(xué)號有誤,請重新輸入")
i += 1
def search_info():
"""查詢學(xué)生信息"""
search_sno = input("請輸入要查詢的學(xué)生學(xué)號:")
for temp_info in info_list:
if temp_info['sno'] == search_sno:
print("查詢到的信息如下:")
print("sno:%s, stuName:%s, stuAge:%s" % (temp_info['sno'],
temp_info['name'], temp_info['age']))
break
else:
print("沒有您要找的信息....")
def print_all_info():
"""遍歷學(xué)生信息查詢當(dāng)前所有學(xué)生信息"""
print("序號\t學(xué)號\t\t姓名\t\t年齡")
i = 0
for temp in info_list:
# temp是一個字典
print("%d\t%s\t\t%s\t\t%s" % (i, temp['sno'], temp['name'], temp['age']))
i += 1
def save_data():
"""加載之前存儲的數(shù)據(jù)"""
f = open("info_data.data","w")
f.write(str(info_list))
f.close()
def load_data():
global info_list
"""加載之前存儲的數(shù)據(jù)"""
f = open("info_data.data")
content = f.read()
info_list = eval(content)
f.close()
def main():
"""用來控制整個流程"""
# 加載數(shù)據(jù)(先存好數(shù)據(jù)再打開這個就可以直接讀數(shù)據(jù)了)
# load_data()
while True:
# 1. 打印功能
print_menu()
# 2. 獲取用戶的選擇
key = input("請輸入要進(jìn)行的操作(數(shù)字):")
# 3. 根據(jù)用戶選擇,做相應(yīng)的事情
if key == "1":
# 添加學(xué)生
add_new_info()
elif key == "2":
# 刪除學(xué)生
del_info()
elif key == "3":
# 給定學(xué)號查詢學(xué)生信息
search_info()
elif key == "4":
# 遍歷所有的信息
print_all_info()
elif key == "5":
# 保存數(shù)據(jù)
save_data()
elif key == "0":
# 退出系統(tǒng)
exit_flag = input("你確定要退出么?(yes or no) ")
if exit_flag == "yes":
break
else:
print("輸入有誤,請重新輸入......")
input("\n\n\n按回車鍵繼續(xù)....")
continue
# 程序的開始
main()
轉(zhuǎn)載于:https://www.cnblogs.com/yunlongaimeng/p/8811202.html
總結(jié)
以上是生活随笔為你收集整理的Py学生信息管理系统 案例(优化版)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【SPOJ】Power Modulo I
- 下一篇: js 断点调试