用python写一个简单的学生管理系统

要求如下:

1.能循环输入内容
2.展示功能

  1. 新增名片
  2. 显示全部
  3. 查询名片
  4. 退出系统

3.让用户输入希望执行的操作 例如输入1,2,3,0
4.新增列表

  • 提示用户输入姓名,
  • 输入电话
  • 输入qq号
  • 输入邮箱
  • 提示新增名片成功。
    5.显示全部
  • 将所有的名片打印出来,格式如下:
 姓名			电话			QQ			        邮箱
 zs				110				1337765076			110@qq.com

6.查询名片

  • 提示请输入要搜索查找用户的姓名
    • 如果用户存在—>显示用户的信息
      -提示用户【1】修改 【2】删除 【0】返回上一级菜单,请选择要执行的操作。
      -修改操作,可以修改用户名,电话,qq、邮箱。
      -删除操作,将用户删除。
      -返回上一级操作,回到欢迎界面,让用户继续操作。

    • 如果用户不存在–>提示查找的用户不存在。

思路如下:

1.能循环输入内容

这个可以在主程序中用while循环实现

2.展示功能

定义一个输出展示界面的函数

def display_function():
    print("1.新增名片\n2.显示全部\n3.名片\n0.退出系统")

3.让用户输入希望执行的操作 例如输入1,2,3,0

可以在主程序中设置一个接收用户输入内容的函数,然后通过判断接收内容,跳转到其它功能函数

4.新增列表

先定义一个新增列表的函数

def add_list():
  • 提示用户输入姓名
	user_name = input("请您输入姓名:")
  • 输入电话
 	user_phone = input("请您输入电话:")
  • 输入qq号
	user_qq = input("请您输入qq号:")
  • 输入邮箱
	user_email = input("请您输入邮箱:")
  • 提示新增名片成功
print("新增名片成功!")

最后把这些函数内的代码都整合一下,包括把用户输入的内容保存起来以便之后调用

def add_list():
    user_name = input("请您输入姓名:")
    user_phone = input("请您输入电话:")
    user_qq = input("请您输入qq号:")
    user_email = input("请您输入邮箱:")
    dic = {}
    dic['姓名'] = user_name
    dic['电话'] = user_phone
    dic['qq'] = user_qq
    dic['邮箱'] = user_email
    user_card.append(dic)
    print("新增名片成功!")

5.显示全部

要求我们将所有的名片打印出来,同样,我们也先定义一个显示全部的函数

def print_all_card():

然后再把列表输出一下:

	print("姓名\t\t\t\t电话\t\t\t\tqq\t\t\t\t邮箱\t\t\t\t")

接下来再输出用户的信息,因为我们创建的存放用户数据的数据类型是数组和字典,所以我们遍历数组,并把用户数据从字典中取出来输出,同时也需要注意对齐:

    for i in range(0, len(user_card)):
        print("{:<16}{:<16}{:<16}{:<16}".format(user_card[i]['姓名'], user_card[i]['电话'], user_card[i]['qq'],
                                                user_card[i]['邮箱']))

6.查询名片

这一段是整段中最难的,也是最后一个功能,和前面一样,我们先定义一个查询名片的函数

def find_card():
	
  • 提示请输入要搜索查找用户的姓名
	find_user_name = input("请输入您要查找的用户的姓名:")
  • 如果用户存在—>显示用户的信息
    在这里需要加入一个计数器,通过这个判断是否在数据库中找到了该用户
    并保存找到该用户时该元素的索引,以便接下来使用
	find_num = 0
    can_not_find=0
    for i in user_card:
        if i['姓名'] == find_user_name:
            find_num = user_card.index(i)
            print("找到了,信息如下")
            print(i)
            can_not_find=1
            break
  • 提示用户【1】修改 【2】删除 【0】返回上一级菜单,请选择要执行的操作。
    inp_find = int(input("【1】修改\n【2】删除\n【3】返回上一级菜单"))
  • 修改操作,可以修改用户名,电话,qq、邮箱。
    if inp_find == 1:
        user_change_key = input("请输入需要修改的类别:")
        user_change_value = input("请输入您需要修改的内容:")
        user_card[find_num][user_change_key] = user_change_value
        print("修改完成!")
        print(user_card[find_num])
  • 删除操作,将用户删除。
    elif inp_find == 2:
        del user_card[find_num]
        print("删除完成!")
        print_all_card()
  • 返回上一级操作,回到欢迎界面,让用户继续操作。
    elif inp_find == 3:
        return display_function()

最后整理一下,就是这个实现这个功能的函数了

def find_card():
    find_user_name = input("请输入您要查找的用户的姓名:")
    find_num = 0
    can_not_find = 0
    for i in user_card:
        if i['姓名'] == find_user_name:
            find_num = user_card.index(i)
            print("找到了,信息如下")
            print(i)
            can_not_find = 1
            break
    if can_not_find == 0:
        print("您查找的用户不存在!")
        return find_card()
    inp_find = int(input("【1】修改\n【2】删除\n【3】返回上一级菜单"))
    if inp_find == 1:
        user_change_key = input("请输入需要修改的类别:")
        user_change_value = input("请输入您需要修改的内容:")
        user_card[find_num][user_change_key] = user_change_value
        print("修改完成!")
        print(user_card[find_num])
    elif inp_find == 2:
        del user_card[find_num]
        print("删除完成!")
        print_all_card()
    elif inp_find == 3:
        return display_function()

各功能的拼接

学生管理系统的需求,已经基本上满足,接下来就是写主程序,把实现各个功能的函数拼接到一起。
但是,在主函数中,声明user_card是全局变量好像有点问题,所以我后面是在最外层定义的user_card,就是在main_code()调用前,定义的user_card。看后面能不能发现是什么问题,再修改

def main_code():
    while 1:
        display_function()
        user_doing = int(input("请输入您希望执行的操作:"))
        if user_doing == 1:
            add_list()
        elif user_doing == 2:
            print_all_card()
        elif user_doing == 3:
            find_card()
        elif user_doing == 0:
            print("退出系统!")
            break
    return

最后完成的代码如下:

def display_function():
    print("1.新增名片\n2.显示全部\n3.名片\n0.退出系统")


def add_list():
    user_name = input("请您输入姓名:")
    user_phone = input("请您输入电话:")
    user_qq = input("请您输入qq号:")
    user_email = input("请您输入邮箱:")
    dic = {}
    dic['姓名'] = user_name
    dic['电话'] = user_phone
    dic['qq'] = user_qq
    dic['邮箱'] = user_email
    user_card.append(dic)
    print("新增名片成功!")


def print_all_card():
    print("姓名\t\t\t\t电话\t\t\t\tqq\t\t\t\t邮箱\t\t\t\t")
    for i in range(0, len(user_card)):
        # print_kwargs(**user_card[i])
        print("{:<16}{:<16}{:<16}{:<16}".format(user_card[i]['姓名'], user_card[i]['电话'], user_card[i]['qq'],
                                                user_card[i]['邮箱']))


def find_card():
    find_user_name = input("请输入您要查找的用户的姓名:")
    find_num = 0
    can_not_find = 0
    for i in user_card:
        if i['姓名'] == find_user_name:
            find_num = user_card.index(i)
            print("找到了,信息如下")
            print(i)
            can_not_find = 1
            break
    if can_not_find == 0:
        print("您查找的用户不存在!")
        return find_card()
    inp_find = int(input("【1】修改\n【2】删除\n【3】返回上一级菜单"))
    if inp_find == 1:
        user_change_key = input("请输入需要修改的类别:")
        user_change_value = input("请输入您需要修改的内容:")
        user_card[find_num][user_change_key] = user_change_value
        print("修改完成!")
        print(user_card[find_num])
    elif inp_find == 2:
        del user_card[find_num]
        print("删除完成!")
        print_all_card()
    elif inp_find == 3:
        return display_function()


def main_code():
    while 1:
        display_function()
        user_doing = int(input("请输入您希望执行的操作:"))
        if user_doing == 1:
            add_list()
        elif user_doing == 2:
            print_all_card()
        elif user_doing == 3:
            find_card()
        elif user_doing == 0:
            print("退出系统!")
            break
    return


user_card = []
main_code()


  • 36
    点赞
  • 164
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值