西北乱跑娃 --- 用python的字典写一个实用的学生信息管理系统

导语:一个适合新手研究的管理信息系统,脱去繁琐,功能绝对实用。
废话不多上直接上代码:

import json
import time
print('欢迎进入管理信息系统')


class Manegement():
    def add():
        with open('info.txt','r',encoding='utf-8') as fp:
            data = eval(fp.read())
            lenth = len(data)
            info = data if lenth > 0 else {}
            names = {}
            name = input('姓名:')
            number = input('学号:')
            age = input('年龄:')
            phone = input('电话:')
            sex = input('性别:')

            names['姓名'] = name
            names['学号'] = number
            names['年龄'] = age
            names['电话'] = phone
            names['性别'] = sex
            info.setdefault(name, names)

            with open('info.txt','w',encoding='utf-8') as fr:
                fr.write(str(info))

    def index():
        with open('info.txt','r',encoding='utf-8') as f:
            a = eval(f.read())
            nm = input('请输入查找人姓名:')
            # print(a[nm])
            print('-----------------------------学生信息-----------------------------')
            print('| 姓名     |    学号      |    年龄      |      电话      |   性别  |')
            print('-----------------------------------------------------------------')
            print('{}        {}         {}          {}      {}'.format(a[nm]['姓名'],a[nm]['学号'],a[nm]['年龄'],a[nm]['电话'],a[nm]['性别']))
            print('-----------------------------------------------------------------')

    def redata():
        with open('info.txt','r',encoding='utf-8') as f:
            a = eval(f.read())

            # create dictionary
            info = a
            names = {}
            change = {}
            # make some value to info
            name = input('姓名:')
            number = input('学号:')
            age = input('年龄:')
            phone = input('电话:')
            sex = input('性别:')

            names['姓名'] = name
            names['学号'] = number
            names['年龄'] = age
            names['电话'] = phone
            names['性别'] = sex
            change.setdefault(name,names)
            info.update(change)

            # write in a text file
            with open('info.txt','w',encoding='utf-8') as fr:
                fr.write(str(info))

    def delete():
        with open('info.txt','r',encoding='utf-8') as f:
            a = eval(f.read())
            info = a
            nm = input('请输入要删除的姓名:')
            info.pop(nm)
            with open('info.txt','w',encoding='utf-8') as fr:
                fr.write(str(info))
                time.sleep(2)
                print('删除完成!!!')
                time.sleep(2)

    def index_all():
        with open('info.txt','r',encoding='utf-8') as f:
            a = eval(f.read())
            info = a
            info.values()
            b = eval((str(info.values()).replace('dict_values(','')).replace(')',''))
            print('-----------------------------学生信息-----------------------------')
            print('| 姓名     |    学号      |    年龄      |      电话      |   性别  |')
            print('-----------------------------------------------------------------')
            for i in b:
                # print(i)
                print('{}        {}         {}          {}      {}'.format(i['姓名'], i['学号'], i['年龄'], i['电话'], i['性别']))
            print('-----------------------------------------------------------------')

    def output():
        with open('info.txt','r',encoding='utf-8') as f:
            a = eval(f.read())
            info = a
            info.values()
            b = eval((str(info.values()).replace('dict_values(','')).replace(')',''))
            print('正在导出学生信息~~~~~')
            for i in b:
                # print(i)
                out_info = i['姓名']+','+str(i['学号'])+','+i['年龄']+','+str(i['电话'])+','+i['性别']+'\n'
                with open('info.csv', 'a+', encoding='gbk') as fp:
                    fp.write(out_info)


while True:
    if __name__=="__main__":
        a = Manegement
        with open('info.txt', 'a+', encoding='utf-8') as f:
            pass
        print('+------------------------------------------+')
        print('|           1、添加指定学生信息               |')
        print('|           2、查看指定学生信息               |')
        print('|           3、修改指定学生信息               |')
        print('|           4、删除指定用户信息               |')
        print('|           5、查看所有用户信息               |')
        print('|           6、导出所有用户信息               |')
        print('+------------------------------------------+')
        chosen = int(input('请选择:'))
        # add students information
        if chosen == 1:
            a.add()
        # index students information
        elif chosen == 2:
            a.index()
        # update students information
        elif chosen == 3:
            a.redata()
        # delete students information
        elif chosen == 4:
            a.delete()
        # delete all students information
        elif chosen == 5:
            a.index_all()
        # output all information to csv
        elif chosen == 6:
            a.output()

        else:
            time.sleep(2)
            print('您的选择有误,请重新选择!!!')
            time.sleep(3)

喜欢的朋友可以给个关注。

有勇气的牛排
官网:https://lgch.xyz/http://920z.net/
兼职写代码赚米,可进官网查看,千人团队,实力合作,同多家淘宝等店铺合作,质量靠谱,当天结款。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

西北乱跑娃

万水千山总是情,犒赏一下行不行

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

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

打赏作者

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

抵扣说明:

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

余额充值