Python学生信息管理系统-简易版
1.学生名片信息管理系统-普通版
1、添加名片
2、删除名片
3、修改名片
4、查询名片
5、退出系统
6、要求:程序运行后,除非选择退出系统,否则重复执行功能
7、运行界面
参考代码:
default =['张三','男','18']
card_all =[default]whileTrue:print("************************** 名片管理器 **************************")print("-------------------------- 1.添加名片 --------------------------")print("-------------------------- 2.删除名片 --------------------------")print("-------------------------- 3.修改名片 --------------------------")print("-------------------------- 4.查询名片 --------------------------")print("-------------------------- 5.查询所有 --------------------------")print("-------------------------- 6.退出系统 --------------------------")print("************************** 名片管理器 **************************")
action =int(input("请输入对应数字进行操作:"))print("-"*30)# 分隔线if action ==1:
name =str(input("请输入姓名:"))
gender =str(input("请输入性别:"))
age =str(input("请输入年龄:"))print("-"*30)# 分隔线
name_card =[name, gender, age]
card_all.append(name_card)print("【Information】:名片添加成功!")print("-"*30)# 分隔线elif action ==2:
ID =str(input("请输入管理员账号:"))
password =str(input("请输入密码:"))print("-"*30)# 分隔线if ID =="admin"or password =="123456":
name =str(input("请输入姓名:"))
gender =str(input("请输入性别:"))
age =str(input("请输入年龄:"))print("-"*30)# 分隔线
name_card =[name, gender, age]if name_card in card_all:
card_all.remove(name_card)print("删除成功!")else:print("【ERROR】:查无此人,请重新输入!")else:print("【ERROR】:账号或密码错误,请重新输入!")elif action ==3:
ID =str(input("请输入管理员账号:"))
password =str(input("请输入密码:"))print("-"*30)# 分隔线if ID =="admin"and password =="123456":
name =str(input("请输入姓名:"))
gender =str(input("请输入性别:"))
age =str(input("请输入年龄:"))print("-"*30)# 分隔线
name_card =[name, gender, age]if name_card in card_all:
card_all.remove(name_card)
new_name =str(input("请输入修改后的姓名:"))
new_gender =str(input("请输入修改后的性别:"))
new_age =str(input("请输入修改后的年龄:"))print("-"*30)# 分隔线
new_name_card =[new_name, new_gender, new_age]
card_all.append(new_name_card)print("修改成功!")else:print("【ERROR】:查无此人,请重新输入!")else:print("【ERROR】:账号或密码错误,请重新输入!")elif action ==4:
ID =str(input("请输入管理员账号:"))
password =str(input("请输入管理员密码:"))print("-"*30)# 分隔线if ID =="admin"and password =="123456":
seek =str(input("请输入名字,性别,或年龄之一:"))print("-"*40)# 分隔线
i =-1
k =1
j =1while k <=len(card_all):# 可以用for循环直接找,不用这么麻烦,到下一版本修改
k +=1
i +=1
card = card_all[i]if card.count(seek)==0and j <len(card_all):
j +=1continueelif card.count(seek)==0and j >=len(card_all):print("【ERROR】:没有找到,请重新输入!")else:print(card)else:print("【ERROR】:账号或密码错误,请重新输入!")elif action ==5:
ID =str(input("请输入管理员账号:"))
password =str(input("请输入密码:"))print("-"*30)# 分隔线if ID =="admin"and password =="123456":print("【INFO】:所有学生信息如下:")print(card_all)else:print("【ERROR】:账号或密码错误,请重新输入!")elif action ==6:
sign =input("【Information】:确定退出吗?(yes/no):")if sign =="yes":print("-"*50)print("【Information】:谢谢使用,您已成功退出系统!")
exit()# break 也可以else:continueelse:print("【ERROR】:输入有误,请重新输入!")
2.学生名片信息管理系统-字典版
将上述学生名片管理系统数据保存格式改成字典的形式
例如:
把: [[“关羽”, “40”, “男”],[“诸葛亮”, “45”, “男”]]
改成 [{“name”: “关羽”, “age”:“40”, “sex”: “男”},{“name”: “诸葛亮”, “age”:“45”, “sex”: “男”}]
参考答案:
info_list =[]# 用来存放所有学生数据,每一个学生的数据都是一个列表
username ="admin"
password ="123456"whileTrue:# 1、界面print("************************** 名片管理器 **************************")print("-------------------------- 1.添加名片 --------------------------")print("-------------------------- 2.删除名片 --------------------------")print("-------------------------- 3.修改名片 --------------------------")print("-------------------------- 4.查询名片 --------------------------")print("-------------------------- 5.查询所有 --------------------------")print("-------------------------- 6.退出系统 --------------------------")print("************************** 名片管理器 **************************")# 2、输入,接收用户的输入的数字,执行对应的操作
command =int(input("请输入1到6之间的数字,进行对应操作:"))# 3、通过判断用户输入的数字是1,还是2,还是3... 执行对应的操作if command ==1:# 添加学生信息# 让用户输入姓名、年龄、性别
name =input("请输入姓名:")
age =input("请输入年龄:")
sex =input("请输入性别:")# [name, age, sex]
info_list.append({"name": name,"age": age,"sex": sex})print("【INFO】:添加成功!")elif command ==2:# 删除学生信息
name =input("请输入姓名:")# 遍历info_list这个列表(要找到这个人)for i in info_list:if name in i.values():# 在这个列表中就执行删除#
info_list.remove(i)print("【INFO】:删除成功!")break# 已经找到这个人了,后面的人就不需要在遍历else:print("【ERROR】:查无此人!")elif command ==3:# 修改学生信息
name =input("请输入姓名:")# 遍历info_list这个列表(要找到这个人)for i in info_list:if name in i.values():# 在这个列表中就执行修改
age =input("请输入修改后的年龄:")
sex =input("请输入修改后的性别:")# 格式:info_list[下标] =
info_list[info_list.index(i)]={"name": name,"age": age,"sex": sex}print("【INFO】:修改成功!")break# 已经找到这个人了,后面的人就不需要在遍历else:print("【ERROR】:查无此人!")elif command ==4:# 查询学生信息
name =input("请输入姓名:")# 遍历info_list这个列表(要找到这个人)for i in info_list:if name in i.values():print("【INFO】:此人信息如下:%s"% i)break# 已经找到这个人了,后面的人就不需要在遍历else:print("【ERROR】:查无此人!")elif command ==5:# 查询所有学生信息
uname =input("请输入管理员账号:")
upwd =input("请输入管理员密码:")if uname == username and upwd == password:print("【INFO】:所有学生信息如下:")for i in info_list:for k in i.values():print(k, end="\t")print()else:print("【ERROR】:账号或者密码错误!")elif command ==6:# 退出系统# print("【INFO】:退出成功!谢谢使用!")
sign =input("【INFO】:确定要退出吗?(yes or no):")if sign =="yes":print("【INFO】:退出成功!谢谢使用!")breakelse:continueelse:print("【ERROR】:请重新输入1到5之间的数字!")
3.学生名片信息管理系统-函数版
思路:
1.先定义全局变量
2.再定义函数
添加函数 add
查找函数 search
删除函数 remove
修改函数 alter
管理员账号密码验证函数 verify
3.完成主程序函数或界面,将所有内容整合打包
类似于:def main()
4.for 语句:
if 条件:breakelse:# for循环自然结束的时候才会执行这里的代码!!!!# 如果通过break结束的循环,那么这里的代码是不会执行!
参考代码:
# 定义全局变量
info_list =[{"name":'张三',"gender":'男',"age":27}]
admin_id ="python"
password ="123456"defadd_info_name():# 输入姓名
name =str(input("请输入姓名:"))return name
defadd_info_gender():# 输入性别whileTrue:
gender =str(input("请输入性别:"))if gender in"男女":return gender
else:print("【ERROR_1】:性别输入有误,请输入男或女!")defadd_info_age():# 输入年龄whileTrue:
age =str(input("请输入年龄:"))if age.isdigit()isTrue:return age
else:print("【ERROR_2】:年龄输入有误,请输入纯数字!")defsearch():# 按姓名查找
name = add_info_name()for i in info_list:if name in i.values():print(i)returnelse:print("【ERROR_3】:查无此人,请重新输入!")defremove():# 删除函数
name = add_info_name()for i in info_list:if name in i.values():
info_list.remove(i)print("【INFO_1】:删除成功!")returnelse:print("【ERROR_3】:查无此人,请重新输入!")defalter():# 修改函数
name = add_info_name()for i in info_list:if name in i.values():
info_list[info_list.index(i)]={"name": name,"gender": add_info_gender(),"age": add_info_age()}print("【INFO_2】:修改成功!")returnelse:print("【ERROR_5】:查无此人,请重新输入!")defverify():
ad =str(input("请输入管理员账号:"))
pd =str(input("请输入管理员密码:"))if ad == admin_id and pd == password:returnTrueelse:print("【ERROR_6】:管理员账号或密码错误,请重新输入!")defmain():whileTrue:print("************************** 名片管理器 **************************")print("-------------------------- 1.添加名片 --------------------------")print("-------------------------- 2.删除名片 --------------------------")print("-------------------------- 3.修改名片 --------------------------")print("-------------------------- 4.查询名片 --------------------------")print("-------------------------- 5.查询所有 --------------------------")print("-------------------------- 6.退出系统 --------------------------")print("************************** 名片管理器 **************************")
command =str(input("请输入对应数字进行操作:"))# 采用字符串形式,避免用户输入时报错print("-"*30)# 分隔线if command =="1":# 采用字符串形式,避免用户输入时报错
dic ={"name": add_info_name(),"gender": add_info_gender(),"age": add_info_age()}
info_list.append(dic)print("【INFO_3】:添加成功!")elif command =="2":if verify():
remove()else:passelif command =="3":if verify():
alter()else:passelif command =="4":if verify():
search()else:passelif command =="5":if verify():print("【INFO_4】:所有员工信息为:")print(info_list)else:passelif command =="6":print("【INFO_5】:谢谢使用,您已成功退出系统!")
exit()else:print("【ERROR_7】:输入有误,请重新输入相应数字进行操作!")
main()
4.学生名片信息管理系统-文件版
要求:将数据保存在txt文件中
参考代码:
# 定义全局变量import os
info_list =[]# 用来存放所有学生数据,每个学生的数据都是一个列表
filename ="info.txt"
admin_id ="python"
password ="123456"defload_info():# 每次打开程序都有对文件夹里的信息进行读取,所以要有登陆界面global info_list
f =open(filename,"r", encoding="utf-8")
str1 = f.read()
info_list =eval(str1)
f.close()defsave_info():# 添加信息后,退出程序时,需要将信息保存到文件夹
f =open(filename,"w", encoding="utf-8")
f.write(str(info_list))
f.close()defadd_info_name():# 输入姓名
name =str(input("请输入姓名:"))return name
defadd_info_gender():# 输入性别whileTrue:
gender =str(input("请输入性别:"))if gender in"男女":return gender
else:print("【ERROR_1】:性别输入有误,请输入男或女!")defadd_info_age():# 输入年龄whileTrue:
age =str(input("请输入年龄:"))if age.isdigit()isTrue:return age
else:print("【ERROR_2】:年龄输入有误,请输入纯数字!")defsearch():# 按姓名查找
name = add_info_name()for i in info_list:if name in i.values():print(i)returnelse:print("【ERROR_3】:查无此人,请重新输入!")defremove():# 删除函数
name = add_info_name()for i in info_list:if name in i.values():
info_list.remove(i)print("【INFO_1】:删除成功!")returnelse:print("【ERROR_3】:查无此人,请重新输入!")defalter():# 修改函数
name = add_info_name()for i in info_list:if name in i.values():
info_list[info_list.index(i)]={"name": name,"gender": add_info_gender(),"age": add_info_age()}print("【INFO_2】:修改成功!")returnelse:print("【ERROR_5】:查无此人,请重新输入!")defverify():
ad =str(input("请输入管理员账号:"))
pd =str(input("请输入管理员密码:"))if ad == admin_id and pd == password:returnTrueelse:print("【ERROR_6】:管理员账号或密码错误,请重新输入!")defmain():if os.path.exists(filename):# 判断这个文件是否存在,存在才加载
load_info()else:# 不存在就创建,创建后也要记得加载数据
f =open(filename,"w")
f.write("[]")
f.close()
load_info()whileTrue:print("************************** 名片管理器 **************************")print("-------------------------- 1.添加名片 --------------------------")print("-------------------------- 2.删除名片 --------------------------")print("-------------------------- 3.修改名片 --------------------------")print("-------------------------- 4.查询名片 --------------------------")print("-------------------------- 5.查询所有 --------------------------")print("-------------------------- 6.退出系统 --------------------------")print("************************** 名片管理器 **************************")
command =str(input("请输入对应数字进行操作:"))# 采用字符串形式,避免用户输入时报错print("-"*30)# 分隔线if command =="1":# 采用字符串形式,避免用户输入时报错
dic ={"name": add_info_name(),"gender": add_info_gender(),"age": add_info_age()}
info_list.append(dic)print("【INFO_3】:添加成功!")elif command =="2":if verify():
remove()else:passelif command =="3":if verify():
alter()else:passelif command =="4":if verify():
search()else:passelif command =="5":if verify():print("【INFO_4】:所有员工信息为:")print(info_list)else:passelif command =="6":
sign =input("确定要退出吗?是(y)或否(n):")if sign =="y":
save_info()# 退出时一定要记得保存信息print("【INFO_5】:谢谢使用,您已成功退出系统!")
exit()else:continueelse:print("【ERROR_7】:输入有误,请重新输入相应数字进行操作!")
main()
5.学生名片信息管理系统-异常版
要求:每次登陆时对文件夹里的信息进行读取,如果读取不到文件则抛出异常,通过 try…except…来完成。
参考代码:
# 定义全局变量import os
info_list =[]# 用来存放所有学生数据,每个学生的数据都是一个列表
filename ="info.txt"
admin_id ="python"
password ="123456"defload_info():# 每次打开程序都有对文件夹里的信息进行读取,所以要有登陆界面global info_list
try:
f =open(filename,"r", encoding="utf-8")except FileNotFoundError:# 捕获到“找不到文件”这个异常# 创建文件
f =open(filename,"w", encoding="utf-8")
f.write("[]")
f.close()
f =open(filename,"r", encoding="utf-8")
str1 = f.read()
info_list =eval(str1)
f.close()defsave_info():# 添加信息后,退出程序时,需要将信息保存到文件夹
f =open(filename,"w", encoding="utf-8")
f.write(str(info_list))
f.close()defadd_info_name():# 输入姓名
name =str(input("请输入姓名:"))return name
defadd_info_gender():# 输入性别whileTrue:
gender =str(input("请输入性别:"))if gender in"男女":return gender
else:print("【ERROR_1】:性别输入有误,请输入男或女!")defadd_info_age():# 输入年龄whileTrue:
age =str(input("请输入年龄:"))if age.isdigit()isTrue:return age
else:print("【ERROR_2】:年龄输入有误,请输入纯数字!")defsearch():# 按姓名查找
name = add_info_name()for i in info_list:if name in i.values():print(i)returnelse:print("【ERROR_3】:查无此人,请重新输入!")defremove():# 删除函数
name = add_info_name()for i in info_list:if name in i.values():
info_list.remove(i)print("【INFO_1】:删除成功!")returnelse:print("【ERROR_3】:查无此人,请重新输入!")defalter():# 修改函数
name = add_info_name()for i in info_list:if name in i.values():
info_list[info_list.index(i)]={"name": name,"gender": add_info_gender(),"age": add_info_age()}print("【INFO_2】:修改成功!")returnelse:print("【ERROR_5】:查无此人,请重新输入!")defverify():
ad =str(input("请输入管理员账号:"))
pd =str(input("请输入管理员密码:"))if ad == admin_id and pd == password:returnTrueelse:print("【ERROR_6】:管理员账号或密码错误,请重新输入!")defmain():
load_info()whileTrue:print("************************** 名片管理器 **************************")print("-------------------------- 1.添加名片 --------------------------")print("-------------------------- 2.删除名片 --------------------------")print("-------------------------- 3.修改名片 --------------------------")print("-------------------------- 4.查询名片 --------------------------")print("-------------------------- 5.查询所有 --------------------------")print("-------------------------- 6.退出系统 --------------------------")print("************************** 名片管理器 **************************")
command =str(input("请输入对应数字进行操作:"))# 采用字符串形式,避免用户输入时报错print("-"*30)# 分隔线if command =="1":# 采用字符串形式,避免用户输入时报错
dic ={"name": add_info_name(),"gender": add_info_gender(),"age": add_info_age()}
info_list.append(dic)print("【INFO_3】:添加成功!")elif command =="2":if verify():
remove()else:passelif command =="3":if verify():
alter()else:passelif command =="4":if verify():
search()else:passelif command =="5":if verify():print("【INFO_4】:所有员工信息为:")print(info_list)else:passelif command =="6":
sign =input("确定要退出吗?是(y)或否(n):")if sign =="y":
save_info()# 退出时一定要记得保存信息print("【INFO_5】:谢谢使用,您已成功退出系统!")
exit()else:continueelse:print("【ERROR_7】:输入有误,请重新输入相应数字进行操作!")if __name__ =="__main__":# 只有本文件才能调用的判定
main()# 入口函数
版权归原作者 若如初见kk 所有, 如有侵权,请联系我们删除。