Python基础小项目——学生电话簿管理系统

学生电话簿管理系统:
1、界面:提示用户输入(1,2,3,4,5,6, 7, 0):
(1)添加学生(姓名、电话(不可以重复)、地址、爱好),并自动生成ID(不可以重复)
(2)查看所有学生信息(只显示ID、姓名、电话)
(3)根据ID删除学生
(4)根据指定ID查看一个学生详细信息(所有信息都要显示)
(5)根据电话查找学生,并查看详细信息
(6)根据姓名查看所有同名学生(ID和电话)
(7)通过ID找到学生,并修改学生信息
(8)退出系统
2、每次选择操作后重新提示用户进行选择操作。

一、模块分类

首先,将本系统划分为模块进行框架设计。在这里,我们在新建的项目里新建一个main主模块,然后再新建一个package包。然后我们再在package包里面建立7个分模块,分别对应项目的7个要求功能。具体如下图所示:

其中,list模块是主模块的一个内容,这里我们选择单独放到一个子模块里面,以便于7个分模块对其进行功能调用,而且不会出现模块相互调用,进而陷入无限循环调用的错误。

stu_list = [
    {'姓名': '美队', '电话': 123, '地址': '纽约', '爱好': '扔盾牌', 'ID': 186},
    {'姓名': '浩克', '电话': 124, '地址': '芝加哥', '爱好': '砸东西', 'ID': 587},
    {'姓名': '钢铁侠', '电话': 125, '地址': '华盛顿', '爱好': '造战甲', 'ID': 150},
    {'姓名': '雷神', '电话': 126, '地址': '外星球', '爱好': '扔锤子', 'ID': 515}
]

二、模块讲解

1.main模块内容如下:  

import package01.insert as my_insert
import package01.search as my_search
import package01.delete as my_delete
import package01.find_id as my_find_id
import package01.find_tel as my_find_tel
import package01.find_name as my_find_name
import package01.modify as my_modify


welcome = '''
-----------------学生信息管理系统----------------
|====================功能菜单====================|
|                                                |
|     1 添加学生                                 |
|     2 查看所有学生信息                         |
|     3 根据ID删除学生                           |
|     4 根据指定ID查看一个学生详细信息           |
|     5 根据电话查找学生,并查看详细信息         |
|     6 根据姓名查看所有同名学生                 |
|     7 通过ID找到学生,并修改学生信息           |
|                                                |
|=============================================== |
|------------------------------------------------|
'''

while True:
    print(welcome)
    option = int(input('请选择:'))                      #选择菜单项
    if option == 1:                         #添加学生
        print('-------------添加学生信息--------------')
        my_insert.add_stu()
    elif option == 2:                       #查看所有学生信息
        print('-------------查看所有学生信息--------------')
        my_search.show_stu()
    elif option == 3:                       #根据ID删除学生
        print('-------------根据ID删除学生--------------')
        my_delete.delete_stu()
    elif option == 4:                       #根据指定ID查看一个学生详细信息
        print('-------------根据指定ID查看一个学生详细信息--------------')
        my_find_id.find_id()
    elif option == 5:                       #根据电话查找学生,并查看详细信息
        print('-------------根据电话查找学生,并查看详细信息--------------')
        my_find_tel.find_tel()
    elif option == 6:                       #根据姓名查看所有同名学生
        print('-------------根据姓名查看所有同名学生--------------')
        my_find_name.find_name()
    elif option == 7:                       #通过ID找到学生,并修改学生信息
        print('-------------通过ID找到学生,并修改学生信息--------------')
        my_modify.modify_stu()
    elif option == 0:
        print('退出系统')
        break
    else:
        print('输入选项有误,请重新输入 ')

以下是main主模块对以下7个分模块的调用,进而实现系统的完整的功能。 

import package01.insert as my_insert
import package01.search as my_search
import package01.delete as my_delete
import package01.find_id as my_find_id
import package01.find_tel as my_find_tel
import package01.find_name as my_find_name
import package01.modify as my_modify 

 以下代码是main主模块实现对系统分模块的跳转衔接。

if option == 1:                         #添加学生
    print('-------------添加学生信息--------------')
    my_insert.add_stu()
elif option == 2:                       #查看所有学生信息
    print('-------------查看所有学生信息--------------')
    my_search.show_stu()
elif option == 3:                       #根据ID删除学生
    print('-------------根据ID删除学生--------------')
    my_delete.delete_stu()
elif option == 4:                       #根据指定ID查看一个学生详细信息
    print('-------------根据指定ID查看一个学生详细信息--------------')
    my_find_id.find_id()
elif option == 5:                       #根据电话查找学生,并查看详细信息
    print('-------------根据电话查找学生,并查看详细信息--------------')
    my_find_tel.find_tel()
elif option == 6:                       #根据姓名查看所有同名学生
    print('-------------根据姓名查看所有同名学生--------------')
    my_find_name.find_name()
elif option == 7:                       #通过ID找到学生,并修改学生信息
    print('-------------通过ID找到学生,并修改学生信息--------------')
    my_modify.modify_stu()

 2.  7个分模块内容如下:

# (1)	添加学生(姓名、电话(不可以重复)、地址、爱好),并自动生成ID(不可以重复)
import random
import package01.list as my_list


def add_stu():
    name = input('请输入新增学生姓名:')
    tel = int(input('请输入新增学生电话:'))
    ID = random.randint(100, 1000)
    for i in range(len(my_list.stu_list)):
        if my_list.stu_list[i]['电话'] == tel or my_list.stu_list[i]['ID'] == ID:
            break
    else:
        address = input('请输入新增学生地址:')
        hobby = input('请输入新增学生爱好:')
        stu_dict_new = {'姓名': name, '电话': tel, '地址': address, '爱好': hobby, 'ID': ID}
        my_list.stu_list.append(stu_dict_new)

# (2)	查看所有学生信息(只显示ID、姓名、电话)
import package01.list as my_list


def show_stu():
    print('ID\t\t姓名\t\t电话')
    for stu in my_list.stu_list:
        print('{}\t\t{}\t\t{}'.format(stu['ID'], stu['姓名'], stu['电话']))

# (3)	根据ID删除学生
import package01.list as my_list


def delete_stu():
    ID1 = int(input('请输入学生ID:'))
    for stu in my_list.stu_list:
        if ID1 == stu['ID']:
            my_list.stu_list.remove(stu)
            break
    else:
        print('输入ID有误')

# (4)	根据指定ID查看一个学生详细信息(所有信息都要显示)
import package01.list as my_list


def find_id():
    ID1 = int(input('请输入查找的学生ID:'))
    print('姓名\t\t电话\t\t地址\t\t爱好\t\tID')
    for stu in my_list.stu_list:
        if ID1 == stu['ID']:
            print('{}\t\t{}\t\t{}\t\t{}\t\t{}'.format(stu['姓名'], stu['电话'], stu['地址'], stu['爱好'], stu['ID']))
            break
    else:
        print('输入学生ID有误!')

# (5)	根据电话查找学生,并查看详细信息
import package01.list as my_list


def find_tel():
    tel1 = int(input('请输入查找的学生电话:'))
    print('姓名\t\t电话\t\t地址\t\t爱好\t\tID')
    for stu in my_list.stu_list:
        if tel1 == stu['电话']:
            print('{}\t\t{}\t\t{}\t\t{}\t\t{}'.format(stu['姓名'], stu['电话'], stu['地址'], stu['爱好'], stu['ID']))
            break
    else:
        print('输入学生电话有误!')

# (6)	根据姓名查看所有同名学生(ID和电话)
import package01.list as my_list


def find_name():
    name1 = input('请输入查找的学生姓名:')
    list1 = []
    for name_dict in my_list.stu_list:
        list1.append(name_dict['姓名'])
    if name1 in list1:
        name_num = list1.count(name1)
        if name_num >= 2:
            list2 = []
            for e in range(name_num):
                name_index = list1.index(name1)
                list1.remove(name1)
                list2.append(name_index)
            list3 = []
            for x in range(len(list2)):
                y = list2[x] + x
                list3.append(y)
            print('姓名\t\tID\t\t电话')
            for new_index in list3:
                new_dict = my_list.stu_list[new_index]
                print('{}\t\t{}\t\t{}'.format(new_dict['姓名'], new_dict['ID'], new_dict['电话']))
        else:
            print('该学生不重名')
    else:
        print('该学生不存在')

# (7)	通过ID找到学生,并修改学生信息
import package01.list as my_list


def modify_stu():
    ID1 = int(input('请输入学生ID:'))
    for stu in my_list.stu_list:
        if ID1 == stu['ID']:
            name = input('请输入学生姓名:')
            tel = input('请输入学生电话:')
            address = input('请输入学生地址:')
            hobby = input('请输入学生爱好:')
            stu['姓名'] = name
            stu['电话'] = tel
            stu['地址'] = address
            stu['爱好'] = hobby
            break
    else:
        print('输入学生ID有误!')

良心作品呦,希望能给大家带来一些知识上的帮助(喜欢小编的关注、点赞走一波呦,后期会不定期分享更多Python相关知识) 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Crazy ProMonkey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值