我把星星挂在了月亮上 2022-05-24 18:55 采纳率: 92.3%
浏览 97
已结题

毕业生去向统计,性质统计

img

除了最后一步统计都已经完成,统计相同单位的学生,统计同一城市的信息,统计同一性质的单位名称。


StudentInfo = ['学号', '姓名', '班级', '专业', '就业公司名称', '性质', '地点']


def GetList():  # 将 StudentMsg.txt 中的数据 拷贝到一个列表中
    fiel = open('StudentMsg.txt', 'r', encoding='utf-8')
    l = []
    for line in fiel:
        l.append(line.strip())  # 将所有的信息以c字符形式插入到列表中
    return l


def PrintAllMsg():  # 打印出所有的信息
    l = GetList()
    print(StudentInfo)
    count = 0
    for i in range(0, len(l)):  # 将列表中的所有信息 按7条一行打印
 
        count = count + 1
        print(l[i], end="     ")
        if count % 7 == 0:
            print()
    print()


def ModifyMenu():
    print('-' * 22)
    print("# 修改姓名请输入:     1 *")
    print("# 修改班级请输入:     2 *")
    print("# 修改专业请输入: 3 *")
    print("# 修改公司信息请输入: 4 *")
    print("# 修改性质请输入: 5 *")
    print("# 修改地点请输入: 6 *")
    print("# 退出修改请输入: 0 *")
    print('-' * 22)


def ModifyMsg():
    def ModifyName(pos):
        f = open('StudentMsg.txt', 'r+', encoding='utf-8')
        flist = f.readlines()
        name = input("输入修改之后的姓名:")
        name += '\n'
        flist[pos + 1] = name
        f = open('StudentMsg.txt', 'w+', encoding='utf-8')
        f.writelines(flist)
        f.close()
        print("修改成功!")

    def Modifybanji(pos):
        f = open('StudentMsg.txt', 'r+', encoding='utf-8')
        flist = f.readlines()
        banji = input("输入修改之后的班级:")
        banji += '\n'
        flist[pos + 2] = banji
        f = open('StudentMsg.txt', 'w+', encoding='utf-8')
        f.writelines(flist)
        f.close()
        print("修改成功!")
        
    def Modifyzhuanye(pos):
        f = open('StudentMsg.txt', 'r+', encoding='utf-8')
        flist = f.readlines()
        zhuanye = input("输入修改之后的专业:")
        zhuanye += '\n'
        flist[pos + 3] = year
        f = open('StudentMsg.txt', 'w+', encoding='utf-8')
        f.writelines(flist)
        f.close()
        print("修改成功!")

    def Modifycompany(pos):
        f = open('StudentMsg.txt', 'r+', encoding='utf-8')
        flist = f.readlines()
        company = input("输入修改之后的公司:")
        company += '\n'
        flist[pos + 4] = company
        f = open('StudentMsg.txt', 'w+', encoding='utf-8')
        f.writelines(flist)
        f.close()
        print("修改成功!")

    def Modifyxingzhi(pos):
        f = open('StudentMsg.txt', 'r+', encoding='utf-8')
        flist = f.readlines()
        xingzhi = input("输入修改之后的性质:")
        xingzhi += '\n'
        flist[pos + 5] = xingzhi
        f = open('StudentMsg.txt', 'w+', encoding='utf-8')
        f.writelines(flist)
        f.close()
        print("修改成功!")
        
    def ModifyAddress(pos):
        f = open('StudentMsg.txt', 'r+', encoding='utf-8')
        flist = f.readlines()
        address = input("输入修改之后的地址:")
        address += '\n'
        flist[pos + 6] = address
        f = open('StudentMsg.txt', 'w+', encoding='utf-8')
        f.writelines(flist)
        f.close()
        print("修改成功!")
    PrintAllMsg()
    id = input("请输入你要修改的学号:")
    if id in IsIdRight():
        l2 = GetList()
        pos = l2.index(id)
        while 1:
            ModifyMenu()
            a = int(input("请输入: "))
            while a:
                if a == 1:
                    ModifyName(pos)
                    break
                if a == 2:
                    Modifybanji(pos)
                    break
                if a == 3:
                    Modifyzhuanye(pos)
                    break
                if a == 4:
                    Modifycompany(pos)
                    break
                if a == 5:
                    Modifyxingzhi(pos)
                    break
                if a == 6:
                    ModifyAddress(pos)
                    break
            if a == 0:  # 按0退出进程
                break
def DelMsg():
    PrintAllMsg()
    id = input("请输入你要删除的学生的Id:")
    if id in IsIdRight():
        pos = GetList().index(id)
        f = open('StudentMsg.txt', 'r+', encoding='utf-8')
        flist = f.readlines()
        for i in range(0, 7):
            del flist[pos]
        f = open('StudentMsg.txt', 'w+', encoding='utf-8')
        f.writelines(flist)
        f.close()
        print("删除成功!")
        PrintAllMsg()
    else:
        print("学号输入错误!")
        DelMsg()


def IsIdRight():  # 返回学号列表
    l1 = GetList()
    l2 = []
    i = 0
    while i < len(l1):
        l2.append(l1[i])
        i = i + 7
    return l2

def AddMsg():  # 添加信息
    fiel = open('StudentMsg.txt', 'a', encoding='utf-8')

    def Inputid():  # 添加学号判断
        id = (input("请输入你的学号:"))
        l1 = IsIdRight()
        if not (int(id) > 1000 and (id in l1)):
            fiel.write('\n')
            fiel.writelines(id)
        else:
            if int(id) < 1000:
                print("学号输入错误!")
                Inputid()
            if id in IsIdRight():
                print("学号存在!")
                Inputid()

    def Inputname():  # 添加姓名判断
        name = input("请输入你的姓名:")
        fiel.write('\n')
        fiel.writelines(name)

    def Inputbanji():  # 添加性别判断
        s1 = input("请输入你的班级")

        fiel.write('\n')
        fiel.writelines(s1)


    def Inputzhuanye():  # 添加毕业年级判断
        zhuanye = (input("请输入你的专业:"))
       
        fiel.write('\n')
        fiel.writelines(zhuanye)
        
    def InputCompany():  # 添加公司信息
        company = input("请输入你的就业公司:")
        fiel.write('\n')
        fiel.writelines(company)

    def Inputxingzhi():  # 添加电话判断
        xingzhi = (input("请输入工作性质:"))
       
        fiel.write('\n')
        fiel.writelines(xingzhi)
    def InputAddress():  # 添加地址信息
        add = input("请输入你的家庭地址:")
        fiel.write('\n')
        fiel.writelines(add)

    Inputid()
    Inputname()
    Inputbanji()
    Inputzhuanye()
    InputCompany()
    Inputxingzhi()
    InputAddress()
    fiel.close()  # 关闭文件
def Menu():  # 菜单主界面
    print('-' * 22)
    print("# 查看毕业生列表输入: 1 *")
    print("# 添加毕业生信息输入: 2 *")
    print("# 修改毕业生信息输入: 3 *")
    print("# 查找毕业生信息输入:4 *")
    print("# 删除毕业生信息输入: 5 *")
    print("# 退出系统请输入      0 *")
    print('-' * 22)
    
def FindMenu():
    print('-' * 22)
    print("# 搜索姓名请输入: 1 *")
    print("# 退出搜所请输入  0 *")
    print('-' * 22)


def FindStu():
    def FindMsgByName():
        name = input("请输入你需要查找的学生的姓名:")
        if name in GetList():
            pos = GetList().index(name) - 1
            flist = GetList()
            print(StudentInfo)
            for i in range(0, 7):
                print(flist[pos + i], end="     ")
            print()
        else:
            print("姓名输入错误!")
            FindMsgByName()


    while 1:
        FindMenu()
        a = int(input("请输入: "))
        while a:
            if a == 1:
                FindMsgByName()
                break
        if a == 0:
            break

def main():
    Menu()
    while 1:
        a = int(input("请输入: "))
        while a:

            if a == 1:
                PrintAllMsg()
                Menu()
                break
            if a == 2:
                AddMsg()
                Menu()
                break
            if a == 3:
                ModifyMsg()
                Menu()
                break
            if a == 4:
                FindStu()
                Menu()
                break
            if a == 5:
                DelMsg()
                Menu()
                break
        if a == 0:  # 按0退出进程
            exit()


main()













  • 写回答

1条回答 默认 最新

  • 张世争 2022-05-24 19:13
    关注

    代码不能正常运行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月25日
  • 已采纳回答 5月24日
  • 修改了问题 5月24日
  • 修改了问题 5月24日
  • 展开全部

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加