你会用Python写数据结构吗?

Python 的语法比C++与C都要简单许多,那么如果用Python来写数据结构的算法又是怎样的呢?

使用自定义函数,开发一个学生管理系统,该系统具有的功能:添加学生信息、删除学生信息、修改学生信息、显示学生信息、退出系统等功能

利用函数完成对系统功能的模块化。其中,学生信息包含:姓名、性别、手机号。

def Studengt_message_choose(number):

        if number < 0 or number > 4:

            print("输入错误!请重新输入!")

            number_new = int(input("请选择:"))

            Studengt_message_choose(number_new)



        if number == 1:

                f = open("C:\\Users\\86080\\Desktop\\学生管理系统.txt",encoding='gbk', mode='r')

                contents = f.readlines()

                bufft = "".join(list(map(str,contents)))

                content_last = bufft.rstrip("\n")

                print(content_last)

                f.close()

                number_new = int(input("请选择:"))

                Studengt_message_choose(number_new)



        if number == 2:

            Student_message_list = []

            print("请输入您想要添加的学生信息,其中包括:姓名,性别,电话号码")

            print("按Q结束")

            Student_name = input("请输入姓名:")

            if Student_name == "Q":

                number_new = int(input("请选择:"))

                Studengt_message_choose(number_new)

            else:

                f = open("C:\\Users\\86080\\Desktop\\学生管理系统.txt",encoding='gbk', mode='a')

                #注意要修改成自己的路径

                count_sex = 1

                count_phone_number = 1        

                while count_sex:

                    Student_sex = input("请输入性别:")

                    if Student_sex != "男" and Student_sex != "女":

                        print("输入错误!请输入男或女!")

                    else:

                        count_sex -= 1

                        while count_phone_number:

                            Student_phone_number = input("请输入电话号码:")

                            if len(Student_phone_number) != 11:

                                print("输入错误!不符合号码规则!")

                            else:

                                # Student_message_list.append("\n")

                                Student_message_list.append(Student_name)

                                Student_message_list.append("        ")

                                Student_message_list.append(Student_sex)

                                Student_message_list.append("       ")

                                Student_message_list.append(Student_phone_number)

                                Student_message_list.append("\n")

                                f.writelines(Student_message_list)

                                f.close()

                                count_phone_number -= 1

                                print("录入成功!继续接下来的操作吧!")

                                number_new = int(input("请选择:"))

                                Studengt_message_choose(number_new)



        if number == 3:

            print("按Q结束")

            Student_name = input("请输入您想删除的学生姓名:")

            if Student_name == "Q":

                number_new = int(input("请选择:"))

                Studengt_message_choose(number_new)

            else:

                f_read = open("C:\\Users\\86080\\Desktop\\学生管理系统.txt",encoding='gbk', mode='r')

                transit = ""

                count_line = 0

                count_line_del = 0

                for line in f_read:

                    if Student_name in line:

                        count_line += 1

                        count_line_del = count_line

                        continue

                    else:

                        count_line += 1

                        transit += line

                if count_line_del == 0:

                    print("未查找到相应学生!")

                    number_new = int(input("请选择:"))

                    Studengt_message_choose(number_new)

                else:

                    f_read.close()

                    f_write = open("C:\\Users\\86080\\Desktop\\学生管理系统.txt",encoding='gbk', mode='w')

                    f_write.write(transit)

                    f_write.close()

                    print("删除成功!")

                    number_new = int(input("请选择:"))

                    Studengt_message_choose(number_new)



        if number == 4:

            print("按Q结束")

            Student_name = input("请输入您想修改的学生姓名:")

            if Student_name == "Q":

                number_new = int(input("请选择:"))

                Studengt_message_choose(number_new)

            f_read = open("C:\\Users\\86080\\Desktop\\学生管理系统.txt", encoding='gbk', mode='r')

            Student_message_update_list = []

            count_update = 0

            for i in f_read:

                Student_message_update_list.append(i)

            f_read.close()

            count_update_last = 0

            for update_message in Student_message_update_list:

                if Student_name in update_message:

                    count_update += 1

                    count_update_last = count_update

                    break

                else:

                    count_update += 1

            if count_update_last == 0:

                print("未查找到相应学生!")

                number_new = int(input("请选择:"))

                Studengt_message_choose(number_new)

            else:

                update = input("请输入您要修改的信息(姓名/性别/电话号码):")

                if update == "Q":

                    number_new = int(input("请选择:"))

                    Studengt_message_choose(number_new)

                if update == "姓名":

                    update_new = input("请输入修改后的姓名:")

                    if update_new == "Q":

                        number_new = int(input("请选择:"))

                        Studengt_message_choose(number_new)

                    file_data = ""

                    with open("C:\\Users\\86080\\Desktop\\学生管理系统.txt", encoding='gbk', mode='r')as f:

                        for line in f:

                            if Student_name in line:

                                line = line.replace(Student_name,update_new)

                            file_data += line

                    with open("C:\\Users\\86080\\Desktop\\学生管理系统.txt", "w", encoding='gbk') as f:

                        f.write(file_data)

                        f.close()

                if update == "性别":

                    while 1:

                        update_sex_old = input("请输入修改前的性别:")

                        if update_sex_old == "Q":

                            number_new = int(input("请选择:"))

                            Studengt_message_choose(number_new)

                        elif update_sex_old != "男" and update_sex_old != "女":

                            print("输入错误请重新输入!")

                        else:

                            break

                    while 1:

                            update_sex = input("请输入修改后的性别:")

                            if update_sex == "Q":

                                number_new = int(input("请选择:"))

                                Studengt_message_choose(number_new)

                            if update_sex != "男" and update_sex != "女":

                                print("输入错误请重新输入!")

                            else:

                                break

                    file_data_sex = ""

                    with open("C:\\Users\\86080\\Desktop\\学生管理系统.txt", encoding='gbk', mode='r') as f_sex:

                            for line in f_sex:

                                if Student_name in line:

                                    line = line.replace(update_sex_old,update_sex)

                                file_data_sex += line

                    with open("C:\\Users\\86080\\Desktop\\学生管理系统.txt", "w", encoding='gbk') as f_write_sex:

                        f_write_sex.write(file_data_sex)

                        f_write_sex.close()

                if update == "电话号码":

                    while 1:

                        update_phone_old = input("请输入修改前的电话号码:")

                        if update_phone_old == "Q":

                            number_new = int(input("请选择:"))

                            Studengt_message_choose(number_new)

                        if len(update_phone_old) != 11:

                            print("输入错误!不符合号码规则!")

                        if  len(update_phone_old) == 11:

                            update_phone = input("请输入修改后的电话号码:")

                            if update_phone == "Q":

                                number_new = int(input("请选择:"))

                                Studengt_message_choose(number_new)

                            if len(update_phone) != 11:

                                print("输入错误!不符合号码规则!")

                            if len(update_phone) == 11:

                                break

                    file_data_phone = ""

                    with open("C:\\Users\\86080\\Desktop\\学生管理系统.txt", encoding='gbk', mode='r') as f_phone:

                        for line in f_phone:

                            if Student_name in line:

                                line = line.replace(update_phone_old, update_phone)

                            file_data_phone += line

                            with open("C:\\Users\\86080\\Desktop\\学生管理系统.txt", "w", encoding='gbk') as f_write_phone:

                                f_write_phone.write(file_data_phone)

                                f_write_phone.close()

                print("修改成功!")

                number_new = int(input("请选择:"))

                Studengt_message_choose(number_new)



        if number == 0:

            print("退出成功!")

            exit(0)



print("欢迎来到学生管理系统!")

print("0.退出系统")

print("1.查看学生信息")

print("2.添加学生信息")

print("3.删除学生信息")

print("4.修改学生信息")

number = int(input("请选择:"))

Studengt_message_choose(number)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值